Krok 1: Zebranie potrzebnych elementów.
Potrzebować będziemy:
* Zabawkowego pistoletu, kontrolera z konsoli lub podobnego elementu na obudowę.
* Nadajnik na 433 MHz do instalacji w pistolecie (odbiornik znajduje się we włączniku światła).
* Mikrokontroler ATtiny, który wbudujemy w nasz pistolet. Autor wykorzystał ATtiny85V-10PU, ale da się tutaj wykorzystać dowolny mikrokontroler, jaki chcemy. Koniecznie musimy mieć do niego programator(!).
* Baterię 3 V z wyprowadzeniami do lutowania.
* Kabelki do połączenia elementów.
Krok 2: Sprawdzenie co nadaje pilot.
Podłączamy nadajnik i odbiornik do modułu Arduino UNO - rozkład wyprowadzeń tych modułów pokazany jest na powyższym zdjęciu. Większość pinów podłączamy do zasilania (5 V) lub masy (GND). Nie potrzebujemy też podłączać zewnętrznej anteny, gdyż transmitować będziemy na bardzo niewielkie odległości. Nie interesuje nas wyjście liniowe etc., więc jedyne, co podpinamy to pin Data Out odbiornika do D2, a Data In nadajnika do D11 w module Arduino UNO.
Kontrolowanie tych modułów z poziomu Arduino to nic nowego - istnieją nawet biblioteki do obsługi tego rodzaju elementów. Jedną z nich jest biblioteka RemoteSwitch dedykowana do obsługi zdalnie sterowanych wyłączników światła itp. Wykorzystanie jej oszczędza sporo pracy. Wystarczy przekopiować ją do folderu 'libraries' i po resecie IDE można korzystać z niej w naszym Arduino.
Autor wykorzystał przykładowy szkic zawarty w bibliotece pod nazwą ’ShowReceivedCode’. Przesyła on poprzez port szeregowy informacje o przesłanych danych, co pozwala nam zidentyfikować co przesyła oryginalny pilot do lampy. W przypadku tego konkretnego urządzenia system podał informacje: “Code: 456789, period duration: 320us”. Tak czas trwania, jak i sam kod są dla nas ważnymi informacjami - zapiszmy je.
Teraz, aby przetestować nadajnik, wykorzystamy inny szkic - ‘Retransmitter’, który przekazuje do nadajnika odebrany kod po opóźnieniu go o pięć sekund. Zatem aby przetestować działanie nadajnika, wystarczy z pilota szybko włączyć i wyłączyć światło - układ zapamięta pierwszą komendę i po pięciu sekundach ją nada, wyłączając światło (jeśli wszystko poprawnie działa).
Krok 3: Przygotuj pistolet-obudowę.
Pistolet od konsoli rozkręcamy z pomocą śrubokręta i usuwamy ze środka wszystko, co nie będzie nam potrzebne, tak, że zostaje w zasadzie tylko spust z przełącznikiem. Zostawiamy także ciężarek w rękojeści - cięższy pistolet lepiej leży w dłoni.
Kabelki od przełącznika można wymienić na dłuższe lub po prostu przedłużyć, jeśli są za krótkie i nie sięgają do reszty naszej elektroniki.
Krok 4: Podłączenie i programowanie ATtiny.
W pierwszym momencie autor chciał napisać bardziej złożony program, w którym mikrokontroler znajduje się w stanie uśpienia, z którego wybudzany jest po pociągnięciu za spust. Rozwiązanie to poprawnie działało, ale w momencie gdy okazało się, że wysłanie komendy poprzez interfejs bezprzewodowy to mniej niż 250 milisekund, to system taki okazał się zupełnie niepotrzebny. Wystarczyło poprowadzić przez spust zasilania tak, że układ zostaje załączony po naciśnięciu spustu i rozłączony, gdy go puścimy; czas ten wystarczy do uruchomienia mikrokontrolera i wysłania komendy. Jednocześnie, dzięki takiemu połączeniu, podczas gdy pilot nie jest używany, w ogóle nie pobiera prądu z baterii.
Program do pilota jest bardzo prosty. Jedyne co robi, to w momencie uruchomienia wysyła komendę - dokładnie taką, jak podsłuchaliśmy wcześniej - do lampy i czeka na wyłączenie w nieskończonej pętli. Program zaprezentowany jest poniżej:
funkcja sendCode przyjmuje następujące argumenty (po kolei):
* Pin wyjściowy.
* Kod wiadomości
* Czas trwania w mikrosekundach
* Liczba powtórzeń.
Krok 5: Złożenie układu w całość.
Montaż pokazany powyżej pozostawia wiele do życzenia - wszystkie kable są identyczne i polutowane bezpośrednio do nóżek mikrokontrolera. Powinno użyć się goldpinów i kabli w różnych kolorach, ułatwiających identyfikację, co znacznie pomaga w uruchomieniu systemu, ale dla tak małego projektu takie podejście w zasadzie nie ma sensu.
Wszystkie elementy zostały finalnie umocowane wewnątrz pistoletu z pomocą kleju na ciepło. Po przetestowaniu układu możemy zamknąć obudowę i cieszyć się nowym gadżetem.
Podsumowanie i plany na przyszłość
Opisane powyżej urządzenie działa bardzo sprawnie, nie czuć żadnych opóźnień, a spustu nie trzeba trzymać zauważalnie dłużej, by włączyć lub wyłączyć lampę. Nawet jeśli często z korzystamy z tego pilota, to bateria bez problemu popracuje kilka lat - tak nadajnik jak i ATtiny mogą pracować z napięciem zasilania poniżej 2 V.
Jeśli chodzi o plany na rozwój układu, to autor ma kilka pomysłów:
* Umieszczenie ATtiny w podstawce, aby móc go przeprogramowywać albo dodanie gniazda programowania, do którego można dostać się bez otwierania obudowy.
* Dodanie lasera lub światełka w lufie - zwiększy to niestety tempo rozładowywania baterii.
* Dodanie efektów dźwiękowych - to także zwiększy pobór prądu, ale będzie doskonale się prezentować!
Źródło: http://www.instructables.com/id/Shoot-the-Lights-With-a-NES-Zapper-RF-433MHz/
Fajne!