Satura rādītājs:

Tehnoloģijas jūsu vectēvam: 13 soļi (ar attēliem)
Tehnoloģijas jūsu vectēvam: 13 soļi (ar attēliem)

Video: Tehnoloģijas jūsu vectēvam: 13 soļi (ar attēliem)

Video: Tehnoloģijas jūsu vectēvam: 13 soļi (ar attēliem)
Video: Joka pēc alfabēts / Funny Alphabet 2024, Novembris
Anonim
Image
Image

Cik reizes esat devies pie vecvecāku mājām, lai palīdzētu atrisināt “tehnoloģiju problēmu”, kas galu galā bija atvienots strāvas kabelis, izlādējusies tālvadības baterija vai nespēja pārslēgt televizora avotu? Es zinu, ka man tas notiek diezgan bieži. Lai gan lielāko daļu problēmu var atrisināt, vienkārši skrienot uz veikalu pēc dažām jaunām AA, dažreiz viņi varētu gūt labumu no pielāgota risinājuma.

Piemēram, manas draudzenes vectēvs ieguva jaunu televizoru, un mēs mēģinājām viņam iemācīt mainīt avotu, lai viņš varētu pārslēgties starp DVD un TV, bet viņš vienkārši nevarēja to saprast. Viņš arī saskaras ar redzes traucējumiem un nav pārāk ieinteresēts mēģināt atcerēties sarežģītus procesus, viņš vienkārši vēlas skatīties viņa izrādes, kad vēlas. Pēc tam, kad bez lieliem panākumiem mēģināju mierīgi izskaidrot mūsu pēdējās vizītes laikā veiktos soļus, es nolēmu, ka vienkārši izveidošu viņam savu vienkāršo divu pogu tālvadības pulti. Tas ļautu viņam nesāpīgi mainīt televizora ievades avotu, viegli pārslēdzoties starp saviem mīļotajiem Matlock DVD diskiem un cenu.

1. solis: materiāli

  • PhidgetIR
  • PhidgetSBC4 (vai jebkurš viens borta dators, piemēram, Raspberry Pi)
  • Lodāmurs
  • Sānu griezēji
  • Stiepļu noņēmēji
  • Jumper vadi
  • USB kabelis
  • Phidget kabelis
  • Korpuss
  • Caurumu caurumi
  • Termiski saraušanās caurules

2. solis: plānošana

3D druka
3D druka

Lai izveidotu tālvadības pulti, man bija nepieciešama iespēja nosūtīt televīzijai patērētāju infrasarkanās (CIR) komandas. Es nolēmu šim uzdevumam izmantot PhigetIR. PhidgetIR ir ar USB vadāma ierīce, kas spēj gan nosūtīt, gan saņemt CIR komandas. Es izvēlējos šo vairāku iemeslu dēļ:

  • Es gribēju pēc iespējas ātrāk pabeigt šo projektu un to izmantot, tāpēc doma par osciloskopa un maizes dēļa izjaukšanu nebija pievilcīga. Turklāt, cik liela ir iespējamība, ka manas ar roku pielodētās shēmas pēc gada vai diviem joprojām darbosies?
  • PhidgetIR ir iespēja “apgūt” CIR komandas, padarot izstrādi ārkārtīgi vienkāršu.
  • Ar PhidgetIR varat izmantot gandrīz jebkuru galveno programmēšanas valodu. Tas nozīmēja, ka es varu izmantot Java un ātri pabeigt lietas.
  • Visbeidzot, es strādāju pie Phidgets, tāpēc esmu apmierināts ar API, un vienmēr ir pieejamas rezerves ierīces.

Tā kā es izvēlējos izmantot PhidgetIR, man vajadzēja datoru, lai to palaistu. Es gribēju, lai šis projekts būtu atsevišķa lietojumprogramma, līdzīgi kā parasta tālvadības pults, tāpēc darbvirsma vai klēpjdators nebija pieejams. Es izvēlējos izmantot PhidgetSBC4 (viena paneļa datoru, kurā darbojas Debian Linux), jo tas ļāva man saskarties ar abām spiedpogām bez papildu aparatūras. Tos var vienkārši pieslēgt tieši iebūvētajam VINT centrmezglam. Piezīme: šim projektam varat izmantot arī Raspberry Pi. Visbeidzot, papildus tam, ka tas ir funkcionāli stabils, es vēlējos, lai šis projekts izskatītos lieliski, tāpēc es nolēmu, ka būs nepieciešams 3D drukāts korpuss.

