Spisu treści:
- Krok 1: Materiały
- Krok 2: Planowanie
- Krok 3: Druk 3D
- Krok 4: Montaż - Usuń diody LED
- Krok 5: Montaż - Dodaj nagłówki otworów przelotowych
- Krok 6: Montaż - Podłącz diody LED
- Krok 7: Montaż - Dołącz PhidgetIR
- Krok 8: Montaż - dodawanie przycisków
- Krok 9: Montaż - składanie wszystkiego razem
- Krok 10: Oprogramowanie - kod
- Krok 11: Oprogramowanie - polecenia CIR
- Krok 12: Uruchamianie programu
- Krok 13: Wynik
Wideo: Technologia dla dziadka: 13 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
Ile razy byłeś w domu dziadków, aby pomóc z „problemem technologicznym”, który zakończył się odłączeniem kabla zasilającego, rozładowaną baterią pilota lub niemożnością przełączenia źródła w telewizorze? Wiem, że u mnie zdarza się to dość często. Chociaż większość ich problemów można rozwiązać, po prostu biegnąc do sklepu po kilka nowych AA, czasami mogą skorzystać z bardziej spersonalizowanego rozwiązania.
Na przykład dziadek mojej dziewczyny dostał nowy telewizor i próbowaliśmy nauczyć go, jak zmienić źródło, aby mógł przełączać się między DVD a telewizorem – ale po prostu nie mógł tego rozgryźć. Ma też do czynienia z słabnącym wzrokiem i nie jest zbyt zainteresowany próbami zapamiętania skomplikowanych procesów, po prostu chce oglądać swoje programy, kiedy chce. Po próbach spokojnego wyjaśnienia kroków podczas naszej ostatniej wizyty bez większego powodzenia, zdecydowałem, że zrobię mu po prostu jego własny, prosty, dwuprzyciskowy pilot. To pozwoliłoby mu bezboleśnie zmieniać źródło sygnału wejściowego w telewizorze, z łatwością przełączając się między ukochanymi płytami DVD Matlock i Price is Right.
Krok 1: Materiały
- PhidgetIR
- PhidgetSBC4 (lub dowolny komputer jednopłytkowy, taki jak Raspberry Pi)
- Lutownica
- Noże boczne
- Narzędzia do ściągania izolacji
- Przewody połączeniowe
- Kabel USB
- Kabel Phidget
- Załącznik
- Nagłówki przelotowe
- Rurki termokurczliwe
Krok 2: Planowanie
Aby stworzyć pilota, potrzebowałem możliwości wysyłania poleceń na podczerwień konsumencką (CIR) do telewizora. Zdecydowałem się użyć do tego zadania PhigetIR. PhidgetIR to urządzenie sterowane przez USB, które może zarówno wysyłać, jak i odbierać polecenia CIR. Wybrałem to z kilku powodów:
- Chciałem jak najszybciej ukończyć ten projekt i oddać go do użytku, więc myśl o wyłamaniu mojego oscyloskopu i płytki stykowej nie była pociągająca. Ponadto, jakie jest prawdopodobieństwo, że moje ręcznie lutowane obwody będą nadal działać za rok lub dwa?
- PhidgetIR ma możliwość „uczenia się” poleceń CIR, dzięki czemu programowanie jest niezwykle proste.
- Z PhidgetIR możesz używać prawie każdego głównego języka programowania. Oznaczało to, że mogłem korzystać z Javy i szybko kończyć pracę.
- Wreszcie pracuję dla Phidgets, więc czuję się komfortowo z API i zawsze są wolne urządzenia.
Ponieważ wybrałem PhidgetIR, potrzebowałem komputera, aby go uruchomić. Chciałem, aby ten projekt był samodzielną aplikacją, podobnie jak normalny pilot, więc komputer stacjonarny lub laptop nie działał. Zdecydowałem się na użycie PhidgetSBC4 (komputer jednopłytkowy z systemem Debian Linux), ponieważ pozwalał mi on na łączenie się z obydwoma przyciskami bez dodatkowego sprzętu. Można je po prostu podłączyć bezpośrednio do wbudowanego koncentratora VINT. Uwaga: możesz również użyć Raspberry Pi do tego projektu. W końcu, poza funkcjonalnością, chciałem, aby ten projekt wyglądał świetnie, więc zdecydowałem, że potrzebna będzie obudowa drukowana w 3D.
Krok 3: Druk 3D
W tym projekcie do modelowania obudowy wykorzystano Geomagic. Dostępne są pliki kroków 3D zarówno dla PhidgetIR, jak i PhidgetSBC4, co uprościło proces. Na tym etapie podjęto pewne decyzje dotyczące wielkości i funkcjonalności obudowy:
- PhidgetIR ma dwie diody podczerwieni, które muszą być skierowane w stronę telewizora, aby wysyłać polecenia. Zamiast projektować obudowę wokół płytki PhidgetIR, diody podczerwieni można wylutować i wkleić w otwory z boku obudowy. Płytkę PhidgetIR można następnie zamontować z dala od diod LED, wykorzystując pustą przestrzeń.
- Złącza VINT Hub w PhidgetSBC4 można wygiąć w górę, co nadal umożliwiałoby dostęp do połączeń przycisków, a także zapobiegałoby konieczności tworzenia większej obudowy.
Zdecydowałem się również dodać etykietę do przycisków i etykietę wskazującą kierunek, w którym powinny być skierowane, aby diody podczerwieni były skierowane we właściwym kierunku. Wydrukowałem obudowę lokalnie z czarnego plastiku ABS.
Krok 4: Montaż - Usuń diody LED
Diody IR zostaną ostatecznie wklejone w otwory z boku obudowy. Oznacza to, że najpierw trzeba je wylutować.
Krok 5: Montaż - Dodaj nagłówki otworów przelotowych
Następnie w miejscach, w których kiedyś znajdowały się diody LED, dodano przelotki, co ułatwiło ich podłączenie za pomocą 4-pinowego przewodu połączeniowego. Użyj rurki termokurczliwej, aby zapobiec przypadkowemu kontaktowi.
Krok 6: Montaż - Podłącz diody LED
Przyklej diody LED z boku obudowy.
Krok 7: Montaż - Dołącz PhidgetIR
Podłącz PhidgetIR do obudowy i podłącz diody LED.
Krok 8: Montaż - dodawanie przycisków
Przyciski muszą być podłączone do wbudowanego koncentratora VINT w PhidgetSBC, więc przeciąłem kabel Phidget na pół i przylutowałem końce do przycisków. Zwróć uwagę, że wymagany jest tylko biały przewód (sygnał) i czarny (masa).
Krok 9: Montaż - składanie wszystkiego razem
Wymagane było pewne uporządkowanie kabli, aby wszystko połączyć, jednak obudowa działała dobrze.
Krok 10: Oprogramowanie - kod
Do tego projektu wymagany jest tylko jeden plik Java, który można znaleźć tutaj. Program używa jednego obiektu PhidgetIR i dwóch obiektów DigitalInput. Możesz tworzyć te obiekty w ten sposób:
PhidgetIR ir =nowy PhidgetIR();
DigitalInput tvButton =new DigitalInput(); DigitalInput otherButton=new DigitalInput();
Obiekty wejścia cyfrowego są mapowane na fizyczny przycisk na koncentratorze VINT. Zdarzenia dołączania, odłączania, błędu i zmiany stanu są również subskrybowane:
tv.setIsHubPortDevice(prawda);
tvButton.setHubPort(4); tvButton.addAttachListener(onAttachListener); tvButton.addDetachListener(onDetachListener); tvButton.addErrorListener(onErrorListener); tvButton.addStateChangeListener(onStateChangeListener); tvButton.otwórz(); otherButton.setIsHubPortDevice(prawda); innyButton.setHubPort(5); otherButton.addAttachListener(onAttachListener); otherButton.addDetachListener(onDetachListener); otherButton.addErrorListener(onErrorListener); otherButton.addStateChangeListener(onStateChangeListener); innyPrzycisk.otwórz();
Odbiornik zmiany stanu, o którym mowa powyżej, wygląda tak:
privatestatic DigitalInputStateChangeListener onStateChangeListener =nowy DigitalInputStateChangeListener(){@OverridepublicvoidonStateChange(DigitalInputStateChangeEvent disce){
DigitalInput ch =(DigitalInput) disce.getSource();try{if(ch.getHubPort()==4&& disce.getState()==true){ tvButtonActivated =true;}if(ch.getHubPort()==5&& disce.getState()==true){ otherButtonActivated =true;}}catch(PhidgetException ex){ System.out.println("Błąd: "+ ex.getDescription());}}};
Gdy przycisk jest aktywowany, kod zdarzenia zostanie wykonany i ustawi flagę. Te flagi będą przywoływane i resetowane w pętli głównej. Główna pętla po prostu czeka na zmianę stanu przycisku, a następnie wysyła polecenia IR za pomocą funkcji transmisji dostępnej z API PhidgetIR.
while(true){if(tvButtonActivated){
tvButtonActivated =fałsz; Log.log(LogLevel. INFO, "ZMIANA ŹRÓDŁA - TV"); ir.transmit(sourceButtonString, codeInfo); Wątek.sen(500); ir.transmit(rightButtonString, codeInfo); Wątek.sen(500); ir.transmit(enterButtonString, codeInfo);}if(otherButtonActivated){ otherButtonActivated =false; Log.log(LogLevel. INFO, "ZMIANA ŹRÓDŁA - DVD"); ir.transmit(sourceButtonString, codeInfo); Wątek.sen(500); ir.transmit(leftButtonString, codeInfo); Wątek.sen(500); ir.transmit(enterButtonString, codeInfo);} Thread.sleep(250);}
Krok 11: Oprogramowanie - polecenia CIR
Oto przykład tworzenia polecenia (w tym przypadku polecenia zwiększania głośności):
//Kod IR
IRCodeInfo sourceButtonCI = new IRCodeInfo(); String volumeUp ="77e1d0f0";//Ustaw przycisk źródłowy sourceButtonCI.bitCount=32; sourceButtonCI.encoding= IRCodeEncoding. SPACE; sourceButtonCI.gap=108921; sourceButtonCI.trail=549; sourceButtonCI.zero=newint[2]; sourceButtonCI.zero[0]=549; sourceButtonCI.zero[1]=627; sourceButtonCI.one=newint[2]; sourceButtonCI.one[0]=549; sourceButtonCI.one[1]=1755; sourceButtonCI.header=newint[2]; sourceButtonCI.header[0]=9084; sourceButtonCI.header[1]=4600; sourceButtonCI.repeat=newint[3]; sourceButtonCI.repeat[0]=9084; sourceButtonCI.repeat[1]=2308; sourceButtonCI.repeat[2]=549; sourceButtonCI.length= IRCodeLength. CONSTANT;
Aby uzyskać informacje o tym poleceniu, po prostu użyłem przykładu PhidgetIR, który jest dostarczany z bibliotekami Phidget. Po skierowaniu pilota w stronę PhidgetIR i przytrzymaniu przycisku zwiększania głośności, IR „uczy się” kodu i wypełnia przykład. Te informacje można następnie po prostu skopiować do kodu.
Krok 12: Uruchamianie programu
Plik Java można zapisać i skompilować na zewnętrznym komputerze. Umieść PhidgetRemote.java i phidget22.jar w tym samym folderze i uruchom następujące polecenie:
Windowsjavac -ścieżka klasy.;phidget22.jar PhidgetRemote.java
macOS/Linuxjavac -classpath.:phidget22.jar PhidgetRemote.java
Po kompilacji skopiuj wygenerowane pliki klas do PhidgetSBC4 i skonfiguruj je do uruchamiania podczas rozruchu.
Krok 13: Wynik
Kiedy dałem pilota dziadkowi mojej dziewczyny i pokazałem mu, jak go używać, był zdumiony, jakie to proste. Obejrzyj wideo, aby zobaczyć to w akcji!
III nagroda w Konkursie Pilotów 2017
Zalecana:
Living Pixels - wyobraź sobie, że technologia ma życie: 4 kroki (ze zdjęciami)
Living Pixels - Wyobraź sobie, że technologia ma życie: Widząc, że inteligentne produkty domowe są coraz bardziej powszechne w naszym życiu, zacząłem myśleć o relacji między ludźmi a tymi produktami. Jeśli pewnego dnia produkty smart home staną się nieodzowną częścią życia każdego człowieka, jakie postawy powinniśmy przyjąć
Coco-Mic --- DIY Studio Quailty USB Mic (technologia MEMS): 18 kroków (ze zdjęciami)
Coco-Mic --- Mikrofon USB DIY Studio Quailty (technologia MEMS): Witaj Instructabler's, Sahas tutaj. Czy chcesz nagrywać swoje pliki audio jak profesjonalista? Pewnie chciałbyś… Cóż… w zasadzie wszyscy to uwielbiają. Dziś spełnią się Twoje życzenia. Prezentowany jest tutaj Coco-Mic - który nie tylko nagrywa jakość
D4E1 - DIY - Technologia wspomagająca: Regulowana półka na wózek inwalidzki: 7 kroków (ze zdjęciami)
D4E1 – Zrób to sam – Technologia wspomagająca: Regulowana taca na wózek inwalidzki: Kjell ma wrodzoną niepełnosprawność: dyskinetyczny porażenie czworogłowe i nie jest w stanie samodzielnie jeść. Potrzebuje pomocy monitora, terapeuty zajęciowego, który go karmi. Wiąże się to z dwoma problemami: 1) Terapeuta zajęciowy stoi za kierownicą
10 alternatyw dla majsterkowiczów dla gotowych komponentów elektronicznych: 11 kroków (ze zdjęciami)
10 alternatyw dla majsterkowiczów dla gotowych komponentów elektronicznych: witam w moim pierwszym instruktażu! Czy uważasz, że niektóre części od sprzedawców internetowych są zbyt drogie lub niskiej jakości? Potrzebujesz szybko przygotować i uruchomić prototyp i nie mogę się doczekać tygodni na wysyłkę? Brak lokalnych dystrybutorów elektroniki?
D4E1 - Zrób to sam - Technologia wspomagająca: „Pomoc na skalę 2018”: 7 kroków
D4E1 - DIY - Technologia wspomagająca: „Scale Aid 2018”: Veronique to 36-letnia kobieta zatrudniona w „Het Ganzenhof”; z powodu jej wrodzonego zespołu (Rubinstein-Taybi). Tutaj podejmuje się zadania pomocy w realizacji przepisów poprzez ważenie ilości. Ten proces zawsze był wykonywany