Wykorzystanie pilotów na podczerwień do sterowania komputerami i elektroniką
Piloty do telewizorów i podobnych urządzeń używają diody emitującej światło podczerwone. Odbiornik w telewizorze otrzymuje sygnał i wykonuje określoną czynność. Cała komunikacja to nie tylko świecenie się diody LED, lecz sygnał modulowany - światło pulsuje (PWM) z określoną częstotliwością (zazwyczaj 38KHz). Odbiornik wykrywa tą modulację i dekoduje sygnał w niej zawarty (tj. który przycisk wciśnięto).
Piloty i odbiorniki podczerwone można wykorzystać w projektach z mikrokontrolerami, czy komputerami. Możemy wykorzystać sygnały do zaprogramowania określonych czynności - czy to na naszym komputerze, czy na np. robocie. W tym artykule zaprezentuję zestaw nadajnika i odbiornika działającego z PyMCU.
Nadajniki i odbiorniki
Piloty mogą wykorzystywać różne formaty kodowania sygnału. PyMCU obsługuje tylko format Sony SIRC, który stosowany jest głównie przez piloty Sony. Arduino, czy i inne mikrokontrolery mają biblioteki obsługujące także inne formaty. Na potrzeby pyMCU potrzebować będziemy pilot do np. telewizora Sony. Ja kupiłem najtańszy z zamienników za kilka złotych - PIL0112.
Do odbierania sygnałów będziemy potrzebować odbiornik podczerwieni. Za kilka, kilkanaście złotych możemy kupić samą diodę z wbudowanym demodulatorem, albo diodę zamontowaną na małej płytce PCB z wyprowadzonymi pinami GND, VCC i sygnału. Bez problemu znajdziemy coś w sklepach z elektroniką tego typu dla hobbystów. Ja użyłem płytki Keyes KY-022.
Odbieranie sygnałów z pyMCU
PyMCU ma gotową metodę do odczytywania zdekodowanych sygnałów z pilota - irDecode:
import pymcu
mb = pymcu.mcuModule()
mb.digitalState(1, 'input')
while True:
ir = mb.irDecode(1)
if ir != 255:
print ir
Ustawiamy pin cyfrowy D1 w tryb odczytu, a następnie w pętli odczytujemy jego wartość. 255 to wartość tła gdy żaden sygnał nie jest odbierany. Po wciśnięciu jakiegoś przycisku na pilocie wypisana zostanie jego numeryczne zdekodowana wartość. Mając mapę wartości dla każdego przycisku można je zmapować na określone akcje wedle potrzeb. Trzeba też uwzględnić efekty takie jak ciągłe odbieranie danego sygnału gdy przez dłuższy czas trzymamy wciśnięty dany przycisk.
Comment article