Odkrywanie Arduino
Narzędzia i techniki
inżynierii pełnej czaru
Mikrokontroler
Arduino szybko może stać się Twoim ulubionym narzędziem, pasją albo
wstępem do fascynującego świata elektroniki, programowania,
systemów sterujących, interakcji człowieka z komputerem, a
nawet... sztuki! Arduino może zrobić wszystko, co tylko zechcesz:
sterować domową uprawą ziół, być serwerem sieciowym albo
autopilotem czterośmigłowego drona. Umożliwia korzystanie z
intuicyjnego języka programowania, a także pozwala się łatwo doposażyć
w czujniki, serwomechanizmy, oświetlenie, głośniki, dodatkowe moduły i
inne układy scalone. Trudno wymienić wszystkie możliwości Arduino, gdyż
ogranicza je tylko wyobraźnia.
Oto
zaktualizowane i rozszerzone wydanie książki, dzięki której
poznasz wybrane zagadnienia z dziedziny fizyki, elektroniki i cyfrowego
projektowania. Omówiono też podstawy algorytmów i
charakterystyczne dla Arduino koncepcje programistyczne. Znalazły się
tu zaktualizowane projekty i nowe tematy, takie jak łączność
bezprzewodowa czy silniki krokowe, oraz dużo więcej wiadomości
związanych z elektrotechniką i projektowaniem produktu. Dowiesz się,
jak łączyć ze sobą różne elementy, a także jak czytać
schematy i w jaki sposób dobierać odpowiednią część dla
konkretnego projektu. Nauczysz się projektować i tworzyć kompletny kod.
Przekonasz się, że przedstawione tu praktyki z zakresu elektrotechniki,
projektowania systemów i programowania można szeroko
stosować, również poza światem Arduino.
W książce:
- funkcjonalność płytek
Arduino i ich wykorzystywanie do różnych zadań
- czujniki cyfrowe,
analogowe i interfejsy komunikacyjne
- zasady projektowania
systemu, programowania i elektrotechniki
- fragmenty kodu, najlepsze
praktyki oraz gotowe do zastosowania schematy systemów
- budowa
elementów, które można podłączyć do internetu
O
autorze 13
O korektorze merytorycznym 15
Podziękowania 17
O ilustracjach 19
Wstęp 21
CZĘŚĆ I.
PODSTAWY ARDUINO
Rozdział 1.
Rozpoczęcie
pracy i zrozumienie świata Arduino
29
Odkrywanie ekosystemu Arduino 29
Wielka schizma Arduino i reformacja 30
Funkcjonalność Arduino 30
Pozostałe (obok AVR) architektury mikrokontrolerów 32
Program rozruchowy i oprogramowanie sprzętowe Arduino 34
Płytki Arduino 35
Twój pierwszy program 38
Arduino Cloud IDE 38
Pobieranie i instalacja Arduino IDE 39
Uruchamianie IDE i podłączanie Arduino 39
Analiza pierwszego programu 41
Podsumowanie 44
Rozdział 2.
Cyfrowe
wejścia, wyjścia i modulacja szerokości impulsów (PWM)
45
Cyfrowe wyjścia 46
Podłączanie diody LED i korzystanie z płytek stykowych 46
Dwie szyny zasilania 47
Prawo Ohma i obliczanie poboru mocy 48
Programowanie cyfrowych wyjść 50
Stosowanie pętli for 51
Modulacja szerokości impulsów i funkcja analogWrite() 52
Częstotliwość a okres 54
Odczyt wejść cyfrowych 55
Odczyt z cyfrowych sygnałów wejściowych przy użyciu
rezystora ściągającego 55
Problem drgających styków przycisku 58
Budowa sterowanej lampki nocnej przy użyciu diody RGB LED 61
Podsumowanie 65
Rozdział 3.
Praca
z czujnikami analogowymi 67
Zrozumienie sygnałów analogowych i cyfrowych 68
Porównanie sygnałów analogowych z cyfrowymi 68
Zamiana sygnału analogowego na cyfrowy 69
Odczyt z wejść analogowych 71
Odczyt z potencjometru 71
Korzystanie z analogowych czujników 74
Wykorzystanie rezystora zmiennego do budowy własnego czujnika
analogowego 79
Stosowanie rezystancyjnego dzielnika napięcia 79
Korzystanie z analogowych wejść do sterowania analogowymi wyjściami 81
Podsumowanie 83
CZĘŚĆ II.
KOMUNIKACJA Z OTOCZENIEM
Rozdział 4.
Wykorzystanie
tranzystorów i sterowanie silnikami prądu stałego
87
Sterowanie silnikami prądu stałego 88
Korzystanie z urządzeń indukcyjnych o dużym poborze prądu 89
Sterowanie prędkością silnika przy użyciu PWM 93
Stosowanie mostków H do zmiany kierunku obrotu silnika 95
Powodowanie zwarcia za pomocą mostka H 96
Budowa poruszającego się robota 102
Wybór części robota 102
Stabilizatory liniowe i ograniczenia źródeł prądu Arduino 104
Budowanie robota 105
Programowanie robota 106
Złożenie wszystkiego w całość 110
Podsumowanie 111
Rozdział 5.
Sterowanie silnikami krokowymi i serwomotorami 113
Sterowanie serwomotorami 114
Różnica pomiędzy pracą ciągłą a standardowymi
serwomechanizmami 114
Zasady sterowania serwomotorem 115
Program sterujący serwomechanizmem 117
Budowa czujnika odległości o szerokim kącie działania 118
Zasada działania silników krokowych i sterowanie nimi 122
Działanie bipolarnych silników krokowych 123
Jak prawdziwe silniki krokowe mają się do uproszczonego przykładu? 125
Wprawianie silnika krokowego w ruch 125
Budowa "chronografu jednominutowego" 128
Okablowanie i budowa chronografu 128
Programowanie chronografu 129
Podsumowanie 133
Rozdział 6.
Generowanie dźwięków i tworzenie muzyki
135
Zasada działania głośników 136
Właściwości dźwięku 136
Zasada działania głośnika 137
Wykorzystanie funkcji tone() do tworzenia dźwięków 138
Dodanie własnego pliku nagłówkowego 139
Podłączanie głośnika 140
Tworzenie sekwencji dźwięków 142
Ograniczenia funkcji tone() 144
Budowa mikropianina 144
Podsumowanie 147
Rozdział 7.
Transmisja
szeregowa poprzez łącze USB 149
Możliwości transmisji szeregowej Arduino 150
Płytki Arduino z wewnętrznym lub zewnętrznym konwerterem USB na port
szeregowy firmy FTDI lub Silicon Labs 151
Płytki Arduino z dodatkowym mikrokontrolerem ATmega działającym jako
konwerter szeregowy 154
Płytki Arduino z jednym mikrokontrolerem z wbudowanym interfejsem USB
155
Płytki Arduino z możliwością bezpośredniego podłączania urządzeń USB 155
Odbieranie danych z Arduino 155
Polecenia print 156
Stosowanie znaków specjalnych 157
Zmiana formatu wyświetlanych danych liczbowych 159
Komunikacja z Arduino 159
Konfiguracja monitora portu szeregowego Arduino IDE w celu wysyłania
poleceń 159
Odczytywanie danych przychodzących z komputera lub innego urządzenia
wykorzystującego port szeregowy 160
Komunikacja z aplikacją desktopową 167
Instalacja Processing 167
Sterowanie szkicem w Processing z poziomu Arduino 168
Wysyłanie danych z Processing do Arduino 171
Podsumowanie 173
Rozdział 8.
Emulacja
urządzeń USB 175
Emulator klawiatury 176
Wprowadzanie danych do komputera 177
Automatyczne wyłączanie komputera 180
Emulator myszki 181
Podsumowanie 184
Rozdział 9.
Rejestry
przesuwne 185
Wybór Arduino odpowiedniego do danego zadania 186
Zasada działania rejestrów przesuwnych 186
Transmisja szeregowa i równoległa 187
Stosowanie rejestru przesuwnego 74HC595 187
Przesuwanie danych szeregowych z Arduino 188
Łączenie rejestrów przesuwnych 191
Zamiana systemu dwójkowego na dziesiętny 192
Sterowanie animacjami świetlnymi za pomocą rejestru przesuwnego 192
Budowa "pływającego światła" 193
Dynamicznie zmieniający się diodowy wykres słupkowy 194
Podsumowanie 196
CZĘŚĆ III.
INTERFEJSY KOMUNIKACYJNE
Rozdział 10.
Magistrala I2C
199
Historia magistrali I2C 200
Budowa magistrali I2C 200
Schemat komunikacyjny i numery ID 201
Wybór części z perspektywy inżyniera projektującego
urządzenie 203
Wymagania sprzętowe i rezystory podciągające 203
Jak dobrać odpowiednią wartość rezystorów podciągających 204
Komunikacja z czujnikiem temperatury I2C 205
Konfiguracja sprzętu 205
Czytanie dokumentacji 206
Pisanie programu 207
Łączenie rejestrów przesuwnych, komunikacji szeregowej i
komunikacji I2C 210
Budowa systemu monitorującego temperaturę 211
Modyfikacja poprzedniego programu 211
Pisanie szkicu Processing 213
Podsumowanie 216
Rozdział 11.
Magistrala SPI i
biblioteki zewnętrzne 217
Podstawowe informacje o magistrali SPI 218
Sprzęt i schemat komunikacji SPI 219
Konfiguracja sprzętu 219
Nazewnictwo 220
Schemat komunikacji 220
Porównanie SPI z I2C i UART 221
Komunikacja z akcelerometrem SPI 221
Miniaturyzacja urządzeń i SMT 222
Co to jest akcelerometr? 222
Czytanie dokumentacji 223
Podłączanie sprzętu 226
Pisanie programu 228
Budowa audiowizualnego instrumentu przy użyciu 3-osiowego akcelerometru
232
Budowa układu 233
Modyfikacja oprogramowania 233
Podsumowanie 236
Rozdział 12.
Komunikacja z
wyświetlaczami ciekłokrystalicznymi
237
Podłączenie wyświetlacza LCD 238
Używanie biblioteki LiquidCrystal do wyświetlania znaków na
LCD 240
Wyświetlanie tekstu 241
Tworzenie znaków specjalnych i animacji 243
Budowa osobistego termostatu 246
Konfiguracja sprzętu 246
Wyświetlanie danych na LCD 249
Dostosowanie temperatury docelowej za pomocą przycisku 251
Dodanie dźwięku ostrzegawczego i wentylatora 252
Składanie kodu w całość - kompletny program 253
Rozwijanie projektu 256
Podsumowanie 257
CZĘŚĆ IV.
ODKRYWANIE BARDZIEJ
ZAAWANSOWANYCH MOŻLIWOŚCI ORAZ ŁĄCZENIE FUNKCJI
Rozdział 13.
Przerwania i inne funkcje
specjalne 261
Stosowanie przerwań sprzętowych 262
Różnice pomiędzy przerwaniem a sprawdzaniem stanu 262
Możliwości przerwań sprzętowych Arduino 264
Budowa i testowanie obwodu z przyciskiem z wykorzystaniem przerwania
sprzętowego do wyeliminowania problemu drgających styków 265
Stosowanie przerwań wywoływanych przez licznik 272
Zrozumienie przerwań od licznika 272
Instalacja biblioteki 273
Wykonywanie dwóch zadań (niemal) jednocześnie 273
Budowa maszyny dźwiękowej sterowanej przerwaniami 274
Elementy maszyny dźwiękowej 274
Oprogramowanie maszyny dźwiękowej 275
Podsumowanie 277
Rozdział 14.
Rejestracja danych za pomocą kart SD
279
Przygotowania do rejestracji danych 280
Formatowanie danych w plikach CSV 280
Przygotowanie karty SD do rejestracji danych 281
Komunikacja Arduino z kartą SD 285
Nakładki z czytnikiem kart SD 286
Interfejs SPI karty SD 288
Zapisywanie na karcie SD 288
Składanie nakładki rejestrującej dane 289
Odczytywanie z karty SD 292
Zegary czasu rzeczywistego 295
Działanie zegarów czasu rzeczywistego 296
Korzystanie z zegara czasu rzeczywistego 298
Zamiana Twojego chronografu na zegar 304
Budowa rejestru wejść i wyjść 305
Osprzęt rejestratora 305
Oprogramowanie rejestratora 306
Analiza danych 310
Podsumowanie 311
CZĘŚĆ V.
KOMUNIKACJA BEZPRZEWODOWA
Rozdział 15.
Bezprzewodowa komunikacja radiowa 315
Widmo fal elektromagnetycznych 316
Widmo 318
Wysyłanie i nadawanie danych przez nadajnik radiowy 319
Odbieranie sygnału naciśnięcia przycisku za pomocą modułu radiowego 321
Podłączanie odbiornika 321
Programowanie odbiornika 322
Stworzenie bezprzewodowego dzwonka do drzwi 325
Podłączanie odbiornika 325
Programowanie odbiornika 326
Początek inteligentnego domu - sterowanie lampą 328
Prąd zmienny w Twoim domu 328
Przesyłanie prądu zmiennego 329
Zasada działania przekaźnika 330
Programowanie przekaźnika 331
Podłączanie lampki i przekaźnika do Arduino 333
Podsumowanie 333
Rozdział 16.
Połączenie Bluetooth 335
Odarcie Bluetootha z tajemnic 336
Standardy i wersje Bluetootha 336
Profile Bluetootha i usługi BTLE GATT 337
Komunikacja między Arduino a smartfonem 338
Odczyt czujnika przez BTLE 338
Interfejs USB czipa 32U4 346
Wysyłanie poleceń z telefonu przez BTLE 348
Sterowanie lampą na prąd zmienny przez Bluetooth 356
Jak Twój telefon "łączy się w parę" z urządzeniami BTLE 356
Pisanie programu kontrolującego odległość od urządzenia 357
Łączenie w parę z telefonem 361
Spraw, by lampa reagowała na Twoją obecność 363
Podsumowanie 363
Rozdział 17.
Sieć Wi-Fi i chmura
365
Sieć, Arduino i Ty 366
Sieciowy żargon 366
Klienty i serwery 369
Arduino z Wi-Fi 369
Sterowanie Arduino przez sieć 370
Konfiguracja sprzętu sterującego wejściem/wyjściem 370
Przygotowanie Arduino IDE do pracy z modułem 370
Sprawdzenie, czy biblioteka Wi-Fi pasuje do oprogramowania sprzętowego
modułu Wi-Fi 371
Pisanie szkicu serwera Arduino 373
Kody odpowiedzi HTTP 377
Projektowanie prostej strony internetowej 381
Składanie wszystkiego w całość - szkic serwera sieciowego 382
Sterowanie Arduino przez sieć lokalną i zewnętrzną 386
Na ile sposobów można sterować lampą? 386
Komunikacja z sieciowymi interfejsami programowania aplikacji (API) 389
Korzystanie z API serwisu pogodowego 390
Czemu ktoś miałby sprawdzać dane pogodowe więcej niż 60 razy na minutę?
390
Ukończenie budowy wyświetlacza pokazującego temperaturę aktualizowaną
na żywo 400
Regulacja magistrali I2C za pomocą przewodów 401
Podsumowanie 407
Dodatek A. Czytanie dokumentacji i schematów 409
416
stron, oprawa miękka