fbpx

Jakiś czas temu na rynku wydawniczym pojawiła się ciekawa książka “Mikrokontrolery STM32 dla początkujących” wydawnictwa BTC. Według mojej wiedzy jest to pierwsza szeroko wydana książka, która w pełni bazuje na bibliotekach HAL i która kierowana jest do chcących rozpocząć przygodę z naszymi ulubionymi mikrokontrolerami. Z tego względu byłem bardzo ciekaw, co autor ma do przekazania.

Nie musiałem się długo zastanawiać nad zakupem książki do recenzji ponieważ niedługo po premierze firma Kamami zaoferowała mi przesyłkę kompletu z płytką rozwojową KA-NUCLEO-F411CEv2, na której oparte są opisywane w książce przykłady. Bardzo miło z ich strony, doceniam 🙂

Płytka ewaluacyjna KA-NUCLEO-F411CEv2

PCB jest wzorowane na popularnym Arduino. Do dyspozycji użytkownika zostały wyprowadzone takie same złącza jak w Arduino Uno. Podobnie jest z programatorem ST-Link, który znajduje się już na płytce rozwojowej. Dzięki niemu nie trzeba martwić się o dodatkowe komponenty. Praca z zestawem jest dzięki temu wygodna i sprowadza się do komunikacji po USB.

Na PCB obsadzony został mikrokontroler STM32F411CE. Jest to ciekawy wybór chociażby ze względu na to, że jest w obudowie UFQFPN48 podczas gdy klasyczne zestawy Nucleo od ST bazują na układach STM32F411RE w obudowach LQFP64. Jakie ma to konsekwencje? Otóż takie, że do dyspozycji użytkownika jest mniej pinów I/O. Czy to wada? Poniekąd tak, ale przyznajcie że, mało który z początkujących programistów od razu potrzebuje wszystkich pinów z Nucleo? Ograniczenie wyjść więc może mieć swoją zaletę w postaci braku zamieszania w ich konfiguracji przez niedoświadczonego jeszcze developera embedded. Zwłaszcza, że STM32 oferują o wiele więcej peryferiów niż takie Arduino. Poza ilością I/O układy nie różnią się niczym szczególnym według ST Finder.

Do dyspozycji więc mamy 512 kB pamięci Flash, 128 kB RAM, a cały układ pędzony może być z maksymalną częstotliwością 100 MHz. Jest to taki mały potworek dla początkującego i bardzo dobrze.

Książka “Mikrokontrolery STM32 dla początkujących”

Autorem omawianej dzisiaj książki jest Aleksander Kurczyk. Już na samym wstępie ma u mnie plus ponieważ Olek studiuje na uczelni którą sam ukończyłem – Politechnika Wrocławska. W dodatku na tym samym wydziale. Aktualnie jest na ostatnim semestrze, więc trzymam kciuki za obronę magistra 🙂 Co ciekawe, jest autorem licznych publikacji w czasopismach. Między innymi swoje artykuły miał w “Elektronice Praktycznej”. Bardzo mnie to cieszy, że znajdują się jeszcze osoby, które chętnie dzielą się swoimi zainteresowaniami i umiejętnościami w szerszym gronie. Olek również jest początkującym przedsiębiorcą i wraz ze znajomymi prowadzi firmę z branży informatycznej.

Już od samego wstępu autor jasno informuje do kogo kierowana jest ta książka oraz czego się z niej nauczymy. Jeżeli szukasz książki, która opisze język C od podstaw, to niestety pudło. Podobnie z wytłumaczeniem architektury ARM oraz komponentów, które zawiera SMT32. Autor nie miesza niepotrzebnie w głowie na samym początku.

Książka za to prowadzi za rękę przez narzędzia i IDE które dostarcza firma ST Microelectronics dla swoich mikrokontrolerów. Na nieszczęście autora jest to, że w momencie wydawania książki ST podbiło wersję STM32CubeMX jednocześnie przeprojektowując wygląd graficzny całego narzędzia. Dlatego screeny z STm32CubeMX nie będą identyczne z najnowszą wersją narzędzia. Jednak każdy, kto potrafi korzystać z komputera powinien sobie poradzić. Nie są to drastyczne zmiany, a z punktu konfiguracji projektu jest to moim zdaniem jedynie kosmetyka.

IDE które wykorzystywane jest w książce to przejęty przez ST Atollic TrueStudio. Swoją drogą sam byłem tak głęboko zatopiony w starym SW4STM32, że przegapiłem fakt wykupienia Atollica przez ST. Jest to dzisiaj oficjalne i zalecane środowisko. Ja już zrobiłem przejście 🙂

Drugi rozdział jest kluczowy z punktu późniejszej pracy. To w nim Olek przedstawia przebieg tworzenia projektu od zera w narzędziu STM32CubeMX. W prosty sposób opisuje konfigurację pinów, w tym wypadku GPIO. Oczywiście idealnym w tym celu projektem jest miganie diodą. Nie wyobrażam sobie innego “Hello World” i tak też jest w książce. Po chwili rozbudowuje przykład o obsługę przycisku po czym płynnie w następnym rozdziale przechodzi do obsługi PWM na tej samej diodzie. Urozmaica same operowanie na Timerach korekcją gamma.

To na co zwróciłem uwagę czytając tę książkę to to, że po wstępie z diodą od razu przechodzi do interfejsu UART. Gdy ja się uczyłem mikrokontrolerów to pamiętam, że UART był stosunkowo daleko w moich książkach. Był to poważny błąd ponieważ jest to bardzo potrzebny początkującym, jak i zaawansowanym programistom interfejs. Na etapie nauki wszystko, co robimy w MCU możemy printować na terminal w PC. Dzięki temu proste debugowanie czy logowanie działania kodu jest przyjemne. Chwała autorowi za to, że tak szybko podsunął czytającemu projekt z UARTem.

Po bardziej rozbudowanym przykładzie z wykorzystaniem UART z odbiornikiem GPS dopiero przychodzi czas na SPI oraz I2C. I tutaj znów zaskoczenie bo pierwszy przykład z SPI są to diody adresowalne WS2812B, które nie są sterowane tym interfejsem. Temat został rozpracowany bardzo podobnie jak w jednym z moich artykułów (link) jednak finalnie bez użycia DMA.

W dalszej kolejności spodziewałbym się jakiegoś banalnego klasyka w postaci rejestru przesuwnego na SPI. Jednak tutaj kolejne zaskoczenie, bo jako przykład do “klasycznego” zastosowania interfejsu SPI został zaprzęgnięty wyświetlacz TFT! Mało tego bo z panelem dotykowym, choć ten jest tylko rezystancyjny wówczas, gdy wszędzie w koło siebie otoczeni jesteśmy pojemnościowymi. Omówienie obsługi panelu dotykowego zostało oddzielone od obsługi TFT co nadaje przejrzystości.

Dla magistrali I2C projekty są już bardziej klasyczne przykłady bo są to popularne czujniki ciśnienia BMP180 i BME280. Próbuję sobie przypomnieć czy widziałem jakiś spektakularny układ na I2C i nie mogę wymyślić. Na ogół ten interfejs służy właśnie do obsługi różnych czujników.

Kolejnym omawianym elementem jest przetwornik analogowo-cyfrowy wbudowany w układ STM32F411CE. Co ciekawe pomiar ADC dokonywany jest na wbudowanym w MCU analogowym czujniku temperatury, więc wykonanie ćwiczeń nie wymaga podłączenia zewnętrznego układu. Na plus w tym miejscu zaliczam pokazanie dwóch metod odczytu. Najprostszą czyli polling – ‘ręczne’ odpytywanie ADC o przekonwertowaną wartość oraz ciekawszą z trybem DMA, czyli automatyczne odczytywanie wyników bez ingerencji CPU. Szkoda, że o DMA jest tylko tyle w tej książce bo to jest bardzo użyteczny komponent mikrokontrolera.

Pod koniec książki pojawił się projekt który mnie zainteresował najbardziej. Jest to WiFi zrealizowane na module ESP8266. Moduły te co prawda mogą pracować jako niezależny mikrokontroler, ale jako karta WiFi również świetnie się spisują. Zwłaszcza wersja modułu, która została użyta w projekcie. Prosty projekt modyfikacji koloru wbudowanej w zestaw deweloperski diody zasiewa u mnie ziarno ciekawości. Na pewno sam będę dalej zgłębiał temat ESP8266 jako modułu WiFi dla STMów.

W kolejnym rozdziale ponownie widzimy UART w akcji. Tym razem jest to popularny moduł Bluetooth HC-06. Niestety mocno ubolewam nad tym, że listingi kodu w tym rozdziale są błędne. Każdy plik projektu w książce jest taki sam – powielony został kod dla main.c. Mam nadzieję, że w kolejnym wydaniu zostanie to poprawione. Swoją drogą uważam, że drukowanie wielu stron kodu w książce nie jest najlepszym pomysłem. Dużo fajniej sprawdza się dla mnie wstawianie bardzo krótkich linków do materiałów zewnętrznych jak robi to np. Michał Szafrański w swoich książkach. Nie zauważyłem też w omawianej dzisiaj książce żadnej wzmianki do miejsca w sieci ze wszystkimi projektami. Szkoda, bo sam chętnie czytam takie projekty w “dużej” formie. Może wydawnictwo BTC pomyśli nad takim podejściem do kodów/projektów?

Na samym końcu książki kolejne zdziwienie. Ostatnim dział zahacza o systemy czasu rzeczywistego. W tym wypadku jest to freeRTOS dostarczany wraz z STM32CubeMX. To jest poniekąd to, o co pytają się wszyscy zieloni w Arduino czyli “jak zrobić dwie rzeczy na raz?”. Z pomocą RTOS jest to łatwiejsze, ale potrafi być to niebezpieczne o czym na szczęście wspomina autor. Chodzi o race condition i Olek od razu przedstawia dwa mechanizmy do opanowywania tego problemu – semafory i kolejki. Generalnie w książce jest tak naprawdę zaczepka jeśli chodzi o temat RTOS lecz wystarczająca na tyle, aby można zainteresować się tym tematem i zasięgnąć do innych źródeł i książek.

Podsumowanie

Książka nie jest gruba przez co czyta się szybko. Ma około 230 stron, gdzie na prawdę spora część to zrzuty ekranu czy listingi kodów. Nie drąży każdego z omawianych tematów głęboko przez co nie ma przesytu informacji. Osoba która chce się przesiąść na SMT32 nie będzie zawalona ilością informacji. Tak naprawdę książka ta łagodnie wprowadza w środowisko ST. Pozwala łagodnie rozpocząć pracę w STM32CubeMX oraz Atollic TrueStudio bez przeszkód.

Ta pozycja będzie dla Ciebie dobra jeżeli jesteś już małym stopniu zaznajomiony z językiem C i mikrokontrolerami np. przechodząc z Arduino. Od razu mówię, że jeśli jesteś z tych, co lubią wyciskać maksimum wiedzy z każdego tematu, to możesz odczuć niedosyt Autor w wielu miejscach idzie na skróty omawiając tylko to, co niezbędne, aby zrealizować opisywany projekt.

Jeżeli biegle tworzysz już złożone projekty oraz piszesz własne biblioteki to nie będziesz zadowolony z lektury, chociaż nie każdy zaawansowany używał modułu WiFi, który np. mnie zainteresował w tej książce. Ale z drugiej strony nie wiem czy nazwałbym się znowu takim zaawansowanym 🙂 Jednak osoby na wysokim poziomie wtajemniczenia powinny sobie odpuścić tę książkę. Zresztą tytuł wskazuje wprost, kto może po nią sięgnąć.

Czy poleciłbym tą książkę? Jak najbardziej. Jest napisana prostym językiem przez co jak dla mnie była to jedna z przyjemniejszych lektur dotyczących programowania. Jednak na tej książce nauka się nie kończy. Trzeba cały czas się uczyć bo kto stoi w miejscu, ten się cofa!

Warto jest mieć na uwadzę, że dostępny jest również e-book. To dla tych, co lubią pracować z książką na ekranie mając więcej monitorów lub takich co po prostu wolą wersje cyfrowe.

Konkurs

A może chciałbyś wygrać zestaw, który dzisiaj opisałem tj. książkę “Mikrokontrolery STM32 dla początkujących” wraz z płytką KA-NUCLEO-F411CEv2? Zasady będą proste i polegać będą na kilku czynnościach:

  1. Musisz być subskrybentem newslettera bloga.
  2. Polub mój fanpage na Facebooku – Fanpage msalamon.pl
  3. Napisz komentarz z hasztagiem #konkurs pod facebookowym postem promującym recenzję w którym napiszesz o tym jak zaczynasz lub chcesz zacząć z mikrokontrolerami – link
  4. Udostępnij publicznie na swoim profilu post promujący recenzję – ten sam post co w pkt. 3
  5. Daj znać w komentarzu pod tym artykułem jak podobała się recenzja i czy chciałbyś zobaczyć tutaj więcej tego typu materiałów.

Huh, wyszło kilka punktów, ale nagroda też jest solidna, więc myślę, że warto 🙂 Spośród osób spełniających warunki wybiorę zwycięzcę z najciekawszymi odpowiedziami i wyślę im  książkę + płytkę. Mało tego! Firma Kamami obdaruje dodatkowo 3 osoby takim samym zestawem! Łącznie więc będzie czterech zwycięzców. 

Konkurs trwa aż do chwili przed publikacją następnego wpisu, czyli do 3 kwietnia 2019 do godziny 19:00. Czasu jest sporo, można się dobrze namyślić z odpowiedzią 🙂

P.S. Chciałbym dać książki osobom, które faktycznie stawiają pierwsze kroki z mikrokontrolerami STM32 lub są na początkowych etapach nauki. Prosiłbym łakomych na darmowe fanty o wstrzymanie się w udziale w konkursie. Wystarczy w np. w komentarzu na facebooku nie umieszczać hashtagu lub na blogu napisać, że nie chce się brać udziału w konkursie.


31 Komentarzy

ArturM · 24/05/2019 o 11:31

Książka ma moim zdaniem zasadniczą wadę: pełnostronicowe ilustracje. Wydaje mi się, że są one taką “zapchaj dziurą”, powiększającą tylko ilość stron w książce.

    Mateusz Salamon · 24/05/2019 o 18:17

    Kto nie wrzucał pięknych zdjęć i obszernych schematów czy wykresów do inżynierki/magisterki niech pierwszy rzuci kamieniem 😀 Początkującym może przydać się obycie ze screenami. Suchy tekst często nie wystarcza.

      ArturM · 25/05/2019 o 13:21

      Zdziwisz się. Nie robiłem tego. Mój promotor też wolał przyzwoitą i stricte merytoryczną jakość treści.
      Wracając do zrzutów… Nie mam nic przeciwko ich umieszczaniu. Lecz moim zdaniem, one dalej będą czytelne jak będą zajmować max pół strony a nie całą.
      Przyjrzyj się. Szczególnie tym, które pokazują rysunek docelowego układu i opisy sygnałów na pinach. Po kiego grzyba robić screena z całego okna jak najważniejsza część znajduje się w 1/4 zrzutu? Wystarczył by tylko sam rysunek układu z rozpiską…

Wojtek · 03/04/2019 o 18:52

Szczera recenzja i nie zniechęciła do książki;)

Paweł · 29/03/2019 o 06:33

O proszę, taka książka wyszła. Jest odpowiedź na moje pytanie 😀 trochę programuje mikrokontrolery, ale głównie w Arduino IDE i trochę C. Znajomość języka mam, ale szukałem jakieś impulsu do zaczęcia zabawy z stm32. Mega mi się spodobało po pierwszych doświadczeniach i szukałem zestawu dla siebie, a tu Bach, recenzja 😀 jest wszystko co ms być, rzeczowo, krótko, ale wyczerpująco na każdy temat. Zdecydowaniem chciałbym więcej artykułów podobnych, pozdrawiam!

Mateusz · 28/03/2019 o 22:00

Dobra, rzeczowa recenzja, która przede wszystkim zachęca “gang świeżaków” do rozpoczęcia przygody z mikrokontrolerami STM i szczerze odradza książkę bardziej doświadczonym programistom. Ja sam od dłuższego czasu siedzę w mikrokontrolerach z rodziny AVR i muszę przyznać, że do STM zabierałem się jak pies do jeża! Fajnie, że znajdują się osoby, które zarażają swoją pasją innych. Dziękuję i pozdrawiam!

Filip · 28/03/2019 o 17:33

Recenzja bardzo fajna. Taka nie za krótka, nie za długa. Na temat. Idealna zachęta dla początkującego. Mnie osobiście zmotywowała. Oby więcej materiałów na temat STM32, szczególnie dla osób, które zaczynają zaznajamiać się z tą platformą zaraz po Arduino. Osobiście uważam, że jest to lekka przepaść, bo brak jakichś materiałów opisujących łopatologicznie jak zacząć pracować z tymi uKontrolerami. Pozdrawiam!

Tomek Lubelski · 26/03/2019 o 23:16

Recenzja została napisana fajnym krytycznym okiem, jasno powiedziane komu się przyda ta książka, a komu nie. Zwięźle i na temat oraz wyraźnie nakreślone wady i zalety. Czekam na kolejne wpisy.

Maciej · 26/03/2019 o 08:34

Ciekawa recenzja – bardzo konkretna. Podanie projektów i użytych modułów bardzo przydatne.
Fajnie było by przeczytać jakąś recenzję podobnej pozycji do R-Pi .

    Mateusz · 26/03/2019 o 17:24

    Kiedyś pracowałem chwilę z linuxem embedded. Mam zamiar przypomnieć sobie ten temat i pewnie pojawią się ciekawe artykuły 🙂 Czy na Rpi, czy innej płytce embedded, to jeszcze zobaczę.

Szymon Fronc · 26/03/2019 o 00:48

Recenzja taka jak powinna być treściwa i rzeczowa budująca głód i chęci do podjęcia przygody z czymś co dla kogoś takiego jak ja jest dalszą drogą zabawy z mikrokontrolerami.Myśle ze STM’y mogą poszerzyć horyzonty(coś nowego niż dotychczasowe arduino), czego chętnie bym spróbował jeśli udałoby mi się zgarnąć taki zestaw dla siebie. Pora wziąć udział w konkursie 😀 Pozdrawiam i czekam na kolejne ciekawe recenzje!

    Mateusz · 26/03/2019 o 17:26

    Arduino jest dobre na początek. Co prawda można zrobić na nim nawet zaawansowne rzeczy, ale dzisiaj szybko może zabraknąć mocy.

      ArturM · 24/05/2019 o 11:14

      “Arduino jest dobre na początek.” Można się z tym zgodzić, ale tylko w 50%. Dlaczego? Ktoś kto zacznie z Arduino już z niego nie wyjdzie, albo będzie miał spore problemy się wydostać z ram Arduino. Platforma ta dodatkowo znacznie rozleniwia. Niby mamy tysiące gotowych modulików i bibliotek do ich obsługi, ale jak przychodzi co do czego, by samemu coś opracować lub zgrać jeden z drugim w jednym kodzie to wtedy zaczynają się schody.

      Mateusz Salamon · 24/05/2019 o 18:16

      Nikt nie pokazuje jak łączyć ze sobą różne moduły. Biblioteki często są napisane blokująco. Arduino spełnia swoje zadanie gdy chcesz coś na szybko sprawdzić lub zarazić się embedded. Poza tym jest dziecinnie łatwe i to w nim chodzi. Później brakuje materiałów jak przejść na coś poważniejszego. Może uda mi się to zmienić 🙂

Damian Nurek · 24/03/2019 o 22:08

Dla mnie super, że jest dostęp do takiej recenzji, ponieważ pozwalają na dobranie lektury idealnie do swojego poziomu. W moim przypadku ta lektura będzie wskazana, jednak myśle, że większa ilość recenzji i udostępnianie ich ma portalach społecznościowych (w grupach docelowych) będzie bardzo pomocne dla wielu osób.

Pozdrawiam i życzę owocnej pracy!

    Mateusz · 26/03/2019 o 17:27

    Na pewno inne recenzje jeszcze bardziej pomogą w wyborze. Niestety moja może być tylko jedna 😀

      Damin Nurek · 14/04/2019 o 17:33

      Bardziej chodziło mi o recenzje kolejnych książek 🙂

jacu · 22/03/2019 o 21:47

wlasnie problemem tej ksiazki jest to, ze za 70zl kupujesz 150stron zrzutow ekranu… a czcionka z kodami zrodlowymi jest dosyc nieczytelna..

    Mateusz · 26/03/2019 o 17:30

    No może nie 15, ale faktycznie jest ich sporo. Takie uwagi również są cenne.

Marcin · 21/03/2019 o 23:07

Bardzo często pada pytanie “Jaką książkę polecacie do ….?”. Dlatego takie recenzje są bardzo potrzebne i sam chętnie przeczytam kolejne. Ta obecna pomogła mi podjąć decyzje o wyborze tej książki na początek przygody z STM32 i liczę, że wygram ją w konkursie 🙂

    Mateusz · 26/03/2019 o 17:31

    Takie pytania to codzienność na każdym forum. Dlatego warto pisać recenzje.

Franek · 21/03/2019 o 20:49

Dobra recenzja, widać że autor faktycznie jest doświadczony w temacie oraz jest zainteresowany książką. Na duży plus również to, iż jest to recenzja szczera pokazująca książkę również od strony jej wad i wprost mówiąca dla jakich odbiorców jest ona przeznaczona

    Mateusz · 26/03/2019 o 17:32

    Nie ma co czarować, że zaawansowani również z niej wiele wyniosą ^^

Norbert · 21/03/2019 o 19:16

Recenzja z pewnością zachęciła mnie do wzięcia udziału w konkursie, być może przełoży się to na podejście do tego “potwora” jakim są ogromne możliwości mikrokontrolerów STM32. Jeśli przedstawisz przekrój począwszy od początkujących propozycji po te bardziej zaawansowane – jestem w pełni za takimi publikacjami.

    Mateusz · 26/03/2019 o 17:50

    Będę musiał zrobić przegląd rynku książkowego bo się nie orientuję dokładnie jeśli chodzi o STM32. Szczerze mówiąc to była moja druga książka w tej tematyce.

Przemek · 21/03/2019 o 10:55

Rzeczowa recenzja prezentująca tematykę książki. W przystępny i krótki sposób przedstawijąca kluczowe zagadnienia poruszane w ksiażce z osobistymi komentarzami potwierdzającymi słuszność wyboru poszczególnych zagadnień. Dobrze, że została zwrócona uwaga na błedy wystepujące w książce, z perspektywy osoby rozpoczynającej przygode z danym tematem takie pomyłki drukarskie moga być niezwykle czasochłonne oraz deprymujące. Dobrze spedzony czas przeznaczony na przeczytanie takiej recencji!

    Mateusz · 26/03/2019 o 17:51

    Dzięki i polecam się na przyszłość!

Piotr · 21/03/2019 o 08:46

Recenzja krótka, ale na temat. Autor recenzji w sposób sensowny zobrazował zalety książki oraz w jasny sposób skonkretyzował do kogo jest kierowana ta książka. Dziękujemy za dobrą recenzję, aby tak dalej.

    Mateusz · 26/03/2019 o 17:53

    Teraz to może być tylko więcej i lepiej. Nie zatrzymuję się.

Agnieszka Stąpór · 20/03/2019 o 22:13

Szczególną recenzja. Lubię takie. Nie każdy ma odwagę napisać, że recenzowaną książkę można sobie odpuścić. Dziękuję

    Mateusz · 26/03/2019 o 17:52

    Nie ma co ściemniać czytelników 🙂

Dodaj komentarz

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

Serwis wykorzystuje pliki cookies. Korzystając ze strony wyrażasz zgodę na wykorzystywanie plików cookies. Więcej informacji znajdziesz na stronie Polityka Prywatności

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close