Cel
Nauka posługiwania się, wbudowanymi w moduł micro:bit, przetwornikami analogowo-cyfrowymi i quasi-analogowymi (PWM) wyjściami oraz sterowania serwomechanizmami.
Wymagania
- moduł micro:bit,
- potencjometr 5k – 100k,
- przewody połączeniowe goldpin,
- ekspander wyprowadzeń do micro:bita, na przykład micro:mate,
- modelarski serwomechanizm,
a dodatkowo do budowy analogowego barometru:
- drugi micro:bit,
- stacja pogodowa weather:bit,
- przybory szkolne, tektura, kredki, słomka do napojów.<
Analogowy świat
Układy mikroprocesorowe, a w szczególności BBC Micro Bit, są urządzeniami cyfrowymi. Oznacza to, że w układzie napięcia mogą przyjmować tylko dwie skrajne wartości. Stany pośrednie są wykluczone. Podobnie wygląda sprawa interakcji ze światem zewnętrznym. Urządzenia naturalnie współpracujące z układami cyfrowymi to elementy typu włącz/wyłącz, czyli na przykład poznane wcześniej przyciski czy diody LED.
Fizyczny świat jest jednak odmiennego typu. Wszystkie wielkości podlegające pomiarom mają charakter ciągły i nie mogą bezpośrednio, bez odpowiedniego przetwarzania, być podłączone do wejść układów cyfrowych. Układy realizujące zamianę sygnałów analogowych na cyfrowe noszą nazwę przetworników analogowo-cyfrowych ADC (z ang. analog to digital converter) oznaczanych też przez A/D. Odwrotną zamianę zapewniają przetworniki cyfrowo-analogowe D/A, a nie są one rzadkością w systemach wbudowanych (o czym dalej).
Od wielu lat standardem w metrologii jest przekształcanie wszystkich wielkości nieelektrycznych na elektryczne – domyślnie napięcie. Powodowane jest to łatwością obróbki, możliwością przesyłania na duże odległości, powielania, a przede wszystkim wykorzystania takiego sygnału do sterowania innymi urządzeniami. Obecnie obserwuje się jeszcze inną tendencję do zamiany sygnału elektrycznego analogowego na cyfrowy, tak szybko jak to możliwe. W sklepach internetowych dla robotyków można zakupić bardzo dużo czujników z już wbudowanym przetwornikiem analogowo-cyfrowym. Zaletą sygnału cyfrowego jest bezpośrednia współpraca z układami mikroprocesorowymi oraz dużo większa odporność na zakłócenia, a w przypadku odpowiedniego protokołu komunikacyjnego może zapewnić niezawodny transfer danych.
Analizując rysunek 1 można zauważyć, że przy sześciu pinach: P0, P1, P2, P3, P4 i P10 widnieje skrót A/D. Te piny oprócz współpracy z sygnałami cyfrowymi, dają możliwość pomiaru napięcia i przetwarzają go na sygnał cyfrowy. Programista korzystający z takich wejść nie musi znać zasad przetwarzania ani formatu wygenerowanych danych, jedynie otrzymuje zestaw funkcji (API) pozwalających na pobranie liczb jednoznacznie powiązanych z odczytanymi napięciami.
Mierzone przez micro:bit wielkości, umieszczonymi na płytce czujnikami przyspieszenia, temperatury, pola magnetycznego i natężenia światła, też mają charakter ciągły. Jak więc micro:bit mierzy te wielkości? Poprzez wbudowane w moduł przetworniki A/D podłączone do wewnętrznej magistrali I2C. Magistrala ta wyprowadzona jest na złącze stykowe micro:bita – piny P19 i P20. Urządzenia podłączone do I2C mają ustalony protokół komunikacyjny, a identyfikowane są przez unikalne adresy. Podłączając dodatkowe urządzenia, wspierające taką komunikację, do pinów P19, P20, możemy w prosty sposób zwiększać funkcjonalność urządzenia.
Istnieje też możliwość podłączenia zewnętrznych przetworników A/D. Jest to z reguły zadanie o wyższym stopniu złożoności niż dotychczas prezentowane rozwiązania. Czasami jednak podłączenie zewnętrznych przetworników A/D może okazać się konieczne, gdy wbudowane nie zapewniają odpowiednich parametrów: szybkości działania, rozdzielczości, liniowości itp.
Analogowe wejścia

