KursyPoradnikiInspirujące DIYForum

PlatformIO – alternatywne środowisko dla Arduino IDE

PlatformIO – alternatywne środowisko dla Arduino IDE

Jednym z powodów popularności Arduino jest dedykowane środowisko, które znacznie ułatwia pierwsze kroki z mikrokontrolerami.

Niestety prosty edytor ma swoje wady i odbiega od popularnych środowisk programistycznych. Na szczęście bardzo łatwo można zacząć pisać programy na Arduino w alternatywnym IDE.

Za nami testy popularnych zamienników monitora portu szeregowego z Arduino IDE, sprawdziliśmy też jak można rysować rozbudowane wykresy, które znacznie przewyższają możliwości domyślnej kreślarki. Możemy więc pójść krok dalej i zupełnie zrezygnować z Arduino IDE.

Czego dowiesz się z tego poradnika?

Wykonując kolejne kroki z tego poradnika pobierzesz, zainstalujesz i skonfigurujesz alternatywne środowisko dla Arduino. Dzięki niemu pisanie programów będzie znacznie wygodniejsze. Wszystko za sprawą m.in. wygodnego edytora, lepszego kolorowania składni oraz wbudowanym podpowiedziom.

PlatformIO - rozbudowane, lepsze środowisko.

PlatformIO - rozbudowane, lepsze środowisko.

Dla kogo?

Artykuł był pisany z myślą o osobach, które znają podstawy Arduino i zawsze korzystały z oryginalnego środowiska Arduino IDE, a teraz chciałby wykonać pierwsze kroki w kierunku innego edytora. Poradnik ten powinien również zainteresować osoby, które nie korzystają z Arduino. Opisywane środowisko współpracuje z większą liczbą platform. Wspierane są m.in. rozwiązania od następujących firm:

Czym jest PlatformIO?

Alternatywnych środowisk dla Arduino jest dużo, tym razem pora na PlatformIO, czyli środowisko, które w ciągu kilku ostatnich lat zyskało wielu zwolenników. Pisząc w skrócie: jest do narzędzie, które pozwala tworzyć oprogramowanie na wiele popularnych platform - nie tylko na Arduino. Twórcy nazywają to rozwiązanie ekosystemem dla IoT. Za jego pomocą można tworzyć programy jeszcze między innymi na Raspberry Pi, układy ESP oraz mikrokontrolery STM32.

Zarówno liczba obsługiwanych platform i płytek robi wrażenie:

Najważniejsze informacje o PlatformIO.

Najważniejsze informacje o PlatformIO.

Instalacja PlatformIO: Atom vs. Visual Studio Code

PlatformIO nie jest samodzielnym programem. Jest to dodatek, który można zainstalować w formie rozszerzenia do jednego z dwóch popularnych środowisk programistycznych: Atoma oraz Visual Studio Code. Oba są darmowe i dość podobne. Porównanie możliwości PlatformIO w połączeniu z każdym z nich znaleźć można na stronie projektu - spoiler: wielkie różnicy nie ma, ale lepiej wybrać VSC.

Logo projektu PlatformIO.

Logo projektu PlatformIO.

Instalacja Visual Studio Code

Visual Studio Code to stosunkowo lekki, darmowy edytor udostępniany przez Microsoft. Dostępne są wersje na Windowsa, macOS oraz Linuksa. Domyślnie edytor ten jest przystosowany do wsparcia takich technologii jak JavaScript, TypeScript oraz Node.js. Jednak za pomocą odpowiednich rozszerzeń można wykorzystywać go np. do C++, C#, Pythona, PHP oraz oczywiście Arduino.

Zaczynamy od pobrania Visual Studio Code ze strony projektu. Wybieramy wersję odpowiednią dla naszego systemu operacyjnego i przechodzimy przez standardowy proces instalacji.

Następnie uruchamiamy nowe środowisko, które powinno przywitać nas ekranem startowym zbliżonym do poniższego:

Nowa instalacja Visual Studio Code.

Nowa instalacja Visual Studio Code.

Jak skonfigurować PlatformIO?

