Articles

Everything You Need to Know About Arduino CodeBlog Post teamcircuitoMarch 11, 2018

Od czasu uruchomienia platformy open-source Arduino, marka ustanowiła się w centrum ekspansywnej społeczności open-source. Ekosystem Arduino składa się z różnorodnego połączenia sprzętu i oprogramowania. Wszechstronność Arduino i jego prosty interfejs sprawiają, że jest to wiodący wybór dla szerokiego grona użytkowników na całym świecie, od hobbystów, projektantów i artystów po prototypy produktów.

Płytka Arduino jest podłączana do komputera przez USB, gdzie łączy się ze środowiskiem programistycznym Arduino (IDE). Użytkownik pisze kod Arduino w IDE, a następnie przesyła go do mikrokontrolera, który wykonuje kod, wchodząc w interakcję z wejściami i wyjściami, takimi jak czujniki, silniki i światła.

Zarówno początkujący, jak i eksperci mają dostęp do wielu darmowych zasobów i materiałów pomocniczych. Użytkownicy mogą szukać informacji o tym, jak skonfigurować swoją płytkę, a nawet jak kodować na Arduino. Otwarte źródło Arduino sprawiło, że jest ono szczególnie przyjazne dla nowych i doświadczonych użytkowników. Istnieją tysiące przykładów kodu Arduino dostępnych online. W tym poście przedstawimy Ci kilka podstawowych zasad kodowania na Arduino.

Zaplanuj swój następny projekt dla Arduino >>

Środowisko kodowania Arduino i podstawowe narzędzia

Jaki język to Arduino?

Kod Arduino jest napisany w C++ z dodatkiem specjalnych metod i funkcji, o których wspomnimy później. C++ jest językiem programowania czytelnym dla człowieka. Kiedy tworzysz „szkic” (nazwa nadana plikom z kodem Arduino), jest on przetwarzany i kompilowany do języka maszynowego.

Arduino IDE

Zintegrowane środowisko programistyczne Arduino (IDE) jest głównym programem do edycji tekstu używanym do programowania Arduino. To właśnie tam będziesz wpisywał swój kod przed załadowaniem go do płytki, którą chcesz zaprogramować. Kod Arduino jest nazywany szkicami.

Uwaga: Ważne jest, aby używać najnowszej wersji Arduino IDE. Od czasu do czasu sprawdzaj aktualizacje tutaj.

Przykład kodu Arduino

Jak widzisz, IDE ma minimalistyczny wygląd. Na pasku menu znajduje się tylko 5 nagłówków, a pod nimi seria przycisków, które pozwalają na weryfikację i przesyłanie szkiców. Zasadniczo IDE tłumaczy i kompiluje twoje szkice do kodu, który Arduino może zrozumieć. Po skompilowaniu kodu Arduino jest on przesyłany do pamięci płytki.

Wszystko, co użytkownik musi zrobić, aby rozpocząć kompilację swojego szkicu, to nacisnąć przycisk (przewodnik po tym można znaleźć poniżej).

Jeśli w kodzie Arduino są jakieś błędy, pojawi się komunikat ostrzegawczy, który zachęci użytkownika do wprowadzenia zmian. Większość nowych użytkowników ma problemy z kompilacją z powodu surowych wymagań Arduino dotyczących składni. Jeśli popełnisz jakikolwiek błąd w interpunkcji podczas używania Arduino, kod nie skompiluje się i pojawi się komunikat o błędzie.

Monitor szeregowy i ploter szeregowy

Monitor szeregowy Arduino można otworzyć klikając na ikonę lupy w prawym górnym rogu IDE lub pod narzędziami. Monitor szeregowy jest używany głównie do interakcji z płytką Arduino za pomocą komputera, i jest świetnym narzędziem do monitorowania i debugowania w czasie rzeczywistym. Aby móc korzystać z monitora, musisz użyć klasy Serial.

