Gbogbo rẹ bẹrẹ pẹlu onkọwe rira ohun elo ti o nifẹ lori ọja Atẹle - Idahun Smart XE (
Awọn ẹrọ wọnyi ti dawọ duro ni ọpọlọpọ ọdun sẹyin, ati pe kini awọn ile-iwe ti o ra fun $100-$200 ọkọọkan ti n gbe jade lori eBay fun $10 tabi kere si. Ohun elo ti o wa nibẹ dara pupọ fun awọn idanwo geeky:
- 60 bọtini itẹwe
- ifihan pẹlu ipinnu ti 384×136, 2 die-die fun ẹbun - iru si BC, CGA, ṣugbọn 4 kii ṣe awọn awọ, ṣugbọn awọn gradations ti imọlẹ
- microcontroller ATmega128RFA1 (128 kB filasi iranti, 4 kB ROM, 16 kB Ramu, 802.15.4 transceiver)
- ita (ni ibatan si microcontroller, kii ṣe gbogbo ẹrọ) 1 megabit (128 kilobyte) iranti filasi pẹlu wiwo SPI
- kompaktimenti fun 4 AAA eroja.
Lati orukọ microcontroller o han gbangba pe o jẹ ti idile AVR, eyiti o tumọ si ṣiṣe ẹrọ Arduino-ibaramu jẹ diẹ sii ju iṣẹ ṣiṣe bintin lọ…
Lati awọn iroyin lori
Ṣugbọn onkọwe nifẹ diẹ sii ni aye kii ṣe lati ṣere lori ẹrọ, ṣugbọn lati kawe:
- filasi iranti pẹlu ni tẹlentẹle SPI ni wiwo
- bootloaders fun AVR
- boṣewa 802.15.4
Onkọwe bẹrẹ nipasẹ kikọ
Eyi to lati gbejade bootloader Arduino, ṣugbọn kii ṣe aworan afọwọya - ibudo ni tẹlentẹle ko ni asopọ sibẹ, nitorinaa o tun ko le ṣe laisi ṣiṣi ọran naa. Pẹlupẹlu, awọn laini TX0 ati RX0 ti ibudo ni tẹlentẹle akọkọ ni idapo pẹlu awọn laini idibo ti matrix keyboard, eyun awọn ti o ṣe ibo awọn bọtini iṣẹ ni awọn ẹgbẹ ti ifihan. Ṣugbọn kini o le ṣe - onkọwe kọ eyi:
O mu awọn ila JTAG wa nibẹ, ati nisisiyi ko si ye lati ṣii yara batiri naa. Ati pe ki awọn aworan afọwọya le gbejade, Mo ti so awọn ebute oko oju omi mejeeji pọ si asopo kanna, tun ṣafikun iyipada kan, nitori pẹlu awọn batiri ti a fi sii, ko ṣee ṣe ni ti ara lati pa ẹrọ naa ni ọna miiran.
O gba akoko diẹ lati ṣiṣẹ pẹlu irin tita, ọbẹ ohun elo ati ibon lẹ pọ. Ni gbogbogbo, ikojọpọ awọn aworan afọwọya “lori afẹfẹ” jẹ irọrun diẹ sii;
Arduino IDE nlo eto naa lati gbejade awọn aworan afọwọya
Lẹhin igbiyanju awọn ọna oriṣiriṣi lati bori iṣoro yii, onkọwe wa pẹlu atẹle naa. Ẹrọ naa ni iranti filasi 128 KB pẹlu wiwo SPI - a gba data lori awọn okun waya (ranti pe onkọwe ti ni ẹrọ kan tẹlẹ pẹlu asopo kan ni ẹgbẹ), lo iranti yii bi ifipamọ, ati firanṣẹ data lori redio. ikanni si ẹrọ miiran. Kaabo lati Cybiko.
Lẹhin kikọ koodu lati ṣiṣẹ pẹlu ikanni redio, bakanna bi fonti, agberu naa gun ju 4 kilobytes. Nitorinaa, iye HFUSE ni lati yipada lati 0xDA si 0xD8. Bayi bootloader le to 8 kilobytes gigun, ati pe adirẹsi ibẹrẹ ti wa ni bayi 0x1E000. Eyi jẹ afihan ninu Makefile, ṣugbọn o yẹ ki o tun ṣe akiyesi nigbati o ba kun
802.15.4 transceiver ninu ATmega128RFA1 jẹ apẹrẹ akọkọ lati ṣiṣẹ nipa lilo ilana naa
O wa jade pe awọn ikanni 15 ati 26 ko ni ifaragba si kikọlu lati WiFi. AlAIgBA: onitumọ ko mọ boya o gba ọ laaye lati rọ ZigBee ni ọna yii. Boya o yẹ ki a ṣe siseto diẹ sii ki a ṣe imuse rẹ patapata?
Lori ẹrọ akọkọ, o jẹ dandan lati ṣe imuse ẹrọ ipinlẹ ti o ni opin ti o gbejade data nipasẹ ilana STK500. Fun apakan pupọ julọ, awọn ifiranṣẹ ti a firanṣẹ ati ti o gba jẹ ti ara ẹni, ṣugbọn diẹ ninu awọn ti so mọ awọn ti o kọja nipasẹ ikanni tẹlẹ. Apejuwe ti ibaraẹnisọrọ ti wa ni fun
Ẹya pataki ti ibaraẹnisọrọ yii ni gbigbe awọn apo-iwe ti a pinnu lati kọ si iranti filasi ti ẹrọ ti nlo. Fun awọn microcontrollers ti o rọrun ti idile AVR, iwọn oju-iwe jẹ awọn baiti 128, ṣugbọn fun ATmega128RFA1 o jẹ 256. Ati fun iranti filasi ti o ni asopọ nipasẹ ilana SPI, o jẹ kanna. Eto ti o wa ninu ẹrọ akọkọ, nigbati o ba n gbe aworan kan, ko gbe lọ lẹsẹkẹsẹ si keji, ṣugbọn o kọwe si iranti yii. Nigbati Arduino IDE ba ṣayẹwo deede titẹ sii, a firanṣẹ ohun ti a kọ sibẹ. Bayi a nilo lati atagba data ti o gba nipasẹ ikanni redio si ẹrọ keji. Ni akoko kanna, iyipada lati gbigba si gbigbe ati ẹhin waye ni igbagbogbo. Ilana STK500 jẹ aibikita si awọn idaduro, ṣugbọn ko fi aaye gba pipadanu data (ajeji, ṣugbọn o sọ loke pe awọn idaduro tun ni ipa lori gbigbe data). Ati awọn adanu lakoko gbigbe alailowaya jẹ eyiti ko ṣeeṣe. ATmega128RFA1 ni imuse ohun elo ti a ṣe sinu ti awọn ibeere ti o tun ṣe nigbati awọn iyemeji wa nipa atunse gbigbe, ṣugbọn onkọwe pinnu lati ṣe kanna ni sọfitiwia funrararẹ. O ṣe agbekalẹ ilana kan ninu eyiti ọpọlọpọ data nṣan ni ọna kan ju ekeji lọ.
Ko pe, ṣugbọn o ṣiṣẹ. Oju-iwe 256-baiti ti pin si awọn apakan mẹrin, ọkọọkan eyiti a gbejade lori afẹfẹ bi apo. Pakẹti le gba to awọn baiti 125 ti data pẹlu baiti kan fun gigun ati awọn baiti meji fun CRC. Nitorina awọn ajẹkù 64 awọn baiti gigun pẹlu oju-iwe ati awọn nọmba apakan (lati 0 si 3) ni a gbe sibẹ. Ẹrọ gbigba ni o ni iyipada ti o fun laaye laaye lati tọpinpin iye awọn apakan ti o ti gba, ati nigbati gbogbo awọn mẹrin ba de, ẹrọ fifiranṣẹ gba ijẹrisi pe gbogbo oju-iwe ti gba. Ko si idaniloju (CRC ko baramu) - tun fi gbogbo oju-iwe naa ranṣẹ. Iyara paapaa tobi ju nigba gbigbe nipasẹ okun. Wo:
Ṣugbọn ni gbogbogbo, yoo jẹ pataki lati pese ọna ti o rọrun lati so okun pọ si awọn ẹrọ fun ikojọpọ awọn aworan afọwọya ati nipasẹ rẹ. Fun apẹẹrẹ, gbe inu iru oluyipada wiwo lori CP2102, bi ninu fọto, ki o lẹ pọ mọ igbimọ naa ki o le koju agbara naa nigbati o ba n ṣopọ ati ge asopọ okun USB Micro.
O tun ni amuduro 3,3-volt (ati bii o ṣe le lo ninu ẹrọ ti o ni ipese agbara 6-volt - ti o ba jẹ amuduro kanna, ati pe o le ṣafikun awọn diodes meji lati yan eyi ti wọn yoo fi agbara ẹrọ naa laifọwọyi) . Gbogbo awọn LED mẹta gbọdọ wa ni ṣiṣi silẹ lati inu igbimọ oluyipada wiwo, bibẹẹkọ wọn yoo ṣe afikun awọn batiri nigbati wọn ba ṣiṣẹ lori wọn, ati tun dabaru pẹlu idibo keyboard ati ṣiṣẹ pẹlu iranti filasi pẹlu wiwo SPI.
Lilepa ibi-afẹde kan ti jade lati jẹ iyanilenu paapaa ju ṣiṣe aṣeyọri rẹ (ati pe ko nilo awada yẹn nipa ọkọ akero). Onkọwe kọ ẹkọ pupọ nipa AVR bootloaders, SPI filasi iranti, ilana STK500 ati boṣewa 802.15.4.
Gbogbo koodu miiran ni afikun si ile-ikawe ti a ṣalaye loke jẹ -
orisun: www.habr.com