Do nauki korzystania z wejść analogowych będziemy potrzebowali regulowanego napięcia. Dla jego uzyskania podłączmy sygnał z potencjometru do wejścia P1 jak na rysunku 1. Takie połączenie pozwoli nam na zmianę napięcia na pinie P1 w zakresie od 0 V do napięcia zasilania, czyli około 3,3 V. Ponieważ przyłączamy do pinu szerokiego, to możemy to zrobić za pomocą krokodylków lub wtyków bananowych.
Do przyłączenia jakiegokolwiek sygnału do wejścia analogowego należy posiadać informację o sygnałach współpracujących z danym wejściem (przetwornikiem). Od strony technicznej parametrów opisujących przetwornik można podać bardzo dużo, ale z punktu widzenia amatorskich zastosowań najbardziej istotne są:
- Zakres mierzonych napięć. Nie zawsze jest tożsamy z napięciem zasilania. Często przetworniki potrafią przetwarzać napięcia ujemne. Czasami zakres ten może być powiązany z innym napięciem podawanym na dodatkowe wejście przetwornika lub być ustalany programowo. W micro:bicie zakres mierzonych napięć jest identyczny z napięciem zasilającym1, to znaczy od 0 V do 3,3 V. Zatem układ z rysunku 1 zapewni pokrycie całego zakresu mierzonych napięć.
- Rozdzielczość przetwornika mierzona w bitach. Jest to parametr, który określa, na ile stanów podzielony jest zakres mierzonych napięć. W micro:bicie wbudowany jest przetwornik 10-bitowy, co odpowiada 1024 stanom. Czyli, jeżeli napięcie wejściowe wynosi 0 V, to odczyt „analogowy” da w wyniku liczbę 0, a gdy napięcie zwiększymy do 3,3 V, w wyniku otrzymamy 1023. Zdolność rozdzielcza w skali napięć wynosi w takim przypadku 3,3 V/1024, co w przybliżeniu daje około 3,2 mV.
- Zakres dopuszczalnych napięć wejściowych określa wytrzymałość wejścia na podłączanie napięć przekraczających zakres napięć mierzonych (pkt. 1). Ponieważ w specyfikacji technicznej na stronie tech.microbit.org/hardware/ ten parametr nie jest określony wprost, to przyjmujemy najgorszy możliwy przypadek i zakładamy, że zakres napięć dopuszczalnych jest taki sam jak mierzonych i nie będziemy na wejściu przekraczać napięcia zasilania układu. Ten warunek też jest zagwarantowany użyciem układu z rysunku 1.
- Szybkość przetwornika. Proces przetwarzania analogowo-cyfrowego nie jest natychmiastowy i wymaga pewnego czasu na wykonanie pomiaru. Szybkość przetwornika podawana jest w postaci ilości próbek mierzonego napięcia na jednostkę czasu lub po prostu czasu potrzebnego na wykonanie pojedynczego pomiaru. Ta informacja uznana została przez twórców oficjalnej strony micro:bita za mało istotną ze względu na dużą szybkość wbudowanych konwerterów A/D i nie jest podana w specyfikacji technicznej na stornie projektu BBC. Można jednak znaleźć wyniki pomiarów udostępniane przez społeczność. Na przykład według forum.micropython.org/viewtopic.php?t=2682 szybkość ADC micro:bita wynosi 6,5 kpróbek/s, co oznacza, że czas opóźnienia związany z odczytem pojedynczego napięcia wynosi w przybliżeniu 150 μs.
Po podłączeniu potencjometru możemy sprawdzić działanie przetwornika A/D. Moglibyśmy użyć wyświetlania liczby odczytanej z wejścia lub wyniku pomiaru napięcia po przemnożeniu przez 3,2 mV, jednak w celu zwiększenia efektu użyjemy szybkiego bloku Led/plot bar graph do przedstawienia wyniku wizualnie (listing 1).

