Hoʻomaka ia me ka loaʻa ʻana e ka mea kākau ma ka mākeke lua o kahi mea hoihoi - Smart Response XE (
Ua pau ke kākoʻo no kēia mau mea hana i kekahi mau makahiki i hala aku nei, a he aha nā kula i kūʻai ai no $100-$200 i kēlā me kēia manawa i kēia manawa ma eBay no $10 a i ʻole. "Iron" i laila kūpono loa no nā hoʻokolohua geek:
- keyboard me 60 kī
- hōʻike me ka hoʻonā ʻana o 384 × 136, 2 mau ʻāpana no kēlā me kēia pika - like me BC, CGA, akā ʻaʻole 4 nā kala, akā nā gradations kukui.
- microcontroller ATmega128RFA1 (128 kB flash, 4 kB ROM, 16 kB RAM, 802.15.4 transceiver)
- waho (e pili ana i ka microcontroller, ʻaʻole ka mea holoʻokoʻa) hoʻomanaʻo uila no 1 megabit (128 kilobytes) me kahi interface SPI
- keena no 4 mau mea AAA.
Ma ka inoa o ka microcontroller, maopopo ia no ka ʻohana AVR, ʻo ia hoʻi, ʻo ka hana ʻana i ka hāmeʻa Arduino-compatible ʻoi aku ia ma mua o ka hana liʻiliʻi ...
Mai ka lono mai
Akā ʻoi aku ka hoihoi o ka mea kākau i ka manawa kūpono ʻaʻole e pāʻani ma ka hāmeʻa, akā e aʻo:
- hoʻomanaʻo uila me ka interface serial SPI
- bootloaders no AVR
- maʻamau 802.15.4
Hoʻomaka ka mea kākau ma ke kākau ʻana
Ua lawa kēia e hoʻopiha ai i ka bootloader Arduino, akā ʻaʻole ka sketch - ʻaʻole i lawe ʻia ka port serial ma laila, ʻaʻole hiki iā ʻoe ke hana me ka wehe ʻole i ka hihia. Eia kekahi, ʻo nā laina TX0 a me RX0 o ka port serial mua e pili ana i nā laina koho o ka matrix keyboard, ʻo ia hoʻi, nā mea i koho ʻia nā kī hana ma nā ʻaoʻao o ka hōʻike. Akā he aha kāu e hana ai - ua hana ka mea kākau i kēia:
Ua lawe mai ʻo ia i nā laina JTAG ma laila, a i kēia manawa ʻaʻole pono e wehe i ke keʻena pākahi. A i mea e hiki ai ke hoʻouka i nā kiʻi kiʻi, ua hoʻopili wau i nā awa serial ʻelua i ka mea hoʻohui like, me ka hoʻohui pū ʻana i kahi hoʻololi, no ka mea me ka hoʻokomo ʻia ʻana o nā pihi, ʻaʻole hiki ke hoʻopau ʻia ke kino ma kahi ʻano ʻē aʻe.
He manawa lōʻihi ka hana ʻana me ka hao hao, ka pahi kākāʻōlelo a me ka pū kepau. Ma keʻano laulā, ʻoi aku ka maʻalahi o ka hoʻouka ʻana i nā kiʻi "ma ka lewa", pono mākou e hana i kahi mea no kēia.
Hoʻohana ʻo Arduino IDE i kahi papahana e hoʻouka i nā kiʻi
Ma hope o ka hoʻāʻo ʻana i nā ala like ʻole e hoʻoponopono ai i kēia pilikia, ua loaʻa ka mea kākau i kēia mau mea. He 128-kilobyte flash memory ka mea me ka SPI interface - loaʻa iā mākou ka ʻikepili ma o nā uea (e hoʻomanaʻo ua loaʻa i ka mea kākau hoʻokahi mea me kahi mea hoʻohui ma ka ʻaoʻao), e hoʻohana i kēia hoʻomanaʻo ma ke ʻano he pale, a hoʻouna i ka ʻikepili i kekahi mea ma o he lekiō. ʻO ia ke aloha mai Cybiko.
Ma hope o ke kākau ʻana i ke code no ka hana ʻana me ka lekiō, a me ka font, ʻoi aku ka lōʻihi o ka loader ma mua o 4 kilobytes. No laila, pono e hoʻololi ʻia ka waiwai o HFUSE mai 0xDA a i 0xD8. I kēia manawa hiki i ka loader ke piʻi i 8 kilobytes ka lōʻihi, a ua lilo ka helu hoʻomaka i 0x1E000. Hōʻike ʻia kēia ma ka Makefile, akā pono e noʻonoʻo i ka wā e hoʻouka ai
Ua hoʻolālā mua ʻia ka transceiver 802.15.4 i ka ATmega128RFA1 e hana me ka hoʻohana ʻana i ka protocol.
Ua ʻike ʻia ʻo nā kahawai 15 a me 26 ka mea liʻiliʻi loa i ka hoʻopilikia ʻana mai WiFi. Ua koho ka mea kākau i ka lua o lākou. Hōʻole: ʻaʻole ʻike ka mea unuhi inā ʻae ʻia e hoʻomaʻamaʻa iā ZigBee ma kēia ʻano. He mea pono paha ka hoʻolālā ʻana a hoʻokō pono?
Ma ka mua o nā mea hana, pono e hoʻokō i kahi mīkini moku'āina e hoʻouna i ka ʻikepili me ka protocol STK500. ʻO ka hapa nui, ʻo nā memo i hoʻouna ʻia a loaʻa iā lākou iho, akā pili kekahi i nā mea i hele ma mua o ke kahawai. Hāʻawi ʻia ka wehewehe ʻana o ke kamaʻilio
ʻO kahi ʻāpana koʻikoʻi o kēia kamaʻilio ʻana ʻo ka hoʻouna ʻana i nā ʻeke i manaʻo ʻia e kākau ʻia i ka hoʻomanaʻo uila o ka mea e hele ai. No nā microcontrollers maʻalahi o ka ʻohana AVR, ʻo ka nui o ka ʻaoʻao he 128 bytes, akā no ka ATmega128RFA1 he 256. A no ka hoʻomanaʻo uila i hoʻopili ʻia ma o ka protocol SPI, ua like ia. ʻO ka papahana ma ka polokalamu mua, i ka wā e hoʻouka ai i ka sketch, ʻaʻole ia e hoʻololi koke iā ia i ka lua, akā kākau ia i kēia hoʻomanaʻo. Ke nānā ka Arduino IDE i ka pololei o ke komo ʻana, hoʻouna ʻia ka mea i kākau ʻia ma laila. I kēia manawa pono mākou e hoʻouna i ka ʻikepili i loaʻa ma luna o ka lewa i ka lua. I kēia hihia, hoʻololi pinepine ʻia ka hoʻololi ʻana mai ka hoʻokipa ʻana i ka hoʻouna ʻana a me ka hope. ʻAʻole makemake ka protocol STK500 i ka lohi, akā ʻaʻole ia e ʻae i ka nalowale o ka ʻikepili (mea ʻē, akā ua ʻōlelo ʻia ma luna o ka hoʻopaneʻe ʻana i ka hoʻoili ʻikepili e pili pū kekahi). A ʻaʻole hiki ke ʻae ʻia nā poho ma ka hoʻouna ʻole ʻole. Loaʻa i ka ATmega128RFA1 kahi hoʻokō paʻa i loko o nā noi pinepine i ka hihia o nā kānalua e pili ana i ka pololei o ka hoʻoili ʻana, akā ua hoʻoholo ka mea kākau e hoʻokō i ka papahana like ma kāna iho. Ua hoʻomohala ʻo ia i kahi protocol kahi i ʻoi aku ka nui o nā ʻikepili i hala ma kahi ʻaoʻao ma mua o kekahi.
ʻAʻole kūpono, akā hana. Hoʻokaʻawale ʻia kahi ʻaoʻao 256-byte i ʻehā mau ʻāpana, e hoʻouna ʻia kēlā me kēia ma luna o ka lewa ma ke ʻano he ʻeke. Hoʻopaʻa ka ʻeke i ka 125 bytes o ka ʻikepili me hoʻokahi byte no ka lōʻihi a ʻelua no ka CRC. No laila, waiho ʻia nā ʻāpana 64-byte, me nā helu ʻaoʻao a me nā māhele (mai 0 a 3). He ʻano hoʻololi ko ka mea hoʻouna e mālama i ka nui o nā ʻāpana i loaʻa, a i ka hiki ʻana mai o nā mea ʻehā, ʻike ka mea hoʻouna ua loaʻa ka ʻaoʻao holoʻokoʻa. ʻAʻohe hōʻoia (ʻaʻole i kūlike ka CRC) - hoʻouna hou mākou i ka ʻaoʻao holoʻokoʻa. I kēia hihia, ʻoi aku ka nui o ka wikiwiki ma mua o ka hoʻouna ʻana ma luna o ke kaula. Nānā:
Akā ma ka laulā, pono e hāʻawi i kahi ala kūpono e hoʻopili ai i kahi kaula i nā mea hana no ka hoʻouka ʻana i nā kiʻi kiʻi a ma o ia. No ka laʻana, e kau i ia mea hoʻololi hoʻololi ma ka CP2102 i loko, e like me ke kiʻi, a kāpili iā ia i ka papa i hiki iā ia ke pale i ka ikaika i ka wā e hoʻopili ai a wehe i ke kelepona Micro USB.
Loaʻa iā ia kahi mea hoʻoponopono 3,3V (a pehea e hoʻohana ai ia mea i loko o kahi mea mana 6V - ʻoiai ʻo ia ka mea hoʻoponopono hoʻokahi, a hiki iā ʻoe ke hoʻohui i ʻelua diodes e koho ʻokoʻa i ka mea e mana i ka hāmeʻa). Pono e hoʻoneʻe ʻia nā LED ʻekolu mai ka papa hoʻololi hoʻololi, inā ʻaʻole lākou e hoʻouka i nā pā i ka wā e hana ai mai ia mau mea, a me ka hoʻopili ʻana i ke koho balota a me ka hana ʻana me ka hoʻomanaʻo flash me kahi interface SPI.
ʻO ka ʻimi ʻana i kahi pahuhopu ua ʻoi aku ka hoihoi ma mua o ka hoʻokō ʻana (a ʻaʻohe pono o kēlā ʻakaʻaka e pili ana i ke kaʻa). Ua aʻo nui ka mea kākau e pili ana i nā bootloaders AVR, SPI flash memory, STK500 protocol a me 802.15.4 standard.
ʻO nā code ʻē aʻe a pau me ka waihona i hōʻike ʻia ma luna −
Source: www.habr.com