Pora zainstalować rozszerzenie PlatformIO, które zamienia VSC w środowisko dedykowane IoT. W tym celu klikamy w ikonkę menu rozszerzeń (Extensions), wyszukujemy dodatek platformio-ide i klikamy przycisk rozpoczynający instalację.

Instalacja rozszerzenia.

Instalacja rozszerzenia.

Instalacja dodatku może potrwać kilka minut. Proces będzie odbywał się w tle, co będzie wskazywane przez mały komunikat w lewym dolnym rogu okna:

Instalacja dodatku w tle.

Instalacja dodatku w tle.

Po jego zakończeniu wyświetlona zostanie większa informacja. Kliknięcie przycisku Reload Now sprawi, że cały program zostanie przeładowany.

Przeładowanie środowiska po instalacji.

Przeładowanie środowiska po instalacji.

Po przeładowaniu powinna być widoczna nowa ikona PlatformIO (na pionowym pasku po lewej stronie). Jej kliknięcie uruchomi główne menu rozszerzenia, w którym można utworzyć nowy projekt lub wczytać projekt utworzony wcześniej w Arduino IDE.

Nowa ikona w menu środowiska.

Nowa ikona w menu środowiska.

Pierwszy projekt Arduino w PlatformIO

Pora stworzyć pierwszy projekt w nowym środowisku. W tym celu klikamy New Project. W kreatorze wpisujemy nazwę projektu i z długiej listy rozwijanej (na szczęście można filtrować listę wpisując nazwę płytki) wybieramy naszą platformę - tutaj, dla przykładu, Arduino UNO. Wybieramy również framework, który w tym przypadku zostawiamy na domyślnym ustawieniu. Następnie możemy wybrać lokalizację plików lub zdecydować się na domyślne ustawienia (Dokumenty\PlatformIO\Projekcts\Nazwa_projektu).

Kreator nowego projektu.

Kreator nowego projektu.

Utworzenie pierwszego projektu wymaga podłączenia do internetu i może zająć kilka minut, w tym czasie pobierane są potrzebna narzędzia. Po kilku chwilach zobaczymy jednak nowy projekt:

Pierwszy program w nowym środowisku.

Pierwszy program w nowym środowisku.

Specyfika projektu w PlatformIO

Warto w tym miejscu zwrócić uwagę na kilka elementów, które odróżniają projekt od tego, który powstałby w oryginalnym Arduino IDE. Po pierwsze, program piszemy w pliku main.cpp (od C++), zapominamy o rozszerzeniu ino.

Po drugie, każdy program Arduino musi zaczynać się od dodania pliku Arduino.h. Dlaczego jest to konieczne i co dokładnie robi ten plik można się dowiedzieć z lektury tej serii artykułów:

Arduino, co w środku piszczy – #1 – schemat
Arduino, co w środku piszczy – #1 – schemat

Wakacyjny upał ma czasem swoje zalety. Mając dosyć urlopu można poświęcić chwilę lub dwie na hobby, a nawet napisać mały…... Czytaj dalej »

Po trzecie, panelu po lewej stronie okna mamy dostęp do drzewka z wszystkimi plikami powiązanymi z danym projektem. Najważniejsze, aby wiedzieć, że:

  • główny kod programu umieszczamy w src/main.cpp,
  • biblioteki, które mają być prywatne (czyli dostępne tylko w ramach tego projektu) umieszczamy w katalogu lib,
  • informacje na temat konfiguracji projektu znajdują się w pliku platformio.ini.

Kompilacja i wgranie programu do Arduino

Pora "napisać" i wgrać nasz pierwszy program. Dla testu posłużmy się gotowym kodem demo, które odpowiada za proste miganie diodą. Do pliku main.cpp wklejamy poniższy kod:

Następnie przechodzimy do kompilacji programu. W tym celu korzystamy ze skrótu CTRL+ALT+B lub klikamy odpowiednią ikonkę w lewym dolnym rogu środowiska. Jeśli wszystko przebiegnie poprawnie to zobaczmy nowe okno z takimi komunikatem:

Kompilacja programu.

Kompilacja programu.

Kolejny krok to oczywiście wgranie programu do Arduino. Nie musimy ręcznie wybierać portu COM. PlatformIO samodzielnie odnajdzie płytkę. Wystarczy kliknąć ikonkę "strzałki w prawo", która znajduje się w lewym dolnym rogu okna i program zostanie przesłany. Po chwili powinniśmy zobaczyć informacje o wgranym programie:

Wgrywanie programu do Arduino.

Wgrywanie programu do Arduino.

Jeśli wszystko przebiegło poprawnie to dioda w budowana w Arduino powinna od teraz migać.


Oczywiście, jeśli zajdzie taka potrzeba, to można ręcznie wybrać port COM, na którym jest Arduino. W tym celu należy wtedy wykorzystać odpowiednią zmienną w pliku platformio.ini, np.:

Terminal

Jeśli nasz program komunikuje się z komputerem przez UART i nie chcemy rozbudowanego terminala to możemy skorzystać z terminala wbudowanego w VSC. Uruchamia się go klikając w ikonkę "wtyczki":

Uruchomienie wbudowanego terminala.

Uruchomienie wbudowanego terminala.

Gdzie są zalety nowego środowiska?

Za nami pierwszy projekt utworzony w PlatformIO. Gdzie są jednak jego zalety względem oryginalnego Arduino IDE? Jest ich całkiem dużo! Po pierwsze, dla wielu osób dużym atutem jest minimalistyczny, ciemny interfejs, który nie męczy oczu. Jeśli jednak domyślna kolorystyka edytora nie jest Waszą ulubioną to możecie ją zmienić korzystając z opcji Color Theme, która jest schowana pod ikonką koła zębatego (lewy dolny róg). Przykład VSC w jasnej skórce:

Inny szablon edytora.

Inny szablon edytora.

Sprawdzanie składni programów

Dużym ułatwieniem, które pozwala zaoszczędzić czas jest sprawdzanie składni programu, które wykonywane jest po zapisaniu pliku. Przykładowo, na poniższym zrzucie ekranu widać podkreśloną na czerwono funkcję delay. Została ona zaznaczona, ponieważ w linijce z poprzednią instrukcją zabrakło końcowego średnika. Program sprawdzał kod, po digitalWrite spodziewał się średnika, a otrzymał delay, więc podkreślił je w ramach ostrzeżenia.

Podkreślenie linijki z błędem w programie.

Podkreślenie linijki z błędem w programie.

Podpowiadanie składni

Kolejnym ważnym ułatwieniem jest podpowiadanie składni. Podczas pisania kolejnych poleceń wyświetlane są podpowiedzi, które pasują do wpisanych fragmentów. Po propozycjach można się poruszać za pomocą strzałek. Dodatkowo, gdy nazwa funkcji jest już wpisana, otrzymamy kolejne podpowiedzi - tym razem dotyczące parametrów, które przyjmuje dana funkcja. Przykład:

Podpowiadanie składni w PlatformIO.

Podpowiadanie składni w PlatformIO.

Oczywiście powyższy przykład jest skrajnie prosty. Podpowiadanie składni przydaje się dużo bardziej, gdy korzystamy z rozbudowanych bibliotek - wtedy łatwo pogubić się w nazwach funkcji/argumentach.

Instalacja dodatkowych bibliotek

Skoro mowa o bibliotekach to warto sprawdzić wbudowane narzędzie, która pozwala łatwo dodać nowe biblioteki. Znajdziemy je klikając ikonkę PlatformIO>PIO Home>Libraries. Jest tam wyszukiwarka bibliotek, system tagów oraz lista najpopularniejszych bibliotekach.

Wyszukiwarka bibliotek Arduino w PlatformIO.

Wyszukiwarka bibliotek Arduino w PlatformIO.

Podsumowanie

To tylko mały wycinek zalet PlatformIO. Jeśli wpis Was zainteresował to polecam sprawdzić poradniki dotyczące pierwszych kroków z samym Visual Studio Code. Dużym udogodnieniem są również liczne wtyczki, które zwiększają możliwości tego środowiska. Więcej informacji na temat samego PlatformIO znaleźć można w bardzo dokładniej dokumentacji. Macie swoje ulubione wtyczki do opisywanego edytora? Korzystacie z zupełnie innego IDE? Dajcie znać w komentarzach!

arduino, edytor, ide

Trwa ładowanie komentarzy...