3. darbība: 3D drukāšana

3D druka
3D druka
3D druka
3D druka

Šim projektam korpusa modelēšanai tika izmantots Geomagic. Gan PhidgetIR, gan PhidgetSBC4 ir pieejami 3D soļu faili, kas vienkāršoja procesu. Šajā posmā tika pieņemti daži lēmumi par korpusa izmēru un funkcionalitāti:

  • Lai nosūtītu komandas, PhidgetIR ir divas IR gaismas diodes, kurām jābūt vērstām pret televizoru. Tā vietā, lai izstrādātu korpusu ap PhidgetIR plati, IR gaismas diodes varētu atvienot un ielīmēt caurumos korpusa sānos. Pēc tam PhidgetIR dēli varētu uzstādīt prom no gaismas diodēm, izmantojot tukšo vietu.
  • PhingetSBC4 VINT Hub savienotāji varētu būt saliekti uz augšu, kas joprojām ļautu piekļūt spiedpogas savienojumiem, kā arī neļautu izveidot lielāku korpusu.

Es arī nolēmu pievienot etiķeti pogām un etiķeti, kas norāda virzienu, uz kuru tai vajadzētu vērsties, lai IR gaismas diodes būtu vērstas pareizajā virzienā. Es izdrukāju korpusu lokāli no melnas ABS plastmasas.

4. solis: montāža - noņemiet gaismas diodes

Montāža - noņemiet gaismas diodes
Montāža - noņemiet gaismas diodes
Montāža - noņemiet gaismas diodes
Montāža - noņemiet gaismas diodes
Montāža - noņemiet gaismas diodes
Montāža - noņemiet gaismas diodes

IR gaismas diodes galu galā tiks pielīmētas caurumos korpusa sānos. Tas nozīmē, ka vispirms tie ir jāatvieno.

5. darbība: montāža - pievienojiet caurumu galviņas

Montāža - pievienojiet caurumu caurumus
Montāža - pievienojiet caurumu caurumus
Montāža - pievienojiet caurumu caurumus
Montāža - pievienojiet caurumu caurumus

Tālāk tika pievienoti caurumi caurumiem, kur agrāk bija gaismas diodes, kas atviegloja to savienošanu, izmantojot 4 kontaktu džemperi. Lai izvairītos no nejaušas saskares, izmantojiet termiski saraušanās caurules.

6. darbība: montāža - pievienojiet gaismas diodes

Montāža - pievienojiet gaismas diodes
Montāža - pievienojiet gaismas diodes
Montāža - pievienojiet gaismas diodes
Montāža - pievienojiet gaismas diodes

Līmējiet gaismas diodes korpusa sānos.

7. darbība: montāža - pievienojiet PhidgetIR

Montāža - pievienojiet PhidgetIR
Montāža - pievienojiet PhidgetIR
Montāža - pievienojiet PhidgetIR
Montāža - pievienojiet PhidgetIR
Montāža - pievienojiet PhidgetIR
Montāža - pievienojiet PhidgetIR

Pievienojiet PhidgetIR korpusam un pievienojiet gaismas diodes.

8. darbība: montāža - pogu pievienošana

Montāža - pogu pievienošana
Montāža - pogu pievienošana
Montāža - pogu pievienošana
Montāža - pogu pievienošana
Montāža - pogu pievienošana
Montāža - pogu pievienošana

Spiedpogas ir jāpievieno PhidgetSBC iebūvētajam VINT centrmezglam, tāpēc es pārgriezu Phidget kabeli uz pusēm un pielodēju galus pie pogām. Ņemiet vērā, ka ir nepieciešams tikai balts vads (signāls) un melns (zemējums).

9. solis: montāža - visu salieciet kopā

Montāža - visu salikt kopā
Montāža - visu salikt kopā
Montāža - visu salikt kopā
Montāža - visu salikt kopā

