Indholdsfortegnelse:

Teknologi til din bedstefar: 13 trin (med billeder)
Teknologi til din bedstefar: 13 trin (med billeder)

Video: Teknologi til din bedstefar: 13 trin (med billeder)

Video: Teknologi til din bedstefar: 13 trin (med billeder)
Video: Denne Video Kan Gætte Hvor Du Er! 2024, December
Anonim
Image
Image

Hvor mange gange har du gået til dine bedsteforældres hus for at hjælpe med et "teknologiproblem", der endte med at være et frakoblet strømkabel, et dødt fjernbatteri eller ikke kunne skifte kilde på deres tv? Jeg ved, at det for mig sker ret ofte. Selvom de fleste af deres problemer kan løses ved blot at løbe til butikken efter nogle nye AA’er, kan de nogle gange drage fordel af en mere tilpasset løsning.

For eksempel fik min kærestes bedstefar et nyt fjernsyn, og vi forsøgte at lære ham at ændre kilden, så han kunne skifte mellem dvd'er og tv - men han kunne bare ikke finde ud af det. Han har også at gøre med svigtende syn og er ikke for interesseret i at prøve at huske komplicerede processer, han vil bare se sine shows, når han vil. Efter at have forsøgt roligt at forklare trinene under vores sidste besøg uden megen succes, besluttede jeg, at jeg bare ville gøre ham til sin egen enkle fjernbetjening med to knapper. Dette ville gøre det muligt for ham at ændre inputkilden på sit fjernsyn smertefrit og let skifte mellem sine elskede Matlock DVD'er og Price is Right.

Trin 1: Materialer

  • PhidgetIR
  • PhidgetSBC4 (eller enhver enkelt boardcomputer som Raspberry Pi)
  • Loddekolbe
  • Sidekuttere
  • Wire Strippers
  • Jumper Wires
  • USB -kabel
  • Phidget -kabel
  • Kabinet
  • Gennemgående huller
  • Krympeslange

Trin 2: Planlægning

3D -print
3D -print

For at oprette fjernbetjeningen havde jeg brug for muligheden for at sende forbrugerinfrarøde (CIR) kommandoer til fjernsynet. Jeg besluttede at bruge PhigetIR til denne opgave. PhidgetIR er en USB -styret enhed, der har mulighed for både at sende og modtage CIR -kommandoer. Jeg valgte dette af et par grunde:

  • Jeg ville afslutte dette projekt hurtigst muligt og tage det i brug, så tanken om at bryde mit oscilloskop og brødbræt ikke var tiltalende. Hvor stor sandsynlighed er det også for, at mine håndlodde kredsløb stadig ville virke om et år eller to?
  • PhidgetIR har evnen til at "lære" CIR -kommandoer, hvilket gør udviklingen ekstremt enkel.
  • Du kan bruge næsten ethvert almindeligt programmeringssprog med PhidgetIR. Dette betød, at jeg kunne bruge Java og få tingene færdige hurtigt.
  • Endelig arbejder jeg for Phidgets, så jeg er fortrolig med API'en, og der er altid ekstra enheder der ligger rundt.

Fordi jeg valgte at bruge PhidgetIR, havde jeg brug for en computer til at køre den af. Jeg ville have, at dette projekt skulle være en enkeltstående applikation, ligesom en normal fjernbetjening, så en stationær eller bærbar computer var ude. Jeg valgte at bruge en PhidgetSBC4 (en single-board computer, der kører Debian Linux), fordi det tillod mig at interface med begge trykknapper uden yderligere hardware. De kan simpelthen forbindes direkte til den indbyggede VINT Hub. Bemærk: du kan også bruge en Raspberry Pi til dette projekt. Endelig ville jeg ud over at være funktionelt forsvarlig, at dette projekt skulle se godt ud, så jeg besluttede, at et 3D -printet kabinet ville være nødvendigt.

Trin 3: 3D -udskrivning

3D -print
3D -print
3D -print
3D -print

Til dette projekt blev Geomagic brugt til at modellere kabinettet. Der er 3D -trinfiler til rådighed for både PhidgetIR og PhidgetSBC4, hvilket forenklede processen. Nogle beslutninger blev truffet under dette trin vedrørende kabinettets størrelse og funktionalitet:

  • PhidgetIR har to IR -lysdioder, der skal pege mod fjernsynet for at kunne sende kommandoer. I stedet for at designe kabinettet omkring PhidgetIR -kortet, kunne IR -lysdioderne afsoldes og limes ind i hullerne på siden af kabinettet. PhidgetIR -kortet kan derefter monteres væk fra lysdioderne ved hjælp af det tomme rum.
  • VINT Hub -stik på PhidgetSBC4 kunne være bøjet opad, hvilket stadig ville give adgang til trykknapforbindelserne og også ville forhindre at skulle oprette et større kabinet.

Jeg besluttede også at tilføje en etiket til knapperne og en etiket, der angiver den retning, den skal vende, så IR -lysdioderne peger i den rigtige retning. Jeg printede kabinettet lokalt ud af sort ABS -plast.

Trin 4: Montering - Fjern lysdioderne

Montering - Fjern lysdioderne
Montering - Fjern lysdioderne
Montering - Fjern lysdioderne
Montering - Fjern lysdioderne
Montering - Fjern lysdioderne
Montering - Fjern lysdioderne

IR -lysdioderne vil i sidste ende blive limet ind i huller på siden af kabinettet. Det betyder, at de først skal afloddes.

Trin 5: Montering - Tilføj gennemgående huller

Montering - Tilføj gennemgående huller
Montering - Tilføj gennemgående huller
Montering - Tilføj gennemgående huller
Montering - Tilføj gennemgående huller