Kod, który pobierzesz z circuito.io, ma sekcję testową, która pomaga przetestować każdy komponent przy użyciu monitora szeregowego, jak widać na poniższym zrzucie ekranu:

Ploter szeregowy Arduino to kolejny komponent Arduino IDE, który pozwala wygenerować wykres danych szeregowych w czasie rzeczywistym. Ploter szeregowy znacznie ułatwia analizowanie danych poprzez wizualne wyświetlanie. Możesz tworzyć wykresy, wykresy wartości ujemnych i przeprowadzać analizę kształtu fali.

Debugowanie kodu i sprzętu Arduino

W przeciwieństwie do innych platform programistycznych, Arduino nie ma wbudowanego debuggera. Użytkownicy mogą korzystać z oprogramowania innych firm lub wykorzystać monitor szeregowy do drukowania aktywnych procesów Arduino w celu monitorowania i debugowania.

Korzystając z klasy Serial, możesz drukować na monitorze szeregowym komentarze debugowania i wartości zmiennych. W większości modeli Arduino, będzie to przy użyciu pinów szeregowych 0 i 1, które są podłączone do portu USB.

Struktura kodu

Biblioteki

W Arduino, podobnie jak w innych wiodących platformach programistycznych, istnieją wbudowane biblioteki, które zapewniają podstawową funkcjonalność. Dodatkowo, możliwe jest zaimportowanie innych bibliotek i rozszerzenie możliwości i funkcji płytki Arduino. Biblioteki te są z grubsza podzielone na biblioteki, które współdziałają z konkretnym komponentem lub te, które implementują nowe funkcje.

Aby zaimportować nową bibliotekę, musisz przejść do Sketch > Import Library

Dodatkowo, na górze swojego pliku .ino, musisz użyć '#include', aby dołączyć zewnętrzne biblioteki. Możesz również tworzyć własne biblioteki do użycia w izolowanych szkicach.

Definicje pinów

Aby użyć pinów Arduino, musisz zdefiniować, który pin jest używany i jaka jest jego funkcjonalność. Wygodnym sposobem na zdefiniowanie używanych pinów jest użycie:

'#define pinName pinNumber'.

Funkcjonalność jest albo wejściowa albo wyjściowa i jest definiowana przez użycie metody pinMode () w sekcji setup.

Deklaracje

Zmienne

Kiedy używasz Arduino, musisz zadeklarować zmienne globalne i instancje, które będą używane później. W skrócie, zmienna pozwala na nazwanie i przechowywanie wartości, która ma być użyta w przyszłości. Na przykład, możesz przechowywać dane pobrane z czujnika, aby użyć ich później. Aby zadeklarować zmienną wystarczy określić jej typ, nazwę oraz wartość początkową.

Warto wspomnieć, że deklarowanie zmiennych globalnych nie jest absolutną koniecznością. Jednakże, wskazane jest, abyś zadeklarował swoje zmienne, aby ułatwić wykorzystanie ich wartości w przyszłości.

Instancje

W programowaniu, klasa jest kolekcją funkcji i zmiennych, które są przechowywane razem w jednym miejscu. Każda klasa posiada specjalną funkcję znaną jako konstruktor, która jest używana do tworzenia instancji klasy. Aby móc korzystać z funkcji klasy, musimy zadeklarować jej instancję.

Setup()

Każdy szkic Arduino musi mieć funkcję setup. Funkcja ta definiuje początkowy stan Arduino po uruchomieniu i jest uruchamiana tylko raz.

W tym miejscu zdefiniujemy następujące funkcje:

  1. Funkcjonalność pinów za pomocą funkcji pinMode
  2. Stan początkowy pinów
  3. Inicjalizację klas
  4. Inicjalizację zmiennych
  5. Logikę kodu

Loop()

Funkcja loop jest również obowiązkowym elementem każdego szkicu Arduino i wykonuje się po zakończeniu funkcji setup(). Jest to główna funkcja i jak sama nazwa wskazuje, działa ona w pętli w kółko. Pętla opisuje główną logikę Twojego układu.

Na przykład:

Uwaga: Użycie terminu 'void' oznacza, że funkcja nie zwraca żadnych wartości.

Jak programować Arduino

Podstawowa logika kodu Arduino jest strukturą „if-then” i można ją podzielić na 4 bloki:

Setup – zazwyczaj będzie zapisany w sekcji setup kodu Arduino i wykonuje rzeczy, które muszą być wykonane tylko raz, takie jak kalibracja czujnika.

Wejście – na początku pętli odczytaj wejścia. Wartości te będą używane jako warunki („if”) np. odczyt światła z LDR za pomocą analogRead().

Manipulacja danych – ta sekcja służy do przekształcania danych do wygodniejszej postaci lub wykonywania obliczeń. Dla przykładu, AnalogRead() daje odczyt 0-1023, który może być zmapowany do zakresu 0-255, aby użyć go do PWM.(zobacz analogWrite())

Output – ta sekcja definiuje końcowy wynik logiki („wtedy”) zgodnie z danymi obliczonymi w poprzednim kroku. Patrząc na nasz przykład z LDR i PWM, włącz diodę LED tylko wtedy, gdy poziom oświetlenia otoczenia spadnie poniżej pewnego progu.

Biblioteki koduArduino

Sztuka biblioteki

Biblioteka to folder składający się z plików z kodem C++ (.cpp) oraz plików nagłówkowych C++ (.h).

Plik .h opisuje strukturę biblioteki i deklaruje wszystkie jej zmienne i funkcje.

Plik .cpp zawiera implementację funkcji.

Importowanie bibliotek

Pierwszą rzeczą, którą musisz zrobić, jest znalezienie biblioteki, której chcesz użyć spośród wielu bibliotek dostępnych online. Po pobraniu jej na swój komputer, wystarczy otworzyć Arduino IDE i kliknąć na Sketch > Include Library > Manage Libraries. Następnie możesz wybrać bibliotekę, którą chcesz zaimportować do IDE. Po zakończeniu procesu biblioteka będzie dostępna w menu szkicu.

W kodzie dostarczonym przez circuito.io zamiast dodawać zewnętrzne biblioteki jak wspomniano wcześniej, dostarczamy je wraz z folderem firmware. W tym przypadku IDE wie jak je znaleźć używając #include.

Od oprogramowania do sprzętu

Wiele można powiedzieć o możliwościach programowych Arduino, ale ważne jest, aby pamiętać, że platforma składa się zarówno z oprogramowania jak i sprzętu. Te dwa elementy pracują w tandemie, aby uruchomić złożony system operacyjny.

Kod → Kompilacja → Wgrywanie → Uruchamianie

Skorupą Arduino jest możliwość kompilacji i uruchamiania kodu.

Po napisaniu kodu w IDE musisz wgrać go do Arduino. Klikając przycisk Upload (ikona strzałki po prawej stronie), skompilujesz kod i prześlesz go do Arduino, jeśli pomyślnie przejdzie kompilację. Gdy przesyłanie jest zakończone, program zacznie działać automatycznie.

Możesz też zrobić to krok po kroku:

  1. Najpierw skompiluj kod. Aby to zrobić, po prostu kliknij ikonę sprawdzania (lub kliknij na szkic > Weryfikuj / Kompiluj w pasku menu.

Jak widać, ikona sprawdzania znajduje się w lewym górnym rogu pod znacznikiem „File” w sekcji menu.

Po wykonaniu tych czynności Arduino zacznie się kompilować. Po jej zakończeniu otrzymasz komunikat o zakończeniu kompilacji, który wygląda tak:

Jak widzisz, zielona linia na dole strony informuje cię, że „skończyłeś kompilację”. Jeśli Twój kod nie zostanie uruchomiony, zostaniesz o tym powiadomiony w tej samej sekcji, a problematyczny kod zostanie zaznaczony do edycji.

Po skompilowaniu szkicu nadszedł czas, aby go przesłać.

  1. Wybierz port szeregowy, do którego aktualnie podłączone jest Twoje Arduino. Aby to zrobić, kliknij na Tools > Serial port w menu, aby wskazać wybrany port szeregowy (jak pokazano powyżej). Następnie możesz przesłać skompilowany szkic.
  2. Aby przesłać szkic, kliknij na ikonę przesyłania obok zaznaczenia. Alternatywnie możesz przejść do menu i kliknąć File> upload. Diody LED Twojego Arduino będą migotać, gdy dane będą przesyłane.

Po zakończeniu zostaniesz powitany komunikatem o zakończeniu przesyłania danych przez Arduino.

Ustawianie IDE

Aby podłączyć płytkę Arduino do komputera, potrzebujesz kabla USB. Kiedy używasz Arduino UNO, USB przesyła dane z programu bezpośrednio do twojej płytki. Kabel USB jest używany do zasilania Arduino. Możesz również uruchomić Arduino poprzez zewnętrzne źródło zasilania.

Zanim będziesz mógł wgrać kod, musisz skonfigurować kilka ustawień.

Wybierz swoją płytkę – Musisz określić, której płytki Arduino będziesz używał. Zrób to klikając Tools > Board > Your Board.

Choose your processor- Istnieją pewne płytki (na przykład Arduino pro-mini), dla których musisz określić jaki model procesora posiadasz. W zakładce narzędzia > Procesor > wybierz model, który posiadasz.

Wybierz swój port – aby wybrać port, do którego podłączona jest twoja płytka, przejdź do tools > Port > COMX Arduino (Jest to port szeregowy Arduino).

Jak zainstalować nie-rodzimą płytkę (np. NodeMCU)

Niektóre modele płytek nie są preinstalowane w Arduino IDE, dlatego będziesz musiał je zainstalować przed wgraniem kodu.

Aby zainstalować nie-naturalną płytkę, taką jak NodeMCU, musisz:

  1. Kliknąć na narzędzia > Boards > Boards Manager
  2. Wyszukać płytkę, którą chcesz dodać w pasku wyszukiwania i kliknąć „zainstaluj”.

Niektórych tablic nie można znaleźć poprzez Menedżera tablic. W takim przypadku będziesz musiał dodać je ręcznie. Aby to zrobić:

  1. Kliknij na Files > Preferences
  2. W polu Additional Boards Manager, wklej adres URL pakietu instalacyjnego twojej tablicy. Na przykład, dla nodeMCU, dodaj następujący adres URL: http://arduino.esp8266.com/stable/package_esp8266com_index.json
  3. Kliknij OK
  4. Go to tools > Boards > Boards Manager
  5. Wyszukaj tablicę, którą chcesz dodać w pasku wyszukiwania i kliknij „install”.

Po wykonaniu tego kroku, zobaczysz zainstalowane płytki na liście płytek w zakładce narzędzia.

Uwaga: proces może się nieznacznie różnić dla różnych płytek.

Arduino: An Extremely Versatile Platform

Arduino to znacznie więcej niż tylko prosty mikrokontroler. Dzięki rozbudowanemu IDE i szerokiej gamie konfiguracji sprzętowych, Arduino jest naprawdę różnorodną platformą. Różnorodność bibliotek i intuicyjny design sprawiają, że jest to ulubiona platforma zarówno dla nowych użytkowników, jak i doświadczonych twórców. Istnieją tysiące zasobów społeczności, które pomogą Ci rozpocząć pracę zarówno ze sprzętem, jak i z oprogramowaniem.

W miarę rozwijania swoich umiejętności możesz napotkać problemy wymagające debugowania, co jest słabym punktem Arduino IDE. Na szczęście istnieje kilka narzędzi i metod do debugowania sprzętu i oprogramowania Arduino. W następnym artykule przyjrzymy się, jak debugować Arduino (i jak testować kod Arduino), a także jak używać symulatorów i emulatorów.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *