Talaan ng mga Nilalaman:

USB NEC Infra-Red Transmitter at Receiver: 4 na Hakbang (na may Mga Larawan)
USB NEC Infra-Red Transmitter at Receiver: 4 na Hakbang (na may Mga Larawan)

Video: USB NEC Infra-Red Transmitter at Receiver: 4 na Hakbang (na may Mga Larawan)

Video: USB NEC Infra-Red Transmitter at Receiver: 4 na Hakbang (na may Mga Larawan)
Video: CS50 Live, Episode 009 2024, Hunyo
Anonim
USB NEC Infra-Red Transmitter at Receiver
USB NEC Infra-Red Transmitter at Receiver

Ang proyektong ito ay isang spin-off ng isa pang proyekto na pinagtatrabahuhan ko at dahil mayroong isang paligsahan sa Remote Control 2017 sa Mga Instructable naisip kong nai-post ang proyektong ito. Kaya kung gusto mo ang proyektong ito, mangyaring iboto ito. Salamat

Tulad ng nalalaman mo, ako ay isang malaking tagahanga ng mga Microchip 8-bit PIC Controller, tingnan ang:

Ginagamit ko ang JAL programming language dahil mukhang Pascal (na gusto ko rin). Ang JAL compiler at ang mga aklatan ay maaaring ma-download mula sa: https://www.justanotherlanguage.org/downloads (mag-scroll pababa para sa pinakabagong inilabas na bersyon).

Karaniwan isinusulat ko ang lahat ng aking code upang lubos kong maunawaan kung ano ang ginagawa ko ngunit para sa proyektong ito kailangan kong ikonekta ang PIC sa USB port ng PC at kaya kailangan ko ng isang serial driver ng JAL USB para sa PIC controller na ito. Ginamit ko ang USB serial driver sa package ng pag-download ng JAL na tila gumagana nang maayos. Dahil ang USB serial driver na ito ay isinulat para sa isang tukoy na PIC ginamit ko ang PIC na kung saan ay ang PIC18F14K50. Ang tagakontrol na ito ay may higit na pag-andar kaysa sa kailangan ko para sa proyektong ito, kaya kasalukuyang nasa proseso ako ng pagtatrabaho ng USB driver na ito sa isang mas simpleng bersyon ng PIC, ang PIC16F1455, na mas mura din.

Kaya tungkol saan ang proyektong ito? Sa pamamagitan ng aparato na nabanggit sa Mga Instructionable na ito maaari kang magpadala at makatanggap ng mga utos ng Infra Red Remote Control mula at patungo sa iyong PC sa pamamagitan ng USB port gamit ang sikat na NEC Infra-Red protocol. Sa ganitong paraan maaari mong subaybayan ang mga utos ng Infra-Red at makokontrol mo ang anumang aparato na gumagamit ng NEC Infra-Red Remote Control protocol. Na-decode at isinasalin ng proyekto ang mga mensahe ng Infra-Red sa isang byte ng address at isang byte ng command o sa isang paulit-ulit na mensahe. Ang address ay - syempre - ginamit upang tugunan ang isang tiyak na aparato tulad ng isang TV o isang Radio kung saan ipinahiwatig ng byte ng utos ang pagpapaandar na kailangang gampanan tulad ng Volume Up, Volume Down. Susunod sa pag-decode ng mga mensaheng ito, maaari rin silang maipadala sa pamamagitan ng Infra-Red gamit ang aparatong ito.

Hakbang 1: Ilang Impormasyon Tungkol sa NEC Infra-Red Protocol

Ilang Impormasyon Tungkol sa NEC Infra-Red Protocol
Ilang Impormasyon Tungkol sa NEC Infra-Red Protocol

Isang maikling pagpapakilala sa protokol na ito. Ang NEC Infra Red Remote Control protocol ay ginagamit sa maraming mga aparato at Mga Remote Control na maaari mong bilhin. Binabago nito ang isang signal ng Infra Red sa isang carrier ng 38 kHz at gumagamit ng pag-encode ng pulse distance para sa pag-encode ng isang lohikal na '1' at isang lohikal na '0'. Gumagamit ang protocol ng isang simpleng tseke upang makita kung ang mensahe ay OK sa pamamagitan ng pagpapadala ng parehong address at command byte at isang baligtad na bersyon ng pareho sa isa at parehong mensahe at suriin kung pareho ang mga ito pagkatapos ng pagtanggap. Kapag ang isang pindutan ay pinindot sa Remote Control nagpapadala ito ng isang kumpletong mensahe ng Infra Red na may address at utos nang isang beses. Ang pagpapanatili ng pindutan na pinindot ay magreresulta sa pagpapadala ng isang mas maikling paulit-ulit na mensahe nang walang address at impormasyon sa utos. Ang oras ng pag-uulit ng mga naihatid na mensahe habang pinapanatili ang pagpindot sa pindutan ay naayos.

Ang karagdagang impormasyon sa NEC Infra Red na protocol ay maaaring halimbawa ay matatagpuan sa:

Hakbang 2: Kinakailangan na Mga Sangkap

Mga Kinakailangan na Bahagi
Mga Kinakailangan na Bahagi
Mga Kinakailangan na Bahagi
Mga Kinakailangan na Bahagi

Kailangan mong magkaroon ng mga sumusunod na sangkap para sa proyektong ito:

  • PIC microcontroller PIC18F14K50, tingnan ang:
  • Crystal 12 MHz
  • Ceramic capacitor: 2 * 100nF, 1 * 220 nF, 2 * 18pF
  • Electrolytic capacitor 47 uF / 16V
  • Infra Red Receiver TSOP4838, tingnan ang:
  • Mga resistorista: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 Ohm, 1 * 22 Ohm
  • Mga LED: 2 * Infra Red, 1 Amber, 1 Green, 1 Red
  • Transistor BC640, tingnan ang:
  • Jumper (opsyonal)
  • Konektor ng USB

Tingnan ang diagram ng eskematiko kung paano ikonekta ang mga sangkap. Gumamit ako ng isang breadboard para sa proyektong ito tulad ng nakikita mo sa larawan at sa video. Nakukuha ng circuit ang lakas nito mula sa USB port ng PC.

Hakbang 3: Ang Software at ang Pagpapatakbo ng Device

Tulad ng nabanggit na, ang software ay nakasulat para sa isang PIC18F14K50. Nakasulat ito sa JAL. Ang file na Intel Hex para sa pag-program ng iyong PIC ay nakakabit. Ginagawa ng software ang mga sumusunod na pagpapaandar:

  • Ang pagde-decode ng mga mensahe ng Infra-Red na NEC at ipadala ito sa PC sa pamamagitan ng USB. Ang mensahe ay nai-decode mula sa bit stream na nabuo ng tatanggap na Infra-Red at isinalin sa isang mensahe + mensahe ng utos o isang paulit-ulit na mensahe.
  • Ang pagpapadala ng mga mensahe ng NEC Infra Red na natanggap mula sa PC sa pamamagitan ng USB. Tandaan na ang software ay lumilikha din ng dalas ng 38 kHz carrier na direktang nag-mamaneho ng mga Infra-Red LED. Sa kahanay ng Infra-Red LED isang Amber LED ay konektado upang makita ang paghahatid ng isang mensahe.

Bilang default ang circuit na ito ay i-mute ang Infra-Red receiver habang nagpapadala ng isang mensahe na Infra-Red. Kung ang isang lumulukso ay nakalagay sa posisyon na 'I-unmute', hindi nito papaganahin ang pagpapaandar na walang imik na ito. Sa kasong iyon ang nai-transmite na mensahe ng Infra-Red ay mai-decode din nang kahanay sa paghahatid at pagkatapos ng kumpletong pagtanggap ay ipinadala ito bilang isang natanggap na mensahe ng Infra-Red sa PC. Kung ang isang wastong mensahe ng NEC Infra-Red ay natanggap, ang Red 'IR OK' LED ay sindihan.

Upang mapatakbo ang aparatong ito kailangan mong magkaroon ng isang programa ng Terminal Emulator sa iyong PC. Gumamit ako ng 'Termite' para sa hangaring ito. Kapag nakakonekta ang aparato sa PC, awtomatiko itong makikilala bilang isang karagdagang COM port ng Windows 10 dahil tila mayroong isang driver ng Microchip para sa aparatong ito sa paunang naka-install na Windows 10. Ang setting para sa COM port na ito ay dapat: 19200 baud 8 bits, 1 stop-bit, walang pagkakapareho at paggamit ng RTS / CTS flow control. Ang baud rate ay maaaring itakda sa anumang ibang halaga kung kinakailangan upang ang baud rate na 115200 ay gagana rin. Kapag ang aparato ay naka-configure sa pamamagitan ng USB port sa pamamagitan ng pagkonekta dito sa pamamagitan ng programa ng Terminal Emulator, ang Green 'Configured' LED ay sindihan.

Tumatanggap ng mga mensahe ng Infra-Red

Kapag natanggap ang isang mensahe na Infra-Red, ang sumusunod ay ipapakita sa programa ng Terminal Emulator:

  • 'A: xx C: xx' sa kaso ng isang kumpletong mensahe, kung saan ang xx ay ang hexadecimal na bilang ng address (A) at utos (C). Ang mga halaga para sa pareho ay maaaring saklaw mula 0x00 (0) hanggang 0xFF (255).
  • 'Ulitin' sa kaso ng isang paulit-ulit na mensahe.

Nagpapadala ng mga mensahe ng Infra-Red

