Innehållsförteckning:

Teknik för din morfar: 13 steg (med bilder)
Teknik för din morfar: 13 steg (med bilder)

Video: Teknik för din morfar: 13 steg (med bilder)

Video: Teknik för din morfar: 13 steg (med bilder)
Video: POV: Din bästa vän vinner Let’s Dance 2024, November
Anonim
Image
Image

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

3D -utskrift
3D -utskrift

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

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

Montering - Ta bort lysdioderna
Montering - Ta bort lysdioderna
Montering - Ta bort lysdioderna
Montering - Ta bort lysdioderna
Montering - Ta bort lysdioderna
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

Montering - Lägg till genomgående hålrubriker
Montering - Lägg till genomgående hålrubriker
Montering - Lägg till genomgående hålrubriker
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

Montering - Fäst lysdioder
Montering - Fäst lysdioder
Montering - Fäst lysdioder
Montering - Fäst lysdioder

Limma lysdioderna in på sidan av höljet.

Steg 7: Montering - Fäst PhidgetIR

Montering - Fäst PhidgetIR
Montering - Fäst PhidgetIR
Montering - Fäst PhidgetIR
Montering - Fäst PhidgetIR
Montering - Fäst PhidgetIR
Montering - Fäst PhidgetIR

Fäst PhidgetIR på höljet och anslut lysdioderna.

Steg 8: Montering - Lägga till knappar

Montering - Lägga till knappar
Montering - Lägga till knappar
Montering - Lägga till knappar
Montering - Lägga till knappar
Montering - Lägga till knappar
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

Montering - Att sätta ihop allt
Montering - Att sätta ihop allt
Montering - Att sätta ihop allt
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

Programvara - CIR -kommandon
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!

Fjärrkontrolltävling 2017
Fjärrkontrolltävling 2017
Fjärrkontrolltävling 2017
Fjärrkontrolltävling 2017

Tredje priset i fjärrkontrolltävlingen 2017

Rekommenderad: