Serwisy partnerskie:
Close icon
Serwisy partnerskie

Kurs Arduino: wprowadzenie

W następnym numerze rozpoczniemy od dawna zapowiadany kurs Arduino. Jednak nieprzypadkowo wcześniej przedstawiliśmy w EdW pomału dobiegający końca kurs języka C. Nieprzypadkowo pojawiła się też seria artykułów o słabo rozgarniętym urzędniku oraz o krokodylu, który jest zupełnie inny. Kurs Arduino celowo przedstawiany jest dopiero po tych materiałach. Przyczyny, dlaczego przyjęliśmy taką kolejność, stopniowo staną się jasne.
Article Image
Toc left icon Poprzednia część
Spis treści
Następna część Toc right icon
1. Kurs Arduino: wprowadzenie 2. Kurs Arduino odcinek 1 - co to jest i jak zacząć? (sprzęt, schematy, programowanie) 3. Kurs Arduino odcinek 2 - termometry: 'diodowy', pokojowy oraz 'scalony' analogowy 4. Kurs Arduino odcinek 3 - moduł wyświetlacza LCD (HD44780) 5. Kurs Arduino odcinek 4 - czujnik BME280 (pomiar ciśnienia, wilgotności i temperatury) 6. Kurs Arduino odcinek 5 - biblioteki do trzyfunkcyjnego czujnika BME280 7. Kurs Arduino odcinek 6 - wykorzystanie łącza I2C (TWI) 8. Kurs Arduino odcinek 7 - wykorzystanie łącza SPI (karty pamięci, MAX31865, MAX31855) 9. Kurs Arduino odcinek 8 - wykorzystanie czujnika dwutlenku węgla (MH-Z19) 10. Kurs Arduino odcinek 9 - wykorzystanie modułów do odmierzania czasu 11. Kurs Arduino odcinek 10 - wykorzystanie czujników temperatury (DS18B20) 12. Kurs Arduino odcinek 11 - budowa loggera (rejestratora danych) 13. Kurs Arduino odcinek 12 - rejestracja i prezentacja danych oraz obsługa karty SD 14. Kurs Arduino odcinek 13 - rejestracja danych (wykorzystanie modułu OpenLog) 15. Kurs Arduino odcinek 14 - czym zastąpić płytkę Arduino Uno? 16. Kurs Arduino odcinek 15 - budowa rejestratora (chiński klon Arduino Pro Mini) 17. Kurs Arduino odcinek 16 - problemy z kwadratowym modułem Strong 18. Kurs Arduino odcinek 17 - czujniki do pomiaru wilgotności gleby (instalacja, konfiguracja) 19. Kurs Arduino odcinek 18 - protokół MODBUS i łącze RS-485 20. Kurs Arduino odcinek 19 - wyświetlacze od podstaw (matrycowe, 7-segmentowe, MAX7219) 21. Kurs Arduino odcinek 20a - wyświetlacze matrycowe i biblioteki MD_MAX 22. Kurs Arduino odcinek 20b - przyciski i biblioteki do obsługi wyświetlaczy 23. Kurs Arduino odcinek 20c - biblioteki do obsługi wyświetlaczy graficznych 24. Kurs Arduino odcinek 21 - moduł wyświetlacza OLED 25. Kurs Arduino odcinek 22 - moduł wyświetlacza 1,3 cala 26. Kurs Arduino odcinek 23 - przygotowanie bitmap do wyświetlania 27. Kurs Arduino odcinek 24 - omówienie fontu podstawowego (Adafruit GFX) 28. Kurs Arduino odcinek 25 - font podstawowy biblioteki Adafruit GFX 29. Kurs Arduino odcinek 26 - wykorzystanie bitmapowych fontów GFX 30. Kurs Arduino odcinek 27 - polskie znaki w glcdfont.c 31. Kurs Arduino odcinek 28 - zmiana ulepszonych fontów GFX

Zacznijmy od tego, co to jest Arduino. Według polskiej Wikipedii: Arduino – platforma programistyczna dla systemów wbudowanych oparta na prostym projekcie Open Hardware przeznaczonym dla mikrokontrolerów montowanych w pojedynczym obwodzie drukowanym, z wbudowaną obsługą układów wejścia/wyjścia oraz standaryzowanym językiem programowania. Język programowania Arduino jest oparty na środowisku Wiring i zasadniczo na języku C/C++ (...) Celem projektu Arduino jest przygotowanie narzędzi – ogólnodostępnych, tanich, niewymagających dużych nakładów finansowych, elastycznych i łatwych w użyciu przez hobbystów. (…)

W praktyce platforma Arduino to płytka (płytki) plus dedykowane oprogramowanie i wszystko to ma trzy ogromnie ważne zalety, zwłaszcza dla mniej zaawansowanych.

Największe zalety platformy Arduino:

  1. Dostępne są liczne gotowe do użycia moduły (płytki drukowane). Istnieje wiele modułów podstawowych, zawierających „mniejszy” lub „większy” mikroprocesor, a do tego dosłownie setki modułów rozszerzających, pełniących najróżniejsze funkcje. Moduły takie można kupić zaskakująco tanio. Połączenia między płytką z mikroprocesorem a modułami rozszerzeń nie wymagają lutowania.
  2. Dostępny jest darmowy, nie posiadający żadnych ograniczeń, program na komputer PC z Windows (Linux, OSX), który bardzo ułatwia pisanie programów, przesyłanie ich do mikroprocesora oraz wyszukiwanie błędów i testowanie.
  3. W Internecie dostępnych jest niezliczone mnóstwo gotowych projektów Arduino, zawierających pełną dokumentację: schemat elektryczny, kompletny program oraz fotografie i filmy.

O ile jeszcze kilka lat temu można było zastanawiać się, jak zacząć przygodę z mikrokontrolerami: czy może wykorzystać BASCOM lub uczyć się asemblera, o tyle aktualnie nie ma wątpliwości: warto zaczynać od Arduino.

Trzeba jednak mieć świadomość pewnych konsekwencji i bardzo poważnych pułapek!

Co ciekawe, te pułapki na początku wydają się być zaletami.

Z grubsza biorąc chodzi o to, że można zrealizować najróżniejsze fantastyczne projekty Arduino nie znając żadnego języka programowania, nie mając pojęcia ani o elektronice, ani o budowie i działaniu mikroprocesora!

Wystarczy znaleźć w internecie gotowy projekt Arduino, gdzie mamy detaliczną receptę. Bez problemu łączymy moduły, programujemy procesor i po kilku minutach cieszymy się efektem i prezentujemy go innym. Szybko, łatwo i przyjemnie!

Wszystko to może się wydawać zaletą. I w zasadzie jest. Dla niektórych chętnych nabycie takich umiejętności korzystania z „gotowców” może być finalnym celem i powodem wystarczającej satysfakcji.

Pułapka polega na tym, że można przyzwyczaić się do takiego podejścia i wyspecjalizować się jedynie w szybkim, bezrefleksyjnym kopiowaniu cudzych projektów bez szans da samodzielność.

Mam jednak nadzieję, że Czytelnicy EdW chcieliby osiągnąć coś więcej: chcieliby tworzyć własne konfiguracje i samodzielnie pisać programy, a przynajmniej świadomie modyfikować cudze projekty i skutecznie dostosowywać je do własnych potrzeb.

Nie jest to łatwe właśnie dlatego, że tworzenie samodzielnych projektów, a nawet modyfikacja cudzych, wymaga obszernej wiedzy, dotyczącej zarówno budowy i działania mikroprocesora, jak też wykorzystywanego języka programowania, w tym przypadku języka C++.

To jest podwójna przeszkoda, trudna do przeskoczenia. Nie można oczekiwać, że znacząca liczba Czytelników najpierw „na sucho” pozna wszystkie zawiłe i obszerne tajniki mikrokontrolerów jednoukładowych oraz jeszcze bardziej zawiłe, obszerne i abstrakcyjne zagadnienia języka C++, a dopiero potem zacznie praktyczne działania z mikroprocesorami.

I właśnie Arduino jest (udaną) próbą „zasłonięcia” najtrudniejszych zagadnień z obu wspomnianych dziedzin na rzecz podejścia maksymalnie uproszczonego. Pozwala to szybko i bezboleśnie rozpocząć praktyczne działania i od razu cieszyć się sukcesami.

Jednocześnie można i warto zgłębiać wspomniane trudniejsze zagadnienia, bowiem tylko taka wiedza i doświadczenie pozwolą osiągnąć samodzielność i dadzą jeszcze większą satysfakcję.

Dlatego kurs Arduino w EdW będzie miał dwa główne, równoległe wątki:

Pierwszy wątek „uproszczony” pokaże jak rozpocząć przygodę z Arduino i jak korzystać z „gotowców”.

Drugi, znacznie trudniejszy wątek będzie niejako odsłaniał kulisy i tłumaczył, co kryje się za na pozór łatwymi projektami i programami (szkicami) Arduino.

Powtórzę jeszcze raz: Arduino to niejako zasłona, która przykrywa mnóstwo skomplikowanych szczegółów, żeby nie straszyć początkujących tym, co jest i musi być za tą zasłoną. Jednak aby w pełni wykorzystać Arduino, a potem i inne „mikroprocesorowe” rozwiązania, trzeba uchylić tę zasłonę i stopniowo przebić się zarówno przez wiele zagadnień związanych ze szczegółami budowy i pracy mikroprocesorów, jak też przez najważniejsze zasady języka C, a także C++ (c plus plus).

Właśnie języka C++. Bo tak naprawdę Arduino wykorzystuje język C++ z jego ogromną zaletą, jaką jest nieomawiana na razie w EdW obiektowość.

Dobra wiadomość jest następująca: dużą część tej drogi szczęśliwie mamy już za sobą. Liczne ważne zagadnienia są aktualnie tłumaczone w EdW w ramach cyklu o języku C. Nie jest to łatwy kurs dla zupełnie początkujących, dlatego na początku tego kursu równolegle przedstawione były artykuły o „tępym urzędniku”, w możliwie prosty sposób tłumaczące działanie mikrokontrolera jednoukładowego, a potem artykuły o „krokodylu, który jest zupełnie inny”, przybliżające zupełnie niezorientowanym kluczowe aspekty języka C. Gdy teraz będziemy stopniowo odsłaniać zasłonę, będzie możliwość z większą świadomością wrócić do niełatwych zagadnień z kursu C.

Aby stopniowo odsłonić zasłonę i zyskać pełną samodzielność, w drugim wątku kursu Arduino musimy głównie zająć się sprawą programowania. Owszem, omówimy też sprzęt i poznamy szczegóły budowy płytek głównych Arduino, ale to dla nas, elektroników, będzie stosunkowo szybkie i łatwe. Przede wszystkim zajmiemy się „rozszyfrowywaniem” programów Arduino. Są one pisane tak naprawdę w języku C++. A język c plus plus to tak naprawdę język C, tylko rozbudowany o coś ogromnie ważnego, co genialnie ułatwia programowanie. Chodzi o wprowadzenie i wykorzystywanie pojęcia obiektów i klas. Korzystanie z klas i obiektów to najprościej mówiąc, dużo nowocześniejszy sposób programowania, niż programowanie strukturalne w języku C, a tym bardziej w BASCOM-ie czy asemblerze. Zrozumienie i opanowanie programowania obiektowego to wejście na wyższy poziom umiejętności.

Musimy dość dokładnie omówić elementarne zasady programowania obiektowego, ponieważ dotyczy ono nie tylko Arduino, ale i wielu innych przydatnych współczesnemu elektronikowi języków programowania. Ale żeby łatwo zrozumieć sens i zalety programowania obiektowego, musimy wcześniej zrozumieć, czym są obiekty i czym są klasy. W tym celu trzeba przypomnieć niektóre kluczowe zagadnienia z języka C, w szczególności pojęcie funkcji oraz różne typy zmiennych, w szczególności dziwny typ, zwany strukturą.

Przed nami dużo pracy.

Dołożymy jednak starań, żeby podobnie jak to było w przypadku wielu innych kursów w EdW, nawet trudniejsze zagadnienia były podane w sposób maksymalnie przystępny i zrozumiały także dla osób, które nie są programistami.

W następnym numerze zaczynamy kurs. Jeśli już masz płytkę Arduino Uno R3, jak na fotografii tytułowej, to dobrze. A jeżeli takowej płytki jeszcze nie masz, możesz kupić np. w AVT płytkę lub większy zestaw. Ale na razie nie musisz niczego kupować. Problem głównie w tym, że istnieje wiele możliwości zakupu i ceny są różne. Pozyskanie sprzętu drogą kupna to dziś kwestia najwyżej kilku dni, więc możesz wstrzymać się z decyzją. Za miesiąc omówimy różne możliwości i wtedy bardziej świadomie podejmiesz decyzję o zakupie sprzętu.

Toc left icon Poprzednia część
Spis treści
Następna część Toc right icon
1. Kurs Arduino: wprowadzenie 2. Kurs Arduino odcinek 1 - co to jest i jak zacząć? (sprzęt, schematy, programowanie) 3. Kurs Arduino odcinek 2 - termometry: 'diodowy', pokojowy oraz 'scalony' analogowy 4. Kurs Arduino odcinek 3 - moduł wyświetlacza LCD (HD44780) 5. Kurs Arduino odcinek 4 - czujnik BME280 (pomiar ciśnienia, wilgotności i temperatury) 6. Kurs Arduino odcinek 5 - biblioteki do trzyfunkcyjnego czujnika BME280 7. Kurs Arduino odcinek 6 - wykorzystanie łącza I2C (TWI) 8. Kurs Arduino odcinek 7 - wykorzystanie łącza SPI (karty pamięci, MAX31865, MAX31855) 9. Kurs Arduino odcinek 8 - wykorzystanie czujnika dwutlenku węgla (MH-Z19) 10. Kurs Arduino odcinek 9 - wykorzystanie modułów do odmierzania czasu 11. Kurs Arduino odcinek 10 - wykorzystanie czujników temperatury (DS18B20) 12. Kurs Arduino odcinek 11 - budowa loggera (rejestratora danych) 13. Kurs Arduino odcinek 12 - rejestracja i prezentacja danych oraz obsługa karty SD 14. Kurs Arduino odcinek 13 - rejestracja danych (wykorzystanie modułu OpenLog) 15. Kurs Arduino odcinek 14 - czym zastąpić płytkę Arduino Uno? 16. Kurs Arduino odcinek 15 - budowa rejestratora (chiński klon Arduino Pro Mini) 17. Kurs Arduino odcinek 16 - problemy z kwadratowym modułem Strong 18. Kurs Arduino odcinek 17 - czujniki do pomiaru wilgotności gleby (instalacja, konfiguracja) 19. Kurs Arduino odcinek 18 - protokół MODBUS i łącze RS-485 20. Kurs Arduino odcinek 19 - wyświetlacze od podstaw (matrycowe, 7-segmentowe, MAX7219) 21. Kurs Arduino odcinek 20a - wyświetlacze matrycowe i biblioteki MD_MAX 22. Kurs Arduino odcinek 20b - przyciski i biblioteki do obsługi wyświetlaczy 23. Kurs Arduino odcinek 20c - biblioteki do obsługi wyświetlaczy graficznych 24. Kurs Arduino odcinek 21 - moduł wyświetlacza OLED 25. Kurs Arduino odcinek 22 - moduł wyświetlacza 1,3 cala 26. Kurs Arduino odcinek 23 - przygotowanie bitmap do wyświetlania 27. Kurs Arduino odcinek 24 - omówienie fontu podstawowego (Adafruit GFX) 28. Kurs Arduino odcinek 25 - font podstawowy biblioteki Adafruit GFX 29. Kurs Arduino odcinek 26 - wykorzystanie bitmapowych fontów GFX 30. Kurs Arduino odcinek 27 - polskie znaki w glcdfont.c 31. Kurs Arduino odcinek 28 - zmiana ulepszonych fontów GFX
AUTOR
Źródło
Elektronika dla Wszystkich luty 2018
Udostępnij
UK Logo