Inhaltsverzeichnis:

Technik für deinen Opa - Gunook
Technik für deinen Opa - Gunook

Video: Technik für deinen Opa - Gunook

Video: Technik für deinen Opa - Gunook
Video: Eigener Opa sein ist der neue flex 2024, November
Anonim
Image
Image

Wie oft sind Sie schon zu Ihren Großeltern gegangen, um bei einem „Technologieproblem“zu helfen, bei dem es sich um ein nicht angeschlossenes Stromkabel, eine leere Batterie der Fernbedienung oder um das Umschalten der Quelle am Fernseher handelte? Ich weiß, dass das bei mir ziemlich oft vorkommt. Während die meisten ihrer Probleme gelöst werden können, indem sie einfach zum Laden für einige neue AAs laufen, könnten sie manchmal von einer individuelleren Lösung profitieren.

Zum Beispiel hat der Großvater meiner Freundin einen neuen Fernseher bekommen und wir haben versucht, ihm beizubringen, wie man die Quelle wechselt, damit er zwischen DVDs und TV wechseln kann - aber er hat es einfach nicht verstanden. Er hat auch mit nachlassendem Sehvermögen zu kämpfen und ist nicht daran interessiert, sich an komplizierte Prozesse zu erinnern, er möchte nur seine Shows sehen, wenn er will. Nachdem ich bei unserem letzten Besuch erfolglos versucht hatte, die Schritte ruhig zu erklären, beschloss ich, ihm einfach seine eigene einfache Zwei-Tasten-Fernbedienung zu machen. Dies würde es ihm ermöglichen, die Eingangsquelle seines Fernsehers schmerzlos zu ändern und problemlos zwischen seinen geliebten Matlock-DVDs und Price is Right zu wechseln.

Schritt 1: Materialien

  • PhidgetIR
  • PhidgetSBC4 (oder jeder Einplatinencomputer wie der Raspberry Pi)
  • Lötkolben
  • Seitenschneider
  • Abisolierzangen
  • Überbrückungsdrähte
  • USB-Kabel
  • Phidget-Kabel
  • Gehege
  • Durchsteckleisten
  • Schrumpfschlauch

Schritt 2: Planung

3D-Druck
3D-Druck

Um die Fernbedienung zu erstellen, benötigte ich die Möglichkeit, Consumer-Infrarot-Befehle (CIR) an den Fernseher zu senden. Ich beschloss, das PhigetIR für diese Aufgabe zu verwenden. Das PhidgetIR ist ein USB-gesteuertes Gerät, das CIR-Befehle sowohl senden als auch empfangen kann. Ich habe mich aus mehreren Gründen für dieses entschieden:

  • Ich wollte dieses Projekt so schnell wie möglich beenden und nutzen, daher war der Gedanke, mein Oszilloskop und Steckbrett auszubrechen, nicht ansprechend. Wie wahrscheinlich ist es außerdem, dass meine handgelöteten Schaltungen in ein oder zwei Jahren noch funktionieren?
  • Das PhidgetIR hat die Fähigkeit, CIR-Befehle zu „lernen“, was die Entwicklung extrem vereinfacht.
  • Sie können mit dem PhidgetIR fast jede gängige Programmiersprache verwenden. Dies bedeutete, dass ich Java verwenden und die Dinge schnell fertigstellen konnte.
  • Schließlich arbeite ich für Phidgets, also bin ich mit der API vertraut, und es liegen immer Ersatzgeräte herum.

Da ich mich für PhidgetIR entschieden habe, brauchte ich einen Computer, auf dem ich es ausführen konnte. Ich wollte, dass dieses Projekt eine eigenständige Anwendung ist, ähnlich wie eine normale Fernbedienung, sodass ein Desktop oder Laptop nicht verfügbar war. Ich habe mich für einen PhidgetSBC4 (einen Einplatinencomputer mit Debian Linux) entschieden, weil ich damit ohne zusätzliche Hardware mit beiden Drucktasten kommunizieren konnte. Sie können einfach direkt an den eingebauten VINT Hub angeschlossen werden. Hinweis: Sie können für dieses Projekt auch einen Raspberry Pi verwenden. Schließlich wollte ich dieses Projekt nicht nur funktional, sondern auch gut aussehen lassen, also entschied ich, dass ein 3D-gedrucktes Gehäuse erforderlich wäre.

Schritt 3: 3D-Druck

3D-Druck
3D-Druck
3D-Druck
3D-Druck

