An fara ne da marubucin yana siyan na'ura mai ban sha'awa akan kasuwar sakandare - Smart Response XE (
An dakatar da waɗannan na'urori shekaru da yawa da suka gabata, kuma abin da makarantu da aka saya akan $100-$200 kowannensu yanzu yana tasowa akan eBay akan $10 ko ƙasa da haka. Kayan aikin da ke wurin ya dace sosai don gwaje-gwajen geeky:
- 60 makullin madannai
- nuni tare da ƙuduri na 384 × 136, 2 ragowa da pixel - kama da BC, CGA, amma 4 ba launuka ba, amma grads na haske
- microcontroller ATmega128RFA1 (128 kB flash memory, 4kB ROM, 16 kB RAM, 802.15.4 transceiver)
- waje (dangane da microcontroller, ba duka na'urar ba) 1 megabit (128 kilobyte) ƙwaƙwalwar walƙiya tare da ƙirar SPI
- sashi don abubuwan 4 AAA.
Daga sunan microcontroller ya bayyana a fili cewa yana cikin dangin AVR, wanda ke nufin yin na'urar Arduino-jituwa aiki ne fiye da ƙaramin aiki ...
Daga labarai
Amma marubucin ya fi sha'awar damar kada ku yi wasa a kan na'urar, amma don nazarin:
- ƙwaƙwalwar walƙiya tare da ƙirar SPI na serial
- bootloaders don AVR
- Babban darajar 802.15.4
Marubucin ya fara da rubutu
Wannan ya isa ya loda bootloader na Arduino, amma ba zane-zane ba - tashar tashar jiragen ruwa ba ta da alaƙa a can, don haka har yanzu ba za ku iya yin ba tare da buɗe shari'ar ba. Hakanan, layin TX0 da RX0 na tashar tashar jiragen ruwa ta farko an haɗa su tare da layukan jefa ƙuri'a na matrix na madannai, wato waɗanda ke jefa kuri'a maɓallan ayyuka a gefen nunin. Amma me za ku iya yi - marubucin ya gina wannan:
Ya kawo layukan JTAG a can, kuma yanzu babu bukatar bude dakin batir. Kuma don a iya loda zane-zane, sai na haɗa dukkan tashoshin jiragen ruwa biyu zuwa na'ura mai haɗawa ɗaya, na kuma ƙara maɓalli, saboda da batir ɗin da aka sanya, ba zai yiwu a kashe na'urar ta kowace hanya ba.
An ɗauki ɗan lokaci kaɗan don yin aiki tare da ƙarfe mai siyar, wuka mai amfani da bindigar manne. Gabaɗaya, loda zane-zane "a kan iska" ya fi dacewa; muna buƙatar ƙirƙira wani abu cikin gaggawa don wannan.
Arduino IDE yana amfani da shirin don loda zane-zane
Bayan gwada hanyoyi daban-daban don shawo kan wannan matsala, marubucin ya fito da wadannan. Na'urar tana da ƙwaƙwalwar walƙiya mai nauyin 128 KB tare da ƙirar SPI - muna karɓar bayanai akan wayoyi (tuna cewa marubucin ya riga ya sami na'ura guda ɗaya tare da mai haɗawa a gefe), yi amfani da wannan ƙwaƙwalwar azaman ma'auni, kuma aika bayanan akan rediyo. tashar zuwa wata na'ura. Sannu daga Cybiko.
Bayan rubuta lambar don yin aiki tare da tashar rediyo, da kuma font, mai ɗaukar kaya ya zama tsayi fiye da 4 kilobytes. Don haka, dole ne a canza ƙimar HFUSE daga 0xDA zuwa 0xD8. Yanzu bootloader na iya zama tsayin kilobytes 8, kuma adireshin farawa yanzu 0x1E000. Ana nuna wannan a cikin Makefile, amma kuma yakamata a yi la'akari da lokacin cikawa
802.15.4 transceiver a cikin ATmega128RFA1 an tsara shi don aiki ta amfani da yarjejeniya.
Ya bayyana cewa tashoshi 15 da 26 ba su da sauƙi ga tsangwama daga WiFi. Mawallafin ya zaɓi na biyu daga cikinsu. Disclaimer: mai fassara bai san ko an yarda ya sauƙaƙa ZigBee ta wannan hanyar ba. Wataƙila ya kamata mu ƙara ƙarin shirye-shirye kuma mu aiwatar da shi gaba ɗaya?
A kan na'urar farko, wajibi ne don aiwatar da na'ura mai iyaka wanda ke watsa bayanai ta hanyar yarjejeniyar STK500. A mafi yawancin lokuta, saƙonnin da ake aikawa da karɓa suna da wadatar kansu, amma wasu suna da alaƙa da waɗanda suka wuce ta tashar a baya. An ba da bayanin tattaunawar
Wani muhimmin sashi na wannan tattaunawa shine watsa fakitin da aka yi niyyar rubutawa zuwa ƙwaƙwalwar walƙiya na na'urar da za a nufa. Don masu sauƙin microcontrollers na dangin AVR, girman shafin shine 128 bytes, amma ga ATmega128RFA1 shine 256. Kuma ga ƙwaƙwalwar walƙiya wanda aka haɗa ta hanyar ka'idar SPI, daidai yake. Shirin a cikin na'urar farko, lokacin loda zane, ba ya canja wurin nan da nan zuwa na biyu, amma ya rubuta shi zuwa wannan ƙwaƙwalwar ajiya. Lokacin da Arduino IDE ya bincika daidaiton shigarwar, ana aika abin da aka rubuta a wurin. Yanzu muna buƙatar watsa bayanan da aka karɓa ta tashar rediyo zuwa na'ura ta biyu. A lokaci guda, sauyawa daga karɓa zuwa watsawa da baya yana faruwa sau da yawa. Ka'idar STK500 ba ta damu da jinkiri ba, amma baya jure wa asarar bayanai (baƙon abu, amma an faɗi a sama cewa jinkirin kuma yana shafar canja wurin bayanai). Kuma hasara a lokacin watsawa mara waya ba makawa. ATmega128RFA1 yana da ginanniyar aiwatar da aikace-aikacen kayan aiki na maimaita buƙatun lokacin da akwai shakku game da daidaiton canja wurin, amma marubucin ya yanke shawarar aiwatar da wannan a cikin software da kansa. Ya ɓullo da ƙa'idar da bayanai da yawa ke gudana ta hanya ɗaya fiye da ɗayan.
Ba cikakke ba ne, amma yana aiki. Shafin 256-byte ya kasu kashi hudu, kowanne daga cikinsu ana watsa shi ta iska a matsayin fakiti. Fakiti na iya ɗaukar bayanai har zuwa 125 byte tare da byte ɗaya na tsayi da bytes biyu na CRC. Don haka an sanya guntu 64 bytes tsayi tare da shafi da lambobi (daga 0 zuwa 3) a wurin. Na'urar karba tana da mabambantan da ke ba ta damar bin diddigin sassa nawa aka karɓa, kuma lokacin da duka huɗun suka zo, na'urar aika ta sami tabbacin cewa an karɓi duka shafin. Babu tabbaci (CRC bai dace ba) - sake aika duk shafin. Gudun ya ma fi lokacin aikawa ta hanyar kebul. Duba:
Amma gabaɗaya, zai zama dole don samar da hanyar da ta dace don haɗa kebul ɗin zuwa na'urori don loda zane da ta hanyar. Misali, sanya a cikin irin wannan na'ura mai canzawa akan CP2102, kamar yadda yake a cikin hoto, kuma manne shi a kan allo don ya iya jure ƙarfin lokacin haɗawa da cire haɗin kebul na USB.
Hakanan yana da stabilizer 3,3-volt (da kuma yadda ake amfani da shi a cikin na'ura mai samar da wutar lantarki 6-volt - idan kawai yana da stabilizer iri ɗaya, kuma zaku iya ƙara diodes guda biyu don zaɓar ta atomatik wanda daga cikinsu zai kunna na'urar) . Dukkan LEDs guda uku dole ne a kwance su daga allon mai canzawa, in ba haka ba za su ɗora nauyin batir yayin aiki akan su, kuma su tsoma baki tare da jefa kuri'a na maballin kuma suyi aiki tare da ƙwaƙwalwar walƙiya tare da ƙirar SPI.
Biyan manufa ya zama mafi ban sha'awa fiye da cimma shi (kuma ba sa buƙatar wannan wargi game da bas). Marubucin ya koyi abubuwa da yawa game da AVR bootloaders, SPI flash memory, STK500 yarjejeniya da 802.15.4 misali.
Duk sauran lambar ban da ɗakin karatu da aka kwatanta a sama shine -
source: www.habr.com