Spisu treści:

Technologia dla dziadka: 13 kroków (ze zdjęciami)
Technologia dla dziadka: 13 kroków (ze zdjęciami)

Wideo: Technologia dla dziadka: 13 kroków (ze zdjęciami)

Wideo: Technologia dla dziadka: 13 kroków (ze zdjęciami)
Wideo: Ups. 2024, Listopad
Anonim
Image
Image

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

Druk 3D
Druk 3D

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

Druk 3D
Druk 3D
Druk 3D
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

Montaż - wyjmij diody LED
Montaż - wyjmij diody LED
Montaż - wyjmij diody LED
Montaż - wyjmij diody LED
Montaż - wyjmij diody LED
Montaż - wyjmij 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

Montaż - Dodaj nagłówki otworów przelotowych
Montaż - Dodaj nagłówki otworów przelotowych
Montaż - Dodaj nagłówki otworów przelotowych
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

Montaż - Dołącz diody LED
Montaż - Dołącz diody LED
Montaż - Dołącz diody LED
Montaż - Dołącz diody LED

Przyklej diody LED z boku obudowy.

Krok 7: Montaż - Dołącz PhidgetIR

Montaż - Dołącz PhidgetIR
Montaż - Dołącz PhidgetIR
Montaż - Dołącz PhidgetIR
Montaż - Dołącz PhidgetIR
Montaż - Dołącz PhidgetIR
Montaż - Dołącz PhidgetIR

Podłącz PhidgetIR do obudowy i podłącz diody LED.

Krok 8: Montaż - dodawanie przycisków

Montaż - dodawanie przycisków
Montaż - dodawanie przycisków
Montaż - dodawanie przycisków
Montaż - dodawanie przycisków
Montaż - dodawanie przycisków
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

Montaż - Składanie wszystkiego razem
Montaż - Składanie wszystkiego razem
Montaż - Składanie wszystkiego razem
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

Oprogramowanie - Polecenia CIR
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!

Konkurs na zdalne sterowanie 2017
Konkurs na zdalne sterowanie 2017
Konkurs na zdalne sterowanie 2017
Konkurs na zdalne sterowanie 2017

III nagroda w Konkursie Pilotów 2017

Zalecana: