Talaan ng mga Nilalaman:

ATtiny85 RF Remote Control: 3 Hakbang
ATtiny85 RF Remote Control: 3 Hakbang

Video: ATtiny85 RF Remote Control: 3 Hakbang

Video: ATtiny85 RF Remote Control: 3 Hakbang
Video: Проблема с затемнением светодиодных лампочек переменного тока || Диммер с задней кромкой своими руками 2024, Hulyo
Anonim
ATtiny85 RF Remote Control
ATtiny85 RF Remote Control

TANDAAN: Ipinapakita ng Aking Instructable na "Virtual Hide-and-Seek Game" kung paano gamitin ang ganitong uri ng remote gamit ang isang RXC6 module na awtomatikong nagde-decode ng mensahe.

Tulad ng nabanggit ko sa isang nakaraang Instructable kamakailan lamang ay nagsimula akong maglaro sa ilang mga chips na ATtiny85. Ang paunang proyekto na nasa isip ko ay gumawa ng isang remote control ng RF na maaaring gumana sa isang baterya ng barya. Kailangan kong pumunta sa isang raw chip dahil wala sa mga Arduino na mayroon ako ang maaaring makamit ang parehong pangangailangan para sa napakababang lakas at medyo maliit na laki. Ang isang binagong LilyPad ay malapit ngunit ang maliit na tilad ay isang mas mahusay na sagot. Ang ideya ay hindi gaanong mag-duplicate ng isang umiiral na remote ngunit upang ipakita kung paano mo makakabuo ng iyong sariling set ng transmitter at receiver. Bukod sa pagiging isang nakakatuwang proyekto sa pag-aaral, pinapayagan ka ring lumikha ng iyong sariling "lihim" na kumbinasyon ng code. Inilagay ko ang "lihim" sa mga quote dahil napakadali na i-crack ang mga simpleng code na ito.

Hakbang 1: Format ng Mensahe ng RF

Format ng Mensahe ng RF
Format ng Mensahe ng RF

Para sa proyektong ito pinili ko upang makopya ang mga signal para sa isa sa aking mga Etekcity RF wireless switch (sumangguni sa aking Instructable sa mga modyul na iyon). Ginawa ko iyon dahil na-verify ko na gumagana ang aking transmiter sa Etekcity receiver at gumagana ang aking tatanggap sa Etekcity remote. Nagkataon din na alam ko eksakto kung ano ang tamang mga code at format para sa mga aparatong iyon dahil nakunan ko sila dati. Sumangguni sa aking "Arduino RF Sensor Decoder" Maaaring maituro para sa sketch ng pagkuha ng code.

Ang mga code at format para sa mga outlet ng Etekcity ay napaka-tipikal ng mga murang aparato ng RF. Mayroon akong murang mga aparatong panseguridad na gumagamit ng halos magkatulad na mga format na may ilang pagkakaiba-iba lamang sa oras. Ang haba ng mensahe ay isang maginhawang 24 bits na may mahabang pagsisimula ng kaunti at isang maikling hintuan. Madali mong mababago ang code upang magdagdag ng maraming mga byte ng data at upang baguhin ang tiyempo ng pag-sync at mga bits ng data. Muli, ang sketch na ito ay isang panimulang template lamang.

Hakbang 2: Hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

Ang transmiter ay tumatakbo sa isang baterya ng barya (2032) kaya't ang mababang paggamit ng kuryente ay susi. Karamihan sa mga iyon ay nagagawa sa software ngunit natutulungan ito ng ang katunayan na ang ATtiny85 ay normal na tumatakbo sa panloob na orasan na 1-MHz. Ang panuntunan ay ang mas mababang mga frequency ng orasan ay nangangailangan ng mas kaunting lakas at ang 1-MHz ay perpekto para sa lohika ng transmiter.

Ang aktwal na module ng RF transmitter na nais kong gamitin ay isang FS1000A na karaniwang magagamit. Dumating ito sa parehong mga bersyon na 433-MHz at 315-MHz. Walang pakialam ang software kung alin ang ginagamit mo, ngunit kailangan mong tiyakin na ang board ng tatanggap ay tumatakbo sa parehong dalas. Karamihan sa aking mga proyekto ay gumagamit ng mga aparato na 433-MHz sapagkat iyon ang ginagamit ng iba't ibang mga murang wireless na aparato na naipon ko. Ang layout ng transmitter board na ipinapakita sa larawan ay umaangkop nang maayos sa isang lumang bote ng pill. Hindi ito maganda ngunit sapat na mahusay para sa isang patunay-ng-konsepto.

Ang tatanggap ay nasa isang solderless breadboard dahil ang layunin lamang nito ay upang ipakita kung paano makatanggap ng mga signal at kung paano i-on / i-off ang isang bagay batay sa mga natanggap na code. Gumagamit ito ng isang LED upang ipahiwatig ang katayuan sa / off ngunit maaari mo itong palitan ng isang relay driver, atbp. Anumang Arduino ay maaaring magamit para sa tatanggap sapagkat hindi ito kailangang tumakbo ng isang baterya. Kung ang laki ay isang pagsasaalang-alang pa rin maaari kang gumamit ng isa pang ATtiny85 chip. Ang susi ay ang ATtiny85 kailangang tumakbo sa 8-MHz sa receiver. Sumangguni sa aking naunang ATtiny85 Instructable para sa isang simpleng sketch na nagpapatunay na matagumpay mong nabago ang panloob na orasan sa 8-MHz. Sa pagtatapos ng aking Instructable sa pag-decode ng sensor nagsasama ako ng isang Arduino Nano na bersyon ng software ng tatanggap. Ito ay magkapareho sa bersyon ng ATtiny85 na kasama dito maliban sa isang pares ng mga pagkakaiba sa pagrehistro ng chip.

Tulad ng detalyado ko sa aking naunang RF Instructables, mas gusto kong gumamit ng isang tatanggap tulad ng karaniwang RXB6. Ito ay isang super-heterodyne receiver na gumagana nang mas mahusay kaysa sa mga super-regenerative na tagatanggap na karaniwang kasama ng mga transmiter ng FS1000A.

Ang parehong mga module ng transmitter at receiver ay gumagana nang mas mahusay sa tamang mga antena ngunit madalas na hindi ito ibinibigay. Maaari kang bumili ng mga ito (kunin ang tamang dalas) o maaari kang gumawa ng sarili mo. Sa 433-MHz, ang tamang haba ay tungkol sa 16 cm para sa isang tuwid na antena ng kawad. Upang makagawa ng isang nakapulupot, kumuha ng tungkol sa 16 cm ng insulated, solidong core wire at balutin ito ng isang bagay tulad ng isang 5/32-inch drill bit shank sa isang solong layer. Tanggalin ang pagkakabukod ng isang maikling tuwid na seksyon sa isang dulo at ikonekta ito sa iyong board ng transmitter / receiver. Nalaman ko na ang kawad mula sa isang scrap Ethernet cable ay gumagana nang maayos para sa mga antena. Karaniwang may lugar ang transmitter board upang maghinang ng antena ngunit ang tagatanggap ng tatanggap ay maaaring may mga pin lamang (tulad ng RXB6). Siguraduhin lamang na ang koneksyon ay ligtas kung hindi mo ito hihihinang.

Hakbang 3: Software

Gumagamit ang transmitter software ng mga karaniwang diskarte upang ilagay ang chip sa mode ng pagtulog. Sa mode na iyon kumukuha ito ng mas mababa sa 0.2ua ng kasalukuyang. Ang mga input ng switch (D1-D4) ay nakabukas ang panloob na resistors ng pull-up ngunit hindi sila gumuhit ng anumang kasalukuyang hanggang sa mapindot ang isang switch. Ang mga input ay naka-configure para sa nakakagambala-sa-pagbabago (IOC). Kapag pinindot ang isang switch, nabuo ang isang nakakagambala at pinipilit nito ang chip na magising. Gumagawa ang interrupt handler tungkol sa 48msec ng pagkaantala upang payagan ang switch na mag-debounce. Pagkatapos ay gagawin ang isang tseke upang matukoy kung aling switch ang pinindot at ang naaangkop na gawain ay tinatawag. Ang naihatid na mensahe ay paulit-ulit nang maraming beses (pumili ako ng 5 beses). Karaniwan ito sa mga komersyal na transmiter dahil maraming RF traffic sa 433-MHz at 315-MHz doon. Ang paulit-ulit na mga mensahe ay makakatulong upang matiyak na hindi bababa sa isa ang makakakuha sa pamamagitan ng tatanggap.

Ang pag-sync at mga oras ng bit ay tinukoy sa harap ng transmitter software ngunit ang mga byte ng data ay naka-embed sa bawat isa sa apat na mga gawain sa button. Kitang-kita ang mga ito at madaling baguhin at ang pagdaragdag ng mga byte upang makagawa ng mas mahabang mensahe ay madali din. Ang lahat ng parehong mga tumutukoy ay kasama sa software ng tatanggap pati na rin ang mga kahulugan ng byte ng data. Kung magdagdag ka ng mga byte ng data sa iyong mensahe, kakailanganin mong baguhin ang kahulugan para sa "Msg_Length" at magdagdag ng mga byte sa variable na "RF_Message". Kakailanganin mo ring magdagdag ng code sa tsek na "RF_Message" sa "loop" upang i-verify ang tamang resibo ng mga sobrang byte at tukuyin ang mga byte na iyon.

Inirerekumendang: