środa, 10 października 2018

Arduino - jak zacząć

Arduino... Rapsberry Pi...

Na wstępie kilka zdań czym są obydwie platformy. Skąd takie pytanie na początek?
Stąd, że kiedyś myślałem, że jest to niemalże to samo.
No i okazało się, że się myliłem... (to jedna z tych niewielu chwil w życiu kiedy się do tego przyznałem ;)

Tak więc.
Arduino (link do Wikipedii), to platforma na którą składają się płytki mikro kontrolerów w różnych wielkościach, a co za tym idzie z różną liczbą wejść i wyjść.
Najpopularniejsze modele to Uno, Nano i Pro Mini, które widać na zdjęciach poniżej.

Arduino Uno
Arduino Uno (zdjęcie ze strony www.arduino.cc)
Arduino Nano
Arduino Nano (zdjęcie ze strony www.arduino.cc)
Arduino Pro Mini (zdjęcie ze strony www.arduino.cc)

Można dzięki nim realizować zadania takie jak sprawdzanie parametrów środowiskowych (temperatura, wilgotność) i wyświetlanie ich wartości, logowanie różnych parametrów na karcie pamięci, bądź też do zdalnego serwera. W zakresie IT można je wykorzystać np. do sterowania klimatyzacją.
Więcej przykładów implementacji Arduino możecie znaleźć tutaj, bądź wpisując w Google "Arduino top projects".

Z kolei Raspberry Pi (link do Wikipedii), to taki mini komputerek z Linuxem.
Oczywiście nie będzie się on nadawał do wszystkiego z uwagi chociażby na wydajność zainstalowanych podzespołów. Ale jeżeli potrzebujecie prostego rozwiązania to być może Raspberry będzie strzałem w dziesiątkę.
Raspberry PI 3 model B+
Raspberry PI 3 model B+ (zdjęcie ze strony www.raspberrypi.org)

To tak w dużym uproszczeniu, pozwalającym jednak na zorientowanie się z czym mamy do czynienia i czym różni się "jedno od drugiego".

Jeżeli jednak nie jesteście pewni co by Was bardziej interesowało to odsyłam do tekstu, który w pełniejszy sposób wyjaśnia temat - "Raspberry Pi czy Arduino – którą platformę wybrać?"

Jako, że z komputerami mam do czynienia codziennie, bardziej zaciekawiło mnie Arduino. Postanowiłem sprawdzić ile kosztuje taki nabytek i okazało się, że jest to całkiem przystępna cenowo rzecz.

Skąd wziąć Arduino?

Jeżeli chcecie posiadać oryginalny sprzęt i wesprzeć twórców, to oczywiście najlepiej zajrzeć do oficjalnego sklepu https://store.arduino.cc. Oryginalny sprzęt możecie kupić także u kilku krajowych dostawców jak np. https://botland.com.pl/234-arduino

Jako, że Arduino jest sprzętem typu open-source hardware, to na portalach typu Aliexpress, Banggood, bądź GearBest znaleźć można wiele jego klonów. O ich jakości nie będę się wypowiadał bo zbyt krótko siedzę w temacie.
W każdym razie ja postanowiłem zaryzykować kupno klona w wersji Nano z Aliexpress (link) i razem z przesyłką kosztował mnie on 8,02zł.

Jak widać nie jest to majątek.

Arduino Nano z pinami, które trzeba samemu dolutować
Arduino Nano z aukcji Aliexpress (link) z widocznymi nieprzylutowanymi pinami
Przy zakupie warto pamiętać o tym, że niektóre klony nie mają przylutowanych pinów. Jeżeli więc nie macie lutownicy, bądź nie czujecie się na siłach lutować czegoś tak małego, to lepiej dopłacić za wersję już gotową.

Uruchomienie

Uruchomienie płytki polega na:
  1. zainstalowaniu oprogramowania Arduino IDE
  2. podpięciu płytki do komputera, 
  3. ustaleniu portu komunikacyjnego, który został jej przyporządkowany,
  4. konfiguracji oprogramowania Arduino IDE,
  5. weryfikacja komunikacji,
  6. uruchomienie przykładowego kodu.
Część z powyższych kroków wykonuje się jednorazowo. Po skonfigurowaniu całości pozostaje podłączenie płytki, napisanie kodu i jego uruchomienie. 

A zaczynając od początku. 

Instalacja oprogramowania Arduino IDE

Oprogramowanie można pobrać ze strony https://www.arduino.cc/en/Main/Software
Są tam wersje dla systemu Windows, Linux, Mac OS oraz kody źródłowe. W trakcie jego instalacji doinstalowywane są sterowniki, dlatego sądzę, że cały proces warto zacząć od tego kroku.

Środowisko Arduino IDE z przykładowym kodem pt. "Blink"
Środowisko Arduino IDE z przykładowym kodem pt. "Blink"
Program jest bardzo prosty i intuicyjny, ale wrócimy do niego jeszcze w punkcie pt. "Uruchomienie przykładowego kodu". Na razie przejdźmy dalej.

Podpięcie płytki do komputera

Chyba wszystkie płytki Arduino, poza najmniejszą Pro mini, posiadają port komunikacyjny USB.
W wersji Uno jest to pełnowymiarowy port USB, zaś w Nano jest to mini USB (nie mylić z micro USB znanego z telefonów).

Podłączenie do komputera nie wymaga żadnych specjalnych zabiegów. Spinacie jedno z drugim kablem USB, czekacie aż komputer rozpozna połączoną płytkę i zainstaluje odpowiednie sterowniki.

Zauważyłem, że lepiej użyć krótkiego, dobrej jakości kabla USB, ponieważ przy dłuższym częściej występują problemy z poprawnym wgraniem kodu.

Ustalenie portu komunikacyjnego

Po zakończeniu instalowania sterowników należy ustalić na jakim porcie komunikacyjnym będziemy mogli komunikować się z Arduino. 
Ustalić to można w Menedżerze Urządzeń, gdzie w sekcji Porty (COM i LPT) należy odszukać odpowiednią pozycję. Na screenie poniżej widać, że moja płytka prezentowana jest jako USB-SERIAL CH340 i ma przydzielony port COM6

Numer portu trzeba potem podać w Arduino IDE, aby aplikacja wiedziała na jakim porcie ma się komunikować z płytką. 

Płytka Arduino Nano widoczna w Menedżerze Urządzeń jako USB-SERIAL CH340 na porcie COM6
Płytka Arduino Nano widoczna w Menedżerze Urządzeń jako USB-SERIAL CH340 na porcie COM6

Konfiguracja oprogramowania Arduino IDE

Jak wspomniałem wcześniej, oprogramowanie jest bardzo proste, jednak aby całość "zabanglała" należy ustawić poniższe pozycje.

Rodzaj płytki

W menu Narzędzia należy wybrać pozycję Płytka i tam wybrać swój model Arduino. Jak widać na screenie poniżej jest ich tam całkiem sporo. 

Procesor

To mnie zaskoczyło. Na początku myślałem, że skoro płytkę kupiłem dopiero co, to zapewne nie jest ona wyposażona w "Old Bootloader". Po kilku nieudanych próbach nawiązania komunikacji, skuliłem nieco swoje ambicje co do posiadania najnowszego sprzętu i zaznaczyłem opcję jak na poniższym screenie. No i ruszyło.

No cóż. Pewnie to kolejny urok posiadania klona. 

Ciekawy jestem, czym się różni wersja ze starym bootloaderem, od tej nowszej. Czy od strony usera jest to jakakolwiek różnica...?


Port

Ostatnim krokiem konfiguracji jest wskazanie portu komunikacyjnego. Jego wartość ustaliliśmy w poprzednich krokach poprzez Menedżer urządzeń. Teraz należy go wskazać. 

Aha. Aby można go było zaznaczyć płytka musi być podłączona do komputera. W przeciwnym wypadku nie będzie on widoczny. 

Weryfikacja komunikacji

Jeżeli gdzieś pod drodze nie chcieliście odkrywać od nowa Ameryki, to jest duża szansa na to, że całość zadziała. W menu Narzędzia znajdziecie opcję Pobierz informację o płytce. Dzięki niej aplikacja powinna skomunikować się z płytką i wyświetlić podstawowe informacje na jej temat.

U mnie te informacje wyglądają jak poniżej i jak widać zaledwie dwie z czterech pozycji są uzupełnione. Wynika to zapewne z tego faktu, że moja płytka to nie oryginalne Arduino, ale klon. 

No cóż. Myślę, że będę musiał z tym żyć. 

Informacja o płytce dla klona Arduino Nano nie jest zbyt bogata...
Informacja o płytce dla klona Arduino Nano nie jest zbyt bogata...
Ale w korzystaniu z tej opcji nie chodzi nam o sprawdzenie numeru seryjnego płytki, bądź innego parametru, który może się tam wyświetlić, ale o fakt, że program poprawnie nawiązał komunikację. 

Jeżeli tak się stało to znaczy, że wszystkie powyższe kroki zostały przeprowadzone poprawnie.

Jeżeli jednak otrzymaliście komunikat Natywny port szeregowy, nie można uzyskać informacji, to znaczy, że coś poszło nie tak i lepiej przeanalizować poprzednie kroki.

Uruchomienie przykładowego kodu

No i przyszedł czas na finał, czyli na uruchomienie pierwszego kodu :)

Ale skąd takowy wziąć? Można napisać samemu, można pobrać z Internetu, bądź (wersja polecana) skorzystać z gotowych przykładów zaimplementowanych w aplikacji Arduino IDE.

Na początek warto skorzystać z kodu o nazwie Blink, znajdującym się w menu Plik Przykłady 01.Basics.

Wybranie kodu Blink
Wybranie kodu Blink
Dlaczego ten kod? Ponieważ nie potrzeba do niego żadnych dodatkowych elementów (rezystorów, diod, itd.). Jego działanie polega na tym, że jedna z diod na płytce zacznie cyklicznie mrugać.
Łatwo się więc zorientować, że operacja się udała, lub nie.

Arduino Nano po wgraniu kodu "blink"
Arduino Nano po wgraniu kodu "blink"
I to w zasadzie tyle. Teraz możecie przeglądać pozostałe przykładowe programy i się nimi bawić.

Przemyślenia

Czy programowanie Arduino jest trudne?

Nie wiem :)

Pewnie nie takiej odpowiedzi się spodziewaliście :)

A tak poważnie. Arduino opiera się na języku C/C++, więc znajdziecie tutaj zmienne, instrukcje warunkowe typu if, ale też pętle for, czy do ... while. Tego typu konstrukcje znajdziecie także w innych językach, więc jeżeli znacie np. PHP to i tutaj bez problemu powinniście się odnaleźć.


Co można nabyć, aby praca była łatwiejsza?

Z pewnością udogodnieniem w zabawach z Arduino będzie płytka stykowa, przewody łączeniowe (tzw. dupont), oraz różnego rodzaju płytki rozszerzające złącza. Ma to szczególne znaczenie w przypadku Arduino Nano, które jest niewielkie i ciężko przy nim manewrować. 

Płytka rozszerzająca to nic innego jak wyprowadzenie pinów Arduino na znacznie wygodniejsze połączenia jak np. zaciski śrubowe. Arduino łączy się z taką płytką poprzez czarne gniazda widoczne na poniższym zdjęciu. 
Wkłada się tam Arduino i dzięki temu znacznie łatwiej dokonywać wszelkich zabaw i testów. 
Jeżeli stwierdzimy, że wszystko działa jak należy, to Arduino można wyjąć z płytki rozszerzającej, sensory, bądź przewody, które były do niej podłączone poprzez płytkę rozszerzającą, przylutować bezpośrednio do pinów Arduino i gotowe. 

Od lewej: płytka rozszerzająca złącza Arduino na zaciski śrubowe, po prawej płytka rozszerzająca na złącza do kabelków łączeniowych oraz na dole zdjęcia Arduino Nano
Od lewej: płytka rozszerzająca złącza Arduino na zaciski śrubowe, po prawej płytka rozszerzająca na złącza do kabelków łączeniowych oraz na dole zdjęcia Arduino Nano
Arduino Nano włożone w płytkę rozszerzającą o zaciski śrubowe
Arduino Nano włożone w płytkę rozszerzającą o zaciski śrubowe
To w zasadzie tyle jeżeli chodzi o podstawy zabawy z Arduino.

Myślę, że teraz wiecie już czym różni się Arduino od Raspberry, do czego można go użyć, gdzie nabyć oraz co zrobić, aby pierwszy raz je zaprogramować.

Jak widać nie jest to specjalnie trudne. Jeżeli więc macie chociaż trochę technicznego zacięcia, to powinniście sobie z tym poradzić.

Powyższy tekst przygotowałem w oparciu o własne doświadczenia, jeżeli więc znaleźliście w nim błędy, to proszę wskażcie mi je, abym mógł je skorygować. 

Brak komentarzy:

Prześlij komentarz

Bardzo proszę o zachowanie netykiety.