Talaan ng mga Nilalaman:

Teknolohiya para sa Iyong Lolo: 13 Mga Hakbang (na may Mga Larawan)
Teknolohiya para sa Iyong Lolo: 13 Mga Hakbang (na may Mga Larawan)

Video: Teknolohiya para sa Iyong Lolo: 13 Mga Hakbang (na may Mga Larawan)

Video: Teknolohiya para sa Iyong Lolo: 13 Mga Hakbang (na may Mga Larawan)
Video: Kapuso Mo, Jessica Soho: Pamahiin sa litrato 2024, Disyembre
Anonim
Image
Image

Ilang beses kang pumunta sa bahay ng iyong mga lolo't lola upang tumulong sa isang "problema sa teknolohiya" na nauwi sa isang hindi naka-plug na power cable, isang patay na malayuang baterya o hindi maililipat ang mapagkukunan sa kanilang TV? Alam ko na para sa akin, madalas itong nangyayari. Habang ang karamihan sa kanilang mga problema ay maaaring malutas sa pamamagitan lamang ng pagtakbo sa tindahan para sa ilang mga bagong AA, kung minsan ay makikinabang sila mula sa isang mas pasadyang solusyon.

Halimbawa, ang lolo ng aking kasintahan ay nakakuha ng isang bagong telebisyon at sinubukan naming turuan siya kung paano baguhin ang pinagmulan upang makapagpalipat-lipat siya sa pagitan ng mga DVD at TV - ngunit hindi niya ito mawari. Nakikipagtulungan din siya sa hindi pagtupad ng paningin at hindi masyadong interesado na subukang tandaan ang mga kumplikadong proseso, nais lamang niyang panoorin ang kanyang mga palabas kapag nais niya. Matapos subukang kalmadong ipaliwanag ang mga hakbang sa aming huling pagbisita nang walang labis na tagumpay, napagpasyahan kong gagawin ko lang siya sa sarili niyang simpleng dalawang-pindutan ng remote control. Papayagan nitong baguhin niya ang mapagkukunan ng pag-input sa kanyang telebisyon nang walang sakit, lumilipat sa pagitan ng kanyang minamahal na mga Matlock DVD at ang Presyo ay Tamang madali.

Hakbang 1: Mga Kagamitan

  • PhidgetIR
  • PhidgetSBC4 (o anumang solong board computer tulad ng Raspberry Pi)
  • Panghinang
  • Mga Cutter sa gilid
  • Mga Striper ng Wire
  • Jumper Wires
  • Kable ng USB
  • Phidget Cable
  • Enclosure
  • Mga header na through-hole
  • Heat-shrink tubing

Hakbang 2: Pagpaplano

3D Print
3D Print

Upang likhain ang remote, kailangan ko ng kakayahang magpadala ng mga consumer infrared (CIR) na mga utos sa telebisyon. Napagpasyahan kong gamitin ang PhigetIR para sa gawaing ito. Ang PhidgetIR ay isang aparato na kinokontrol ng USB na may kakayahang parehong magpadala at tumanggap ng mga utos ng CIR. Pinili ko ito sa ilang kadahilanan:

  • Nais kong tapusin ang proyektong ito sa lalong madaling panahon at gamitin ito, kaya't ang pag-iisip na masira ang aking oscilloscope at breadboard ay hindi nakakaakit. Gayundin, gaano malamang na ang aking mga solder na circuit ay gagana pa rin sa isang taon o dalawa?
  • Ang PhidgetIR ay may kakayahang "malaman" ang mga utos ng CIR na ginagawang napaka-simple ang pag-unlad.
  • Maaari mong gamitin ang halos anumang pangunahing wika ng programa sa PhidgetIR. Nangangahulugan ito na magagamit ko ang Java at matatapos nang mabilis ang mga bagay.
  • Sa wakas, nagtatrabaho ako para sa Phidgets, kaya't komportable ako sa API, at palaging may mga ekstrang aparato na nakalatag.

Dahil pinili kong gamitin ang PhidgetIR, kailangan ko ng isang computer upang mapatakbo ito. Nais kong ang proyektong ito ay maging isang stand-alone na application, kagaya ng isang normal na remote, kaya isang desktop o laptop ang lumabas. Pinili kong gumamit ng isang PhidgetSBC4 (isang solong board computer na tumatakbo sa Debian Linux), dahil pinapayagan akong mag-interface ng parehong mga pindutan ng push nang walang anumang karagdagang hardware. Maaari lamang silang direktang mai-wire sa built-in na VINT Hub. Tandaan: maaari mo ring gamitin ang isang Raspberry Pi para sa proyektong ito. Sa wakas, bilang karagdagan sa pagiging maayos na gumagana, nais kong maging maganda ang proyektong ito, kaya't napagpasyahan kong kinakailangan ng isang 3D na naka-print na enclosure.

Hakbang 3: 3D Print

3D Print
3D Print
3D Print
3D Print

Para sa proyektong ito, ginamit ang Geomagic upang i-modelo ang enclosure. Mayroong mga 3D step file na magagamit para sa parehong PhidgetIR at PhidgetSBC4 na pinasimple ang proseso. Ang ilang mga desisyon ay ginawa sa hakbang na ito tungkol sa laki at pag-andar ng enclosure:

  • Ang PhidgetIR ay may dalawang IR LEDs na kailangang ituro patungo sa TV upang makapagpadala ng mga utos. Sa halip na ang pagdidisenyo ng enclosure sa paligid ng board ng PhidgetIR, ang IR LEDs ay maaaring masira at nakadikit sa mga butas sa gilid ng enclosure. Ang board ng PhidgetIR ay maaaring mai-mount ang layo mula sa mga LED, na ginagamit ang walang laman na puwang.
  • Ang mga konektor ng VINT Hub sa PhidgetSBC4 ay maaaring baluktot paitaas, na papayagan pa rin ang pag-access para sa mga koneksyon ng pushbutton, at pipigilan din na lumikha ng isang mas malaking enclosure.

Nagpasya din akong magdagdag ng isang label para sa mga pindutan at isang label na nagpapahiwatig ng direksyon na dapat nitong harapin upang ang mga IR LED ay maituro sa tamang direksyon. Inilimbag ko ang enclosure na lokal sa labas ng itim na plastik na ABS.

Hakbang 4: Assembly - Alisin ang mga LED

Assembly - Alisin ang mga LED
Assembly - Alisin ang mga LED
Assembly - Alisin ang mga LED
Assembly - Alisin ang mga LED
Assembly - Alisin ang mga LED
Assembly - Alisin ang mga LED

Ang mga IR LED ay kalaunan ay ididikit sa mga butas sa gilid ng enclosure. Nangangahulugan ito na kailangan muna nilang mamingaw.

Hakbang 5: Assembly - Magdagdag Sa Mga Hole Header

Assembly - Idagdag Sa pamamagitan ng Mga Header ng Hole
Assembly - Idagdag Sa pamamagitan ng Mga Header ng Hole
Assembly - Idagdag Sa pamamagitan ng Mga Header ng Hole
Assembly - Idagdag Sa pamamagitan ng Mga Header ng Hole

Susunod, idinagdag ang mga through-hole header kung saan dati ang mga LED, na ginagawang madali silang kumonekta gamit ang isang 4-pin jumper wire. Gumamit ng heat-shrink tubing upang maiwasan ang hindi sinasadyang pakikipag-ugnay.

Hakbang 6: Assembly - Maglakip ng mga LED

Assembly - Maglakip ng mga LED
Assembly - Maglakip ng mga LED
Assembly - Maglakip ng mga LED
Assembly - Maglakip ng mga LED

Idikit ang mga LED sa gilid ng enclosure.

Hakbang 7: Assembly - Ikabit ang PhidgetIR

Assembly - Ikabit ang PhidgetIR
Assembly - Ikabit ang PhidgetIR
Assembly - Ikabit ang PhidgetIR
Assembly - Ikabit ang PhidgetIR
Assembly - Ikabit ang PhidgetIR
Assembly - Ikabit ang PhidgetIR

Ikabit ang PhidgetIR sa enclosure, at ikonekta ang mga LED.

Hakbang 8: Assembly - Pagdaragdag ng Mga Pindutan

Assembly - Pagdaragdag ng Mga Pindutan
Assembly - Pagdaragdag ng Mga Pindutan
Assembly - Pagdaragdag ng Mga Pindutan
Assembly - Pagdaragdag ng Mga Pindutan
Assembly - Pagdaragdag ng Mga Pindutan
Assembly - Pagdaragdag ng Mga Pindutan

Ang mga pindutan ng itulak ay kailangang ikonekta sa built-in na VINT Hub sa PhidgetSBC, kaya't pinutol ko ang isang Phidget Cable sa kalahati at nahinang ang mga dulo sa mga pindutan. Tandaan na ang puting wire (signal) at itim (ground) lamang ang kinakailangan.

Hakbang 9: Assembly - Pinagsasama ang Lahat

Assembly - Pinagsasama ang Lahat
Assembly - Pinagsasama ang Lahat
Assembly - Pinagsasama ang Lahat
Assembly - Pinagsasama ang Lahat

Kinakailangan ang ilang pamamahala sa cable upang mapagsama ang lahat, subalit, mahusay na gumana ang enclosure.

Hakbang 10: Software - Code