Für dieses Projekt wurde Geomagic verwendet, um das Gehäuse zu modellieren. Sowohl für das PhidgetIR als auch für das PhidgetSBC4 sind 3D-Schrittdateien verfügbar, die den Vorgang vereinfacht haben. In diesem Schritt wurden einige Entscheidungen bezüglich der Größe und Funktionalität des Gehäuses getroffen:

  • Das PhidgetIR verfügt über zwei IR-LEDs, die auf das Fernsehgerät zeigen müssen, um Befehle zu senden. Anstatt das Gehäuse um die PhidgetIR-Platine herum zu entwerfen, könnten die IR-LEDs entlötet und in die Löcher an der Seite des Gehäuses geklebt werden. Die PhidgetIR-Platine könnte dann entfernt von den LEDs montiert werden, um den leeren Raum zu nutzen.
  • Die VINT-Hub-Anschlüsse des PhidgetSBC4 könnten nach oben gebogen werden, was den Zugang für die Drucktastenanschlüsse noch ermöglicht und auch den Bau eines größeren Gehäuses verhindert.

Ich habe mich auch entschieden, ein Etikett für die Tasten und ein Etikett hinzuzufügen, das die Richtung angibt, in die sie weisen sollte, damit die IR-LEDs in die richtige Richtung zeigen. Ich habe das Gehäuse lokal aus schwarzem ABS-Kunststoff gedruckt.

Schritt 4: Montage - Entfernen Sie die LEDs

Montage - Entfernen Sie die LEDs
Montage - Entfernen Sie die LEDs
Montage - Entfernen Sie die LEDs
Montage - Entfernen Sie die LEDs
Montage - Entfernen Sie die LEDs
Montage - Entfernen Sie die LEDs

Die IR-LEDs werden schließlich in Löcher an der Seite des Gehäuses geklebt. Dies bedeutet, dass sie zuerst entlötet werden müssen.

Schritt 5: Montage - Durchsteckleisten hinzufügen

Baugruppe - Kopfleisten für Durchgangsbohrungen hinzufügen
Baugruppe - Kopfleisten für Durchgangsbohrungen hinzufügen
Baugruppe - Kopfleisten für Durchgangsbohrungen hinzufügen
Baugruppe - Kopfleisten für Durchgangsbohrungen hinzufügen

Als nächstes wurden dort, wo sich früher die LEDs befanden, Durchsteckleisten hinzugefügt, wodurch sie einfach mit einem 4-poligen Überbrückungskabel verbunden werden konnten. Verwenden Sie einen Schrumpfschlauch, um einen versehentlichen Kontakt zu vermeiden.

Schritt 6: Montage - LEDs anbringen

Montage - LEDs anbringen
Montage - LEDs anbringen
Montage - LEDs anbringen
Montage - LEDs anbringen

Kleben Sie die LEDs in die Seite des Gehäuses.

Schritt 7: Montage - Befestigen Sie das PhidgetIR

Zusammenbau - Anbringen des PhidgetIR
Zusammenbau - Anbringen des PhidgetIR
Zusammenbau - Anbringen des PhidgetIR
Zusammenbau - Anbringen des PhidgetIR
Zusammenbau - Anbringen des PhidgetIR
Zusammenbau - Anbringen des PhidgetIR

Befestigen Sie das PhidgetIR am Gehäuse und schließen Sie die LEDs an.

Schritt 8: Montage - Schaltflächen hinzufügen

Montage - Schaltflächen hinzufügen
Montage - Schaltflächen hinzufügen
Montage - Schaltflächen hinzufügen
Montage - Schaltflächen hinzufügen
Montage - Schaltflächen hinzufügen
Montage - Schaltflächen hinzufügen

Die Drucktasten müssen mit dem eingebauten VINT-Hub des PhidgetSBC verbunden werden, also habe ich ein Phidget-Kabel halbiert und die Enden an die Tasten gelötet. Beachten Sie, dass nur das weiße Kabel (Signal) und das schwarze (Masse) benötigt werden.

Schritt 9: Montage - Alles zusammenfügen

Montage - Alles zusammenfügen
Montage - Alles zusammenfügen
Montage - Alles zusammenfügen
Montage - Alles zusammenfügen

Etwas Kabelmanagement war erforderlich, um alles zusammen zu bekommen, aber das Gehäuse funktionierte gut.

Schritt 10: Software - Code

