
Innholdsfortegnelse:
- Trinn 1: Materialer
- Trinn 2: Planlegging
- Trinn 3: 3D -utskrift
- Trinn 4: Montering - Fjern lysdiodene
- Trinn 5: Montering - Legg gjennom hullhoder
- Trinn 6: Montering - Fest lysdioder
- Trinn 7: Montering - Fest PhidgetIR
- Trinn 8: Montering - Legge til knapper
- Trinn 9: Montering - sette alt sammen
- Trinn 10: Programvare - kode
- Trinn 11: Programvare - CIR -kommandoer
- Trinn 12: Kjøre programmet
- Trinn 13: Resultat
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-23 15:02


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

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


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



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


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


Lim LED -lampene inn på siden av kabinettet.
Trinn 7: Montering - Fest PhidgetIR



Fest PhidgetIR til kabinettet, og koble til lysdiodene.
Trinn 8: 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


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

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!


Tredje premie i fjernkontrollkonkurransen 2017
Anbefalt:
Steam Punk UPSen din for å få timer med oppetid for din Wi-Fi-ruter: 4 trinn (med bilder)

Steam Punk UPSen din for å få timer med oppetid for din Wi-Fi-ruter: Det er noe grunnleggende ubehagelig med at UPS-en din skal konvertere sin 12V DC-batteristrøm til 220V vekselstrøm, slik at transformatorene som kjører ruteren din og fiber ONT kan konvertere den tilbake til 12V DC! Du er også imot [vanligvis
HAIKU, når mote og teknologi smelter sammen. TfCD -prosjekt. TU Delft .: 4 trinn

HAIKU, når mote og teknologi smelter sammen. TfCD -prosjekt. TU Delft .: Haiku er et konsept utviklet av Mucahit Aydin for et TU Delft MSc -kurs. Hovedprinsippet for denne kimonoen er å utvide følelsen av å bli klemt av noen. For å gjøre det, vil kimonoen avsløre et mønster etter å ha blitt berørt. Hvordan? Av implementerer
Bærbar teknologi: Air Drums: 5 trinn

Wearable Tech: Air Drums: Målet vårt med dette prosjektet var å lage et bærbart trommesett av noen akselerometre og piezo -plater. Tanken var at hvis det ble truffet en hånd, spilte det en snare støy; eller hvis du trykker på en fot, vil en hi-hat eller bastrommelyd spille. Å kontrollere
CityCoaster - Bygg din egen Augmented Reality Coaster for din virksomhet (TfCD): 6 trinn (med bilder)

CityCoaster - Bygg din egen Augmented Reality Coaster for Your Business (TfCD): En by under koppen din! CityCoaster er et prosjekt som tenker på et produkt for Rotterdam Haag flyplass, som kan uttrykke byens identitet og underholde klientene i salongområdet med utvidet virkelighet. I et miljø som
Bygg din egen Butler Robot !!! - Opplæring, bilder og video: 58 trinn (med bilder)

Bygg din egen Butler Robot !!! - Opplæring, bilder og video: EDIT: Mer informasjon om prosjektene mine, sjekk ut det nye nettstedet mitt: narobo.com. Jeg driver også med rådgivning innen robotikk, mekatronikk og spesialeffekter/prosjekter. Sjekk ut nettstedet mitt - narobo.com for flere detaljer. Har noen gang ønsket en butlerrobot som snakker med deg