Gdy dziecko siedzi za blisko telewizora

Oto projekt, który pozwoli na stworzenie urządzenia czuwającego nad właściwą odległością siedzenia przed telewizorem czy monitorem. Urządzenie zbudowane jest w oparciu o ultradźwiękowy czujnik odległości HC-SR04, który opisałem w dziale "Moduły Arduino" oraz buzzer. U mnie świetnie się sprawdza kiedy moje dziecko notorycznie siedzi przed telewizorem bardzo blisko. Jest to niezdrowe i źle wpływa na wzrok, a ciągłe powtarzanie "odsuń się od telewizora" przynosi efekt tylko na krótki czas po czym za parę chwil dziecko znowu siedzi z "nosem" w ekranie. Urządzenie to wydając niezbyt miłe dla ucha dźwięki przypomina o odsunięciu się na większą odległość, a dźwięk dopiero wyłącza się kiedy odległość oglądającego od telewizora jest właściwa.


Kod programu

Opis działania programu

Program oprócz opisywanego już wcześniej pomiaru odległości działa w ten sposób, że dziesięć razy dokonuje pomiaru odległości i odrzuca skrajne dwa pomiary bo zdarza się, że na czujniku są jakieś pomiary spoza zakresu powstające w wyniku nieprzewidzianych zakłóceń. Aby pomiary były w miarę dokładne liczone są na podstawie średniej z tych dziesięciu pomiarów bez skrajnych wartości po czym wartość ta jest porównywana z wartościami odległości ustalonymi w programie. Jeśli odległość zmierzona od czujnika do dziecka siedzącego przed telewizorem jest mniejsza niż tak ustalona jako wartość stałej OKODL, którą ja ustawiłem na 150cm to wtedy sprawdzane jest jeszcze czy odległość ta jest mniejsza niż odległość krytyczna ustawiona stałą BADODL. Jeśli jest większa generowany jest dźwięk o niższym tonie dźwięku na czas 250ms, a jeśli mniejsza jest generowany dźwięk o wyższym tonie przez czas 1000ms czyli jednej sekundy co w praktyce daje efekt dźwięku ciągłego. Jeśli zaś odległość zwiększy się powyżej odległości OKODL to wtedy dźwięk się wyłącza co oznacza, ze dziecko odsunęło się od telewizora na bezpieczną odległość. Do generowania dźwięku na buzerze wykorzystuję standardowe funkcje z Arduino IDE tone() oraz do wyłączania generowania dźwięku noTone(). Warunkiem działania w ten sposób buzzera jest podłączenie go pinu z funkcją PWM - piny oznaczone znakiem "~".

Ja w swoim projekcie użyłem modułu Arduino Pro Mini ponieważ jest to najmniejsza płytka Arduino, łatwo ją schować za czujnikiem ultradźwiękowym ale do zaprogramowania wymaga dodatkowego modułu FTDI. Nie ma problemu żeby w projekcie zastosować każdą inna płytkę Arduino, wszystko będzie działać tak samo.