Für dieses Projekt wird nur eine einzige Java-Datei benötigt, die Sie hier finden. Das Programm verwendet ein PhidgetIR-Objekt und zwei DigitalInput-Objekte. Sie können diese Objekte wie folgt erstellen:

PhidgetIR ir = neues PhidgetIR();

DigitalInput tvButton =new DigitalInput(); DigitalInput otherButton=new DigitalInput();

Die Digital Input-Objekte werden einem physischen Taster auf dem VINT-Hub zugeordnet. Attach-, Detach-, Error- und State-Change-Ereignisse werden auch abonniert:

tv.setIsHubPortDevice(true);

tvButton.setHubPort(4); tvButton.addAttachListener(onAttachListener); tvButton.addDetachListener(onDetachListener); tvButton.addErrorListener(onErrorListener); tvButton.addStateChangeListener(onStateChangeListener); tvButton.open(); otherButton.setIsHubPortDevice(true); otherButton.setHubPort(5); otherButton.addAttachListener(onAttachListener); otherButton.addDetachListener(onDetachListener); otherButton.addErrorListener(onErrorListener); otherButton.addStateChangeListener(onStateChangeListener); otherButton.open();

Der oben erwähnte Zustandsänderungs-Listener sieht wie folgt aus:

privatestatic DigitalInputStateChangeListener onStateChangeListener =new 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("Fehler: "+ ex.getDescription());}}};

Wenn eine Schaltfläche aktiviert wird, wird der Ereigniscode ausgeführt und ein Flag gesetzt. Diese Flags werden in der Hauptschleife referenziert und zurückgesetzt. Die Hauptschleife wartet einfach auf eine Änderung des Schaltflächenstatus und sendet dann IR-Befehle mit der Sendefunktion, die über die PhidgetIR-API verfügbar ist.

while(true){if(tvButtonActivated){

tvButtonActivated =false; Log.log(LogLevel. INFO, "QUELLE ÄNDERN - TV"); ir.transmit(sourceButtonString, codeInfo); Thread.sleep(500); ir.transmit(rightButtonString, codeInfo); Thread.sleep(500); ir.transmit(enterButtonString, codeInfo);}if(otherButtonActivated){ otherButtonActivated =false; Log.log(LogLevel. INFO, "QUELLE ÄNDERN - DVD"); ir.transmit(sourceButtonString, codeInfo); Thread.sleep(500); ir.transmit(leftButtonString, codeInfo); Thread.sleep(500); ir.transmit(enterButtonString, codeInfo);} Thread.sleep(250);}

Schritt 11: Software - CIR-Befehle

Software - CIR-Befehle
Software - CIR-Befehle

Hier ist ein Beispiel für die Erstellung eines Befehls (in diesem Fall ein Befehl zum Erhöhen der Lautstärke):

// IR-Code

IRCodeInfo sourceButtonCI =new IRCodeInfo(); String volumeUp ="77e1d0f0";//Quellschaltfläche einrichten 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;

Um die Informationen für diesen Befehl zu erhalten, habe ich einfach das PhidgetIR-Beispiel verwendet, das mit den Phidget-Bibliotheken geliefert wird. Nachdem Sie die Fernbedienung auf das PhidgetIR gerichtet und die Lauter-Taste gedrückt gehalten haben, "lernt" das IR den Code und füllt das Beispiel aus. Diese Informationen können dann einfach in den Code kopiert werden.

Schritt 12: Ausführen des Programms

Die Java-Datei kann auf einem externen Computer geschrieben und kompiliert werden. Legen Sie PhidgetRemote.java und phidget22.jar in denselben Ordner und führen Sie den folgenden Befehl aus:

Windowsjavac -classpath.;phidget22.jar PhidgetRemote.java

macOS/Linuxjavac -classpath.:phidget22.jar PhidgetRemote.java

Kopieren Sie nach dem Kompilieren die generierten Klassendateien auf das PhidgetSBC4 und konfigurieren Sie es so, dass es beim Booten ausgeführt wird.

Schritt 13: Ergebnis

Als ich die Fernbedienung dem Opa meiner Freundin schenkte und ihm zeigte, wie man sie benutzt, war er erstaunt, wie einfach das geht. Sehen Sie sich das Video an, um es in Aktion zu sehen!

Fernbedienungswettbewerb 2017
Fernbedienungswettbewerb 2017
Fernbedienungswettbewerb 2017
Fernbedienungswettbewerb 2017

Dritter Preis beim Remote Control Contest 2017

Empfohlen: