Arduino – środowisko programistyczne

O tym, co to jest Arduino i dlaczego mi się podoba, pisałem w poprzednim poście. Teraz przyszła kolej, żeby wspomnieć o sednie całej zabawy – środowisku programistycznym. Wszak to między innymi dzięki łatwości programowania Arduino jest tak interesujące dla „przeciętnego człowieka”.

Programy dla Arduino tworzy się w języku opartym na platformie Wiring i przypomina bardzo uproszczone narzecze C/C++. Jakkolwiek mało przyjaźnie by to mogło zabrzmieć, oznacza ni mniej, ni więcej, że każda osoba mająca jakieś, choćby minimalne doświadczenie w języku C (a tak naprawdę jakimkolwiek języku programowania), po przeczytaniu krótkiego poradnika, szybko zacznie pisać proste programy. Ich konstrukcja jest wszak bardzo prosta, a masa przykładów, które można znaleźć w sieci, pozwoli szybko rozwiać ewentualne wątpliwości, lub nawet pisać oprogramowanie metodą „kopiuj/wklej”. Już samo środowisko programistyczne zawiera mnóstwo przykładów o różnym stopniu złożoności, napisanych tak, żeby łatwo je było zrozumieć. Bardzo dobrym punktem startu do nauki programowania będzie tutoral ze strony projektu Arduino.

Często najtrudnejszy w nauce programowania w nowym języku jest pierwszy krok – konfiguracja środowiska, uruchomienie pierwszego programu. Zapewne wiedzieli o tym autorzy projektu i uprościli start jak tylko się da. Na początek trzeba zainstalować srodowisko programistyczne. W Ubuntu, którego używam na codzień, robi się to w najprostszy możliwy sposób – wybierając Arduino IDE z centrum oprogramowania i klikając install lub przez wydanie komendy „sudo apt-get install arduino” w terminalu. Program zostanie ściągnięty z repozytorium i automatycznie zainstalowany. W innych dystrybucjach Linuksa instalacja wygląda podobnie, jeżeli Arduino IDE jest w standardowym repozytorium. Jeżeli nie, to w ostateczności można pobrać program ze strony projektu i go ręcznie zainstalować. Użytkownicy Windows muszą samodzielnie ściągnąć program i przejść tradycyjną dla tego systemu procedurę instalacji.

Po uruchomieniu IDE można wybrać z menu wczytanie przykładowego kodu programu (np. File/Examples/Basics/Blink), który po kliknięciu przycisku Upload zostanie automatycznie wysłany do podłączonego Arduino. Jeżeli mamy nietypową płytkę (czyli inną niż obecnie Arduino Uno), to należy ją wybrać wcześniej z menu Tools/Board (starszy kontroler może wymagać także wciśnięcia przycisku Reset dla wgrania programu). Jeżeli zachodzi potrzeba wybania portu, to odpowiednie ustawienie znajdziemy w menu Tools/Port. Dla Linuksa Arduino Uno przedstawi się prawdopodobnie jako /dev/ttyACM0 (/dev/ttyACMx jeżeli  mamy więcej urządzeń opartych o Abstract Control Model, np. jakiś modem 3G).

Gdy program zostanie wysłany do podłączonej płytki, od razu zacznie działanie. Jeżeli był to program mrugający diodą podłączoną do pinu numer 13 (Blink z dołączonych przykładów), to możemy od razu zaobserwować jego działanie, ponieważ trzynaste wyjście jest połączone z diodą, która znajduje się na każdej płytce drukowanej Arduino Uno. Aby się przekonać czy rzeczywiście program jest wysłany poprawnie (dla niedowiarków, bo jakby coś było nie tak, to otrzymalibyśmy komunikat błędu), to można zmienić wartości funkcji delay (np. 1000 na 500) i zaobserwować, że dioda mruga w innym tempie.

