Spisu treści:
- Krok 1: Części
- Krok 2: Układ scalony multipleksera (74HC4051N)
- Krok 3: Układ tabliczki chlebowej
- Krok 4: Odbieranie sygnałów
- Krok 5: Kod do odbierania sygnałów
- Krok 6: Schemat PCB
- Krok 7: Projekt PCB
- Krok 8: Składanie wszystkiego razem
- Krok 9: Składanie rękawicy
- Krok 10: Programowanie poleceń
- Krok 11: Zrobione
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Witam wszystkich i zapraszamy do tego projektu! Jestem dość leniwą osobą, a koszmarem leniwej osoby jest oglądanie telewizji, gdy zdajesz sobie sprawę, że pilot jest za daleko! Zdałem sobie sprawę, że mój pilot nigdy nie będzie za daleko, jeśli będę miał go cały czas pod ręką. To zainspirowało mnie do stworzenia LAZr, uniwersalnego pilota sterowanego gestem.
W tym projekcie będę tworzyć rękawicę wyposażoną w czujniki, które są w stanie wykrywać gesty dłoni i mogą wysyłać sygnały do telewizora lub innego urządzenia za pomocą prostego ruchu palca.
Mam nadzieję, że spodobał się Wam ten projekt i zagłosujecie na niego w konkursie Epilog Laser!
Krok 1: Części
Ten projekt składa się z następujących części:
Rękawiczka (5,00 USD)
Węzeł-MCU / ESP8266 (3,00 USD)
To jest mikrokontroler i mózg tego projektu. Posiada możliwość łączenia się z Wi-Fi, co czyni go bardzo przydatnym w aplikacjach automatyki domowej oraz w projektach takich jak ten, ponieważ sterowanie Wi-Fi może być zaimplementowane w tym projekcie.
5 czujników Flex (7,00 USD każdy)
Czujniki te mierzą zginanie, podobnie jak LDR (Light Dependent Resistor), mierzą poziomy światła. Służą do pomiaru zginania palców i gestów rąk.
Nadajnik podczerwieni (0,30 USD)
Ten komponent przesyła sygnały IR do urządzeń takich jak telewizory, odtwarzacze DVD itp.
Odbiornik IR (1,00 USD)
Ten komponent odbiera sygnały IR wysyłane przez piloty. Jest potrzebny do dekodowania sygnałów z pilotów. Sygnały te można następnie wykorzystać do sterowania urządzeniem z rękawicy. Polecam TSOP4838, ponieważ z powodzeniem przetestowałem go z telewizorami Sharp, Samsung i Apple.
5 rezystorów 10k Ohm (każdy po 0,01 USD)
Rezystory te są potrzebne dla każdego czujnika Flex.
Rezystor 220 Ohm (0,01 USD każdy)
Rezystory te są potrzebne dla każdego czujnika Flex.
Tranzystor (0,39 USD)
Tranzystor służy do transmisji IR.
Układ scalony multipleksera 74HC4051N (0,22 USD)
Ponieważ Node-MCU ma tylko jeden port analogowy, ten układ scalony służy do „rozdzielenia” pinu analogowego na kilka, które są połączone z czujnikami flex. Więcej o tym później.
Mnóstwo kabli rozruchowych! (Jeśli zdecydujesz się użyć płytki do krojenia chleba)
Poniższe części są opcjonalne, ale są pomocne, jeśli są używane:
16-stykowe gniazdo IC
Żeńskie nagłówki
Krok 2: Układ scalony multipleksera (74HC4051N)
Chociaż Node-MCU jest wyposażony w doskonałe funkcje, takie jak kompatybilność z Wi-Fi i Arduino IDE, ma swoje wady. Ma tylko jeden pin analogowy, co jest niewystarczające do tego projektu. Ponieważ rękawica ma pięć czujników zginania, do działania wymaga pięciu wejść analogowych. Prostym i niedrogim rozwiązaniem tego problemu jest zastosowanie układu scalonego multipleksera (74HC4051N). Ten układ scalony jest w stanie zamienić jedno wejście analogowe na osiem!
Jak to działa?
Układ scalony działa poprzez włączenie jednego wejścia analogowego, odczytanie go i wyłączenie. Następnie włącza następne wejście analogowe. W ten sposób odczytuje tylko jeden czujnik na raz, wysyłając go do pinu analogowego mikrokontrolera. Układ scalony jest w stanie włączać, odczytywać i wyłączać wejścia analogowe tak szybko, że wydaje się, że odczytuje je wszystkie jednocześnie. Jest to podobne do działania ekranów komputerów i smartfonów; Każdy piksel nie może mieć przypisanej pinezki (to byłaby katastrofa!), więc tak szybko włącza i wyłącza piksele, że nasze oczy odbierają je wszystkie jako włączone w tym samym czasie. Aby funkcjonować, układ scalony potrzebuje trzech cyfrowych pinów. Zmieniając kombinacje stanów włączenia i wyłączenia pinów, układ scalony jest w stanie włączać i wyłączać wszystkie 8 wejść analogowych.
Krok 3: Układ tabliczki chlebowej
Układ urządzenia pokazano na powyższym obrazku.
WAŻNE: Zwróć uwagę na rodzaj używanego tranzystora, styk kolektora tranzystora powinien łączyć się z diodą podczerwieni, a nie stykiem GND.
Krok 4: Odbieranie sygnałów
Aby rękawica znała prawidłowy sygnał do wysłania, sygnały muszą być odbierane z pilota telewizora/urządzeń i zaprogramowane w kodzie rękawicy. Do odbioru tych sygnałów niezbędny jest odbiornik podczerwieni.
Uwaga: spójrz na numer modelu pilota do telewizora i spróbuj znaleźć specyfikację sygnału w Internecie. Niektóre odbiorniki i nadajniki podczerwieni nie będą współpracować z niektórymi pilotami, dlatego ważne jest, aby znaleźć nadajnik/odbiornik o częstotliwości odpowiadającej Twojemu telewizorowi. Używam odbiornika podczerwieni 4838, który współpracuje z moim pilotem do telewizora Samsung.
Krok 5: Kod do odbierania sygnałów
Aby użyć kodu należy pobrać bibliotekę IRremoteESP8266. Link do pobrania znajduje się poniżej:
IRpilotESP8266
W Arduino IDE przejdź do Szkic> Dołącz bibliotekę> Dodaj bibliotekę. ZIP. Znajdź dwie pobrane biblioteki i dodaj je do IDE. Aby uzyskać dostęp do kodu w celu odbierania sygnałów IR, przejdź do Plik > Przykłady > IRremoteESP8266 > IRrecvDumpV2. W kodzie zmień wartość kRecvPin z 14 na 5. Zapewnia to, że Node-MCU odczytuje prawidłowy pin (D1).
Po okablowaniu połączeń płytki stykowej prześlij ten kod do swojego Node-MCU i otwórz monitor szeregowy (ustaw szybkość transmisji na 115200). Jeśli naciśniesz przycisk na pilocie telewizora, sygnały zostaną wydrukowane na monitorze szeregowym. Powodzenie!
Zobaczysz długi zestaw liczb o wartości rawData. Zapisz te liczby i pamiętaj, aby zapisać przycisk, który nacisnąłeś, aby uzyskać te liczby. Będziesz ich potrzebować później.
Krok 6: Schemat PCB
Schemat PCB został utworzony w Autodesk Eagle i jest pokazany na powyższym obrazku. Wszystkie pliki Eagle znajdują się w tej instrukcji i można je pobrać w następnym kroku.
Krok 7: Projekt PCB
Oto mój projekt PCB. Wszystkie pliki Eagle dla tej płytki drukowanej znajdują się poniżej, więc możesz użyć lub zmodyfikować ten projekt, aby zbudować własną płytkę drukowaną! Dodałem pady SMD na dodatkowe 3 wejścia analogowe oraz port 3V3 i GND. Pozwoli mi to rozszerzyć ten system, jeśli kiedykolwiek będę tego potrzebował, oszczędzając zasoby i czas oraz zwiększając uniwersalność PCB.
Krok 8: Składanie wszystkiego razem
Po kilku dniach oczekiwania w końcu dostałem swoje PCB pocztą. Teraz nadszedł czas na zabawną część, lutowanie wszystkiego razem! Postępując zgodnie ze schematem, lutowanie PCB było dość łatwe. W moim projekcie użyłem gniazda IC i żeńskich nagłówków dla mojego multipleksera IC i Node-MCU. Dzięki temu jestem w stanie usunąć te chipy, jeśli muszę je wymienić lub ponownie wykorzystać. Jeśli chcesz smuklejszej obudowy, możesz przylutować chipy bezpośrednio do płytki, ale pamiętaj, że później będzie dość trudno je usunąć.
Krok 9: Składanie rękawicy
Aby zainstalować czujniki flexu w rękawicy, wkleiłem małe gumowe rurki w palce rękawicy i umieściłem w nich czujniki. W ten sposób czujniki miały trochę miejsca na ruchy i można je było w razie potrzeby usunąć. Aby utrzymać płytkę PCB, przymocowałem ją do rękawicy za pomocą taśmy rzepowej. Po raz kolejny wszystko zależy od Ciebie. Możesz być kreatywny!
Krok 10: Programowanie poleceń
Teraz, gdy już zajęto się sprzętem, czas na oprogramowanie. Do swojej rękawicy pobierz poniższy kod.
Aby kod działał z telewizorem, musisz zmienić niektóre cyfry. Pamiętasz te liczby, które zapisałeś? Teraz nadszedł czas, aby ich użyć. Jeśli nie masz numerów, nie martw się, bardzo łatwo jest je zebrać; Po prostu wróć do kroku Odbieranie podczerwieni. Skopiuj zbiór danych rawData i wklej go pod komentarzem „PASTE DATA HERE” w kodzie. Zmień nazwę tego zbioru danych na powerOn. Skopiuj numer obok powerOn (w moim przypadku 95). Ta liczba to liczba liczb w zbiorze danych. Teraz przejdź na sam dół kodu, pod komentarzem „WYŚWIETL MOC”. Zastąp „95” skopiowaną wartością. Teraz prześlij swój kod do Node-MCU i załóż rękawicę. Jeśli zwrócisz rękę do telewizora i zginiesz jeden palec, telewizor się włączy!
Można to łatwo dostosować. Aby dodać więcej funkcji, po prostu dodaj więcej zestawów danych, skopiuj i wklej funkcję DISPLAY POWER i zmień jej informacje na odpowiedni zestaw danych i liczbę wartości. Ponieważ każdy czujnik zgięcia jest inny, być może trzeba będzie zmienić numer „310”, aby rejestrował, gdy palec jest złożony. Możesz nawet wykonywać gesty wieloma palcami i „główne przełączniki”. Na przykład dostosowałem kod tak, że kiedy zginam palec serdeczny i kciuk, głośność mojego telewizora jest wyciszana, a źródło zmienia się. Możliwości rozbudowy są nieograniczone!
Krok 11: Zrobione
Masz to, uniwersalny pilot do telewizora sterowany gestami! Mam nadzieję, że podobał Ci się ten projekt i mam nadzieję, że zagłosujesz na mnie w konkursie Epilog Laser. Jeśli masz jakieś pytania, napisz komentarz, a postaram się na nie odpowiedzieć. Jeszcze raz mam nadzieję, że Ci się podobało!