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:

48912-arduinouno_r3_front

Arduino Mega tak:

Arduino-Mega-2560-Pinout

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:

  1. w 'setup()’ ustawiamy pin 13 na wyjście (OUTPUT)
  2. 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.