Inhoudsopgave:

Technologie voor je opa: 13 stappen (met afbeeldingen)
Technologie voor je opa: 13 stappen (met afbeeldingen)

Video: Technologie voor je opa: 13 stappen (met afbeeldingen)

Video: Technologie voor je opa: 13 stappen (met afbeeldingen)
Video: Hoe maak je PEILINGEN aan op WHATSAPP (Stap voor Stap)? 2024, November
Anonim
Image
Image

Hoe vaak ben je naar het huis van je grootouders gegaan om te helpen met een "technologisch probleem" dat uiteindelijk een losgekoppelde stroomkabel was, een lege afstandsbedieningsbatterij of het niet kunnen schakelen van de bron op hun tv? Ik weet dat dit bij mij vrij vaak gebeurt. Hoewel de meeste van hun problemen kunnen worden opgelost door simpelweg naar de winkel te rennen voor nieuwe AA's, kunnen ze soms profiteren van een meer op maat gemaakte oplossing.

De grootvader van mijn vriendin kreeg bijvoorbeeld een nieuwe televisie en we probeerden hem te leren hoe hij de bron kon veranderen, zodat hij kon schakelen tussen dvd's en tv - maar hij kon er gewoon niet achter komen. Hij heeft ook te maken met een verminderd gezichtsvermogen en is niet zo geïnteresseerd in het onthouden van ingewikkelde processen, hij wil gewoon naar zijn shows kijken wanneer hij dat wil. Nadat ik tijdens ons laatste bezoek rustig geprobeerd had de stappen uit te leggen, zonder veel succes, besloot ik hem gewoon zijn eigen eenvoudige afstandsbediening met twee knoppen te maken. Dit zou hem in staat stellen om de invoerbron op zijn televisie pijnloos te veranderen, en gemakkelijk te schakelen tussen zijn geliefde Matlock-dvd's en Price is Right.

Stap 1: Materialen

  • PhidgetIR
  • PhidgetSBC4 (of een computer met één bord zoals de Raspberry Pi)
  • Soldeerbout
  • Zijsnijders
  • Draadstrippers
  • Doorverbindingsdraden
  • USB-kabel
  • Phidget-kabel
  • Behuizing
  • Through-hole headers
  • Krimpkous

Stap 2: Plannen

3D-afdrukken
3D-afdrukken

Om de afstandsbediening te maken, had ik de mogelijkheid nodig om infraroodcommando's (CIR) voor consumenten naar de televisie te sturen. Ik besloot om de PhgetIR voor deze taak te gebruiken. De PhidgetIR is een USB-gestuurd apparaat dat zowel CIR-opdrachten kan verzenden als ontvangen. Ik heb hiervoor gekozen om een paar redenen:

  • Ik wilde dit project zo snel mogelijk afronden en in gebruik nemen, dus de gedachte om mijn oscilloscoop en breadboard uit te breken was niet aantrekkelijk. En hoe waarschijnlijk is het dat mijn met de hand gesoldeerde circuits over een jaar of twee nog steeds werken?
  • De PhidgetIR heeft de mogelijkheid om CIR-commando's te "leren", waardoor ontwikkeling uiterst eenvoudig wordt.
  • Je kunt bijna elke reguliere programmeertaal gebruiken met de PhidgetIR. Dit betekende dat ik Java kon gebruiken en dingen snel kon afronden.
  • Ten slotte werk ik voor Phidgets, dus ik ben vertrouwd met de API, en er zijn altijd reserve-apparaten die rondslingeren.

Omdat ik ervoor koos om de PhidgetIR te gebruiken, had ik een computer nodig om het te gebruiken. Ik wilde dat dit project een op zichzelf staande applicatie zou zijn, net als een normale afstandsbediening, dus een desktop of laptop was uit. Ik koos ervoor om een PhidgetSBC4 te gebruiken (een computer met één bord waarop Debian Linux draait), omdat ik hierdoor met beide drukknoppen kon communiceren zonder extra hardware. Ze kunnen eenvoudig rechtstreeks op de ingebouwde VINT Hub worden aangesloten. Let op: je kunt voor dit project ook een Raspberry Pi gebruiken. Ten slotte wilde ik dat dit project er niet alleen functioneel gezond uitzag, maar er ook geweldig uit zou zien, dus besloot ik dat een 3D-geprinte behuizing nodig zou zijn.

Stap 3: 3D-afdrukken

3D-afdrukken
3D-afdrukken
3D-afdrukken
3D-afdrukken

Voor dit project werd Geomagic gebruikt om de behuizing te modelleren. Er zijn 3D-stappenbestanden beschikbaar voor zowel de PhidgetIR als de PhidgetSBC4 die het proces vereenvoudigden. Tijdens deze stap zijn enkele beslissingen genomen met betrekking tot de grootte en functionaliteit van de behuizing:

  • De PhidgetIR heeft twee IR-LED's die naar de tv moeten wijzen om opdrachten te kunnen verzenden. In plaats van de behuizing rond het PhidgetIR-bord te ontwerpen, konden de IR-LED's worden losgemaakt en in de gaten aan de zijkant van de behuizing worden gelijmd. Het PhidgetIR-bord kan dan uit de buurt van de LED's worden gemonteerd, waarbij de lege ruimte wordt gebruikt.
  • De VINT Hub-connectoren op de PhidgetSBC4 zouden naar boven kunnen worden gebogen, waardoor de drukknopverbindingen nog steeds toegankelijk zijn en ook zou worden voorkomen dat er een grotere behuizing moet worden gemaakt.

Ik heb ook besloten om een label voor de knoppen toe te voegen en een label dat aangeeft in welke richting het moet wijzen, zodat de IR-LED's in de goede richting wijzen. Ik heb de behuizing lokaal geprint uit zwart ABS-plastic.

Stap 4: Montage - Verwijder de LED's

Montage - Verwijder de LED's
Montage - Verwijder de LED's
Montage - Verwijder de LED's
Montage - Verwijder de LED's
Montage - Verwijder de LED's
Montage - Verwijder de LED's

De IR-leds worden uiteindelijk in gaten aan de zijkant van de behuizing gelijmd. Dit betekent dat ze eerst moeten worden gedesoldeerd.

Stap 5: Montage - Doorlopende koppen toevoegen

Assemblage - Doorlopende koppen toevoegen
Assemblage - Doorlopende koppen toevoegen
Assemblage - Doorlopende koppen toevoegen
Assemblage - Doorlopende koppen toevoegen

Vervolgens werden doorlopende headers toegevoegd waar de LED's waren, waardoor ze gemakkelijk konden worden aangesloten met behulp van een 4-pins jumperdraad. Gebruik krimpkous om onbedoeld contact te voorkomen.

Stap 6: Montage - Bevestig LED's

Montage - LED's bevestigen
Montage - LED's bevestigen
Montage - LED's bevestigen
Montage - LED's bevestigen

Lijm de LED's in de zijkant van de behuizing.

Stap 7: Montage - Bevestig de PhidgetIR

Montage - Bevestig de PhidgetIR
Montage - Bevestig de PhidgetIR
Montage - Bevestig de PhidgetIR
Montage - Bevestig de PhidgetIR
Montage - Bevestig de PhidgetIR
Montage - Bevestig de PhidgetIR

Bevestig de PhidgetIR aan de behuizing en sluit de LED's aan.

Stap 8: Montage - Knoppen toevoegen

Montage - Knoppen toevoegen
Montage - Knoppen toevoegen
Montage - Knoppen toevoegen
Montage - Knoppen toevoegen
Montage - Knoppen toevoegen
Montage - Knoppen toevoegen

De drukknoppen moeten worden aangesloten op de ingebouwde VINT Hub op de PhidgetSBC, dus ik heb een Phidget-kabel doormidden gesneden en de uiteinden aan de knoppen gesoldeerd. Merk op dat alleen de witte draad (signaal) en zwarte (aarde) nodig zijn.

Stap 9: Montage - Alles in elkaar zetten

Assembleren - Alles Samenstellen
Assembleren - Alles Samenstellen
Assembleren - Alles Samenstellen
Assembleren - Alles Samenstellen

Er was wat kabelbeheer nodig om alles bij elkaar te krijgen, maar de behuizing werkte goed.

Stap 10: Software - Code

Er is slechts één Java-bestand nodig voor dit project dat u hier kunt vinden. Het programma gebruikt één PhidgetIR-object en twee DigitalInput-objecten. U kunt deze objecten als volgt maken:

PhidgetIR ir =nieuwe PhidgetIR();

DigitalInput tvButton =nieuwe DigitalInput(); DigitalInput otherButton=nieuwe DigitalInput();

De Digital Input-objecten worden toegewezen aan een fysieke drukknop op de VINT Hub. Gebeurtenissen voor koppelen, loskoppelen, fouten en statuswijzigingen zijn ook geabonneerd op:

tv.setIsHubPortDevice (waar);

tvButton.setHubPort(4); tvButton.addAttachListener(opAttachListener); tvButton.addDetachListener(opDetachListener); tvButton.addErrorListener(onErrorListener); tvButton.addStateChangeListener(onStateChangeListener); tvButton.open(); otherButton.setIsHubPortDevice (true); andereButton.setHubPort(5); otherButton.addAttachListener(opAttachListener); otherButton.addDetachListener(onDetachListener); otherButton.addErrorListener(onErrorListener); otherButton.addStateChangeListener(onStateChangeListener); andereKnop.open();

De luisteraar voor statuswijziging waarnaar hierboven wordt verwezen, ziet er als volgt uit:

privatestatic DigitalInputStateChangeListener onStateChangeListener =nieuwe DigitalInputStateChangeListener(){@OverridepublicvoidonStateChange(DigitalInputStateChangeEvent-schijf){

DigitalInput ch =(DigitalInput) disce.getSource();try{if(ch.getHubPort()==4&& disce.getState()==true){ tvButtonActivated =true;}if(ch.getHubPort()==5&& schijf.getState()==true){ otherButtonActivated =true;}}catch(PhidgetException ex){ System.out.println("Fout: "+ ex.getDescription());}}};

Wanneer een knop wordt geactiveerd, wordt de gebeurteniscode uitgevoerd en wordt een vlag ingesteld. Naar deze vlaggen wordt verwezen en gereset in de hoofdlus. De hoofdlus wacht gewoon op een wijziging in de knopstatus en verzendt vervolgens IR-opdrachten met behulp van de verzendfunctie die beschikbaar is via de PhidgetIR API.

while(true){if(tvButtonActivated){

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

Stap 11: Software - CIR-opdrachten

Software - CIR-opdrachten
Software - CIR-opdrachten

Hier is een voorbeeld van hoe u een opdracht kunt maken (in dit geval een volume omhoog-opdracht):

//IR-code

IRCodeInfo sourceButtonCI =nieuwe IRCodeInfo(); String volumeUp ="77e1d0f0";//Bronknop instellen 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;

Om de informatie voor deze opdracht te krijgen, heb ik eenvoudig het PhidgetIR-voorbeeld gebruikt dat bij de Phidget-bibliotheken wordt geleverd. Nadat de afstandsbediening naar de PhidgetIR is gericht en de knop Volume omhoog ingedrukt houdt, "leert" de IR de code en vult het voorbeeld. Deze informatie kan vervolgens eenvoudig naar de code worden gekopieerd.

Stap 12: Het programma uitvoeren

Het Java-bestand kan op een externe computer worden geschreven en gecompileerd. Plaats PhidgetRemote.java en phidget22.jar in dezelfde map en voer de volgende opdracht uit:

Windowsjavac -classpath.;phidget22.jar PhidgetRemote.java

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

Kopieer na het compileren de gegenereerde klassenbestanden naar de PhidgetSBC4 en configureer deze om bij het opstarten te worden uitgevoerd.

Stap 13: Resultaat

Toen ik de afstandsbediening aan de opa van mijn vriendin gaf en hem liet zien hoe hij hem moest gebruiken, was hij verbaasd over hoe eenvoudig hij was. Bekijk de video om hem in actie te zien!

Afstandsbediening Wedstrijd 2017
Afstandsbediening Wedstrijd 2017
Afstandsbediening Wedstrijd 2017
Afstandsbediening Wedstrijd 2017

Derde prijs in de Remote Control Contest 2017

Aanbevolen: