Indholdsfortegnelse:
- Trin 1: Materialer
- Trin 2: Planlægning
- Trin 3: 3D -udskrivning
- Trin 4: Montering - Fjern lysdioderne
- Trin 5: Montering - Tilføj gennemgående huller
- Trin 6: Montering - Sæt lysdioder på
- Trin 7: Montering - Fastgør PhidgetIR
- Trin 8: Montering - Tilføjelse af knapper
- Trin 9: Montering - Sæt alt sammen
- Trin 10: Software - kode
- Trin 11: Software - CIR -kommandoer
- Trin 12: Kørsel af programmet
- Trin 13: Resultat
Video: Teknologi til din bedstefar: 13 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
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
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
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
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
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å
Lim LED'erne ind i siden af kabinettet.
Trin 7: Montering - Fastgør PhidgetIR
Fastgør PhidgetIR til kabinettet, og tilslut lysdioderne.
Trin 8: 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
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
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!
Tredje pris i fjernbetjeningskonkurrencen 2017
Anbefalede:
Steam Punk din UPS for at få timers oppetid til din Wi-Fi-router: 4 trin (med billeder)
Steam Punk din UPS for at få timers oppetid til din Wi-Fi-router: Der er noget fundamentalt ubehageligt ved at få din UPS til at konvertere sin 12V DC-batteristrøm til 220V vekselstrøm, så transformerne, der kører din router og fiber ONT, kan konvertere den tilbage til 12V DC! Du er også oppe imod [typisk
Sådan laver du din egen WIFI -gateway til at forbinde din Arduino til IP -netværk?: 11 trin (med billeder)
Sådan laver du din egen WIFI -gateway til at forbinde din Arduino til IP -netværk?: Som så mange mennesker synes du, at Arduino er en meget god løsning til hjemmeautomatisering og robotik! Men når det kommer til kommunikation, kommer Arduinos bare med serielle links. Jeg arbejder på en robot, der skal være permanent forbundet med en server, der kører ar
Opdager bedstefar for længe ude af sengen: 7 trin
Opdagelse af bedstefar for længe ude af sengen: Baggrund Selvom der har været sengealarmovervågninger i mange år, der bare er enkle lukninger til sengepuder, der ringer en lokal alarm til plejepersonale, når nogen kommer ud af sengen, har der ikke været en måde for fjernfamilie omsorgspersoner til at spore en
Tips til at gøre din projektidé til virkelighed: 6 trin (med billeder)
Tips til at gøre dit projektidé til virkelighed: Den mest kritiske del af et vellykket projekt er at have en virkelig god idé, men nogle gange er ideen den lette del! Derefter kommer det hårde arbejde med at gøre et tilfældigt genialt glimt til noget, som folk " ooh " og "ah" ov
CityCoaster - Byg din egen Coaster for augmented reality til din virksomhed (TfCD): 6 trin (med billeder)
CityCoaster - Byg din egen Augmented Reality Coaster for din virksomhed (TfCD): En by under din kop! CityCoaster er et projekt, der tænker på et produkt til Rotterdam i Haag Lufthavn, som kunne udtrykke byens identitet og underholde klienterne i loungeområdet med augmented reality. I et miljø som sådan