
Brian Curtis
0
5124
660
Ukryj to w swoim salonie i śmiej się, gdy pudełko TiVo jest pozornie opętane przez demona, który chce oglądać tandetne kanały zakupów. Niezależnie od tego, czy Twoim ostatecznym celem jest wyłączenie każdego telewizora w sąsiedztwie, czy zbudowanie uniwersalnego pilota sterowanego Siri, ten projekt stanowi świetny punkt wyjścia do poznania podstaw sterowania IR i odbiorników.
W tym “wybryk”, stworzymy urządzenie, które nagrywa, a następnie odtwarza serię zdalnych poleceń na podczerwień. Będzie działał z każdym urządzeniem korzystającym z pilota na podczerwień, a nawet z wieloma urządzeniami jednocześnie - nagrywanie do 10 naciśnięć klawiszy.
składniki
Oto lista rzeczy potrzebnych do tego projektu:
- Arduino i kable krosowe
- Odbiornik podczerwieni, taki jak TSOP382 - ale powinieneś być w stanie znaleźć kompatybilny w starej elektronice. Wyciągnąłem mój z zapasowego kontrolera oświetlenia RGB. Zazwyczaj mają 3 nogi i są czarne, z jednej strony wyglądającej jak dioda LED, która została przecięta na pół i przyczepiona. Jestem pewien, że jest na to słowo techniczne.
- Nadajnik podczerwieni LED, taki jak TIL38 - znowu, są one dość powszechne, ale kupiłem nowy wysokiej mocy Maplin; wyglądają identycznie jak każda inna dioda LED, więc nie pomieszaj ich w zestawie elektronicznym!
- Odpowiedni rezystor dla diody IR LED - użyj tego kalkulatora LED, biorąc pod uwagę napięcie zasilania (5 V z Arduino) oraz napięcie i prąd przewodzenia z arkusza danych LED (zwykle około 1,2 V @ 20 mA). W moim przypadku wyszło to jako 220 omów.
- Przycisk oraz 10k rozwijania i rezystorów 100 omów.
- Pobierz zdalną bibliotekę IR autorstwa Kena Shirriffa z Github i umieść ją w swoim Arduino / Biblioteki teczka. Użyjemy również przykładowego kodu, który powinien być dostępny z Arduino Otwórz -> Biblioteki menu.
Okablowanie
Rozwiąż ten obwód w trzech częściach - przełącznik jest trochę niespokojny, ale wszystko inne jest łatwe. Pamiętaj, że krótka noga diody LED z płaską powierzchnią jest katodą (ujemną lub uziemioną); długa noga jest anodą (dodatnia).
Odbieranie sygnałów
Śmiało i otwórz biblioteki / IRremote / IRrecvDemo przykładowy kod. Upewnij się, że RECV_Pin jest ustawiony poprawnie, skompiluj i prześlij, a następnie otwórz konsolę szeregową przy prędkości 9600 bodów. Chwyć dowolnego pilota, który masz pod ręką, skieruj go na odbiornik i zacznij naciskać przyciski. Różne przyciski wytwarzają różne kody; niektóre wskazują wtedy długie naciśnięcie z początkowym kodem FFFFFF, podczas gdy różne piloty mogą po prostu powtórzyć kod ponownie.
Aby uzyskać bardziej szczegółowy widok odbieranych danych, spójrz na IRrecvDump zamiast tego przykład, który wskaże zarówno rodzaj odbieranego sygnału (w tym przypadku 32-bitowy NEC), jak i surowe wartości. Dobrze wiedzieć, ale w większości przypadków po prostu chcesz odszyfrować wartości.
Powtarzanie sygnału
Nie będziemy dziś pisać od zera, więc śmiało i sprawdź IRrecord przykład. Złożoność kodu znacznie wzrasta tutaj, ale przede wszystkim chodzi o obsługę różnych rodzajów kodów IR - zasadniczo, oto co dzieje się wewnątrz pętli:
- Sprawdź, czy przycisk jest wciśnięty, ponownie odtworz zapisany sygnał i powtarzaj co 50 ms aż do naciśnięcia.
- Jeśli nie zostanie naciśnięty i wykryty zostanie sygnał, zapisz to.
Największym ograniczeniem tego przykładu jest to, że działa on tylko z jednym kodem na raz, więc jeśli naciśniesz inny przycisk zdalny, zastąpi on ostatni. Przycisk po prostu odtwarza ostatni otrzymany sygnał. Skompiluj i uruchom kod, aby móc wypróbować ten podstawowy repeater sygnału. Do odtwarzania pojedynczego sygnału działa dobrze, ale nie ma praktycznego zastosowania w dowcipie lub w inny sposób.
The Prank!
Zmodyfikujmy go nieznacznie, aby zarejestrować 10 lub więcej psotnych sygnałów. Możesz znaleźć w pełni zmodyfikowany kod tutaj, ale oto zarys zmian, które wprowadziłem na wypadek, gdybyś chciał spróbować go zaprogramować:
- Zdefiniuj 3 nowe tablice o rozmiarze 10 do przechowywania zestawu sygnałów za każdym razem, gdy zostanie wykryty, oraz liczbę całkowitą do przechowywania wielkości tych tablic.
- Przechowuj indeks tego, gdzie aktualnie jesteśmy w tej tablicy. Zwiększ indeks za każdym razem, gdy sygnał zostanie wykryty - ale nie zwiększaj, jeśli sygnał jest kodem powtarzającym się.
- Wartość logiczna, która przestaje być rejestrowana po osiągnięciu maksimum.
- Wartość logiczna wskazująca, czy jesteśmy w trybie odtwarzania, czy nie, zamiast przytrzymywać przycisk; zmodyfikował również logikę przycisku, aby to przełączyć.
Należy pamiętać, że wskaźnik LED na Arduino (styk 13) uaktywni się po zapełnieniu pamięci. W tej chwili musisz nagrać 10 naciśnięć przycisków - nie mniej - a tryb odtwarzania będzie czekał 1 sekundę między powtórkami każdego przycisku. Oto jest w akcji:
Możesz albo pobawić się żartami na podczerwień, albo uznać to za dobry początek w bardziej epickim projekcie automatyki domowej Przewodnik automatyki domowej z Raspberry Pi i Arduino Przewodnik automatyki domowej z Raspberry Pi i Arduino Rynek automatyki domowej jest zalany drogimi systemami konsumenckimi, niekompatybilne ze sobą i kosztowne w instalacji. Jeśli masz Raspberry Pi i Arduino, możesz w zasadzie osiągnąć to samo w…; i nie zapomnij sprawdzić wszystkich innych projektów Arduino. Podziel się swoimi dziełami (lub problemami) w komentarzach i okazuj wdzięczność za ten artykuł, udostępniając go w ulubionych sieciach społecznościowych!
Źródło zdjęcia: DaGoaty