Mayroon lamang isang solong file ng Java na kinakailangan para sa proyektong ito na maaari mong makita dito. Gumagamit ang programa ng isang bagay na PhidgetIR, at dalawang mga bagay na DigitalInput. Maaari mong likhain ang mga bagay na ito tulad nito:

PhidgetIR ir = bagong PhidgetIR ();

DigitalInput tv Button = bagong DigitalInput (); DigitalInput other Button = bagong DigitalInput ();

Ang mga bagay na Digital Input ay nai-map sa isang pisikal na pindutan ng pindutan sa VINT Hub. Ang mga kaganapan sa pag-attach, pag-detach, error, at pagbabago ng estado ay naka-subscribe din sa:

tv.setIsHubPortDevice (totoo);

tvButton.setHubPort (4); tvButton.addAttachListener (onAttachListener); tvButton.addDetachListener (onDetachListener); tvButton.addErrorListener (onErrorListener); tv Button.addStateChangeListener (onStateChangeListener); tv Button.bukas (); otherButton.setIsHubPortDevice (totoo); iba paTombol.setHubPort (5); otherButton.addAttachListener (onAttachListener); otherButton.addDetachListener (onDetachListener); otherButton.addErrorListener (onErrorListener); otherButton.addStateChangeListener (onStateChangeListener); iba paMga pindutan.bukas ();

Ang tagapakinig ng pagbabago ng estado na refernced sa itaas ay ganito:

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

DigitalInput ch = (DigitalInput) disce.getSource (); subukan ang {if (ch.getHubPort () == 4 && disce.getState () == true) {tvButtonActivated = true;} kung (ch.getHubPort () == 5 && disce.getState () == true) {otherButtonActivated = true;}} catch (PhidgetException ex) {System.out.println ("Error:" + ex.getDescription ());}}};

Kapag ang isang pindutan ay naaktibo, ang code ng kaganapan ay papatupad at magtatakda ng isang watawat. Ang mga watawat ay isangguni at mai-reset sa pangunahing loop. Ang pangunahing loop ay naghihintay lamang ng isang pagbabago sa estado ng pindutan, at pagkatapos ay nagpapadala ng mga utos ng IR gamit ang pagpapadala ng function na magagamit mula sa PhidgetIR API.

habang (totoo) {kung (tv ButtonActivated) {

tvButtonActivated = false; Log.log (LogLevel. INFO, "CHANGING SOURCE - TV"); ir.transmit (sourceButtonString, codeInfo); Thread.tulog (500); ir.transmit (right ButtonString, codeInfo); Thread.tulog (500); ir.transmit (enterButtonString, codeInfo);} kung (other ButtonActivated) {otherButtonActivated = false; Log.log (LogLevel. INFO, "CHANGING SOURCE - DVD"); ir.transmit (sourceButtonString, codeInfo); Thread.tulog (500); ir.transmit (leftButtonString, codeInfo); Thread.tulog (500); ir.transmit (enterButtonString, codeInfo);} Thread.s Sleep (250);}

Hakbang 11: Software - Mga Utos ng CIR

Software - Mga Utos ng CIR
Software - Mga Utos ng CIR

Narito ang isang halimbawa ng kung paano lumikha ng isang utos (isang dami ng utos sa kasong ito):

// IR Code

IRCodeInfo pinagmulan ButtonCI = bagong IRCodeInfo (); String volumeUp = "77e1d0f0"; // I-set up ang mapagkukunan ng pindutan ng mapagkukunan ButtonCI.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;

Upang makuha ang impormasyon para sa utos na ito, ginamit ko lang ang halimbawa ng PhidgetIR na kasama ng mga aklatan ng Phidget. Matapos ituro ang remote patungo sa PhidgetIR at hawakan ang volume up button, "natutunan" ng IR ang code, at pinupunan ang halimbawa. Ang impormasyong ito ay maaari lamang makopya sa code.

Hakbang 12: Pagpapatakbo ng Programa

Ang file ng Java ay maaaring nakasulat at naipon sa isang panlabas na computer. Ilagay ang PhidgetRemote.java at phidget22.jar sa parehong folder at patakbuhin ang sumusunod na utos:

Windowsjavac -classpath.; Phidget22.jar PhidgetRemote.java

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

Pagkatapos maipon, kopyahin ang nabuong mga file ng klase sa PhidgetSBC4, at i-configure ito upang tumakbo sa boot.

Hakbang 13: Resulta

Nang ibigay ko ang remote sa lolo ng aking kasintahan at ipakita sa kanya kung paano ito gamitin, namangha siya sa ganoong kasimple nito. Suriin ang video upang makita ito sa pagkilos!

Remote Control Contest 2017
Remote Control Contest 2017
Remote Control Contest 2017
Remote Control Contest 2017

Ikatlong Gantimpala sa Remote Control Contest 2017

Inirerekumendang: