Inhoudsopgave:
- Stap 1: Materialen
- Stap 2: Plannen
- Stap 3: 3D-afdrukken
- Stap 4: Montage - Verwijder de LED's
- Stap 5: Montage - Doorlopende koppen toevoegen
- Stap 6: Montage - Bevestig LED's
- Stap 7: Montage - Bevestig de PhidgetIR
- Stap 8: Montage - Knoppen toevoegen
- Stap 9: Montage - Alles in elkaar zetten
- Stap 10: Software - Code
- Stap 11: Software - CIR-opdrachten
- Stap 12: Het programma uitvoeren
- Stap 13: Resultaat
Video: Technologie voor je opa: 13 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
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
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
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
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
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
Lijm de LED's in de zijkant van de behuizing.
Stap 7: Montage - Bevestig de PhidgetIR
Bevestig de PhidgetIR aan de behuizing en sluit de LED's aan.
Stap 8: 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
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
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!
Derde prijs in de Remote Control Contest 2017
Aanbevolen:
Draagbare technologie voor de ziekte van Parkinson: 4 stappen
Wearable Tech Parkinson Ziekte: Wereldwijd leven meer dan 10 miljoen mensen met de ziekte van Parkinson (PD). Een progressieve aandoening van het zenuwstelsel die stijfheid veroorzaakt en de beweging van de patiënt beïnvloedt. Simpel gezegd, veel mensen leden aan de ziekte van Parkinson, maar
Living Pixels - Stel je voor dat technologie leven heeft: 4 stappen (met afbeeldingen)
Living Pixels - Imagine Technology Has Life: Aangezien smarthome-producten steeds vaker voorkomen in ons leven, ben ik gaan nadenken over de relatie tussen mensen en deze producten. Als smart home-producten op een dag een onmisbaar onderdeel van ieders leven worden, welke houding moeten we dan aannemen
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Opa te lang uit bed detecteren: 7 stappen
Opa te lang uit bed detecteren: achtergrondHoewel er al jaren bedalarmmonitors zijn die slechts eenvoudige contactsluitingen van bedkussens zijn die een lokaal alarm afgaan voor zorgverleners wanneer iemand uit bed komt, was er geen manier voor afgelegen familie zorgverleners om een lo
Bereid enkele overtollige PIR-sensoren voor robotica voor: 3 stappen (met afbeeldingen)
Bereid wat overtollige PIR-sensoren voor robotica voor: ik vond een aantal PIR-sensoren op eBay. Ze zijn gemonteerd op een print die is gemaakt voor een handsfree set voor mobiele telefoons. Ik beschrijf hier graag hoe je de sensor voorbereidt voor gebruik in robotica-projecten. Als je niet weet wat een PIR-sensor is