Para sa mga ito kailangan kong tukuyin ang isang protocol na nagsasabi sa aparato kung ano ang dapat gawin. Dahil gumagamit kami ng isang Terminal Emulator Gumamit ako ng mga character na ASCII upang tukuyin ang isang mensahe. Ang protocol upang magpadala ng isang utos sa aparato ay gumagamit ng sumusunod na format: ‘! AACCRR #’, kung saan (lahat ng mga character ay kaso hindi insensibo):

  • Ang ‘!’ Ay nagsasaad ng simula ng mensahe.
  • Ang 'AA' ay ang halaga ng address sa hexadecimal notation kaya't '0' hanggang '9' at 'A' hanggang 'F',
  • Ang 'CC' ay ang halaga ng utos sa hexadecimal notation kaya't '0' hanggang '9' at 'A' hanggang 'F'
  • Ang 'RR' ay ang bilang ng paulit-ulit na mensahe na kailangang mailipat sa hexadecimal notation kaya't '0' sa '9' at 'A' sa 'F'. Ang halagang '00' ay nangangahulugang walang paulit-ulit na mensahe ang naipadala.

Ang isang halimbawa ng isang mensahe na may address na 0x07, ang utos na 0x05 at 3 ulitin ay dapat na nai-type tulad ng sumusunod sa programa ng Terminal Emulator:! 070503 #

Ang aparato ay may magkakaibang tugon pagkatapos maipadala ang isang utos mula sa PC:

  • Ang ibig sabihin ng 'Y' ay isang mensahe ay naipaabot. Tandaan na ang tugon na ito ay ibinigay pagkatapos ng lahat ng mga mensahe - kasama ang lahat ng mga pag-uulit - naipadala kaya't maaaring tumagal ng ilang oras bago maibigay ang tugon na ito kapag maraming mga umuulit na mensahe ang kailangang maipadala.
  • Ang ibig sabihin ng 'N' ay mayroong isang iligal na character sa mensahe na ipinadala sa PC.
  • Ang ibig sabihin ng 'B' na ang isang paghahatid ng Infra-Red ay abala pa rin noong ibinigay ang utos.
  • ?’Nangangahulugang umaasa ang aparato na‘!’Ngunit may iba itong natanggap.

Hakbang 4:

Gumawa ako ng isang maikling video ng aparato sa pagkilos. Para sa video na ito, gumamit ako ng isang komersyal na LED Lamp na may Remote Control nito upang makita na kapwa gumagana ang paghahatid at pagtanggap. Ipinapakita ng video ang sumusunod:

  • Ang pag-configure ng USB aparato mula sa programa ng Terminal Emulation. Kapag na-configure ang aparato ay tumutugon ito sa mensahe na 'USB NEC Infra Red Transmitter and Receiver'. Sa aparato naka-on ang Green LED na ipinapakita na ang aparato ay na-configure ng PC.
  • Ang lampara ay nakabukas gamit ang Remote Control. Para sa mga ito ang Remote Control ay gumagamit ng address 0x00 at utos 0x07 na na-decode ng aparato at ipinapakita sa PC.
  • Ang lampara ay nakapatay kasama ang Remote Control. Para sa mga ito ang Remote Control ay gumagamit ng address 0x00 at utos 0x06 na na-decode ng aparato at ipinapakita sa PC.
  • Ang lampara ay nakabukas sa pamamagitan ng pag-type ng parehong utos ng Remote Control sa PC na may paulit-ulit na halagang 0 (walang ulitin) kaya sa pamamagitan ng pag-type ng '! 000700 #'. Bumukas ang lampara.
  • Ang pagbabago ng kulay ng lampara sa asul sa pamamagitan ng paggamit ng address na 0x00 at utos ng 0x0A at paggamit ng 0x30 na paulit-ulit. Ang Amber Led, na konektado nang kahanay ng Infra Red LEDs ay kumikislap na ipinapakita ang paghahatid ng paulit-ulit na mensahe sa pamamagitan ng Infra Red. Ang na-type na mensahe ay '! 000A30 #'.

Tandaan na sa panahon ng pagrekord ng video na ito ang koneksyon ng jumper na 'I-unmute' ay aktibo upang maaari mo ring makita ang ipinadala na mensahe na '! 000700 #', na natanggap bilang 'A: 00 C: 07' sa programa ng Terminal Emulation. Sa demo ng asul na pangkulay ng ilawan maaari mo ring makita na ang Red LED ay naiilawan hangga't ang wasto - ulitin - ang mga mensahe ay naihatid dahil natanggap sila at na-decode nang kahanay sa paghahatid ng mga paulit-ulit na mensahe.

Magsaya sa pagbuo ng iyong sariling proyekto at inaasahan ang iyong mga reaksyon. Huwag kalimutang iboto ang proyektong ito sa paligsahan ng Remote Control 2017 kung gusto mo ito. Salamat ulit.

Inirerekumendang: