Arduino Yun dvigalvis slibinas

24 11 2015

DSC_2445

Berods tai bus antras originalus Arduino, kuris kada gulėjo pas mane ant stalo. Nėra taip, kad aš nevertinų kokybiškos produkcijos, tiesiog labiau vertinu sutaupytus pinigus 🙂 Būtent todėl renkuosi dažniau kiniškus klonus/padielkas.

Grįžkime prie Yun. Kad jau turiu proga tokį pakrapštyti tai pasidalinsiu ir su jumis savo nuomone ir patirtimi.

Plokštė

Pati plokštė tokio pačio dydžio/formato kaip Arduino Uno, bet visko čia daug daugiau:

DSC_2450

Kitaip nei Uno ar Mega variantuose, čia pilnai išnaudota net apatinė PCB dalis:

DSC_2453

YunParts

Ethernet ir Wifi modulis, mikroSD kortelė ir USB host sąsaja verčia galvoti, kad galima nuveikti tikrai daug. Visa tai suvaldyti mažyčiam ATmega 42U4 būtų vargas, todėl ši periferija yra sujungta su Atheros AR9331. Pastarasis su Atmega 32U4 sujungtas per SPI ir Serial sąsajas, per kurią galite pasiekti mano minėtas sąsajas. Į Atheros šiuo atveju įrašytas OpenWrt linuxas, kuris vykdo visus šiuos sunkesnius darbus:

BridgeInShort

Mikro USB naudojamas Atmegai programuoti ir maitinti. Deja, bet maitinimas turi atkeliauti arba per šį USB, arba tiesiogiai per VIN, betisais abiem atvėjais tai turi būti +5V. Tikriausiai vidinis įtampos reguliatorius nebetilpo. Žinoma egzistuoja galimybė pajungti POE maitinimą su papildomu moduliu, kuriam dirva jau yra paruošta.

Naudojimo ir programavimo subtilybės

Kaip ir Arduino Leonardo, taip ir čia naudojamas ATmega32u4 mikrovaldiklis, kuris savyje jau turi virtualu USB. Jau esu programavęs Arduino Leonardo, tad pokyčiams esu pasiruošęs, bet kitus įspėju – nesinervinkite kai dinginėja USB įrenginys kompiuteryje, kuomet persikrauna mikrovaldiklis. Taip jau yra kad jam persikraunant turime langą, kol USB klasę pradeda funkcionuoti.

Žinoma, atsikračius papildomos mikroschemos USB/Serial konvertavimui sutaupoma vieta, bet atsiranda dar vienas niuansas – programoje reikia visada luktelėti kol Serial tampa gyvas:

Serial.begin();
while (!Serial);

Kadangi Atmega ir AR9331 yra sujungti SPI sąsaja ir Ethernet bei Wifi dirba nepriklausomai nuo Arduino programos, atsiranda galimybė įkelti kodą per tinklą:

Clipboard01

Skirtumas žinoma tik tas, kad taip programuojama Atmega perrašoma pilnai ir tai žinoma užtrunka ilgiau. Tai lyg programuoti Arduino per ICSP, bet programatorius yra AR9331. Po tokio programavimo dingsta visas EEPROM turinys, tad atkreipkite dėmesį į tai.

Ne ką įdomesnis variantas yra ir tai, kad per TCP/IP galime turėti panašią sąsają duomenyms kaip per Serial, t.y. egzistuoja Serial Monitor atitikmuo:

Clipboard02

Viskas nėra taip paprasta kai pradedi naudotis šia konsole. Vien to, kad Arduino programoje naudosime Serial1 (kuriuo Atmelis sujungtas su Atheros). Tenka naudoti dar visokias Bridge ir Console klases, kurios vėliau naudoja tą pati Serial1. Na o pati konsolė tai elementarus Telnet į vidini resursą per SSH:

ssh root@yourYunsName.local ‘telnet localhost 6571’

Sprendimas tikrai neblogas tiems kas nenaudos Web serverio funkcijų ir pan.

Beja, SPI sąsaja ant Adruino Yun egzistuoja tik per ICSP jungtį. D11, D12 ir D13 su ja neturi nieko bendro. Taip pat yra ir ant Leonardo ir dalinai ant Mega versijų.

Gamintojas

Tikriausiai esate girdėję apie Italų ir Amerikiečių kovą dėl Arduino vardo? Na aš šioje kovoje dabar sudalyvavau, nes ant Yun plokštės matau vieną brendą, o ant dėžutės visai kitą:

DSC_2454

DSC_2439

Mažomis raidėmis dar ten rašo kad gamintojas Arduino S.r.l, kurie yra Italai:

DSC_2441

Man šiaip vienodai kuom ten jie nepasidalina, bet nervina Arduino.org siūloma Adruino IDE.

DSC_2438

Taip jau yra, kad viena diena jie sugalvojo klonuoti Arduino.cc kodą, padarė versija 1.7.7 (tuo metu, kai tai buvo padaryta, versija buvo šiek tiek žemesnė) ir nuo to laiko nieko naudingo neatnaujino, o  Arduino.cc siūloma Arduino IDE 1.6.6 turi galybe daugiau naujinimų, įskaitant mano pradėtą naudoti EEPROM.put ir EEPROM.get metodus.

Aplamai man keisti tie ginčiai ir kartais net pats suabejoju kas nuo ko kopijuoja. Greičiau Italai pereitu prie Genuino vardo ir net IDE pervadintu taip 😀

Apibendrinimas

Techniškai manau šis hibridas yra galingas reikalas, bet labai paprastiems reikalams visgi rinkčiausi Itead Iboard ar Wboard. Pastarieji, kiniški sprendimai visą hardware permeta į Atmega rankas, bet paprastesniems darbams manau to pakanka.

Bet, jei ketinate ant Arduino kurti mini Web servisą tai manau šis įrenginys yra tikras išsigelbėjimas, nes visus puslapio reikalus Atheros valdiklis generuoja savyje, o tuo metu Atmel valdiklis tik karts nuo karto jam paduoda duomenis ir priima instrukcijas. Tinkamai suderinus šiuos valdiklius turėsime neblogą soft ir hard real-time sistemos hibridą.


Veiksmai

Information

Parašykite komentarą

Įveskite savo duomenis žemiau arba prisijunkite per socialinį tinklą:

WordPress.com Logo

Jūs komentuojate naudodamiesi savo WordPress.com paskyra. Atsijungti / Keisti )

Twitter picture

Jūs komentuojate naudodamiesi savo Twitter paskyra. Atsijungti / Keisti )

Facebook photo

Jūs komentuojate naudodamiesi savo Facebook paskyra. Atsijungti / Keisti )

Google+ photo

Jūs komentuojate naudodamiesi savo Google+ paskyra. Atsijungti / Keisti )

Connecting to %s




%d bloggers like this: