Arduino, czyli mikrokontrolery dla każdego

Fot. 4. Arduino Uno R3 polecane dla początkujących.

Co to jest Arduino i dlaczego stało się ono nieformalnym standardem w edukacji i przy tworzeniu prototypów?

Każdy pasjonat elektroniki co najmniej słyszał o Arduino, ponieważ dzięki swoim unikatowym cechom zyskało ono ogromną popularność. Dziś przedsiębiorstwo, założone i rozwinięte przez pasjonatów, dyktuje standardy złączy oraz rozmieszczenia sygnałów ogromnym koncernom – producentom mikrokontrolerów lub płytek ewaluacyjnych. Co to jest Arduino i dlaczego stało się ono nieformalnym standardem w edukacji i przy tworzeniu prototypów? I wreszcie, jakie są rodzaje Arduino, co można zrobić z Arduino i jak wykorzystać je do własnych potrzeb?

Arduino – idealny wybór dla początkujących programistów

Jeśli mamy zamiar nauczyć się programowania mikrokontrolerów, to platforma Arduino jest kapitalnym wyborem. Podobnie, jeśli jesteśmy pasjonatami elektroniki, mamy jakiś pomysł i chcemy szybko wykonać urządzenie bazujące na mikrokontrolerze oraz na standardowych peryferiach, takich jak: wyświetlacze alfanumeryczne, graficzne, LED, LCD z towarzyszącymi im przyciskami lub bez nich, czujniki, moduły transmisyjne, drivery silników lub elektrozaworów i wiele, wiele innych. Po platformę Arduino warto również sięgnąć, jeśli chcemy wyprodukować krótką serię urządzeń, w których „sercem” będzie mikrokontroler, niekoniecznie współpracujący z modułami rozszerzenia Arduino.

Arduino – co to jest?

Czym jest Arduino? To nie tylko płytka mikrokomputera (najczęściej mówiąc „Arduino” tylko ją mamy na myśli), ale kompletna platforma bazująca na łatwych do użycia sprzęcie i oprogramowaniu. Co istotne, jest to platforma typu open source, co oznacza, dostęp do bezpłatnej, szczegółowej dokumentacji oraz schematów i źródeł programów. Typowo, urządzenie wykonane w oparciu o platformę Arduino składa się z płytki bazowej z mikrokontrolerem oraz dołączonego do niej modułu rozszerzenia nazywanego shield.

Większość płytek bazowych Arduino ma interfejs USB służący do ich programowania za pomocą komputera PC. Na niektórych płytkach sygnały mikrokontrolera są doprowadzone do gniazd, do których są dołączane moduły rozszerzające, a na niektórych do punktów lutowniczych. W związku z tym, że takie płytki są oferowane jako miniaturowe moduły, niektórzy mówią o nich potocznie „mikrokontroler Arduino” lub „mikrokomputer Arduino”.

Fot. 1. Moduł rozszerzenia z wyświetlaczem LED i przyciskami. Za jego pomocą można łatwo wykonać zegar.
Fot. 1. Moduł rozszerzenia z wyświetlaczem LED i przyciskami. Za jego pomocą można łatwo wykonać zegar.

 

Programowanie w Arduino jaki język?

Składnia języka umożliwiającego programowanie Arduino zbliżona jest do języka C++ i stała się bardzo popularna wśród programistów mikrokontrolerów. Mocna strona środowiska programistycznego Arduino to dostępność licznych gotowych bibliotek ułatwiających tworzenie programu oraz niezliczonej wprost ilości gotowych aplikacji opracowywanych przez użytkowników tej platformy z całego świata. Co ważne, środowisko programistyczne jest ogólnodostępne, bez względu na to, do jakich celów będzie używane. Podobnie sama płytka bazowa – jeśli nie chcemy jej kupować, możemy ją wykonać samodzielnie na podstawie dostępnej dokumentacji.

Krótka historia powstania Arduino

Idea Arduino narodziła się we Włoszech, w Ivrea Interaction Design Institute. Platforma Arduino miała być przeznaczona do szybkiego tworzenia prototypów oraz nauki programowania przez studentów, którzy dotychczas nie mieli do czynienia z elektroniką i programowaniem. Twórcy Arduino mieli kapitalny pomysł, ponieważ sprawdziło się ono nie tylko na uczelni, ale także poza nią, pomagając wielu osobom w nauce czy w szybkiej realizacji pomysłów.

Po tym jak platforma Arduino wyszła poza uczelnię i została przyjęta przez znacznie szersze grono użytkowników, musiała zaadoptować się do nowych wyzwań i zaspokoić nowe potrzeby. Jednocześnie oferta płytek bazowych została znacznie zróżnicowana, obejmując nie tylko proste jednostki 8-bitowe, ale również bardziej rozbudowane, przeznaczone do zastosowania w urządzeniach IoT, przenośnych, do drukarek 3D oraz innych, jeszcze bardziej wymagających aplikacji. Wszystkie płytki Arduino są oparte na zasadach licencji open source, co umożliwia użytkownikom ich samodzielne wykonywanie oraz dostosowywanie do konkretnych potrzeb. Również oprogramowanie jest typu open source i rozwijane dzięki pracy użytkowników na całym świecie.

Arduino gdzie kupić – dlaczego właśnie Arduino?

Jeszcze kilka lat temu każdy z producentów płytek ewaluacyjnych czy mikrokontrolerów miał jakiś własny standard złączy, dziś większość z nich dopasowuje się do nieformalnego „standardu” wprowadzonego przez Arduino. Zapewne głównym powodem, obok popularności samego Arduino, jest dostępność ogromnej liczby modułów rozszerzeń (tzw. shield – tutaj). Jeśli wyprowadzenia oferowanej płytki ewaluacyjnej są zgodne z wyprowadzeniami Arduino, użytkownik ma możliwość swobodnego korzystania z ogromnej oferty modułów rozszerzeń dla Arduino, co pozwala na łatwe, tanie i szybkie uzyskanie oczekiwanej funkcjonalności prototypu. Daje to też korzyść producentowi płytki ewaluacyjnej, ponieważ może on skupić się na aplikacji samego mikrokontrolera, otaczając go jedynie minimalnym zestawem współpracujących komponentów i co pozwala obniżyć jej ostateczną cenę.

Fot. 2. Moduł rozszerzenia z modemem GSM. Przyda się do zbudowania alarmu z powiadomieniem. Jaki moduł gsm do Arduino 
Fot. 2. Moduł rozszerzenia z modemem GSM. Przyda się do zbudowania alarmu z powiadomieniem. Jaki moduł gsm do Arduino

Ze względu na łatwość użycia, dostępność, a także różnorodne potrzeby użytkowników, wśród projektów realizowanych za pomocą Arduino można znaleźć rozwiązania licznych problemów i realizacje niemal dowolnych urządzeń. Można się nimi posłużyć wprost lub wykorzystać w funkcji projektu referencyjnego. Oprogramowanie do tworzenia aplikacji (Arduino IDE) jest bardzo łatwe w użyciu przez początkujących, a jednocześnie elastyczne i dające wiele możliwości zaawansowanym użytkownikom. Można je uruchomić pod kontrolą systemów operacyjnych Mac OS, Windows i Linux. Dzięki temu jest dostępne dla użytkowników o różnych preferencjach sprzętowych i o różnej zasobności kieszeni.

Nie sposób policzyć wszystkich zastosowań Arduino, ponieważ jest ono równie chętnie używane przez profesjonalistów, jak i hobbystów. Nauczyciele i studenci używają Arduino do realizacji niedrogich przyrządów pomiarowych, nie tylko wielkości elektrycznych, ale również przeznaczonych do zastosowania w eksperymentach chemicznych i fizycznych. W szkołach na całym świecie jest ono stosowane do nauki programowania oraz robotyki. Projektanci i architekci budują za pomocą Arduino prototypy interaktywnych budynków, muzycy i artyści tworzą przy jego użyciu interaktywne instalacje artystyczne oraz eksperymentują z nowymi rodzajami instrumentów muzycznych. Dla wielu osób platforma Arduino jest kluczowym narzędziem do nauki nowych umiejętności. Każdy może jej użyć: dzieci, hobbyści, artyści, programiści, konstruktorzy urządzeń i wiele innych osób. Każdy może zbudować jakieś urządzenie wykonując instrukcje zestawu krok po kroku lub dzielić się pomysłami online z innymi członkami społeczności Arduino.

Arduino jak zacząć – które Arduino wybrać?

Typowo, aby wykonać prototyp lub urządzenie zbudowane w oparciu o platformę Arduino, potrzebujemy płytkę bazową, wyposażonej w odpowiedni dla naszych potrzeb rodzaj mikrokontrolera, moduł rozszerzenia – nakładkę shield, oprogramowanie Arduino IDE, kabel USB, zasilacz oraz komputer PC. Aktualnie ekosystem zawiera różne rodzaje Arduino, z różnymi mikrokontrolerami oraz ogromną liczbę modułów rozszerzeń. Przykładowe moduły pokazano na fotografiach 1…3.

Zależnie od typu, płytki Arduino są wyposażone w złącza – gniazda dla goldpinów lub punkty lutownicze, które mogą posłużyć nie tylko do przyłączenia płytki, ale również do jej zamocowania na płytce drukowanej urządzenia embedded, jeśli mikrokomputer Arduino pełni rolę jednostki centralnej. Każda ma w pamięci mikrokontrolera zapisany bootloader, który służy do programowania procesora „in-circuit” (bez wylutowywania z układu) za pomocą prostego wyboru opcji z menu środowiska Arduino IDE.

Fot. 3. Moduł rozszerzenia z interfejsem Ethernet. Może przydać się do urządzeń automatyki domowej.
Fot. 3. Moduł rozszerzenia z interfejsem Ethernet. Może przydać się do urządzeń automatyki domowej.

Aktualny wykaz płytek bazowych Arduino umieszczono w tabeli. Większość z nich używa mikrokontrolerów z rdzeniem AVR, ale można też wśród nich znaleźć procesor firmy Intel oraz SAM21 wyposażony w rdzeń ARM Cortex-M0+. Warto przy tym wspomnieć, że w tabeli nie ma płytek wyposażonych w procesory firmy Espressif Systems (na przykład popularny ESP8266), a one również mogą być programowane za pomocą Arduino IDE. Wybierając płytkę do aplikacji, trzeba kierować się możliwościami zamontowanego na niej mikrokontrolera. Poszczególne jednostki różnią się wielkością dostępnej pamięci, prędkością pracy rdzenia oraz wyposażeniem w bloki funkcjonalne, takie: jak interfejsy, timery, generatory PWM itd. Warto też zwrócić uwagę na wyprowadzenia płytki, ponieważ niektóre z nich nie mają złączy, lecz są przeznaczone do przylutowania.

Tabela 1: Wykaz aktualnie oferowanych płytek bazowych Arduino
Tabela 1: Wykaz aktualnie oferowanych płytek bazowych Arduino

Jakie Arduino Nano, Arduino Uno i inne

Niedrogie płytki oraz darmowe środowisko programistyczne Arduino są bardzo dobrą alternatywą dla wielu platform ewaluacyjnych dostępnych w handlu, oferowanych np. przez producentów mikrokontrolerów. Dostępność dokumentacji oraz otwarte źródła umożliwiają samodzielne modyfikowanie platformy i dopasowanie jej do własnych potrzeb. Gotowe płytki Arduino są dostępne u za niewygórowaną cenę. Dobrym punktem startu dla osób początkujących jest Arduino Uno. Zostało ono wyposażone w typowe złącze USB, za pomocą którego można spiąć płytkę z komputerem PC i łatwo przesyłać oprogramowanie jednym kliknięciem. Mikrokontroler ATmega328 zamontowany na płytce ma wystarczające zasoby pamięci oraz sprzętowe do realizacji wielu aplikacji kontroli i sterowania. Częstotliwość taktowania rdzenia wynosi 16 MHz, co daje cykl maszynowy o czasie trwania 62,5ns, a rdzeń AVR zastosowany w mikrokontrolerze realizuje większość instrukcji w pojedynczym cyklu maszynowym. W miarę nabierania wprawy i doświadczenia można wybierać kolejne warianty, takie jak Arduino Due, Mega 2560 i inne. Przede wszystkim warto tu zwrócić uwagę na model Arduino Nano, który jest zminiaturyzowaną wersję większych układów, pozbawioną np. stabilizatora napięcia i pełnowymiarowego portu USB. Arduino Nano zostało jednak wyposażone w ten sam, 8-bitowy procesor, co płytka Uno, przy imponującym zmniejszeniu rozmiaru. W przypadku serii Nano wymiar PCB to 18mm na 45 mm! Co ważne, pomimo zmiany sprzętu, nadal korzysta się z tego samego środowiska programistycznego.

Typowo, programowanie mikrokontrolera odbywa się poprzez interfejs USB. Aby interfejs USB Arduino poprawnie współpracował z użytkowanym przez nas systemem operacyjnym, wymagany będzie odpowiedni sterownik, instalowany przez system operacyjny po dołączeniu płytki i zgłoszeniu się oprogramowania startowego mikrokontrolera, tak zwanego bootloadera. Oryginalnie Arduino IDE napisano dla Windows, przez co większość bootloaderów jest dostępna dla Windows i tylko niektóre z nich dostosowana jest do innych systemów operacyjnych. Pracując na komputerze wyposażonym w MacOS lub Linux przed decyzją o zakupie określonej płytki bazowej Arduino warto sprawdzić, czy jest ona kompatybilna z użytkowanym przez nas systemem.

Fot. 4. Arduino Uno R3 polecane dla początkujących.
Fot. 4. Arduino Uno R3 polecane dla początkujących.

Na koniec warto wspomnieć o stronie internetowej użytkowników Arduino dostępnej pod adresem https://www.arduino.cc/, gdzie można znaleźć aktualne wersje programów, liczne aplikacje, forum użytkowników oraz bazę wiedzy. Dostępne są tam również schematy i parametry elektryczne płytek Arduino, opisy i specyfikacje parametrów, w tym opis Arduino Uno R3 (fotografia 4) polecanego dla osób początkujących. W naszej ofercie znaleźć można wiele modułów rozszerzeń, a liczne przykłady aplikacji są dostępne na innych stronach internetowych – można je znaleźć, korzystając z wyszukiwarek lub grup dyskusyjnych poświęconych programowaniu i elektronice.

 

oryginalne źródło tekstu: tme.eu