Blok plot bar graph, zapełnia matrycę LED w miarę wzrostu pierwszego parametru of skalowanego w stosunku do drugiego parametru up to. Do programu wprowadziliśmy niewielkie, stumilisekundowe opóźnienie. Nie ma ono znaczenia, z punktu widzenia użytkownika, na szybkość działania układu, a znacząco odciąża system.
Tak przygotowani możemy do wejść analogowych doprowadzić sygnał z dowolnego czujnika, pod warunkiem, że potrafimy przekształcić go na napięcie.
Ekspander wyprowadzeń od DFRobot
Testowanie działania wyjść zaczniemy od omówienia jednego z wielu dostępnych na rynku ekspanderów wyprowadzeń. Podłączenie wprost do wąskich kontaktów złącza stykowego micro:bita może być nie tylko trudne, ale przede wszystkim niebezpieczne dla samego urządzenia. Takie rozszerzenie jest nam potrzebne, bo nie ma szerokich kontaktów wyjściowych w micro:bicie. Z punktu widzenia projektanta modułu jest to zrozumiałe, bo podłączanie elementów wykonawczych wymaga wiedzy i rozwagi. Obciążalność wyjść micro:bita jest nieduża i wynosi 5 mA. Już podłączenie diody LED ze zbyt małym rezystorem ustalającym prąd może uszkodzić moduł.
Zaprezentowany w tej sekcji ekspander firmy DFRobot nosi nazwę Micro:Mate Expansion Shield (rysunek 2). Ułatwia dostęp jedynie do pinów P8, P12 i P16 oraz do, i tak prostych w podłączaniu, P0, P1 i P2. Inne tego typu rozszerzenia pozwalają na dostęp do większej ilości GPIO, ale ideą tego układu jest zachowanie dotychczasowej funkcjonalności micro:bita przez nieużywanie współdzielonych wyjść. Stąd kształt płytki, której wycięcia umożliwiają korzystanie z przycisków A i B oraz pozwalają na oglądanie wyświetlacza. Po dokręceniu całość wraz z ekspanderem ma wymiary niewiele większe od „gołego” micro:bita. Tej cechy nie mają inne, dołączane do złącza stykowego, rozszerzenia. Dodatkowo micro:mate buforuje zasilanie pinów P8, P12 i P16, tak że można sterować dużymi odbiornikami – nawet do 2 A przy 5 V.

Podstawowe elementy płytki prezentuje rysunek 2:
- kontakty sprężynowe dla złącza stykowego micro:bita,
- śruby mocujące płytkę micro:mate do micro:bita,
- gniazdo słuchawkowe podłączone do pinu P0. Wszystkie bloki grupy Music wysyłają sygnały na P0,
- wyprowadzenie wraz z zasilaniem pinów P0, P1 i P2,
- gniazdo USB zewnętrznego zasilania VIN. Przez gniazdo to nie można programować micro:bita, jednak po podłączeniu zasilania do niego micro:bit będzie także zasilany. Jego użycie jest konieczne w przypadku wykorzystania pinów P8, P12 i P16. Obciążalność zasilania wynosi wtedy 10 W,
- wyprowadzenie wraz z zasilaniem pinów P8, P12 i P16,
- wybór napięcia zasilającego dla pinów P8, P12 i P16 – OFF, 5 V, 3,3 V.
Wyprowadzenia zewnętrzne udostępniane przez micro:mate pasują do wprowadzonego przez DFRobot standardu Gravity (-,+,sygnał).
Podczas pracy z pinami P8, P12 i P16 (6) należy najpierw przełącznik (7) ustawić w pozycji OFF, po czym kablem USB podłączyć micro:bita (nie micro:mate’a) do komputera. Załadować program, a następnie przełożyć kabel USB do wejścia VIN (5) modułu micro:mate. Jeżeli będziemy sterować dużymi obiektami, powinniśmy rozważyć użycie zasilacza. Dopiero teraz przełączamy przełącznik (7) w pozycji 5V. Podczas pracy z pinami (6) nie mamy możliwości zasilania bateryjnego.
Analogowe wyjście
Zazwyczaj przetwarzania cyfrowo-analogowego nie realizuje się w popularnych systemach. Zamiast tego informację analogową koduje się w postaci modulacji szerokości impulsów (PWM z ang. Pulse-Width Modulation). Sygnał wyjściowy w takim kodowaniu nadal jest dwustanowy, a informacja jest ukryta w dziedzinie czasowej.

Sygnał w tej modulacji jest sygnałem okresowym, prostokątnym, w którym informacja liczbowa jest równa wypełnieniu przebiegu, to znaczy stosunkowi TH/T czasu trwania stanu wysokiego w okresie do okresu przebiegu. Jednym z podstawowych parametrów opisujących wyjście PWM jest rozdzielczość R wyrażona w bitach. Podobnie jak na analogowym wejściu, tak i na wyjściu mamy pseudoanalogowość, to znaczy liczba możliwych wartości stosunku TH/T jest skończona i wynosi 2R. Drugim ważnym parametrem jest częstotliwość tej modulacji, czyli 1/T.
Wyjście takie nie jest rzeczywistym analogowym wyjściem, a jedynie daje możliwość zakodowania wartości liczbowej w jednym cyfrowym kanale. Ma jednak bardzo ważną w zastosowaniach cechę pozwalającą na łatwą budowę rzeczywistego przetwornika D/A. Wartość średnia sygnału PWM jest równa:
czyli proporcjonalna do zakodowanej liczby. Wykonanie zatem rzeczywistego analogowego wyjścia wymaga jedynie zastosowania filtra dolnoprzepustowego o stałej czasowej znacznie dłuższej od T. W większości zastosowań jednak nie będzie potrzeby stosowania filtrów, ze względu na naturalną bezwładność odbiorników (zwłaszcza elektromechanicznych, a w szczególności silników) lub nieobserwowalność szybkiego przełączania.

Na listingu 2 przedstawiono przykład niejawnego zastosowania modulacji PWM. Jasność diod w matrycy można regulować w zakresie od 0 do 255, wykorzystując właśnie taką modulację blokiem Led/more/plot x y brightness. Program ten podczas zapalania diod po kolei kolumnami ustawia losowo jasność każdej z nich.
Do wykorzystania modulacji szerokości impulsu wprost służy blok Pins/analog write. Standardowe wyjście analogowe w micro:bicie jest 10-bitowe. Domyślną częstotliwość pracy takiego wyjścia można zmienić blokiem Pins/analog set period, a nawet bezpośrednio wymusić czas trwania impulsu TH przez Pins/servo set pulse.
Serwo
Ważną grupę elektromechanicznych elementów wykonawczych stanowią serwomechanizmy (w skrócie serwa). Definicja serwomechanizmu w automatyce, jako pewnego zamkniętego układu sterowania, jest bardzo szeroka i obejmuje bardzo dużą klasę urządzeń. W automatyce modelarskiej serwomechanizmem nazywamy siłownik, który zmienia specyficzną modulację szerokości impulsu na kąt położenia wału serwa. Ramię robocze umieszczone prostopadle do osi wału nosi nazwę orczyka (rysunek 4).

Standardowo serwomechanizmy modelarskie pracują w zakresie kątowym od 0º do 180º. Do ustawienia orczyka w zadanym położeniu kątowym serwo musi dostać odpowiedni sygnał. Serwa oprócz zasilania (dwa przewody: -brązowy i +czerwony) wymagają tylko jednego dodatkowego, sygnałowego przewodu (przewód pomarańczowy). Sterowanie kątem położenia ramienia odbywa się także przy pomocy modulacji PWM, ale przy znacznie mniejszym zakresie wypełnień i przy ściśle określonej częstotliwości – czas powtarzania musi wynosić dokładnie 20 ms (rysunek 5). Kąt położenia jest raczej definiowany przez długość impulsu niż przez położenie, i tak dla czasu trwania impulsu TH równego 1 ms, serwomechanizm obraca się do położenia początkowego 0º, a dla TH = 2 ms do położenia skrajnego końcowego – przeważnie 180º.


Do sterownia serwomechanizmami zazwyczaj nie używamy zwyczajnego wyjścia PWM Pins/analog write, tylko stosujemy dedykowane Pins/servo write umożliwiające ustawienie serwa dokładnie w zadanym położeniu kątowym. Oprócz tego istnieje wiele dodatkowych bibliotek ułatwiających pracę z serwomechanizmami dostępnych przez dodatki Extensions, jednak w prezentowanych przykładach nie będzie potrzeby korzystania z nich.
Sposób pracy z serwomechanizmem demonstruje program z listingu 3. Wykorzystuje on sygnał z potencjometru podłączonego do wejścia P1 jak na rysunku 6, oraz serwomechanizm podłączony do pinu P8 przez ekspander micro:mate (rysunek 6).

Odczytaną z potencjometru 10-bitową liczbę zapisujemy w zmiennej kąt, którą w następnym wierszu przeliczamy na kąt mierzony w stopniach. Można także przeliczyć na długość impulsu, ale jest to zdecydowanie mniej czytelne. Wyliczony kąt obrotu wysyłamy blokiem Pins/servo write pin na wyjście P8. Blok opóźnienia pause pozwala na korekcję reakcji serwa i w zasadzie można go pominąć, ale w przypadku nieoczekiwanego działania układu można spróbować zmodyfikować jego wartość.
Barometr
Odczyt z wyświetlacza cyfrowego nie zawsze jest wygodny, stąd w wielu przypadkach, szczególnie gdy wielkość mierzona podlega ciągłym zmianom, nadal wykorzystywane są wskaźniki analogowe. Odczyt analogowy jest bardziej naturalny i w przypadkach, kiedy nie jest wymagana duża dokładność, daje natychmiastową orientację w wielkości wyniku. Nawet w skomputeryzowanych, współczesnych samochodach wszelkie wskaźniki, jak prędkościomierz, obrotomierz, miernik temperatury silnika, poziomu paliwa itp., nadal w większości posiadają wskazówki.
Wykorzystamy stację pogodową z rozdziału Stacja pogodowa i zmodyfikujemy jej działanie w taki sposób, aby pokazywała tylko jedną, wybraną wielkość, ale wynik prezentowany będzie na analogowym wskaźniku. W naszym przykładzie będziemy konstruować barometr, wykorzystując wbudowany w weather:bita czujnik ciśnienia. W tym celu zmodyfikujemy programy z rozdziału Stacja pogodowa, a zamiast wyświetlacza wykorzystamy ramię serwomechanizmu.

Rozpoczniemy od uproszczenia programu nadajnika z listingu 5, tak aby przesyłał tylko jedną wartość (listing 4). Oczywiście możemy pozostawić go bez zmian, a po stronie odbiorczej wykorzystywać tylko ciśnienie. Pisząc program od początku można zrezygnować z wysyłania komunikatów (nazwa, wartość), ale takie uproszczenie powoduje zmniejszenie elastyczności i potencjalne problemy podczas prób rozbudowy projektu.
Odbiornik także zaprojektujemy, wykorzystując jako bazę ten z rozdziału Stacja pogodowa (listing 6). Najważniejszymi zmianami wprowadzonymi do programu 5 są: odbiór tylko jednej wartości – ciśnienia – oraz rezygnacja z wyświetlacza na rzecz serwomechanizmu.

Najtrudniejszym zadaniem w takim przypadku, ze względu na to, że program stacji pogodowej już mieliśmy napisany, jest przeliczenie Ćiśnienie_raw, czyli surowej wartości z czujnika, na kąt obrotu serwomechanizmu. W programie przedstawionym na listingu 5 ciśnieniu około 970 hPa odpowiada kąt 45º, a 1050 hPa kąt 135º. Można użyć innych wartości, co będzie dobrym ćwiczeniem ze znajomości własności funkcji liniowej.

Na rysunku 7 przedstawiono realizację barometru ze wskazówką. Tarcza, będąca zarazem mocowaniem serwomechanizmu, jest wykonana z pudełka po czekoladkach. Za wskazówkę posłużyła słomka do napojów założona na orczyk.
Modyfikacje
Sama zabawa z ustawianiem potencjometrem położenia ramienia serwomechanizmu (listing 3) może być ciekawa, ale można zamiast liniowej funkcji przesunięcia użyć innej zależności. Na przykład wprowadzenie odpowiedniej funkcji kwadratowej może spowodować istnienie minimum lub maksimum kąta obrotu, gdzieś dla pośrednich wartości położenia potencjometru. Możemy to położenie znaleźć, ustawiając wskazanie orczyka na optimum. Podobnie w tym samym programie można wprowadzić regulowane osobnym potencjometrem opóźnienie w bloku pause. Wymaga to użycia dodatkowego wejścia analogowego.
Działanie analogowego wejścia można także zademonstrować, wykorzystując program z Przycisk teleturniejowy (listing 6), w którym szybkość zapalania i gaszenia diod będzie regulowana potencjometrem.
Najprostszą modyfikacją napisanego barometru jest pomiar innej, bardziej dynamicznej wielkości fizycznej. Ciśnienie atmosferyczne zmienia się bardzo powoli i działanie programu jest bardzo statyczne. Trzeba wówczas skrócić czasy odpowiadające za odświeżanie pomiarów.
Dobrym zadaniem dodatkowym będzie naniesienie skali liczbowej na miernik, zamiast kolorów obrazujących niskie, normalne i wysokie ciśnienie.
W zasadzie wszystkie uwagi i pomysły z modyfikacji stacji pogodowej można przenieść do tego projektu, włączając w to przełącznik wyświetlanej (wskazywanej) wielkości.
Bardzo ciekawą rzeczą jest to, że zachowując nadajnik z rozdziału Stacja pogodowa, a odbiornik z tego, to układ nadal by działał. Ponieważ możemy informację rozsyłać jednocześnie do wielu odbiorników (tak zwany broadcasting) to możemy, dołączając do poprzedniego projektu odbiornik naszego barometru, jednocześnie obserwować dane na wyświetlaczu LCD i wskaźniku analogowym.
Literatura
Powtórzenie zaprezentowanych projektów nie wymaga studiowania dodatkowej literatury. Dopiero wprowadzenie modyfikacji może wiązać się z koniecznością uzupełnienia wiedzy. Najlepszym źródłem informacji w przypadku jakiegoś konkretnego problemu jest internet. Książka pisana swoją wyższość ukazuje dopiero jako podręcznik czy przewodnik.
Informacje bibliograficzne dotyczące źródeł internetowych zamieściłem bezpośrednio w tekście, przy zagadnieniach, których dotyczą.
Do zapisu linków, tylko w tym spisie, wykorzystywana jest metoda skracania adresów (URL shortening). W tym skrypcie wybrano serwis TinyURL. Dostęp do wszystkich internetowych zasobów został przetestowany 27.02.2020.
Bibliografia zawiera tylko materiały pomocnicze do projektów, których dotyczą, a pominięto literaturę o charakterze ogólnoinformatycznym. Dobór materiałów do nauki kodowania, czy obsługi programów narzędziowych, pozostaje po stronie nauczyciela.
Literatury dotyczącej micro:bita jest niewiele, szczególnie w stosunku do najbardziej popularnych systemów wbudowanych. Nie można liczyć niestety na wiele informacji w języku polskim. Najbardziej godne polecenia, gromadzące także dużo społeczności są strony oficjalnego wsparcia:
- BBC Micro Bit Main Page [https://tinyurl.com/y36runae],
- Micro Bit Let’s Code [https://tinyurl.com/y57san4c],
- Microsoft MakeCode Editor for micro:bit [https://tinyurl.com/ybarrla5],
- micro:bit support [https://tinyurl.com/rmfkwbf]
oraz
- SparkFun micro:climate Kit Experiment Guide [https://tinyurl.com/sljsw2c].
Literatura uzupełniająca
W niektórych projektach nie wszystko da się podłączyć za pomocą pasujących do siebie wtyków i złącz. Należy wówczas wykonać takie podłączenia samodzielnie. Wymaga to nieco umiejętności majsterkowania i elektroniki. Bardzo ciekawą książką dla początkujących majsterkowiczów jest:
- Roberts Dustyn, Wpraw to w ruch. Proste mechanizmy dla wynalazców, majsterkowiczów i artystów [e-book], tłum. Krzysztof Sawka, Helion, 2015.
Znajdziemy w niej oprócz podstaw elektroniki także dużo elementarnej mechaniki i materiałoznawstwa.
Majsterkowanie z użyciem systemów wbudowanych, tam gdzie nie wszystko pasuje do siebie za pomocą dedykowanych styków, wymaga elementarnej wiedzy z elektroniki. Niezmiennie najważniejszą książką na półce elektronika jest:
- Horowitz Paul, Hill Winfield, Sztuka elektroniki, tłum. Bogusław Kalinowski, Grażyna Kalinowska, t. 1–2, wyd. 12 zmienione, WKŁ, Warszawa 2018.
Jednakże jest to pozycja dla wymagającego czytelnika. Podobnym standardem, ale skierowanym do początkujących jest:
- Platt Charles, Elektronika. Od praktyki do teorii. Wydanie II [e-book], tłum. Konrad Matuk, Helion, 2016.
Na uwagę zasługuje ponadto, w moim przekonaniu bardzo dobra, książka polskiego autora:
- Górecki Piotr, Wyprawy w świat elektroniki, t. 1, WKŁ, Warszawa 2006.
- Górecki Piotr, Wyprawy w świat elektroniki. Wyższy stopień wtajemniczenia, t. 2, WKŁ, Warszawa 2011.
1 Jest możliwość zmniejszenia programowego napięcia referencyjnego aż do 1/3 napięcia zasilania. Nie dotyczy to jednak języka Blocks.
