czwartek, 16 stycznia 2014

Po co mi to całe Arduino?

Oczywiście tytuł ma być jedynie prowokacją. Chociaż nie do końca - artykuł jest właśnie poświęcony pracy w Arduino IDE z mikrokontrolerami, ale bez płytek Arduino.
Czym jest Arduino - wiemy wszyscy, zarówno początkujący fani programowania elektroniki, jak i zaawansowani mikrokontrolerowcy. Jeśli jednak nie do końca wiemy, zachęcam do odwiedzenia strony domowej projektu (link 5 na końcu artykułu) oraz zerknięcia np. w poradnik (link 4).

Jakiś czas temu, przełamując się i zmieniając zdanie ("o 180 stopni" ;-)) nabyłem sobie Arduino Leonardo, głównie w celu jego "obwąchania" i zapoznania się z bogatym zbiorem bibliotek dostępnych dla tej platformy. Zgoda, różne biblioteki są dostępne niezależnie od Arduino, ale i tak się zdecydowałem. Dlaczego Leonardo? Otóż miałem ochotę przyrządzić dwie pieczenie na jednym ogniu - mieć Arduino i przetestować ATmegę 32u4. Dziś doskonale zdaję sobie sprawę, że żeby pobawić się Arduino nie trzeba go w ogóle posiadać... Ale po kolei.

Pierwsza rzecz: wiem doskonale, że temat "Arduino bez Arduino" opisały już setki blogerów i pasjonatów, pozwoliłem sobie jednak przedstawić tutaj wyłącznie moje doświadczenia oraz pewien pogląd na temat owych włoskich (?) wynalazków. Zacznę od poglądu.

Płytka Arduino jest płytką prototypową. Oznacza to, że nie została ona - poza kilkoma konstrukcjami, które to przewidują - zaprojektowana do montażu w gotowych urządzeniach. Owszem, można, ale się to najnormalniej nie opłaca. ATmega328P kosztuje około 17 zł, a tak na prawdę tylko ona jest nam potrzebna. Ponadto zakładam, że każdy pasjonat AVR-ów posiada jakiś programator. A gdyby nie posiadał, to USBAsp kosztuje około 25 zł (i kupujemy go tylko raz). Dla porównania Arduino UNO kosztuje około 90 zł. Dla mnie wniosek był prosty: ponieważ bardzo wygodnie pisze się w C/C++ na Arduino i chciałoby się wykorzystać prototyp do wykonania wersji końcowej, należy znaleźć sposób przeniesienia programu z Arduino na "swobodną" ATmegę. Lub ATtiny - wszak nie zawsze potrzebujemy kobylastego układu do sterowania; czasem np. ATtiny85 jest w sam raz.
Sposób taki znalazłem - czyli pora na podzielenie się doświadczeniami. Od razu uprzedzam, że przykłady i screeny pochodzą ze środowiska linuksowego i dotyczą Arduino IDE w wersji 1.0.5, ale wszystko, co opisałem, zostało również przetestowane w systemie Windows (pozostaje jedynie kwestia ścieżek). A podejrzewam, że w MacOS-ach tradycyjnie już nie trzeba nic konfigurować ani testować, bo wszystko jest i działa... ;-) Oczywiście żart - z makówkami najprawdopodobniej działamy jak z linuksami (nie sprawdzałem w MacOS-ie).