Lai visu savāktu kopā, bija nepieciešama zināma kabeļu pārvaldība, tomēr korpuss strādāja labi.

10. solis: programmatūra - kods

Šim projektam ir nepieciešams tikai viens Java fails, kuru varat atrast šeit. Programma izmanto vienu PhidgetIR objektu un divus DigitalInput objektus. Šos objektus var izveidot šādi:

PhidgetIR ir = jauns PhidgetIR ();

DigitalInput tvButton = new DigitalInput (); DigitalInput otherButton = new DigitalInput ();

Digitālās ievades objekti ir kartēti ar fizisku spiedpogu VINT centrmezglā. Pievienošanas, atvienošanas, kļūdu un stāvokļa maiņas notikumi tiek abonēti arī:

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

Iepriekš minētais stāvokļa izmaiņu klausītājs izskatās šādi:

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

DigitalInput ch = (DigitalInput) disce.getSource (); mēģiniet {if (ch.getHubPort () == 4 && disce.getState () == true) {tvButtonActivated = true;} if (ch.getHubPort () == 5 && disce.getState () == true) {otherButtonActivated = true;}} catch (PhidgetException ex) {System.out.println ("Kļūda:"+ ex.getDescription ());}}};

Kad poga ir aktivizēta, notikuma kods tiks izpildīts un iestatīs karodziņu. Uz šiem karogiem tiks atsaukta atsauce un tie tiks atiestatīti galvenajā cilpā. Galvenā cilpa vienkārši gaida pogu stāvokļa izmaiņas un pēc tam nosūta IS komandas, izmantojot pārraides funkciju, kas ir pieejama no PhidgetIR API.

while (true) {if (tvButtonActivated) {

tvButtonActivated = nepatiess; Log.log (LogLevel. INFO, "MAINĪŠANAS AVOTS - TV"); ir.transmit (sourceButtonString, codeInfo); Vītne.miega (500); ir.transmit (rightButtonString, codeInfo); Vītne.miega (500); ir.transmit (enterButtonString, codeInfo);} if (otherButtonActivated) {otherButtonActivated = false; Log.log (LogLevel. INFO, "MAINĪŠANAS AVOTS - DVD"); ir.transmit (sourceButtonString, codeInfo); Vītne.miega (500); ir.transmit (leftButtonString, codeInfo); Vītne.miega (500); ir.transmit (enterButtonString, codeInfo);} Thread.sleep (250);}

11. solis: programmatūra - CIR komandas

Programmatūra - CIR komandas
Programmatūra - CIR komandas

Šeit ir piemērs, kā izveidot komandu (šajā gadījumā skaļuma palielināšanas komanda):

// IR kods

IRCodeInfo sourceButtonCI = jauns IRCodeInfo (); String volumeUp = "77e1d0f0"; // Iestatīt avota pogas 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;

Lai iegūtu informāciju par šo komandu, es vienkārši izmantoju PhidgetIR piemēru, kas pievienots Phidget bibliotēkām. Pēc tam, kad tālvadības pults ir norādīta uz PhidgetIR un nospiesta skaļuma palielināšanas poga, IS “uzzina” kodu un aizpilda piemēru. Pēc tam šo informāciju var vienkārši iekopēt kodā.

12. solis: programmas palaišana

Java failu var rakstīt un apkopot ārējā datorā. Ievietojiet PhidgetRemote.java un phidget22.jar tajā pašā mapē un palaidiet šādu komandu:

Windowsjavac klases ceļš.; Phidget22.jar PhidgetRemote.java

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

Pēc apkopošanas kopējiet ģenerētos klases failus uz PhidgetSBC4 un konfigurējiet, lai tie darbotos sāknēšanas laikā.

13. darbība. Rezultāts

Kad iedevu tālvadības pulti draudzenes vectēvam un parādīju, kā to lietot, viņš bija pārsteigts, cik tas ir vienkārši. Apskatiet video, lai redzētu to darbībā!

Tālvadības pults konkurss 2017
Tālvadības pults konkurss 2017
Tālvadības pults konkurss 2017
Tālvadības pults konkurss 2017

Trešā balva tālvadības konkursā 2017

Ieteicams: