Wprowadzenie do Arduino
Wstęp
Pozwólcie, że przedstawimy krótki rys historyczny tego niezwykłego projektu. Arduino, rozpoczynając swoją podróż w 2005 roku we Włoszech, stało się jedną z najbardziej wpływowych i dostępnych platform do eksploracji świata elektroniki i programowania.
Założone przez grupę pasjonatów, w tym Massimo Banzi i Davida Cuartiellesa, Arduino było początkowo myślą przewodnią w edukacji studentów, którzy nie mieli wcześniejszego doświadczenia w elektronice ani programowaniu. Nazwa pochodzi od lokalnej tawerny, gdzie założyciele projektu często się spotykali, co dodaje historii projektu ludzki wymiar – Rys.1.
Od tych skromnych początków, Arduino szybko ewoluowało, stając się ulubieńcem hobbystów, artystów, inżynierów i edukatorów na całym świecie. Dzięki swojej otwartej naturze (open-source), Arduino zainspirowało powstanie aktywnej społeczności, która nieustannie rozwija i rozszerza możliwości tej platformy.
Dziś, Arduino obejmuje szeroką gamę płytek i modułów, służących do realizacji projektów od prostych po wyjątkowo zaawansowane. Bez względu na to, czy jesteś początkującym, który dopiero rozpoczyna przygodę z elektroniką, czy bardziej doświadczonym twórcą, Arduino oferuje narzędzia i zasoby, które pomogą Ci zrealizować Twoje pomysły.
Co można zbudować dzięki Arduino? Przykłady.
Oto 10 przykładowych projektów, które stworzysz za pomocą platformy Arduino:
- Sterowanie diodami LED – Projekt, w którym uczysz się, jak kontrolować diody LED za pomocą Arduino, włączając i wyłączając je lub tworząc różne efekty świetlne.
- Stacja pogodowa – Projekt, w którym Arduino odczytuje dane z czujników temperatury i wilgotności, a następnie wyświetla je na ekranie LCD.
- Automatyczne oświetlenie – Zbudowanie systemu oświetleniowego reagującego na ruch przy użyciu czujnika PIR, który włącza światło, gdy ktoś wejdzie do pomieszczenia.
- Termometr cyfrowy – Odczytywanie temperatury z czujnika i wyświetlanie jej na ekranie, co pozwala na zrozumienie pracy z czujnikami analogowymi.
- Zdalnie sterowany samochód – Zbudowanie małego pojazdu sterowanego za pomocą pilota z wykorzystaniem modułu np. Bluetooth.
- Miniaturowy system nawadniania roślin – Arduino monitoruje wilgotność gleby i automatycznie włącza pompę, gdy rośliny potrzebują wody.
- Alarm domowy – Wykorzystanie czujnika ruchu i modułu dźwiękowego do zbudowania prostego systemu alarmowego, który uruchamia się po wykryciu ruchu.
- Zegar cyfrowy – Stworzenie zegara wyświetlającego czas na ekranie LCD lub na segmentach LED, który dodatkowo może mieć funkcje budzika.
- Inteligentna brama garażowa – Brama sterowana za pomocą czujnika lub pilota, która otwiera się automatycznie, gdy zbliżysz się samochodem.
- Robot omijający przeszkody – Robot, który za pomocą czujników odległości wykrywa przeszkody na swojej drodze i automatycznie je omija, zmieniając kierunek jazdy.
Każdy z tych projektów pozwala na zdobycie praktycznych umiejętności i inspiruje do dalszego rozwijania wiedzy o Arduino.
A to tylko początek! Arduino oferuje ogromne możliwości – ogranicza Cię głównie wyobraźnia. Możesz zbudować o wiele więcej, tworząc własne innowacyjne projekty, które dadzą Ci wiele frajdy 🙂
Arduino IDE
Arduino IDE to zintegrowane środowisko programistyczne (Integrated Development Environment – IDE), które zostało specjalnie zaprojektowane, aby ułatwić tworzenie i testowanie programów dla płytek Arduino. Jest to kluczowe narzędzie dla hobbystów, edukatorów i inżynierów, którzy pracują z mikrokontrolerami Arduino w projektach elektroniki i robotyki. Na Rys. 2 przedstawiono okno programu Arduino IDE w wersji 2.3.2 bezpośrednio po włączeniu w języku polskim..
Oto główne cechy i funkcje Arduino IDE:
• Prostota i Użyteczność: Arduino IDE jest zaprojektowane z myślą o łatwości użycia. Jego prosty interfejs użytkownika ułatwia początkującym szybkie rozpoczęcie pracy z programowaniem i elektroniką.
• Kompatybilność z Płytkami Arduino: Środowisko jest kompatybilne z różnymi modelami płytek Arduino (oraz niektórymi innymi mikrokontrolerami. Pozwala to na łatwe wgrywanie programów do urządzeń.
• Edycja Kodu: Arduino IDE posiada podstawowe funkcje edycji kodu, takie jak kolorowanie składni, wyrównywanie tekstu oraz prosty edytor do pisania i modyfikacji kodu.
• Biblioteki: Zawiera wiele bibliotek ułatwiających pracę z różnymi czujnikami, modułami komunikacyjnymi i innymi komponentami elektronicznymi. Użytkownicy mogą również dodawać własne biblioteki. To właśnie dostępność do ogromnej liczby darmowych bibliotek sprawia, że Arduino jest tak bezkonkurencyjne.
• Uproszczony Proces Kompilacji i Wgrywania: Proces kompilacji i wgrywania programów na płytę Arduino jest bardzo uproszczony, co pozwala na szybkie testowanie i iterację projektów.
• Obsługa Wejść/Wyjść: Arduino IDE umożliwia łatwą obsługę pinów wejść/wyjść (IO) na płytce Arduino, zarówno cyfrowych, jak i analogowych.
• Komunikacja Szeregowa: Środowisko oferuje wbudowane narzędzia do komunikacji szeregowej, co jest przydatne w debugowaniu i monitorowaniu danych z płytki Arduino.
• Wsparcie Społeczności: Arduino posiada ogromną społeczność użytkowników, która dzieli się swoją wiedzą, kodami źródłowymi i projektami, co jest bardzo pomocne dla początkujących.
• Wieloplatformowość: Arduino IDE jest dostępne na różne systemy operacyjne, w tym Windows, macOS i Linux, co ułatwia szerokie zastosowanie.
• Ograniczenia: W porównaniu do zaawansowanych środowisk programistycznych, Arduino IDE oferuje ograniczone możliwości w zakresie debugowania i zarządzania złożonymi projektami.
Instrukcja instalacji Arduino IDE oraz pierwsze uruchomienie płytki Arduino znajduje się pod linkiem:
Instalacja Arduino IDE
<< Spis treści kursu “Arduino od Zera” Instalacja Arduino IDE za pomocą instalatora na Windows 10 Jeśli chcesz rozpocząć pracę z Arduino, pierwszym krokiem jest instalacja Arduino IDE za pomocą instalatora na Windows 10. W tym przewodniku pokażemy Ci, jak Read More …Podstawy
Szkic (ang. sketch) to nazwa używana przez Arduino na określenie programu. Jest to kod, który jest przesyłany i uruchamiany na płycie Arduino, stanowiący podstawę każdego projektu. Standardowa struktura szkicu obejmuje dwie fundamentalne funkcje: setup() oraz loop() – Rys.3.
Kiedy tworzysz nowy szkic w Arduino, automatycznie generowany jest szablon projektu zawierający te dwie funkcje (Kod_001). Funkcja to zestaw instrukcji wykonywanych po jej wywołaniu, a w jej wnętrzu można umieścić dowolny kod, który zostanie uruchomiony po jej aktywacji.
1 2 3 4 5 6 7 8 9 |
void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: } |
setup(): Funkcja setup() – Rys.4, wykonuje się tylko raz, kiedy Arduino jest resetowane lub po podłączeniu zasilania. Jest to miejsce, gdzie ustawiasz początkowe warunki dla twojego projektu, takie jak konfiguracja pinów jako wejść lub wyjść, inicjalizacja bibliotek, ustawienia komunikacji itp.
loop(): Funkcja loop() – Rys.4, jest sercem każdego programu Arduino. Po wykonaniu funkcji setup(), Arduino przechodzi do loop(), który wykonuje się w nieskończoność, dopóki zasilanie jest podłączone (lub program nie zostanie zresetowany). To tutaj piszesz kod, który kontroluje działanie Arduino, takie jak odczytywanie sensorów, sterowanie silnikami, wyświetlanie informacji na ekranach itp.
void: W języku programowania Arduino, słowo kluczowe void przed funkcjami setup() i loop() oznacza, że te funkcje nie zwracają żadnej wartości. W programowaniu, void jest używane do określenia typu zwracanego przez funkcję, który w tym przypadku oznacza “brak typu”. W praktyce oznacza to, że gdy funkcja setup() lub loop() kończy swoje działanie, nie przekazuje żadnych informacji z powrotem do miejsca, z którego została wywołana. Jest to standardowa praktyka w programowaniu Arduino, ponieważ głównym celem tych funkcji jest wykonanie określonych działań, a nie zwracanie danych. Na tym etapie nie trzeba zrozumieć, dlaczego wstawiamy void przed funkcjami setup() i loop(), jednak te słowa muszą tam być, aby program zadziałał – tak jak na Rys.5.
Klamry {}: w Arduino – Rys.6, odgrywają kluczową rolę, określając początek i koniec bloku kodu, który należy wykonać. Gdy funkcja setup() lub loop() jest wywoływana, wszystkie instrukcje zawarte wewnątrz tych klamer są wykonywane kolejno. Klamry te pozwalają na organizację kodu w czytelne segmenty, co jest niezbędne do poprawnego funkcjonowania programu w środowisku Arduino. Każdy blok kodu musi być otoczony zarówno klamrą otwarcia {, jak i klamrą zamknięcia }, aby kompilator wiedział, gdzie blok się zaczyna, a gdzie kończy. Klamry te mogą występować w różnych miejscach w programie, na przykład w funkcjach, pętlach, instrukcjach warunkowych i innych konstrukcjach, które wymagają grupowania instrukcji w bloki.
Klamry są podobne do nawiasów w matematyce, które służą do określenia kolejności wykonywania działań. Podobnie w programowaniu, klamry wskazują, które instrukcje mają być wykonane razem jako całość, zapewniając odpowiednią strukturę i kolejność operacji w programie.
W języku programowania używanym w Arduino, wcięcia i spacje pomiędzy kolejnymi instrukcjami nie mają wpływu na działanie programu, gdyż są one ignorowane przez kompilator. Mimo to, stosowanie odpowiednich wcięć i spacji jest kluczowe dla zachowania przejrzystości kodu, co ułatwia jego zrozumienie, utrzymanie i debugowanie, zwłaszcza w przypadku bardziej skomplikowanych programów.
Znaki (;) średnika: w Arduino są kluczowe do zakończenia większości instrukcji, ponieważ wskazują kompilatorowi, gdzie kończy się dana linia kodu. Każda deklaracja zmiennej, wywołanie funkcji lub wyrażenie musi kończyć się średnikiem. Pominięcie średnika na końcu instrukcji często prowadzi do błędów kompilacji, gdyż kompilator nie jest w stanie właściwie zinterpretować struktury kodu. Jednak po klamrach {}, które zaznaczają koniec bloku kodu, takiego jak ciało funkcji lub bloki instrukcji warunkowych i pętli, średniki nie są stosowane. Dlatego ważne jest umiejętne stosowanie średników w celu zapewnienia czytelności i poprawności kodu Arduino.
Komentarze: w kodzie Arduino są wykorzystywane do dodawania notatek i wyjaśnień, które pomagają zrozumieć, co dany fragment kodu robi. W Arduino, jednoliniowe komentarze tworzy się, używając dwóch ukośników // , co sprawia, że wszystko za tymi znakami w danej linii jest ignorowane przez kompilator – Rys.7.
Komentarz:
1 |
// put your setup code here, to run once |
w tłumaczeniu na język polski: umieść tutaj swój kod startowy, do wykonania raz (Kod_002).
Natomiast komentarz:
1 |
// put your main code here, to run repeatedly |
w tłumaczeniu na język polski: umieść tutaj swój główny kod, do ciągłego wykonywania (Kod_003).
Powyższe komentarze wskazują na miejsce, gdzie powinien być umieszczony kod funkcji setup() oraz loop(). Usunięcie ich nie ma żadnych konsekwencji, podobnie jak w przypadku każdego innego komentarza w kodzie.
Można również stosować komentarze wieloliniowe, zaczynające się od /* i kończące na */, co pozwala na zakomentowanie większych bloków kodu – Rys.8. Komentarze są niezwykle ważne w procesie tworzenia kodu, ponieważ ułatwiają zarówno osobiste zrozumienie kodu, jak i współpracę z innymi programistami.
Komentarze w Arduino IDE mogą zawierać polskie znaki, co oznacza, że możesz pisać komentarze w języku polskim z pełną polską diakrytyką, taką jak „ą”, „ę”, „ć”, „ż” itp. Jest to przydatne, gdy tworzysz projekty dla siebie lub współpracujesz z osobami, które znają język polski.
Jednak są sytuacje, w których warto zrezygnować z używania polskich znaków lub pisać komentarze po angielsku:
- Potencjalne problemy z kodowaniem – niektóre środowiska programistyczne lub narzędzia do przetwarzania kodu mogą mieć problemy z poprawnym wyświetlaniem polskich znaków (choć rzadko zdarza się to w nowoczesnych edytorach jak Arduino IDE). Dla pewności można zrezygnować z polskich znaków w komentarzach, szczególnie gdy istnieje ryzyko problemów z kodowaniem znaków.
- Dzielisz się projektem z międzynarodową społecznością lub pracujesz w międzynarodowym zespole – jeśli zamierzasz publikować kod na platformach takich jak GitHub, forum Arduino, czy współpracujesz z osobami nieznającymi języka polskiego, lepiej jest pisać komentarze po angielsku, aby były zrozumiałe dla szerszego grona odbiorców.
Formatowanie kodu: Pisaliśmy, że zarówno komentarze, wcięcia jak i znaki spacji pomiędzy instrukcjami nie mają znaczenia, dlatego program z okienka Kod_001 działać będzie identycznie jak poniższy program (Kod_004):
1 |
void setup(){}void loop(){} |
Jednak brak formatowania sprawia, że program jest znacznie mniej czytelny.
Kody przedstawione w okienkach Kod_001 oraz Kod_004 to podstawowe programy dla Arduino, które można wgrać na płytkę. Można powiedzieć, że jest on pustym programem – zatem nic nie będzie wykonywać. Jednak zanim użytkownik wgra program na płytkę, trzeba taki program skompilować.
Kompilacja: to proces przekształcania kodu źródłowego napisanego w języku programowania (takim jak język używany w Arduino) na kod maszynowy, który może być bezpośrednio wykonywany przez mikrokontroler lub procesor. W przypadku Arduino, gdy piszesz kod w Arduino IDE i naciskasz przycisk “Upload”, IDE najpierw kompiluje ten kod, przekształcając go z formatu zrozumiałego dla ludzi na format zrozumiały dla mikrokontrolera na płytce Arduino. Jest to kluczowy etap w procesie tworzenia oprogramowania, ponieważ bez kompilacji, mikrokontroler nie byłby w stanie zrozumieć i wykonać instrukcji zapisanych w kodzie źródłowym.
Wgrywanie programu na płytkę Arduino opisano w rozdziale: Szybki test poprawności działania płytki Arduino.
Błędy kompilacji: w Arduino mogą wystąpić z różnych przyczyn, takich jak błędy składniowe, niezadeklarowane zmienne, nieprawidłowe użycie funkcji bibliotecznych lub problemy z kompatybilnością sprzętową. Jeśli wystąpi błąd podczas kompilacji naszego programu, Arduino IDE nie pozwoli nam na wgranie programu na płytkę. Jedynym rozwiązaniem jest znalezienie przyczyny wystąpienia błędu i ponowna kompilacja. Kompilator podpowiada, gdzie może leżeć przyczyna błędu (choć podpowiedzi kompilatora mogą być trudne w interpretacji i nie wskazywać bezpośrednio na przyczynę).
Asystent Arduinowo_AI
Asystent Arduinowo_AI zgłębił powyższy zakres wiedzy i z przyjemnością wszystko Ci wyjaśni.
Zdobądź więcej wiedzy!
Przejdź do kolejnych materiałów naszego kursu >>> Symulacje Arduino