Krok pierwszy: Arduino
Co to tak wogóle jest?
Nie będę tu przynudzał o „prototypowych platformach opartych na mikrokontrolerze ATmega, rodzajach układów, częstotliwościach, ilościach pinów, wojnie między .cc a .org”. Na pierdoły przyjdzie czas i internet jest ich pełen. To zabija całą zabawę. A zabawa wygląda tak:
Kupujesz kawałek elektroniki za mniej niż 50 zeta. Ta elektronika ma wejścia, wyjścia i 'mózg’. Całość możesz podłączyć do komputera za pomocą kabla USB i zaprogramować mózg. Tyle.
Proste to i niedużo tego. Ale! Komputer to generalnie takie samo 'niedużo’ – ma wejścia (klawiatura, mysz), wyjścia (ekran, głośniki) i mózg (wszystko co tam w środku siedzi). Robot składający samochody na taśmie produkcyjnej to też generalnie to samo – ma wejścia (czujniki), ma wyjścia (ramiona, chwytaki) i ma mózg. Widać do czego zmierzam? Arduino to tani i prosty układzik. Jego mózg możemy zaprogramować z dowolnego komputera, do wejść podłączyć klawiatury i czujniki, do wyjść ekrany, silniczki, serwa. Czyli na dobrą sprawę całkiem tanio i na własnym biurku w pokoju możemy sobie zrobić komputero-roboto-niewiadomo co.
Z lotu ptaka
Arduino Uno wygląda mniej więcej tak:
Arduino Mega tak:
Jak widać wszystkie nie-miniaturowe odmiany mają bardzo podobny kształt i umiejscowienie komponentów. To bardzo cwany pomysł bo pozwala na istnienie tzw. shieldów.
Shieldy
To płytki rozszerzające możliwości Arduino. Jest ich massa – moduły do łączności przewodowej i bez, czytniki kart, sterowniki silników itp., itd. Są też shieldy 'puste’ na które możemy wlutować swój układ. Shieldy podłączamy do Arduino po prostu nakładając je na siebie stertę 🙂 Na przykład Arduino + moduł GSM wygląda tak:
OK. Brzmi dumnie. Czyli co i gdzie mam kupić?
Cokolwiek i gdziekolwiek 🙂 Nada się każde Arduino: małe i duże, oryginalne i chińskie, samotne i w zestawie. Najlepiej kupić jakiś zestaw startowy z oryginalnym Arduino Uno – z kabelkami, płytką prototypową, czujnikami, diodkami i silniczkiem. Trzeba na to wygilgać trochę ponad stówkę ale zabawy jest potem w bród.
Mam. Płytkę i kabelek. Co dalej?
Żeby ożył musisz go zasilić. Czymkolwiek co daje napięcie w przedziale 6-20V. Tak zupełnie na początku do nauki elektroniki, programowania i testów to wystarczy płytkę podłączyć po USB do komputera.
Potem, po zbudowaniu układu do zasilania nada się zarówno bateria 9V, akumulator samochodowy czy zasilacz od drukarki/switcha internetowego. Cokolwiek.
Płytka ma piny – miejsca gdzie możesz podłączyć kabelki.
Najpopularniejsza wersja ma 14 pinów cyfrowych które mogą służyć jako wejście i wyjście oraz 6 pinów wejściowych analogowych. Możesz sobie do tego podłączyć masę elektronicznego sprzętu – poczynając od rezystorków i diodek przez czujniki (temperatury, odległości, wilgotności i czego tam jeszcze zapragniesz), wyświetlacze i klawiaturki przemysłowe, aż po całe moduły (nazywane tu shieldami) które pozwolą na cuda – np. moduł GSM pozwoli wykonać i odebrać połączenie , zareagować na SMS czy wysłać SMS 'bo coś’.
Płytka zrobiła się popularna i cała dokumentacja jest dostępna – więc są setki modułów – komunikacji po Bluetoothu, do czytania tagów RFID, kompasy, żyroskopy, sterowniki silników krokowych.
Do tego masa konfekcji mechaniczniej – różne serwa, silniczki, całe podwozia robotów itp, itd.
Jeżeli już całkowicie nic nie masz to Arduino ma wlutowaną jedną diodkę (niedaleko pinu 13) którą możesz sobie pomrugać 😀
IDE
I teraz najlepsze:
Całe to elektroniczne badziewie podłączasz kabelkiem USB do kompa i programujesz.
Jest do ściągnięcia środowisko w którym piszesz program i klikiem go wrzucasz na płytkę.
Czyli udajemy się na stronę http://arduino.cc do działu 'Software’ i ściągamy IDE.
Z poziomu tego IDE możesz się połączyć z płytką i wrzucić na nią swoje arcydzieło.
Programowanie:
Nic jakoś mocno skomplikowanego – każdy kto cośtam pisał w jakimkolwiek języku spokojnie da radę.
Masz dwie funkcje:
void setup() { } void loop() { }
'setup()’ wykonuje się raz i na samym początku – czyli tam ustawiasz sobie wejścia/wyjścia, przygotowujesz płytkę do działania.
A potem 'loop()’ wykonuje się cały czas w pętli – czyli tam robisz wszystkie 'if temperatura > 30 then zapalDiodkę()’.
Oto nieśmiertelny program na miganie diodką:
int ledPin = 13; void setup() { pinMode(ledPin, OUTPUT); } void loop() { digitalWrite(ledPin, HIGH); delay(2000); digitalWrite(ledPin, LOW); delay(2000); }
czyli:
- w 'setup()’ ustawiamy pin 13 na wyjście (OUTPUT)
- w 'loop()’ wysyłamy na nasz pin '1′ (diodka świeci), czekamy 2000ms, wysyłamy '0′, czekamy 2000ms i tak w kółko.
Dobra – na pierwszy krok chyba wystarczy.