Eli tuolla arduinolla voi siis ohjelmoida itsenäisiä piirejä? Eli ei tarvitse lopullisessa tuotteessa käyttää tuota koko arduino levyä vaan riittää chipin laittaminen?
Itselläni on USBtinyISP: learn.adafruit.com/usbtinyisp
Noita löytyy Ebaystä halvalla, sieltä ostin omani. Niissä ei yleensä tule koteloita mukana, mutta ne eivät kyllä paljoa maksakaan.
En ole koskaan käyttänyt Arduinoa, mutta miksei voisi ihan hienosti aloittaa pelkällä AVR:llä? Näin itse tein kohta 15 vuotta sitten ilman pienintäkään kokemusta mikrokontrollereista. Nykyäänhän on vielä helpompi tehdä oma kytkentä, kun noissa on sisäinen oskillaattori. Valmiita kehitysalustoja saa myös hyvin halvalla. Ohjelmointityökalut, -kirjastot ja manuaalit ovat myös aivan eri tasolla.
Aluksi ohjelmoin rinnakkaisportilla, sitten ostin AVRISP mkII kloonin (Mattairtech Zeptoprog ~20 €) ja lopulta Atmelin JTAGICE3:n (~90 €), joka osaa myös debugata. Noissa kahdessa jälkimmäisessä on PDI, joka on tarpeen AVR XMegaa ohjelmoidessa. Noista JTAGICE3 on selkeästi paras, mutta tietysti myös kallis. Debuggaus helpottaa virheiden löytämistä välillä todella paljon.
XMegoissa on paljon parannuksia vanhaan AVR-sarjaan verrattuna. Kannattaisiko aloittaa suoraan niillä? Itse siirryin kokonaan niihin viitisen vuotta sitten.
Suurimpina etuina lienee laajat, valmiit kirjastot ja hyvä tuki muiden käyttäjien kautta. Niiden avulla on huomattavasti helpompi päästä alkuun, jolloin innostus ei lakkaa ensimmäisiin ongelmiin.
Toinen iso on tuo koko ympäristön integraatio, ei tarvitse tehdä rautaa ympärille itse ja keskittyä sen debuggaamiseen. Lisäksi valmiina saatavat shieldit jne tarjoaa huomattavan paljon apua harrastelijalle, ei esimerkiksi riko laitteita väärällä kytkennällä.
Toki tämä on usein ihan käyttäjän haluista kiinni, haluaako enemmän säätää raudan vai koodin kanssa. Arduino ei kuitenkaan alustana estä raudan kanssa kikkailua, vaan enemmänkin mahdollistaa sen. Suoraan AVR:än kanssa aloittaessa raudan säätö on (ainakin lähes) pakollista, joka ei kaikille sovi.
Arduino on ihan kiva ja sen oppiminen on melko helppoa. Kysymys on mitä haluaa saavutta. Jos haluaa, että joku juttu vain toimii, käyttää arduinoa ja sen mukana tai liitäntäisiä kirjastoja.
Jos haluaa opetella sulautettuja järjestelmiä, kaivaa sen AVR:n datalehden, toteuttaa omat ajurit, rakentelee tilakoneita jne.sen kautta oppii ymmärtämään kontrollerin eri lohkoja ja ajoitusta yms.
Mutta sulautettujen järjestelmien opiskeluun on monta tietä.