Innholdsfortegnelse:

Teknologi for bestefaren din: 13 trinn (med bilder)
Teknologi for bestefaren din: 13 trinn (med bilder)

Video: Teknologi for bestefaren din: 13 trinn (med bilder)

Video: Teknologi for bestefaren din: 13 trinn (med bilder)
Video: Церковь скрыла мотивы Куликовской Битвы 2024, Desember
Anonim
Image
Image

Hvor mange ganger har du dratt til besteforeldrenes hus for å hjelpe med et "teknologiproblem" som endte med å være en frakoblet strømkabel, et dødt fjernbatteri eller ikke kunne bytte kilde på TV -en? Jeg vet at for meg skjer dette ganske ofte. Selv om de fleste av problemene deres kan løses ved å løpe til butikken for noen nye AA -er, kan de noen ganger dra nytte av en mer tilpasset løsning.

For eksempel fikk bestefaren til kjæresten min en ny fjernsyn, og vi prøvde å lære ham å endre kilden slik at han kunne bytte mellom DVD -er og TV - men han kunne ikke finne ut av det. Han har også å gjøre med sviktende syn og er ikke så interessert i å huske kompliserte prosesser, han vil bare se på showene hans når han vil. Etter å ha forsøkt å forklare trinnene rolig under vårt siste besøk uten særlig hell, bestemte jeg meg for at jeg bare ville gjøre ham til sin egen enkle to-knappers fjernkontroll. Dette ville tillate ham å endre inngangskilden på fjernsynet smertefritt, og bytte mellom sine elskede Matlock DVDer og Price is Right med letthet.

Trinn 1: Materialer

  • PhidgetIR
  • PhidgetSBC4 (eller hvilken som helst enkelt bordcomputer som Raspberry Pi)
  • Loddejern
  • Sidekuttere
  • Wire strippere
  • Jumper Wires
  • USB-kabel
  • Phidget -kabel
  • Innhegning
  • Gjennomgående hullhoder
  • Krympeslange

Trinn 2: Planlegging

3D -utskrift
3D -utskrift

For å lage fjernkontrollen, trengte jeg muligheten til å sende forbrukerinfrarøde (CIR) kommandoer til fjernsynet. Jeg bestemte meg for å bruke PhigetIR til denne oppgaven. PhidgetIR er en USB -kontrollert enhet som har muligheten til både å sende og motta CIR -kommandoer. Jeg valgte dette av flere grunner:

  • Jeg ønsket å fullføre dette prosjektet så snart som mulig og ta det i bruk, så tanken på å bryte ut oscilloskopet og brødbrettet var ikke tiltalende. Hvor sannsynlig er det også at mine håndlodde kretser fortsatt vil fungere om et år eller to?
  • PhidgetIR har muligheten til å "lære" CIR -kommandoer, noe som gjør utviklingen ekstremt enkel.
  • Du kan bruke nesten alle vanlige programmeringsspråk med PhidgetIR. Dette betydde at jeg kunne bruke Java og få ting ferdig raskt.
  • Til slutt jobber jeg for Phidgets, så jeg er komfortabel med API, og det er alltid reserveenheter som ligger rundt.

Fordi jeg valgte å bruke PhidgetIR, trengte jeg en datamaskin for å kjøre den av. Jeg ønsket at dette prosjektet skulle være en frittstående applikasjon, omtrent som en vanlig fjernkontroll, så en stasjonær eller bærbar datamaskin var ute. Jeg valgte å bruke en PhidgetSBC4 (en enbrettet datamaskin som kjører Debian Linux), fordi den tillot meg å koble til begge trykknappene uten ekstra maskinvare. De kan enkelt kobles direkte til den innebygde VINT-huben. Merk: du kan også bruke en Raspberry Pi til dette prosjektet. Til slutt, i tillegg til å være funksjonelt forsvarlig, ønsket jeg at dette prosjektet skulle se bra ut, så jeg bestemte meg for at et 3D -trykt kabinett ville være nødvendig.

Trinn 3: 3D -utskrift

3D -utskrift
3D -utskrift
3D -utskrift
3D -utskrift

For dette prosjektet ble Geomagic brukt til å modellere skapet. Det er 3D -trinnsfiler tilgjengelig for både PhidgetIR og PhidgetSBC4 som forenklet prosessen. Noen beslutninger ble tatt i løpet av dette trinnet angående størrelsen og funksjonaliteten til skapet:

  • PhidgetIR har to IR -lysdioder som må peke mot TV -en for å sende kommandoer. I stedet for å designe kabinettet rundt PhidgetIR -kortet, kan IR -lysdiodene desolderes og limes inn i hullene på siden av kabinettet. PhidgetIR -kortet kan deretter monteres vekk fra lysdiodene, ved å bruke det tomme rommet.
  • VINT Hub -kontaktene på PhidgetSBC4 kan bøyes oppover, noe som fortsatt vil gi tilgang til trykknapptilkoblingene, og vil også forhindre at du må lage et større kabinett.

Jeg bestemte meg også for å legge til en etikett for knappene og en etikett som indikerer retningen den skal vende, slik at IR -lysdiodene peker i riktig retning. Jeg trykte kabinettet lokalt av svart ABS -plast.

