Dechreuodd y cyfan gyda'r awdur yn prynu dyfais ddiddorol ar y farchnad eilaidd - Smart Response XE (
Daeth y dyfeisiau hyn i ben sawl blwyddyn yn ôl, ac mae'r hyn a brynodd ysgolion am $100-$200 yr un bellach yn ymddangos ar eBay am $10 neu lai. Mae'r caledwedd yno yn addas iawn ar gyfer arbrofion geeky:
- Bysellfwrdd 60 allwedd
- arddangos gyda chydraniad o 384 × 136, 2 did y picsel - tebyg i BC, CGA, ond 4 nid lliw, ond graddiadau disgleirdeb
- microreolydd ATmega128RFA1 (cof fflach 128 kB, 4 kB ROM, 16 kB RAM, transceiver 802.15.4)
- allanol (mewn perthynas â'r microreolydd, nid y ddyfais gyfan) cof fflach 1 megabit (128 kilobyte) gyda rhyngwyneb SPI
- adran ar gyfer 4 elfen AAA.
O enw'r microreolydd mae'n amlwg ei fod yn perthyn i'r teulu AVR, sy'n golygu bod gwneud y ddyfais yn gydnaws â Arduino yn dasg fwy na dibwys ...
O'r newyddion ymlaen
Ond mae gan yr awdur fwy o ddiddordeb yn y cyfle i beidio â chwarae ar y ddyfais, ond i astudio:
- cof fflach gyda rhyngwyneb SPI cyfresol
- cychwynwyr ar gyfer AVR
- safon 802.15.4
Dechreuodd yr awdur trwy ysgrifennu
Mae hyn yn ddigon i uwchlwytho'r cychwynnydd Arduino, ond nid y braslun - nid yw'r porthladd cyfresol wedi'i gysylltu yno, felly ni allwch wneud heb agor yr achos o hyd. Hefyd, mae llinellau TX0 a RX0 y porthladd cyfresol cyntaf yn cael eu cyfuno â llinellau pleidleisio'r matrics bysellfwrdd, sef y rhai sy'n pleidleisio'r allweddi swyddogaeth ar ochrau'r arddangosfa. Ond beth allwch chi ei wneud - adeiladodd yr awdur hwn:
Daeth â'r llinellau JTAG yno, a nawr nid oes angen agor y compartment batri. Ac fel y gellid uwchlwytho brasluniau, cysylltais y ddau borth cyfresol â'r un cysylltydd, gan ychwanegu switsh hefyd, oherwydd gyda'r batris wedi'u gosod, mae'n gorfforol amhosibl diffodd y ddyfais mewn unrhyw ffordd arall.
Cymerodd dipyn o amser i weithio gyda haearn sodro, cyllell ddefnyddioldeb a gwn glud. Yn gyffredinol, mae uwchlwytho brasluniau “dros yr awyr” yn llawer mwy cyfleus; mae angen i ni ddyfeisio rhywbeth ar frys ar gyfer hyn.
Mae Arduino IDE yn defnyddio'r rhaglen i uwchlwytho brasluniau
Ar ôl rhoi cynnig ar wahanol ffyrdd o oresgyn y broblem hon, lluniodd yr awdur y canlynol. Mae gan y ddyfais gof fflach 128 KB gyda rhyngwyneb SPI - rydym yn derbyn data dros y gwifrau (cofiwch fod gan yr awdur eisoes un ddyfais gyda chysylltydd ar yr ochr), defnyddiwch y cof hwn fel byffer, ac anfonwch y data dros y radio sianel i ddyfais arall. Helo o Cybiko.
Ar ôl ysgrifennu'r cod i weithio gyda'r sianel radio, yn ogystal â'r ffont, daeth y llwythwr yn hirach na 4 kilobytes. Felly, roedd yn rhaid newid gwerth HFUSE o 0xDA i 0xD8. Nawr gall y cychwynnwr fod hyd at 8 kilobytes o hyd, a'r cyfeiriad cychwyn bellach yw 0x1E000. Adlewyrchir hyn yn y Makefile, ond dylid ei ystyried hefyd wrth lenwi
Mae'r trosglwyddydd 802.15.4 yn yr ATmega128RFA1 wedi'i gynllunio'n wreiddiol i weithredu gan ddefnyddio'r protocol
Daeth i'r amlwg mai sianeli 15 a 26 sydd leiaf agored i ymyrraeth gan WiFi. Dewisodd yr awdur yr ail ohonynt. Ymwadiad: nid yw'r cyfieithydd yn gwybod a yw'n cael symleiddio ZigBee fel hyn. Efallai y dylem wneud ychydig mwy o raglennu a'i weithredu'n llwyr?
Ar y ddyfais gyntaf, mae angen gweithredu peiriant cyflwr cyfyngedig sy'n trosglwyddo data trwy'r protocol STK500. Ar y cyfan, mae'r negeseuon a drosglwyddir ac a dderbynnir yn hunangynhaliol, ond mae rhai yn gysylltiedig â'r rhai a aeth trwy'r sianel yn gynharach. Rhoddir disgrifiad o'r ddeialog
Elfen bwysig o'r ddeialog hon yw trosglwyddo pecynnau y bwriedir eu hysgrifennu i gof fflach y ddyfais cyrchfan. Ar gyfer microreolwyr syml y teulu AVR, maint y dudalen yw 128 bytes, ond ar gyfer yr ATmega128RFA1 mae'n 256. Ac ar gyfer y cof fflach sy'n gysylltiedig trwy'r protocol SPI, mae yr un peth. Nid yw'r rhaglen yn y ddyfais gyntaf, wrth uwchlwytho braslun, yn ei drosglwyddo ar unwaith i'r ail, ond yn ei ysgrifennu i'r cof hwn. Pan fydd yr Arduino IDE yn gwirio cywirdeb y cofnod, anfonir yr hyn a ysgrifennwyd yno. Nawr mae angen i ni drosglwyddo'r data a dderbyniwyd trwy sianel radio i'r ail ddyfais. Ar yr un pryd, mae newid o dderbyn i drosglwyddo ac yn ôl yn digwydd yn eithaf aml. Mae'r protocol STK500 yn ddifater i oedi, ond nid yw'n goddef colli data (rhyfedd, ond dywedwyd uchod bod oedi hefyd yn effeithio ar drosglwyddo data). Ac mae colledion yn ystod trosglwyddiad diwifr yn anochel. Mae gan yr ATmega128RFA1 weithrediad caledwedd adeiledig o geisiadau dro ar ôl tro pan fo amheuon ynghylch cywirdeb y trosglwyddiad, ond penderfynodd yr awdur weithredu'r un peth mewn meddalwedd ei hun. Datblygodd brotocol lle mae llawer mwy o ddata yn llifo un ffordd na'r llall.
Nid yw'n berffaith, ond mae'n gweithio. Mae'r dudalen 256-beit wedi'i rhannu'n bedwar segment, pob un ohonynt yn cael ei drawsyrru dros yr awyr fel pecyn. Gall pecyn ddal hyd at 125 beit o ddata ynghyd ag un beit am hyd a dau beit ar gyfer CRC. Felly mae darnau 64 beit o hyd ynghyd â rhifau tudalennau a segmentau (o 0 i 3) yn cael eu gosod yno. Mae gan y ddyfais sy'n derbyn newidyn sy'n ei alluogi i olrhain faint o segmentau sydd wedi'u derbyn, a phan fydd y pedwar yn cyrraedd, mae'r ddyfais anfon yn derbyn cadarnhad bod y dudalen gyfan wedi'i derbyn. Dim cadarnhad (nid oedd CRC yn cyfateb) - ail-anfonwch y dudalen gyfan. Mae'r cyflymder hyd yn oed yn fwy nag wrth drosglwyddo trwy gebl. Gweler:
Ond yn gyffredinol, byddai angen darparu ffordd gyfleus i gysylltu'r cebl â'r dyfeisiau ar gyfer uwchlwytho brasluniau a thrwyddo. Er enghraifft, rhowch y tu mewn i drawsnewidydd rhyngwyneb o'r fath ar y CP2102, fel yn y llun, a'i gludo i'r bwrdd fel y gall wrthsefyll y grym wrth gysylltu a datgysylltu'r cebl Micro USB.
Mae ganddo hefyd sefydlogydd 3,3-folt (a sut i'w ddefnyddio mewn dyfais gyda chyflenwad pŵer 6-folt - os mai dim ond yr un sefydlogydd sydd ganddo, a gallwch chi ychwanegu dau ddeuod i ddewis yn awtomatig pa un ohonyn nhw fydd yn pweru'r ddyfais) . Rhaid i'r tri LED fod heb eu sodro o'r bwrdd trawsnewidydd rhyngwyneb, fel arall byddant hefyd yn llwytho'r batris wrth weithredu arnynt, a hefyd yn ymyrryd â phleidleisio bysellfwrdd a gweithio gyda chof fflach gyda rhyngwyneb SPI.
Roedd ceisio nod hyd yn oed yn fwy diddorol na'i chyflawni (a does dim angen y jôc yna am y bws). Dysgodd yr awdur lawer am lwythwyr cychwyn AVR, cof fflach SPI, protocol STK500 a safon 802.15.4.
Pob cod arall yn ychwanegol at y llyfrgell a ddisgrifir uchod yw −
Ffynhonnell: hab.com