Wykrywanie gestów przez Arduino za pomocą czujnika PIR

Wykrywanie gestów przez Arduino za pomocą czujnika PIR

Czujniki PIR służą do wykrywania ruchu. Można je spotkać w systemach alarmowych oraz np. przy automatycznym oświetleniu.

Sensory tego typu można jednak również zaprząc do znacznie bardziej rozbudowanych zadań. Oto przykład użycia PIR do rozpoznawania gestów!

Czujnik PIR (ang. Passive Infra Red) jest przetwornikiem wrażliwym na promieniowanie cieplne i służy głównie do detekcji ruchu żywych organizmów. Czujnik ten bardzo często można spotkać w systemach automatycznego oświetlenia umieszczonych w budynkach.

Zapewne każdemu kiedyś zdarzyło się, że po wejściu do pomieszczenia wyposażonego w "inteligentne" oświetlenie, po chwili bezruchu, zgasło światło. Aby ponownie włączyć oświetlenie zazwyczaj wykonuje się wtedy przeróżne, chaotyczne ruchy. Okazuje się, że przy odpowiedniej konfiguracji, czujniki PIR mogą posłużyć do rozpoznawania gestów.

Opisywany projekt bazuje na wykorzystaniu czujnika PIR TPA81 o rozdzielczości 8 pikseli, czyli takiego, który zastępuje 8 niezależnych czujników. Jest to więc praktycznie bardzo prosta kamera termowizyjna. Sensor ten wyróżnia jeszcze jedna cecha, istotna dla rozpoznawania gestów, chodzi oczywiście o wąski kąt widzenia (rzędu 6°). Dzięki temu możliwe jest tworzenie "mapy cieplnej".

Detektor gestów z wykorzystaniem czujnika PIR

Detektor gestów z wykorzystaniem czujnika PIR

Do budowy przykładowego detektora gestów wykorzystano płytkę Arduino Nano R3 oraz czujnik TPA81 komunikujący się z Arduino poprzez I2C. Do wyświetlania wyników można posłużyć się portem szeregowym lub wyświetlacz OLED.

Surowe dane z czujnika wyglądają tak, jak na poniższej animacji. Pierwsza wartość w wierszu to średni odczyt "temperatury", a kolejne 8 wartości to pomiary odczytane z kolejnych "pikseli" czujnika:

Surowy odczyt z czujnika

Surowy odczyt z czujnika

Dane z czujnika zapisywane są do tablicy, a całość jest następnie odpowiednio progowana. Korzystając z tych danych, autor projektu napisał prosty detektor gestów sprawdzający czy w danym okresie czasu nastąpił wzrost lub spadek mierzonych wartości.

Dane z czujnika poddane progowaniu

Dane z czujnika poddane progowaniu

Analizując uzyskane wartości udaje się bez problemów rozpoznać proste gesty, które mogą posłużyć do wydawania poleceń typu "ciszej", "głośniej" itd. Największą wadą tego rozwiązania jest stosunkowo wysoka cena użytego czujnika (nawet 100$). Autor projektu proponuje alternatywę: połączenie 8 niezależnych, tańszych czujników HC-SR501 (o kącie widzenia 100°).

Czujnik PIR, najdroższy element systemu

Czujnik PIR, najdroższy element systemu

Autor projektu opisał go dokładnie na Hackster.io udostępniając schematy oraz kody programów. Jeśli macie potrzebne elementy pod ręką to warto sprawdzić działanie tego oryginalnego projektu. Ciekawe mogą się okazać testy z wykorzystaniem zwykłych, tanich czujników. Dajcie znać jeśli sprawdzicie taką wersję sensora gestów! Macie jeszcze inne pomysły na wykorzystanie czujnika TPA81?

Kurs Arduino - przerwania, kontaktron, czujnik PIR
Kurs Arduino - przerwania, kontaktron, czujnik PIR

Pisząc rozbudowane programy łatwo doprowadzić do sytuacji, w której układ nie reaguje od razu np. na wciśnięcie przycisku. Wtedy najlepiej... Czytaj dalej »

arduino, czujnik, gesty, PIR

Trwa ładowanie komentarzy...