Trinn 4: Montering - Fjern lysdiodene

Montering - Fjern lysdiodene
Montering - Fjern lysdiodene
Montering - Fjern lysdiodene
Montering - Fjern lysdiodene
Montering - Fjern lysdiodene
Montering - Fjern lysdiodene

IR -lysdiodene vil til slutt bli limt inn i hull på siden av kabinettet. Dette betyr at de først må avloddes.

Trinn 5: Montering - Legg gjennom hullhoder

Montering - Legg gjennom hullhoder
Montering - Legg gjennom hullhoder
Montering - Legg gjennom hullhoder
Montering - Legg gjennom hullhoder

Deretter ble det lagt til gjennomgående hullhoder der lysdiodene pleide å være, noe som gjorde det enkelt å koble dem til med en 4-pinners jumper wire. Bruk varmekrympeslanger for å forhindre utilsiktet kontakt.

Trinn 6: Montering - Fest lysdioder

Montering - Fest lysdioder
Montering - Fest lysdioder
Montering - Fest lysdioder
Montering - Fest lysdioder

Lim LED -lampene inn på siden av kabinettet.

Trinn 7: Montering - Fest PhidgetIR

Montering - Fest PhidgetIR
Montering - Fest PhidgetIR
Montering - Fest PhidgetIR
Montering - Fest PhidgetIR
Montering - Fest PhidgetIR
Montering - Fest PhidgetIR

Fest PhidgetIR til kabinettet, og koble til lysdiodene.

Trinn 8: Montering - Legge til knapper

Montering - Legge til knapper
Montering - Legge til knapper
Montering - Legge til knapper
Montering - Legge til knapper
Montering - Legge til knapper
Montering - Legge til knapper

Trykknappene må kobles til den innebygde VINT-huben på PhidgetSBC, så jeg kuttet en Phidget-kabel i to og loddet endene til knappene. Vær oppmerksom på at bare den hvite ledningen (signalet) og den svarte (bakken) er nødvendig.

Trinn 9: Montering - sette alt sammen

Montering - sette alt sammen
Montering - sette alt sammen
Montering - sette alt sammen
Montering - sette alt sammen

Noe kabelhåndtering var nødvendig for å få alt sammen, men kabinettet fungerte bra.

Trinn 10: Programvare - kode

Det er bare en enkelt Java -fil som kreves for dette prosjektet, som du finner her. Programmet bruker ett PhidgetIR -objekt og to DigitalInput -objekter. Du kan lage disse objektene slik:

PhidgetIR ir = ny PhidgetIR ();

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

De digitale inngangsobjektene er kartlagt til en fysisk trykknapp på VINT -huben. Vedlegg, løs, feil og endringer i hendelser er også abonnert 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 ();

Statsendringslytteren som refereres til ovenfor ser slik ut:

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

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

Når en knapp er aktivert, vil hendelseskoden utføre og sette et flagg. Disse flaggene blir referert til og tilbakestilt i hovedsløyfen. Hovedløkken venter ganske enkelt på en endring i knappestatusen, og sender deretter IR -kommandoer ved hjelp av overføringsfunksjonen som er tilgjengelig fra PhidgetIR API.

mens (true) {if (tvButtonActivated) {

tvButtonActivated = false; Log.log (LogLevel. INFO, "ENDRE KILDE - 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, "ENDRE 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);}

Trinn 11: Programvare - CIR -kommandoer

Programvare - CIR -kommandoer
Programvare - CIR -kommandoer

Her er et eksempel på hvordan du oppretter en kommando (en volum opp -kommando i dette tilfellet):

// IR -kode

IRCodeInfo sourceButtonCI = ny IRCodeInfo (); String volumeUp = "77e1d0f0"; // Sett opp kildeknapp 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 å få informasjonen for denne kommandoen brukte jeg ganske enkelt PhidgetIR -eksemplet som følger med Phidget -bibliotekene. Etter å ha pekt fjernkontrollen mot PhidgetIR og holdt nede volum opp -knappen, "lærer" IR -koden og fyller ut eksemplet. Denne informasjonen kan deretter enkelt kopieres til koden.

Trinn 12: Kjøre programmet

Java -filen kan skrives og kompileres på en ekstern datamaskin. Plasser PhidgetRemote.java og phidget22.jar i samme mappe og kjør følgende kommando:

Windowsjavac -klassebane.; Phidget22.jar PhidgetRemote.java

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

Etter kompilering kopierer du de genererte klassefilene til PhidgetSBC4, og konfigurerer den til å kjøre ved oppstart.

Trinn 13: Resultat

Da jeg ga fjernkontrollen til bestefaren til kjæresten min og viste ham hvordan den skulle brukes, ble han overrasket over hvor enkelt det var. Sjekk videoen for å se den i aksjon!

Fjernkontrollkonkurranse 2017
Fjernkontrollkonkurranse 2017
Fjernkontrollkonkurranse 2017
Fjernkontrollkonkurranse 2017

Tredje premie i fjernkontrollkonkurransen 2017

Anbefalt: