Innehållsförteckning:
- Steg 1: Material
- Steg 2: Planering
- Steg 3: 3D -utskrift
- Steg 4: Montering - Ta bort lysdioderna
- Steg 5: Montering - Lägg till genomgående hålrubriker
- Steg 6: Montering - Fäst lysdioder
- Steg 7: Montering - Fäst PhidgetIR
- Steg 8: Montering - Lägga till knappar
- Steg 9: Montering - Att sätta ihop allt
- Steg 10: Programvara - kod
- Steg 11: Programvara - CIR -kommandon
- Steg 12: Kör programmet
- Steg 13: Resultat
Video: Teknik för din morfar: 13 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Hur många gånger har du åkt hem till dina farföräldrar för att hjälpa till med ett "teknikproblem" som slutade vara en urkopplad strömkabel, ett dött fjärrbatteri eller inte kunde byta källa på sin TV? Jag vet att för mig händer detta ganska ofta. Även om de flesta av deras problem kan lösas genom att helt enkelt springa till affären för några nya AA: er, kan de ibland dra nytta av en mer anpassad lösning.
Till exempel fick min flickväns farfar en ny tv och vi försökte lära honom hur man byter källa så att han kunde växla mellan DVD -skivor och TV - men han kunde bara inte förstå det. Han hanterar också sviktande syn och är inte alltför intresserad av att försöka komma ihåg komplicerade processer, han vill bara titta på hans program när han vill. Efter att ha försökt att lugnt förklara stegen under vårt senaste besök utan större framgång, bestämde jag mig för att jag bara skulle göra honom till sin egen enkla fjärrkontroll med två knappar. Detta skulle göra det möjligt för honom att smidigt ändra ingångskällan på sin tv och enkelt växla mellan sina älskade Matlock DVD -skivor och Price is Right.
Steg 1: Material
- PhidgetIR
- PhidgetSBC4 (eller en enda kortdator som Raspberry Pi)
- Lödkolv
- Sidoskärare
- Wire Strippers
- Jumper Wires
- USB-kabel
- Phidget -kabel
- Inhägnad
- Genomgående hål
- Krympslang
Steg 2: Planering
För att skapa fjärrkontrollen behövde jag möjligheten att skicka konsumentens infraröda (CIR) kommandon till TV: n. Jag bestämde mig för att använda PhigetIR för denna uppgift. PhidgetIR är en USB -kontrollerad enhet som har möjlighet att både skicka och ta emot CIR -kommandon. Jag valde detta av några skäl:
- Jag ville avsluta det här projektet så snart som möjligt och ta det i bruk, så tanken på att bryta ut mitt oscilloskop och brödbräda var inte tilltalande. Hur troligt är det också att mina handlödda kretsar fortfarande skulle fungera om ett eller två år?
- PhidgetIR har förmågan att”lära sig” CIR -kommandon vilket gör utvecklingen extremt enkel.
- Du kan använda nästan alla vanliga programmeringsspråk med PhidgetIR. Detta innebar att jag kunde använda Java och få saker färdiga snabbt.
- Slutligen arbetar jag för Phidgets, så jag är bekväm med API: et, och det finns alltid lediga enheter kvar.
Eftersom jag valde att använda PhidgetIR behövde jag en dator för att köra bort den. Jag ville att det här projektet skulle vara en fristående applikation, ungefär som en vanlig fjärrkontroll, så en stationär eller bärbar dator var ute. Jag valde att använda en PhidgetSBC4 (en enbräda dator som kör Debian Linux), eftersom det tillät mig att ansluta med båda tryckknapparna utan ytterligare hårdvara. De kan helt enkelt anslutas direkt till den inbyggda VINT-hubben. Obs! Du kan också använda en Raspberry Pi för detta projekt. Slutligen, förutom att vara funktionellt sund, ville jag att det här projektet skulle se bra ut, så jag bestämde mig för att en 3D -tryckt kapsling skulle vara nödvändig.
Steg 3: 3D -utskrift
För detta projekt användes Geomagic för att modellera höljet. Det finns 3D -stegfiler tillgängliga för både PhidgetIR och PhidgetSBC4 som förenklade processen. Några beslut fattades under detta steg angående storleken och funktionen hos höljet:
- PhidgetIR har två IR -lysdioder som måste peka mot TV: n för att kunna skicka kommandon. I stället för att utforma höljet runt PhidgetIR -kortet kan IR -lysdioderna avlödas och limmas i hålen på höljet. PhidgetIR -kortet kan sedan monteras bort från lysdioderna och utnyttja det tomma utrymmet.
- VINT Hub -kontakterna på PhidgetSBC4 kan böjas uppåt, vilket fortfarande skulle möjliggöra åtkomst för tryckknappsanslutningarna, och skulle också förhindra att man måste skapa ett större hölje.
Jag bestämde mig också för att lägga till en etikett för knapparna och en etikett som anger i vilken riktning den ska vända så att IR -lysdioderna pekar åt rätt håll. Jag skrev ut höljet lokalt av svart ABS -plast.
Steg 4: Montering - Ta bort lysdioderna
IR -lysdioderna kommer så småningom att limmas i hål på sidan av höljet. Det betyder att de först måste avlödas.
Steg 5: Montering - Lägg till genomgående hålrubriker
Därefter tillkom genomgående hålhuvuden där lysdioderna brukade vara, vilket gjorde dem enkla att ansluta till med hjälp av en 4-polig bygelkabel. Använd värmekrympslang för att förhindra oavsiktlig kontakt.
Steg 6: Montering - Fäst lysdioder
Limma lysdioderna in på sidan av höljet.
Steg 7: Montering - Fäst PhidgetIR
Fäst PhidgetIR på höljet och anslut lysdioderna.
Steg 8: Montering - Lägga till knappar
Tryckknapparna måste anslutas till den inbyggda VINT-hubben på PhidgetSBC, så jag skar en Phidget-kabel på mitten och lodde ändarna till knapparna. Observera att endast den vita ledningen (signalen) och den svarta (jord) krävs.
Steg 9: Montering - Att sätta ihop allt
Viss kabelhantering krävdes för att få ihop allt, men kapslingen fungerade bra.
Steg 10: Programvara - kod
Det finns bara en enda Java -fil som krävs för detta projekt som du kan hitta här. Programmet använder ett PhidgetIR -objekt och två DigitalInput -objekt. Du kan skapa dessa objekt så här:
PhidgetIR ir = ny PhidgetIR ();
DigitalInput tvButton = ny DigitalInput (); DigitalInput otherButton = ny DigitalInput ();
De digitala inmatningsobjekten mappas till en fysisk tryckknapp på VINT -hubben. Bifoga, koppla bort, fel och förändra tillståndshändelser prenumererar också på:
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 ();
Den statliga förändringslyssnaren som nämns ovan ser ut så här:
privatestatic DigitalInputStateChangeListener onStateChangeListener = new DigitalInputStateChangeListener () {@OverridepublicvoidonStateChange (DigitalInputStateChangeEvent disce) {
DigitalInput ch = (DigitalInput) disce.getSource (); prova {if (ch.getHubPort () == 4 && disce.getState () == true) {tvButtonActivated = true;} if (ch.getHubPort () == 5 && disce.getState () == true) {otherButtonActivated = true;}} catch (PhidgetException ex) {System.out.println ("Fel:"+ ex.getDescription ());}}};
När en knapp är aktiverad kommer händelsekoden att köras och en flagga. Dessa flaggor kommer att refereras och återställas i huvudslingan. Huvudslingan väntar helt enkelt på en ändring av knapptillståndet och skickar sedan IR -kommandon med överföringsfunktionen som är tillgänglig från PhidgetIR API.
medan (true) {if (tvButtonActivated) {
tvButtonActivated = false; Log.log (LogLevel. INFO, "ÄNDRING AV KÄLLA - TV"); ir.transmit (sourceButtonString, codeInfo); Tråd. Sover (500); ir.transmit (rightButtonString, codeInfo); Tråd. Sover (500); ir.transmit (enterButtonString, codeInfo);} if (otherButtonActivated) {otherButtonActivated = false; Log.log (LogLevel. INFO, "CHANGING SOURCE - DVD"); ir.transmit (sourceButtonString, codeInfo); Tråd. Sover (500); ir.transmit (leftButtonString, codeInfo); Tråd. Sover (500); ir.transmit (enterButtonString, codeInfo);} Thread.sleep (250);}
Steg 11: Programvara - CIR -kommandon
Här är ett exempel på hur du skapar ett kommando (ett volym upp -kommando i det här fallet):
// IR -kod
IRCodeInfo sourceButtonCI = ny IRCodeInfo (); String volumeUp = "77e1d0f0"; // Ställ in källknapp 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;
För att få information om detta kommando använde jag helt enkelt PhidgetIR -exemplet som medföljer Phidget -biblioteken. Efter att ha riktat fjärrkontrollen mot PhidgetIR och hållt ner volym upp -knappen "lär sig" IR -koden och fyller i exemplet. Denna information kan sedan enkelt kopieras till koden.
Steg 12: Kör programmet
Java -filen kan skrivas och kompileras på en extern dator. Placera PhidgetRemote.java och phidget22.jar i samma mapp och kör följande kommando:
Windowsjavac -classpath.; Phidget22.jar PhidgetRemote.java
macOS/Linuxjavac -classpath.: phidget22.jar PhidgetRemote.java
Efter kompilering kopierar du de genererade klassfilerna till PhidgetSBC4 och konfigurerar dem för att köras vid start.
Steg 13: Resultat
När jag gav fjärrkontrollen till min flickväns morfar och visade hur han skulle använda den, blev han förvånad över hur enkelt det var. Kolla in videon för att se den i aktion!
Tredje priset i fjärrkontrolltävlingen 2017
Rekommenderad:
Steam Punk din UPS för att få timmars drifttid för din Wi-Fi-router: 4 steg (med bilder)
Steam Punk din UPS för att få timmars drifttid för din Wi-Fi-router: Det är något i grunden obehagligt med att din UPS omvandlar sitt 12V DC-batteri till 220V AC-ström så att transformatorerna som kör din router och fiber ONT kan konvertera den till 12V DC! Du är också emot [vanligtvis
Hur man gör din egen WIFI -gateway för att ansluta din Arduino till IP -nätverk?: 11 steg (med bilder)
Hur man gör din egen WIFI -gateway för att ansluta din Arduino till IP -nätverk?: Som så många tror du att Arduino är en mycket bra lösning för att göra hemautomation och robotik! Men när det gäller kommunikation kommer Arduinos bara med seriella länkar. Jag arbetar med en robot som måste vara permanent ansluten till en server som körs
Väggfäste för iPad som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: 4 steg (med bilder)
Väggfäste för iPad Som kontrollpanel för hemautomation, med servostyrd magnet för att aktivera skärmen: På senare tid har jag ägnat ganska mycket tid åt att automatisera saker i och runt mitt hus. Jag använder Domoticz som min hemautomationsapplikation, se www.domoticz.com för mer information. I min sökning efter en instrumentpanelapplikation som visar all Domoticz -information tillsammans
Att upptäcka morfar ur sängen för länge: 7 steg
Upptäcka farfar ur sängen för länge: Bakgrund Medan det har funnits sänglarmmonitorer i många år som bara är enkla stängningar av sängklockor som ringer ett lokalt larm för vårdgivare när någon går upp ur sängen, har det inte funnits något sätt för fjärrfamilj vårdgivare att spåra en lo
Gör din egen fina EeePC / Netbook -påse för cirka $ 8 (och spara $ 91 istället för att köpa från Redmaloo): 5 steg (med bilder)
Gör din egen fina filt EeePC / Netbook -påse för cirka $ 8 (och spara $ 91 istället för att köpa från Redmaloo): Den här instruktören visar dig hur du gör din egen, mycket snygga och snygga bärbara dator eller ännu bättre netbook -påse. Det kommer att lagra din netbook, ge dig en musmatta, känslan av att använda något unikt, snyggt och handgjort och känslan av