Derefter blev der tilføjet gennemgående huller, hvor lysdioderne plejede at være, hvilket gjorde dem lette at oprette forbindelse til ved hjælp af en 4-bens jumper wire. Brug varmekrympeslange for at forhindre utilsigtet kontakt.

Trin 6: Montering - Sæt lysdioder på

Montering - Fastgør lysdioder
Montering - Fastgør lysdioder
Montering - Fastgør lysdioder
Montering - Fastgør lysdioder

Lim LED'erne ind i siden af kabinettet.

Trin 7: Montering - Fastgør PhidgetIR

Montering - Fastgør PhidgetIR
Montering - Fastgør PhidgetIR
Montering - Fastgør PhidgetIR
Montering - Fastgør PhidgetIR
Montering - Fastgør PhidgetIR
Montering - Fastgør PhidgetIR

Fastgør PhidgetIR til kabinettet, og tilslut lysdioderne.

Trin 8: Montering - Tilføjelse af knapper

Montering - Tilføjelse af knapper
Montering - Tilføjelse af knapper
Montering - Tilføjelse af knapper
Montering - Tilføjelse af knapper
Montering - Tilføjelse af knapper
Montering - Tilføjelse af knapper

Trykknapperne skal tilsluttes den indbyggede VINT-hub på PhidgetSBC, så jeg skar et Phidget-kabel i halve og lodde enderne til knapperne. Bemærk, at kun den hvide ledning (signal) og sort (jord) er påkrævet.

Trin 9: Montering - Sæt alt sammen

Montering - Sætter alt sammen
Montering - Sætter alt sammen
Montering - Sætter alt sammen
Montering - Sætter alt sammen

Noget kabelstyring var påkrævet for at få alt sammen, men kabinettet fungerede godt.

Trin 10: Software - kode

Der er kun en enkelt Java -fil påkrævet til dette projekt, som du kan finde her. Programmet bruger et PhidgetIR -objekt og to DigitalInput -objekter. Du kan oprette disse objekter på følgende måde:

PhidgetIR ir = ny PhidgetIR ();

DigitalInput tvButton = ny DigitalInput (); DigitalInput otherButton = ny DigitalInput ();

De digitale input -objekter knyttes til en fysisk trykknap på VINT -hubben. Vedhæft, løs, fejl og ændring af hændelser er også abonneret på:

tv.setIsHubPortDevice (sand);

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 ();

Statsændringslytteren, der refereres til ovenfor, ser sådan ud:

privatestatic DigitalInputStateChangeListener onStateChangeListener = new DigitalInputStateChangeListener () {@OverridepublicvoidonStateChange (DigitalInputStateChangeEvent disce) {

DigitalInput ch = (DigitalInput) disce.getSource (); prøv {if (ch.getHubPort () == 4 && disce.getState () == true) {tvButtonActivated = true;} hvis (ch.getHubPort () == 5 && disce.getState () == true) {otherButtonActivated = true;}} catch (PhidgetException ex) {System.out.println ("Fejl:"+ ex.getDescription ())}}}};

Når en knap er aktiveret, udfører hændelseskoden og sætter et flag. Disse flag vil blive refereret og nulstillet i hovedsløjfen. Hovedløkken venter simpelthen på en ændring i knaptilstanden og sender derefter IR -kommandoer ved hjælp af overførselsfunktionen, der er tilgængelig fra PhidgetIR API.

mens (sandt) {hvis (tvButtonActivated) {

tvButtonActivated = falsk; Log.log (LogLevel. INFO, "ÆNDRING AF KILDE - TV"); ir.transmit (sourceButtonString, codeInfo); Tråd. Sover (500); ir.transmit (rightButtonString, codeInfo); Tråd. Sover (500); ir.transmit (enterButtonString, codeInfo);} hvis (otherButtonActivated) {otherButtonActivated = false; Log.log (LogLevel. INFO, "ÆNDRING AF KILDE - DVD"); ir.transmit (sourceButtonString, codeInfo); Tråd. Sover (500); ir.transmit (leftButtonString, codeInfo); Tråd. Sover (500); ir.transmit (enterButtonString, codeInfo);} Thread.sleep (250);}

Trin 11: Software - CIR -kommandoer

Software - CIR -kommandoer
Software - CIR -kommandoer

Her er et eksempel på, hvordan du opretter en kommando (en volumen op -kommando i dette tilfælde):

// IR -kode

IRCodeInfo sourceButtonCI = ny IRCodeInfo (); String volumeUp = "77e1d0f0"; // Konfigurer kildeknap 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;

For at få oplysningerne til denne kommando brugte jeg simpelthen det PhidgetIR -eksempel, der følger med Phidget -bibliotekerne. Efter at have peget fjernbetjeningen mod PhidgetIR og holdt volumen op -knappen nede, “lærer” IR -koden og udfylder eksemplet. Disse oplysninger kan derefter simpelthen kopieres til koden.

Trin 12: Kørsel af programmet

Java -filen kan skrives og kompileres på en ekstern computer. Placer PhidgetRemote.java og phidget22.jar i den samme mappe, og kør følgende kommando:

Windowsjavac -classpath.; Phidget22.jar PhidgetRemote.java

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

Efter kompilering kopieres de genererede klassefiler til PhidgetSBC4 og konfigureres til at køre ved opstart.

Trin 13: Resultat

Da jeg gav fjernbetjeningen til min kærestes bedstefar og viste ham, hvordan den skulle bruges, blev han overrasket over, hvor enkelt det var. Tjek videoen for at se den i aktion!

Fjernbetjeningskonkurrence 2017
Fjernbetjeningskonkurrence 2017
Fjernbetjeningskonkurrence 2017
Fjernbetjeningskonkurrence 2017

Tredje pris i fjernbetjeningskonkurrencen 2017

Anbefalede: