Arduino Mega 2560 R3 - sterowanie programem komputerowym oraz oświetleniem za pomocą pilota

Stronę tą wyświetlono już: 155 razy

W jednym z wcześniejszych projektów stworzyłem sobie lampkę, która za pomocą mojego własnego programu do odtwarzania muzyki była sterowana. Teraz nieco przerobiłem ten projekcik dodając wylutowanym z starego telewizora odbiornik IR, który pozwolił mi na zdalne sterowanie oświetleniem oraz moim programem uruchomionym na komputerze. Sam odbiornik posiada trzy nóżki, dwie pierwsze znajdujące się bliżej siebie to kolejno GND (uziemienie lub jak kto woli minus), druga to + a trzecia to linia danych DATA. Odbiornik pracuje na napięcie 5V więc idealnie nadają się do Arduino. Linia danych przesyła w zależności od rodzaju odbiornika IR informacje z określoną częstością z tego też względu do odbioru danych z końcówkę DATA należy podłączyć do jednego z złącz PWM.

Screen programu QtLinuxMusicPlayer
Rys. 1
Screen programu QtLinuxMusicPlayer, który przerobiłem

Do obsługi komunikacji z wystarczy wykorzystać bibliotekę IRemote, za pomocą której będzie możliwe zarówno wysyłanie jak i odbieranie danych. Mnie interesuje oczywiście jedynie odbieranie danych, gdyż wykorzystuję jedynie odbiornik IR (po stronie Arduino). Program napisany na Arduino po wciśnięciu danego przycisku na pilocie wysyła do komputera polecenia w formie tekstowej, czyli w moim przypadku:

  • volume_up - podgłośnienie;
  • volume_down - ściszenie;
  • next - odtwarzanie następnej pozycji na liście;
  • previous - odtwarzanie wcześniejszej pozycji na liście;
  • minus_5_sec - cofnięcie odtwarzania o 5 sekund do tyłu;
  • plus_5_sec - przewinięcie odtwarzania o 5 sekund do przodu

Oczywiście powyższe polecenie muszą być odebrane przez program uruchomiony na komputerze i obsłużone. W moim przypadku programem tym jest napisany przeze mnie QtLinuxMusicPlayer, który wykorzystuję do odtwarzania muzyki i sterowania lampką. Program ten pod systemem Linux wykrywa podłączoną do komputera płytkę Arduino MEGA 2560 komunikując się z nią dwukierunkowo.

To na co warto zwrócić uwagę to fakt, że tak zaprogramowany układ może stanowić sposób sterowania każdym programem, który obsługuje wysyłane przez moduł polecenia. W takim też razie nie zależnie już od systemu można sobie napisać program, który będzie reagował na wysyłane przez Arduino polecenia nie ingerując już w sam kod wgrany do AVR-a.

Moduł Arduino MEGA 2560 z odbiornikiem IR i przekaźnikami stykowymi
Rys. 2
Moduł Arduino MEGA 2560 z odbiornikiem IR i przekaźnikami stykowymi

Warto wspomnieć, że piloty często wysyłają najpierw sygnał kodu wciśnięcia określonego przycisku, a następnie, jeżeli tylko przycisk został przytrzymany wystarczająco długo kod ponownego wciśnięcia. Kod ten w moim przypadku to w zapisie szesnastkowym FFFFFFFF. Wadą takiego rozwiązania jest to, że wciśnięcie dwóch różnych przycisków w krótkim odstępie po sobie jest traktowane przez układ pilota jako ponowne wciśnięcie przycisku pierwszego co warto mieć na uwadze. Nie zmienia to jednak faktu, że da się wykorzystać tą cechę pilotów i zastosować ją do zmiany głośności odtwarzanego utworu muzycznego poprzez wciśnięcie i przytrzymanie przycisku na tymże pilocie.

Komentarze