wersja mobilna

Arduino dla mikrokontrolerów STM32 (1)

Numer: Październik/2018

Arduino to popularna platforma projektowa dla systemów wbudowanych kojarzona powszechnie z rodziną mikrokontrolerów AVR. Nie wszyscy jednak wiedzą, że Arduino można wykorzystać również do pracy z mikrokontrolerami STM32. Zapraszamy do lektury pierwszego artykułu z krótkiego cyklu o tej właśnie tematyce.

Pobierz PDF

Arduino swój początek ma w roku 2003 we Włoszech. Student Hernando Barragán z placówki akademickiej Interaction Design Institute Ivrea w ramach pracy dyplomowej podjął się opracowania nowego środowiska programistycznego dla mikrokontrolerów. Rozwiązanie to otrzymało nazwę Wiring i w formie IDE oraz biblioteki z funkcjami pozwalało na tworzenie aplikacji dla układu ATmega168. Po ukończeniu tego projektu inni studenci tej samej uczelni (Massimo Banzi oraz David Mellis) rozbudowali Wiring o obsługę mikrokontrolerów ATmega8. Po tej modyfikacji nazwa Wiring została zastąpiona przez Arduino. Pierwsza, nieoficjalne jeszcze edycja Arduino ujrzała światło dzienne w roku 2005. Wraz z upływem czasu  środowisko programistyczne było uzupełniane o płytki uruchomieniowe. Dzięki temu Arduino stało się kompletną platformą dla systemów wbudowanych składającą się zarówno z warstwy programowej, jak też sprzętowej. W takiej postaci Arduino zaczęło błyskawicznie zyskiwać ogólnoświatową popularność.

Ciekawa historia związana jest z nazwą, jaką ostatecznie przyjęła stworzona przez Włochów platforma projektowa. Słowo Arduino jest nazwą baru, który był miejscem spotkań studentów. Z kolei nazwa baru pochodzi od lokalnego szlachcica z okresu średniowiecza o imieniu Arduin, który piastował funkcję margrabiego Ivrei i był królem Włoch w latach 1002 – 1014.

Idea Arduino, czyli dla kogo?

Po zapoznaniu się z rysem historycznym Arduino nasuwa się pytanie dlaczego studenci zdecydowali się utworzyć i rozwijać nową platformę dla mikrokontrolerów. Aby zrozumieć ich motywację warto odbyć wirtualną podróż w czasie do roku 2003 i postawić się na chwilę w roli osoby chcącej na własną rękę rozpocząć przygodę z mikrokontrolerami. Okazuje się, że wtedy nie było to takie łatwe. Otóż w warstwie sprzętowej były dostępne głównie drogie płyty ewaluacyjne z mikrokontrolerami oraz również kosztowne programatory/debugery. Alternatywą było samodzielne wykonanie płytki oraz programatora, co z kolei wymagało odpowiednich umiejętności. Problem stanowić mogła również warstwa programowa. Środowisko programistyczne mogło być wprawdzie dostępne bezpłatnie, niemniej jednak do pisania kodu w oparciu o dominującą wtedy metodę modyfikacji rejestrów niezbędna była dogłębna wiedza o mikrokontrolerze, a samo pisanie kodu operującego na rejestrach wymagało pewnego doświadczenia w programowaniu w języku C lub Assembler. Podsumowując – środki finansowe na zakup sprzętu, umiejętność lutowania, wiedza o architekturze układu, znajomość języka programowania w stopniu pozwalającym na pisanie kodu niskopoziomowego. Wszystkie te wymagania stanowiły nie lada wyzwanie i potrafiły przestraszyć lub nawet zniechęcić początkującą osobę. Włoscy studenci postawili sobie za cel stworzenie rozwiązania pozbawionego wymienionych niedogodności i tym samym maksymalnie przyjaznego niedoświadczonemu użytkownikowi.

Jakie są zatem główne cechy platformy Arduino?

Cena – środowisko programistyczne Arduino jest bezpłatne, płytki z mikrokontrolerem są przystępne cenowo: koszt zazwyczaj na poziomie kilkunastu – kilkudziesięciu dolarów.

Łatwość użycia – pisanie kodu zostało maksymalnie uproszczone przez zastąpienie skomplikowanej metody niskopoziomowej (modyfikacji rejestrów) przez łatwy do zrozumienia i użycia język Arduino posługującym się elementami języka C, np. funkcjami, pętlami i instrukcjami warunkowymi.

Elastyczność – język Arduino umożliwia tworzenie aplikacji o różnym stopniu skomplikowania.

Open source – kod oprogramowania Arduino jest otwarty i tworzy go społeczność internetowa.

Unifikacja warstwy sprzętowej – płytki Arduino dysponują zestawem listew rozszerzeniowych zgodnym ze zdefiniowanym standardem.

Wieloplatformowość – środowisko programistyczne Arduino jest dostępne dla trzech różnych systemów operacyjnych: Windows, Macintosh OSX i Linux.

Cechy te sprawiły, że Arduino zostało entuzjastycznie przyjęte przez osoby rozpoczynające przygodę z mikrokontrolerami. Rozwiązanie to chętnie wykorzystywane jest przez studentów kierunków związanych z elektroniką i informatyką np. do realizacji projektów akademickich takich jak nieskomplikowane roboty. Po Arduino chętnie sięga również młodzież szkolna, dla której platforma stworzona przez Włochów pozwala w łatwy sposób wkroczyć w świat elektroniki. W końcu Arduino jest też atrakcyjne dla osób nieaspirujących do roli elektronika, a więc wszelkiej maści hobbystów i nieprofesjonalistów. Za przykład posłużyć tu mogą artyści, którzy za pomocą Arduino są w stanie dodać elementy sterowania i prezentacji do swoich instalacji artystycznych np. tworząc motywy świetlne z użyciem diod LED.

Struktura Arduino

Chcąc lepiej poznać i zrozumieć czym jest Arduino warto przejść od ogólników do szczegółów. Platformę podzielić można na trzy obszary: warstwę sprzętową, warstwę programową oraz społeczność. Odpowiedni schemat blokowy pokazano na rysunku 1. Przyjrzyjmy się bliżej każdemu z tych obszarów.

Warstwa sprzętowa Arduino

Podstawę warstwy sprzętowej tworzą płytki uruchomieniowe z mikrokontrolerami. Historycznie pierwszymi układami wspieranymi przez Arduino były 8-bitowe mikrokontrolery AVR. Współpraca twórców Arduino z firmą Atmel (obecnie Microchip) będącą producentem układów AVR zaowocowała stworzeniem na przestrzeni lat grupy płytek z układami ATmega należącymi do rodziny AVR:

- ARDUINO UNO z mikrokontrolerem ATmega328P
- ARDUINO LEONARDO oraz ARDUINO MICRO, obie z mikrokontrolerem ATmega32u4
- ARDUINO NANO oraz ARDUINO ETHERNET, obie z mikrokontrolerem ATmega328
- ARDUINO MEGA z mikrokontrolerem ATmega2560

Idąc z duchem czasu w roku 2012 Arduino wprowadziło do użytku pierwszą płytkę uruchomieniową z 32-bitowym mikrokontrolerem opartym na rdzeniu ARM Cortex-M. Obecnie grupa płytek z Cortexowymi układami Atmela liczy 3 sztuki:

- ARDUINO DUE z mikrokontrolerem AT91SAM3X8E (Cortex-M3)
- ARDUINO M0 PRO oraz ARDUINO MKR ZERO, obie z mikrokontrolerem ATSAMD21G18 (Cortex-M0+)

Drugim po mikrokontrolerze, niezwykle istotnym elementem płytki uruchomieniowej jest programator. Jego rolą jest zapisanie pliku wykonywalnego stworzonego przez środowisko programistyczne na podstawie kodu źródłowego w pamięci mikrokontrolera. Rozwiązanie zastosowane przez Arduino jest niezwykle proste. Programowanie odbywa się z wykorzystaniem umieszczonego w pamięci mikrokontrolera bootloadera. Bootloader to program, który za pomocą interfejsu komunikacyjnego poprzez prosty protokół odbiera dane z komputera i zapisuje je pod wskazany adres pamięci mikrokontrolera. Danymi są jak można się łatwo domyśleć fragmenty pliku wykonywalnego, natomiast adres pamięci jest zwiększany z każdym cyklem zapisu. W ten sposób po wielu iteracjach tej samej czynności kompletny plik wykonywalny zostaje zapisany w pamięci mikrokontrolera. Używanym przez bootloader w Arduino interfejsem komunikacyjnym jest UART, w związku z czym do komunikacji z komputerem wymagany jest most USB-UART, a więc układ pełniący funkcję wirtualnego portu COM. W roli tej na płytkach uruchomieniowych Arduino wykorzystywany jest popularny układ firmy FTDI lub mikrokontroler firmy Atmel wykonujący aplikację o tej samej funkcjonalności.

Ostatnim elementem charakterystycznym dla płytek uruchomieniowych Arduino, na który warto zwrócić uwagę, są listwy sygnałowe. Są to ł?cznie cztery pojedyncze listwy: dwie 8-pinowe, jedna 6-pinowa oraz jedna 10-pinowa. Udost?pniaj? one sygna?y pochodz?ce z?pin?w mikrokontrolera: porty analogowe b?d?ce wej?ciami przetwornika A/C, zasilanie oraz porty cyfrowe b?d?ce wej?ciami/wyj?ciami og?lnego przeznaczenia lub pe?ni?ce rol? interfejs?w komunikacyjnych b?d? wyj?? timer?w. Co istotne, rozmieszczenie wzgl?dem siebie wspomnianych czterech listew jest ?ci?le okre?lone, tak samo jak przyporz?dkowanie sygna??w do?pin?w listew. Ca?o?? tworzy zatem pewien standard. Dzi?ki takiemu podej?ciu powszechne sta?o si? projektowanie p?ytek rozszerzeniowych (ącznie cztery pojedyncze listwy: dwie 8-pinowe, jedna 6-pinowa oraz jedna 10-pinowa. Udostępniają one sygnały pochodzące z pinów mikrokontrolera: porty analogowe będące wejściami przetwornika A/C, zasilanie oraz porty cyfrowe będące wejściami/wyjściami ogólnego przeznaczenia lub pełniące rolę interfejsów komunikacyjnych bądź wyjść timerów. Co istotne, rozmieszczenie względem siebie wspomnianych czterech listew jest ściśle określone, tak samo jak przyporządkowanie sygnałów do pinów listew. Całość tworzy zatem pewien standard. Dzięki takiemu podejściu powszechne stało się projektowanie płytek rozszerzeniowych (shields) kompatybilnych z płytkami uruchomieniowymi. Poprzez łączenie tych dwóch typów płytek za pomocą listew możliwe stało się budowanie w prosty sposób platform prototypowych o określonej funkcjonalności np. mikrokontroler + czujniki, mikrokontroler + moduł GSM/GPS, mikrokontroler + wyświetlacz itp. Co więcej, dopuszczalne jest łączenie płytki uruchomieniowej z więcej niż jedną płytką rozszerzeniową jednocześnie, metodą „jedna na drugą”, co daje użytkownikom Arduino dużą elastyczność i swobodę projektowania.

Warto dodać, że oprócz klasycznego formatu Arduino istnieje również forma miniaturowa, zwana jako Arduino Nano. W tej wersji płytka uruchomieniowa jest niezwykle mała i udostępnia tylko dwie listwy sygnałowe (każda dysponuje 15 pinami).

Wszystkie trzy omówione do tej pory elementy warstwy sprzętowej (mikrokontroler, programator, listwy sygnałowe) zilustrowano na rysunku 2.

Warstwa programowa Arduino

Warstwę programową platformy Arduino stanowi środowisko programistyczne – Arduino IDE. Dostępne jest ono w dwóch postaciach: klasycznym wydaniu instalowanym na komputerze oraz edycji online o nazwie Arduino Web Editor. Obie wersje oferują tą samą funkcjonalność i zbliżony wyglądem interfejs użytkownika. Różnicą jest natomiast fakt, że w wersji klasycznej pliki środowiska wraz z projektami użytkownika przechowywane są na dysku twardym, natomiast w wersji online dostęp do środowiska odbywa się z poziomu przeglądarki internetowej, a projekty przechowywane są w chmurze.

W artykule skupimy się na klasycznej wersji środowiska programistycznego Arduino IDE. Plik instalacyjny można pobrać ze strony internetowej pod adresem http://bit.ly/2ItlykE. Najbardziej aktualną wersją środowiska w momencie pisania artykułu jest rewizja 1.8.5. Chcąc pobrać plik instalacyjny należy wskazać wersję odpowiednią dla użytkowanego systemu operacyjnego: Windows, Linux lub Mac OS X. Po kliknięciu jednej z wymienionych opcji otworzone zostanie okno, w którym możliwe stanie się rozpoczęcie pobierania pliku. Instalacja przebiega w sposób typowy – w kilku krokach z wybraniem ścieżki na dysku twardym wskazującej miejsce zapisania plików środowiska programistycznego.

Po pomyślnym zakończeniu instalacji środowisko Arduino jest gotowe do pracy. Wraz z jego uruchomieniem użytkownikowi ukazuje się ekran główny. Pokazano go na rysunku 3. Na samej górze okna znajduje się menu główne. Składa się ono z pięciu pozycji:

File – pozycja pozwalająca na operacje na plikach: tworzenie nowych projektów (Sketches), otwieranie istniejących projektów (w tym gotowych przykładów), zapisywanie otwartych projektów i drukowanie kodu otwartych projektów. Ponadto pozycja ta pozwala na otworzenie okna ustawień (Preferences) środowiska programistycznego.

Edit - pozycja pozwalająca na operacje na treści projektów (kodzie i komentarzach): cofanie zmian, kopiowanie, wklejanie, zaznaczanie, przejście do linii o wskazanym numerze, szukanie wskazanych fraz.

Sketch – pozycja pozwalająca na operacje na otwartym projekcie: kompilowanie kodu, wgrywanie pliku wykonywalnego do pamięci mikrokontrolera (programowanie), dodawanie bibliotek i plików zewnętrznych.

Tools - pozycja pozwalająca na konfigurację i używanie narzędzi, między innymi: włączenie terminala komunikacji szeregowej, wybranie używanej platformy sprzętowej, wybranie potu COM, do którego przypisana została przez system operacyjny platforma sprzętowa.

Help - pozycja pozwalająca na korzystanie z pomocy, głównie odnośników do podstron na portalu Arduino.

Tuż poniżej menu głównego usytuowane są ikony będące skrótami do najczęściej używanych funkcji. Zaczynając od lewej strony są to: ikona do kompilowania projektu, ikona do programowania mikrokontrolera, ikona do stworzenia nowego projektu, ikona do otworzenia istniejącego projektu oraz ikona do zapisania aktualnie otwartego projektu.

Pod ikonami znajduje się nazwa projektu, a pod nią pole z kodem źródłowym projektu. Stworzony od nowa projekt nie jest pusty. Domyślnie znajdują się w nim dwie funkcje: setup oraz loop. Jak łatwo się domyśleć, w ciele funkcji setup programista umieszcza funkcje, które wykonać mają się jeden raz. Są to funkcje konfigurujące peryferia mikrokontrolera. Równie intuicyjnie można rozszyfrować znaczenie funkcji loop. W jej ciele programista umieszcza funkcje, które wywoływane będą cyklicznie. Są to funkcje realizujące konkretne zadania przewidziane mikrokontrolerowi przykładowo odczytywanie stanu przycisku, sterowanie diodą LED, wysyłanie danych do komputera, wyświetlanie treści na wyświetlaczu i wiele innych.

Pod polem z kodem źródłowym przewidziano miejsce na jedną linię tekstu informującego o wyniku procesu kompilacji. Podczas kompilacji obok komunikatu widoczny jest zielony pasek pokazujący postęp kompilacji.

Jeszcze niżej znajduje się pole z komunikatami generowanymi przez środowisko programistyczne. Podczas kompilacji komunikaty te informują szczegółowo programistę o kolejnych czynnościach wykonywanych przez kompilator. Po udanej kompilacji prezentowane są z kolei informacje o wielkości pamięci Flash i SRAM wykorzystywanych przez aplikację i procentowy udział użytej pamięci w całości dostępnej pamięci mikrokontrolera.

Na samym dole ekranu wyświetlone są informacje o używanej platformie sprzętowej, poziomie wybranej optymalizacji kompilatora oraz numerze wybranego portu COM służącego do programowania mikrokontrolera i komunikacji szeregowej między aplikacją mikrokontrolera i terminalem komputera.

Społeczność Arduino

Istotnym filarem uzupełniającym warstwę sprzętową i programową Arduino jest prężnie działająca społeczność skupiona wokół tej platformy. Pierwszym elementem aktywności społeczności jest forum dyskusyjne, gdzie doświadczeni użytkownicy dzielą się wiedzą i odpowiadają na pytania osób rozpoczynających przygodę z Arduino. Kolejnym elementem społeczności jest blog, na którym publikowane są artykuły tematycznie związane z Arduino. Jeszcze innym miejscem aktywności społeczności jest tak zwany Project Hub. Jest to repozytorium projektów, z którymi użytkownicy mogą nie tylko zapoznać się czytając opis lub oglądając film, ale również mogą podjąć się samodzielnego wykonania projektu, gdyż opis niejednokrotnie zawiera instrukcję realizacji krok po kroku. Ostatnim elementem należącym do społeczności jest Arduino Playground, które traktować należy jako kompendium wiedzy o Arduino.

Arduino i STM32

Rok 2017 zmienił oblicze Arduino. Twórcy platformy zawarli porozumienie z firmą ARM, na mocy którego obie instytucje zadeklarowały chęć współpracy. Jak wiadomo firma ARM nie produkuje układów półprzewodnikowych, jednakże projektuje rdzenie mikrokontrolerowe oraz gromadzi wokół siebie wielu partnerów, w tym firmy produkujące mikrokontrolery wykorzystujące architekturę ARM. Dzięki zawartemu z ARMem porozumieniu Arduino zachowało pełną niezależność i jednocześnie otworzyło sobie drzwi do współpracy znacznie szerszej niż historyczne partnerstwo z firmą Atmel. I tak właśnie dzięki wspólnym wysiłkom i zaangażowaniu twórców Arduino, społeczności Arduino oraz firmy STMicroelectronics możliwe stało się pracowanie z mikrokontrolerami STM32 korzystając z platformy Arduino. Schemat blokowy pokazujący w jaki sposób mikrokontrolery STM32 wraz z ekosystemem zostały zespolone z platformą Arduino pokazano na rysunku 4.

Aby zachować przyjętą wcześniej konwencję zacznijmy od warstwy sprzętowej. Dla mikrokontrolerów STM32 firma STMicroelectronics oferuje trzy rodzaje płytek uruchomieniowych:

- Płytki Nucleo dysponujące głównie mikrokontrolerem i programatorem/debuggerem. Płytki występują w trzech formatach: Nucleo-32, Nucleo-64 oraz Nucleo-144 (liczba informuje ile wyprowadzeń ma obudowa użytego na płytce mikrokontrolera).
- Płytki Discovery będące lepiej wyposażone od płytek Nucleo i dysponujące nie tylko mikrokontrolerem i programatorem/debuggerem, ale w zależności od modelu również dodatkowymi podzespołami takimi jak wyświetlacz, czujniki, gniazda komunikacyjne itp.
- Płytkami eval board, które dysponują najbogatszym wyposażeniem.

Wszystkie płytki z serii Nucleo są kompatybilne ze standardem Arduino. Grupa ta liczy obecnie 42 sztuki i pozwala na pracę z każdą rodziną mikrokontrolerów STM32. Modele Nucleo-64 oraz Nucleo-144 dysponują listwami sygnałowymi zgodnymi z typowym systemem połączeń Arduino. Z kolei modele Nucleo-32 wyposażone są w listwy sygnałowe zgodne z systemem połączeń Arduino Nano. Seria płytek Discovery w pewnej części jest zgodna ze standardem Arduino. Starsze płytki z tej grupy nie dysponują listwami kompatybilnymi z Arduino. Sytuacja zmieniła się diametralnie około dwóch lat temu, od kiedy to każda nowa płytka Discovery dysponuje listwami zgodnymi z typowym systemem połączeń Arduino. Takich platform jest obecnie kilkanaście. Ostatni rodzaj płytek, a więc eval board, nie wspiera Arduino. Przykładowe zdjęcie płytek uruchomieniowych STM32 Nucleo i STM32 Discovery kompatybilnych w warstwie sprzętowej z Arduino pokazano na rysunku 5.

Oprócz płytek uruchomieniowych zgodnych z Arduino, a więc STM32 Nucleo i STM32 Discovery, firma STMicroelectronics oferuje szeroką gamę płytek rozszerzeniowych kompatybilnych ze standardem stworzonym przez Włochów. Takich płytek jest na dzień dzisiejszy łącznie 51. Dają one możliwość rozbudowania płytki uruchomieniowej o podzespoły takie jak czujniki środowiskowe/odległości/MEMS, sterowniki silnika DC/BLDC/krokowego/3-fazowego, obwód audio, komunikację Bluetooth/sub-1 GHz (w tym LoRa)/Wi-Fi/USB typ C/NFC/PLC, wzmacniacze operacyjne, czy też kontroler LED. Kilka przykładowych płytek rozszerzeniowych pokazano na rysunku 6.

Przejdźmy teraz do warstwy programowej. Obsługa układów STM32 nie jest aktywna domyślnie w Arduino IDE. W związku z tym osoba chcąca używać mikrokontrolerów firmy STMicroelectronics musi odpowiednio skonfigurować środowisko programistyczne. Czynność ta sprowadza się do zainstalowania pakietu o nazwie STM32duino. Jako że nie jest to oficjalny pakiet Arduino i nie znajduje się on pod adresem internetowym, do którego Arduino IDE się odnosi, użytkownik musi w pierwszym kroku wskazać środowisku adres właściwy dla STM32duino. W tym celu należy z menu głównego wybrać pozycję File, a następnie Preferences. W wyniku tego otworzone zostanie okno Preferences. W pierwszej zakładce o nazwie Settings zlokalizować należy pole Additional Boards Manager URL, a następnie trzeba je wypełnić następującym adresem: http://bit.ly/2OkMbNL. Zatwierdzenie zmian odbywa się naciśnięciem przycisku OK. Opisane czynności zobrazowano na rysunku 7.

Gdy adres STM32duino jest wprowadzony, w drugim kroku użytkownik może zająć się instalacją pakietu. W tym celu z menu głównego należy wybrać kolejno pozycje Tools, Board i na końcu Boards Manager… W ten sposób otworzone zostanie okno Boards Manager, które pozwala na nawigowanie po dostępnych pakietach i instalowanie tych wybranych przez użytkownika. Aby łatwiej zlokalizować pakiet dla mikrokontrolerów STM32 warto wpisać jego nazwę w polu wyszukiwania. Jest to mianowicie nazwa STM32 cores. Po odnalezieniu właściwego pakietu należy na niego kliknąć, co spowoduje wyświetlenie przycisku Install. Po jego kliknięciu proces pobierania i instalowania pakietu rozpocznie się. Gdy czynność ta zostanie ukończona, należy zamknąć okno klikając przycisk Close/OK. Opisane czynności zobrazowano na rysunku 8.

Ten krok kończy etap konfiguracji Arduino IDE. Środowisko programistyczne jest gotowe do pracy z mikrokontrolerami STM32. W tym momencie użytkownik może wskazać płytkę uruchomieniową, którą zamierza używać. Wyboru dokonuje się z poziomu menu głównego. Pozycja Tools, a następnie Board pozwala na wybranie rodzaju płytki tzn. Discovery, Nucleo-32, Nucleo-64 lub Nucleo-144. Z kolei pozycja Tools, a następnie Board Part Numbers umożliwia wybranie konkretnego modelu płytki z wybranej wcześniej grupy. Poniżej zamieszczono listę płytek wspieranych na dzień dzisiejszy przez zainstalowany pakiet:

- STM32F0: Nucleo F030R8, Nucleo F091RC, 32F0308DISCOVERY
- STM32F1: Nucleo F103RB, STM32VLDISCOVERY, BluePill F103C8, MapleMini F103CB
- STM32F2: Nucleo-F207ZG
- STM32F3: Nucleo F302R8, Nucleo F303K8, Nucleo F303RE
- STM32F4: Nucleo F401RE, Nucleo F411RE, Nucleo F429ZI, Nucleo F446RE, STM32F407G-DISC1
- STM32F7: STM32F746G-DISCOVERY
- STM32L0: Nucleo L031K6, Nucleo L053R8, B-L072Z-LRWAN1
- STM32L1: Nucleo L152RE
- STM32L4: Nucleo L432KC, Nucleo L476RG, Nucleo L496ZG, Nucleo L496ZG-P, B-L475E-IOT01A

Na koniec warto wspomnieć, że pakietowi STM32duino poświęcone jest dedykowane forum, którego adres to http://bit.ly/2zECIso. Jest to z pewnością najlepsze miejsce dla osób, które mają pytanie techniczne, szukają konkretnego przykładu lub po prostu chcą dowiedzieć się więcej o wsparciu dla układów STM32 w Arduino IDE.

Podsumowanie

Pierwsza część artykułu stanowi wprowadzenie do platformy Arduino. Druga część materiału prezentuje jak rozpocząć pracę z Arduino i mikrokontrolerami STM32 w warstwie sprzętowej i programowej.

Tematyką kolejnego artykułu z tej serii będą proste projekty programistyczne demonstrujące sposób, w jaki tworzy się aplikacje za pomocą środowiska programistycznego Arduino. Użytymi peryferiami będą porty wejścia/wyjścia (aplikacja: sterowanie diodą LED oraz odczytywanie stanu przycisku), przetwornik A/C (aplikacja: odczytywanie napięcia na pinie mikrokontrolera), interfejs UART (aplikacja: komunikacja szeregowa z komputerem) oraz Timer (wytwarzanie na pinie sygnału PWM).

Szymon Panecki
STMicroelectronics
szymon.panecki@st.com

Pozostałe artykuły

Dwurdzeniowe dsPIC33CH w praktyce

Numer: Czerwiec/2019

Dzięki uprzejmości firmy Microchip stałem się posiadaczem zestawu dsPI33CH Curiosity Development Board (fotografia tytułowa). Jest to testowa platforma mająca na pokładzie opisywany już w "Elektronice Praktycznej" dwurdzeniowy mikrokontroler dsPIC33CH128MP508. Wielordzeniowe mikroprocesory nie są czymś niezwykłym, ale w przypadku mikrokontrolerów takie rozwiązania dopiero zaczynają się pojawiać.

Nowości od Cypressa

Numer: Czerwiec/2019

Układy PSoC (programowalny system na chipie) to rodzina scalonych mikrokontrolerów firmy Cypress Semiconductor. Układy te zawierają w sobie rdzeń procesora oraz zespół zintegrowanych, konfigurowalnych urządzeń peryferyjnych - analogowych i cyfrowych - łączonych ze sobą za pomocą programowalnej macierzy połączeń dla sygnałów mieszanych - tak analogowych, jak i cyfrowych.

LoRaWAN - moduł ATSAMR34-XPro

Numer: Maj/2019

LoRaWAN jest radiowym protokółem komunikacyjnym, który pozwala łączyć się z Internetem urządzeniom IoT wyposażonym w łącze radiowe. Połączenie nie jest realizowane wprost, ale za pomocą specjalnych stacji bazowych nazywanych koncentratorami. Bardzo ważną cechą standardu jest możliwość uzyskania dużego zasięgu liczonego w kilometrach przy bardzo ograniczonej mocy nadawania (20 dBm),a co za tym idzie przy małym poborze ...

Mikrokontrolery STM32G0

Numer: Kwiecień/2019

Mikrokontrolery to elementy, które są używane w zastosowaniach, o których kiedyś nawet nie pomyślano. Niska cena powoduje, że wykorzystuje się je na szeroką skalę. Przez długi czas najtańsze były proste jednostki 8-bitowe, ponieważ ich struktury półprzewodnikowe zajmowały relatywnie małe powierzchnie krzemu. Wydajne mikrokontrolery 16-bitowe, a następnie 32-bitowe oferowały coraz większe możliwości, ale jednocześnie ...

Nowe mikrokontrolery Microchip DSC z rodziny dsPIC33CH

Numer: Luty/2019

Mikrokontrolery z rodziny dsPIC33 są przeznaczone głównie do stosowania w układach automatyki i sterowania, wymagających wykonywania złożonych algorytmów. Wydajny, 16-bitowy rdzeń RISC jest zintegrowany z jednostką DSP zoptymalizowaną do szybkiego wykonywania algorytmów przetwarzania cyfrowego. Takiemu połączeniu producent nadał nazwę Digital Signal Controllers - DSC.

Mobilna
Elektronika
Praktyczna

Elektronika Praktyczna

Lipiec 2019

PrenumerataePrenumerataKup w kiosku wysyłkowym

Elektronika Praktyczna Plus

lipiec - grudzień 2012

Kup w kiosku wysyłkowym