W ten sposób najtrudniejszy krok mamy za sobą. Teraz pozostało tylko pisanie coraz bardziej złożonych programów i konstruowanie układów elektronicznych podłączonych do odpowienich pinów naszej płytki (bo ile można mrugać diodą). Tutaj bardzo pomoże lektura wspomnianego wcześniej samouczka. Warto go przeczytać i zapoznać się z różnymi ciekawymi funkcjami i prezentowanymi prostymi technikami programistycznymi, użytymi do zobrazowania rozwiązywania prostych problemów, które napotyka się podczas tworzenia realnych układów. Poza przykładowymi programami, dołączone są też schematy podłączenia różnych czujników, przycisków, diód, itp. wraz z wyjaśnieniem dlaczego coś działa w dany sposób, dlaczego czasem trzeba dołączyć rezystor, a innym razem kondensator czy jak poprawnie wykrywać wciśnięcie przycisku, który jak się okazuje nie jest urządzeniem doskonałym.

Arduino IDE daje oczywiście więcej możliwości, niż tylko wysyłanie programów do urządzenia. Warto wspomnieć o monitorze portu szeregowego. Gdy uruchomimy program, wtedy klikając przycisk Serial Monitor otwieramy prostą konsolę szeregową, która pozwala się komunikować z programem (o ile program zakłada taką komunikację rzecz jasna). Powyższy zrzut ekranu przedstawia prosty program liczący co pół sekundy od zera wzwyż i wysyłający aktualny stan licznika przez port szeregowy. Ten prosty program działał na moim Arduino podłączonym do routera z OpenWRT przez prawie miesiąc, dla sprawdzenia czy platforma jest stabilna. Nie było problemów, nic się nie zawiesiło.

Przy pomocy IDE możemy też wgrać do mikrokontrolera bootloader Arduino (gdy np. chcemy skonstruować własny, budżetowy klon) lub też zaprogramować jeden z układów ATtiny lub ATmega do działania niezależnego od Arduino. Zapewne kiedyś jeszcze o tym napiszę.

Gdy chcemy opublikować kod programu Arduino, to pomocna może się okazać funkcja kopiowania do schowka kodu wraz z formatowaniem HTML. Dzięki temu wklejony na stronę kod wygląda jak poniżej (z kolorowaniem składni analogicznym do sposobu prezentacji w Arduino IDE).

/*
  Blink
  Turns on an LED on for one second, then off for one second, repeatedly.
 
  This example code is in the public domain.
 */

void setup() {
  // initialize the digital pin as an output.
  // Pin 13 has an LED connected on most Arduino boards:
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);   // set the LED on
  delay(100);              // wait for a second
  digitalWrite(13, LOW);    // set the LED off
  delay(1000);              // wait for a second
}

Arduino IDE to bardzo proste w obsłudze, ale też wygodne narzędzie o możliwościach, na które nie wskazuje pierwszy rzut oka na tę aplikację. Mimo, że nie jest to najbardziej rozbudowane IDE na rynku, ale ma wszystko czego potrzeba do programowania Arduino i rozpoczęcia zabawy z mikrokontrolerami. Właśnie prostota, połączona z łatwością programowania sprawia, że przygodę z Arduino może zacząć praktycznie każdy, niezależnie od posiadanego doświadczenia programistycznego.  Choć oczywiście, jak można się spodziewać, umiejętność programowiania w innych językach (szczególnie C) może pomóc.

Jeżeli będzie zapotrzebowanie, postaram się napisać w przyszłości kilka słów o programowaniu Arduino. Niezastąpione w nauce będą jednak samodzielne eksperymenty, chociażby z modyfikacją gotowych przykładów.

Reklamy

One Response to Arduino – środowisko programistyczne

  1. Nettigo says:

    Dodałbym że warto jednak korzystać z IDE 1.0. Są jednak pewne zmiany między 1.0 a 023 czy 022, a wersja 1.0 jest uznawana za referencyją więc przykłady działające w 1.0 powinny bez problemu skompilować się późniejszych. Przykłady/biblioteki z 022 niekoniecznie pójdą w 1.0 i późniejszych. Zmiany niewielkie ale czasem mają wpływ

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Zdjęcie na Google+

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s

%d blogerów lubi to: