Darmowy fragment publikacji:
Tytuł oryginału: Mastering Arduino: A project-based approach to electronics,
circuits, and programming
Tłumaczenie: Radosław Meryk
ISBN: 978-83-283-5522-4
Copyright © Packt Publishing 2018. First published in the English language under the title ‘Mastering
Arduino – (9781788830584)’
Polish edition copyright © 2019 by Helion SA
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Helion SA dołożyli wszelkich starań, by zawarte w tej książce informacje były kompletne
i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane z tym
ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Helion SA nie ponoszą również
żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Helion SA
ul. Kościuszki 1c, 44-100 Gliwice
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/zomiar
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
• Kup książkę
• Poleć książkę
• Oceń książkę
• Księgarnia internetowa
• Lubię to! » Nasza społeczność
Spis tre(cid:258)ci
O autorze
O recenzentach
Przedmowa
Rozdzia(cid:239) 1. Arduino
Historia Arduino
Czym jest Arduino?
Odkrywamy p(cid:239)ytk(cid:218) Arduino UNO R3
Zasilanie Arduino
U(cid:285)ywanie do zasilania Arduino pinów VIN/GND
U(cid:285)ywanie do zasilania Arduino wej(cid:258)cia zasilania DC
U(cid:285)ywanie do zasilania Arduino z(cid:239)(cid:200)cza USB
P(cid:239)ytki Arduino shield
Piny na p(cid:239)ytce Arduino
Piny cyfrowe
Analogowe piny wej(cid:258)ciowe
Piny PWM
Piny zasilania
Piny transmisji szeregowej
Piny SPI
Odmiany p(cid:239)ytki Arduino
Arduino Micro
Arduino Mega 2560
Lilypad
Arduino Nano
Zamienniki p(cid:239)ytek Arduino
Podsumowanie
13
14
15
19
20
22
22
24
24
25
26
27
28
29
29
29
30
30
30
31
31
32
32
33
33
36
Poleć książkęKup książkęSpis tre(cid:286)ci
Rozdzia(cid:239) 2. Podstawy elektroniki
Elektroniczne bloki konstrukcyjne
Zasilanie
Wej(cid:258)cie
Wyj(cid:258)cie
Uk(cid:239)ad steruj(cid:200)cy
Multimetr
Elementy elektroniczne
Rezystor
Potencjometr
Prze(cid:239)(cid:200)czniki
Tranzystor
Dioda LED
Kondensator
Uk(cid:239)ad scalony
Czym jest energia elektryczna?
Pr(cid:200)d
Napi(cid:218)cie
Oporno(cid:258)(cid:202)
Prawo Ohma
Czym jest moc?
Kody kolorów rezystorów
Podsumowanie
Rozdzia(cid:239) 3. Schematy obwodów
Czym jest obwód?
Fritzing
Diagramy Fritzing
Schematy symboliczne
Obwody równoleg(cid:239)e i szeregowe
Obwody szeregowe
Rezystancja
Napi(cid:218)cie
Pr(cid:200)d
Obwody równoleg(cid:239)e
Rezystancja
Napi(cid:218)cie
Pr(cid:200)d
Spadek napi(cid:218)cia
Zapalanie diody LED
Podsumowanie
Rozdzia(cid:239) 4. Podstawy prototypowania
Tworzenie miejsca do pracy
U(cid:285)ywanie bezlutowej p(cid:239)ytki prototypowej
Kable Dupont
6
37
38
38
39
39
39
40
43
43
43
44
45
46
46
47
48
49
49
50
51
51
52
53
55
55
58
59
60
61
61
62
62
62
62
63
63
63
64
64
66
67
68
69
73
Poleć książkęKup książkęPrototypowanie
Cztery bloki budulcowe projektu elektronicznego
Tworzenie schematu
Budowa prototypu
Pierwszy prototyp
Podsumowanie
Rozdzia(cid:239) 5. Arduino IDE
Szkic Arduino
Arduino IDE
Odkrywanie IDE
Konfigurowanie Arduino w (cid:258)rodowisku IDE
Arduino Web Editor
Odkrywanie edytora
Konfigurowanie Arduino w (cid:258)rodowisku Arduino Web Editor
Przyk(cid:239)ady
Biblioteki Arduino
Monitor szeregowy
Witaj (cid:258)wiecie!
Echo
Podsumowanie
Rozdzia(cid:239) 6. Programowanie Arduino — podstawy
Nawiasy klamrowe
(cid:165)redniki
Komentarze
Zmienne
Typy danych
Boolean
Byte
Integer
Long
Double i float
Char
Tablice
Tablice znaków
Sta(cid:239)e
Funkcje arytmetyczne
Operatory porównania
Operatory logiczne
Rzutowanie
Podejmowanie decyzji
P(cid:218)tle
Funkcje
Podsumowanie
Spis tre(cid:286)ci
73
75
76
76
76
79
81
81
82
83
84
86
87
88
88
92
95
98
99
101
103
104
104
104
105
105
106
106
106
107
107
107
108
110
110
111
112
113
113
114
116
117
119
7
Poleć książkęKup książkęSpis tre(cid:286)ci
Rozdzia(cid:239) 7. Programowanie Arduino — wi(cid:218)cej ni(cid:285) podstawy
Ustawianie trybu pinu cyfrowego
Zapis pinów cyfrowych
Odczyt pinów cyfrowych
Zapis pinów analogowych
Odczyt pinów analogowych
Struktury
Unie
Dodawanie zak(cid:239)adek
Praca z zak(cid:239)adkami
Programowanie obiektowe
Biblioteka String
Podsumowanie
Rozdzia(cid:239) 8. Czujnik ruchu
Wprowadzenie
Potrzebne komponenty
Schematy po(cid:239)(cid:200)cze(cid:241)
Kod
Uruchamianie projektu
Zadanie dodatkowe
Podsumowanie
Rozdzia(cid:239) 9. Czujniki (cid:258)rodowiskowe
Wprowadzenie
Potrzebne komponenty
Schematy po(cid:239)(cid:200)cze(cid:241)
Kod
Uruchamianie projektu
Zadanie dodatkowe
Podsumowanie
Rozdzia(cid:239) 10. Unikanie przeszkód i wykrywanie kolizji
Wprowadzenie
Czujnik zderzeniowy
Czujnik unikania przeszkód
Ultrad(cid:283)wi(cid:218)kowy wykrywacz zasi(cid:218)gu
Potrzebne komponenty
Schematy po(cid:239)(cid:200)cze(cid:241)
Kod
Uruchamianie projektu
Zadanie dodatkowe
Podsumowanie
8
121
122
123
124
125
126
127
129
130
133
134
137
139
141
141
144
144
146
147
147
148
149
149
152
152
152
159
160
160
161
161
162
163
164
165
165
166
168
169
170
Poleć książkęKup książkęRozdzia(cid:239) 11. Zabawa ze (cid:258)wiat(cid:239)em
Wprowadzenie
Potrzebne komponenty
Schematy po(cid:239)(cid:200)cze(cid:241)
Kod
Dioda LED RGB
NeoPixel shield
Uruchamianie projektu
Zadanie dodatkowe
Podsumowanie
Rozdzia(cid:239) 12. Zabawa z d(cid:283)wi(cid:218)kiem
Wprowadzenie
Potrzebne komponenty
Schematy po(cid:239)(cid:200)cze(cid:241)
Kod
Korzystanie z funkcji tone()
Odtwarzanie dzwonka w formacie RTTTL
Zadanie dodatkowe
Podsumowanie
Rozdzia(cid:239) 13. Korzystanie z wy(cid:258)wietlaczy LCD
Wprowadzenie
Potrzebne komponenty
Schematy po(cid:239)(cid:200)cze(cid:241)
Kod
Rysowanie linii
Wy(cid:258)wietlanie tekstu
Obracanie tekstu
Podstawowe kszta(cid:239)ty
Figura wype(cid:239)niona
Prostok(cid:200)t
Wype(cid:239)niony prostok(cid:200)t
Zaokr(cid:200)glony prostok(cid:200)t
Wype(cid:239)niony zaokr(cid:200)glony prostok(cid:200)t
Zadanie dodatkowe
Podsumowanie
Rozdzia(cid:239) 14. Rozpoznawanie mowy i synteza g(cid:239)osu
Wprowadzenie
Potrzebne komponenty
Schematy po(cid:239)(cid:200)cze(cid:241)
Kod
Uruchamianie projektu
Zadanie dodatkowe
Podsumowanie
Spis tre(cid:286)ci
171
171
173
174
175
175
176
179
179
180
181
181
183
183
184
184
187
189
190
191
191
193
193
195
196
196
198
198
199
200
200
201
201
202
202
203
203
206
206
207
209
209
210
9
Poleć książkęKup książkęSpis tre(cid:286)ci
Rozdzia(cid:239) 15. Silniki pr(cid:200)du sta(cid:239)ego i ich sterowniki
Wprowadzenie
Potrzebne komponenty
Schematy po(cid:239)(cid:200)cze(cid:241)
Kod
Uruchamianie projektu
Zadanie dodatkowe
Podsumowanie
Rozdzia(cid:239) 16. Serwosilniki
Wprowadzenie
Potrzebne komponenty
Schematy po(cid:239)(cid:200)cze(cid:241)
Kod
Zadanie dodatkowe
Podsumowanie
Rozdzia(cid:239) 17. Korzystanie z przeka(cid:283)ników
Wprowadzenie
Potrzebne komponenty
Schematy po(cid:239)(cid:200)cze(cid:241)
Kod
Zadanie dodatkowe
Podsumowanie
Rozdzia(cid:239) 18. Zdalne sterowanie Arduino
Wprowadzenie
Potrzebne komponenty
Schematy po(cid:239)(cid:200)cze(cid:241)
Kod
Zadanie dodatkowe
Podsumowanie
Rozdzia(cid:239) 19. Tworzenie robota
Wprowadzenie
Podwozie i ruch
Silniki i zasilanie
Robot autonomiczny — unikanie przeszkód i wykrywanie kolizji
Zdalne sterowanie robotem
Udzielanie informacji zwrotnych u(cid:285)ytkownikom
Ruch obrotowy
Projekty nierobotyczne
Stacja pogodowa
Inteligentny termostat
Czujnik zbli(cid:285)ania si(cid:218)
Zadanie dodatkowe
Podsumowanie
10
211
211
215
215
217
218
219
219
221
221
223
223
224
226
226
227
227
230
231
232
233
233
235
235
238
239
239
243
244
245
245
246
249
252
255
255
256
257
257
257
257
258
258
Poleć książkęKup książkęRozdzia(cid:239) 20. Bluetooth LE
Wprowadzenie
Technologie radiowe Bluetooth LE
Topologie sieciowe
Profile Bluetooth LE
Modu(cid:239) Bluetooth HM-10
Potrzebne komponenty
Schematy po(cid:239)(cid:200)cze(cid:241)
Projekt 1. Transmisja szeregowa
Polecenie testowe
Zapytanie o wersj(cid:218) oprogramowania
Przywracanie ustawie(cid:241) fabrycznych
Restart modu(cid:239)u
Zapytanie o adres MAC (Media Access Control)
Ustawianie nazwy
Zapytanie o nazw(cid:218)
Ustawianie interwa(cid:239)u rozg(cid:239)aszania
Zapytanie o interwa(cid:239) rozg(cid:239)aszania
Ustawianie typu rozg(cid:239)aszania
Zapytanie o typ rozg(cid:239)aszania
Ustawianie szybko(cid:258)ci transmisji
Zapytanie o szybko(cid:258)(cid:202) transmisji
Ustawianie identyfikatora cechy
Ustawianie identyfikatora us(cid:239)ugi
Zapytanie o identyfikator us(cid:239)ugi
Ustawianie roli
Zapytanie o rol(cid:218)
Wyczyszczenie informacji o ostatnio po(cid:239)(cid:200)czonym urz(cid:200)dzeniu
Próba nawi(cid:200)zania po(cid:239)(cid:200)czenia z ostatnio po(cid:239)(cid:200)czonym urz(cid:200)dzeniem
Próba nawi(cid:200)zania po(cid:239)(cid:200)czenia z adresem
Ustawianie kodu PIN
Zapytanie o kod PIN
Ustawianie mocy modu(cid:239)u
Zapytanie o moc modu(cid:239)u
Ustawianie trybu (cid:239)(cid:200)czenia
Zapytanie o tryb (cid:239)(cid:200)czenia
Ustawianie powiadomie(cid:241)
Zapytanie o ustawianie powiadomie(cid:241)
Projekt 2. Sterowanie diod(cid:200) LED
Projekt 3. Czujnik (cid:258)rodowiskowy
Co nowego w Bluetooth 4.1, 4.2 i 5.0?
Bluetooth 4.1
Bluetooth 4.2
Bluetooth 5.0
Bluetooth mesh
Zadanie dodatkowe
Podsumowanie
Spis tre(cid:286)ci
259
259
261
263
265
270
271
272
273
276
276
276
277
277
277
277
277
278
278
278
278
279
279
279
279
279
279
280
280
280
280
281
281
281
281
281
282
282
286
288
292
292
292
293
293
293
294
11
Poleć książkęKup książkęSpis tre(cid:286)ci
Rozdzia(cid:239) 21. Bluetooth Classic
Wprowadzenie
Radio Bluetooth
Topologia sieci
Potrzebne komponenty
Schematy po(cid:239)(cid:200)cze(cid:241)
Projekt 1. Konfigurowanie modu(cid:239)ów Bluetooth
Polecenie testowe
Reset urz(cid:200)dzenia
Zapytanie o oprogramowanie firmware
Przywracanie ustawie(cid:241) domy(cid:258)lnych
Zapytanie o adres modu(cid:239)u
Ustawianie trybu modu(cid:239)u i zapytanie o tryb modu(cid:239)u
Ustawianie parametrów UART i zapytanie o te parametry
Ustawianie trybu po(cid:239)(cid:200)czenia i zapytanie o ten tryb
Ustawianie adresu powi(cid:200)zania i zapytanie o ten adres
Projekt 2. Po(cid:239)(cid:200)czenie szeregowe, wysy(cid:239)anie danych
Projekt 3. Zdalne sterowanie joystickiem
Podsumowanie
Skorowidz
295
295
297
298
299
299
301
304
304
304
305
305
305
305
306
306
309
312
316
317
12
Poleć książkęKup książkę10
Unikanie przeszkód
i wykrywanie kolizji
Je(cid:258)li tworzysz autonomicznego robota, który musi unika(cid:202) przeszkód, zdalnie sterowany sa-
mochód, który musi wykry(cid:202), kiedy w co(cid:258) uderzy, lub nawet drukark(cid:218) 3D, która musi wie-
dzie(cid:202), kiedy g(cid:239)owice drukuj(cid:200)ce osi(cid:200)gn(cid:200) granic(cid:218) obszaru drukowania, w Twoim projekcie
musi si(cid:218) znale(cid:283)(cid:202) jaki(cid:258) system unikania przeszkód lub wykrywania kolizji. W niniejszym roz-
dziale przyjrzymy si(cid:218) kilku czujnikom, które mo(cid:285)na wykorzysta(cid:202) do wykrywania przeszkód,
oraz kilku systemom wykrywania kolizji.
W tym rozdziale zapoznasz si(cid:218) z nast(cid:218)puj(cid:200)cymi zagadnieniami:
(cid:81) Jak korzysta(cid:202) z czujnika zderzeniowego?
(cid:81) Jak korzysta(cid:202) z czujnika na podczerwie(cid:241) do unikania przeszkód?
(cid:81) Jak korzysta(cid:202) z ultrad(cid:283)wi(cid:218)kowego dalmierza?
Wprowadzenie
W tym rozdziale przyjrzymy si(cid:218) trzem czujnikom, których mo(cid:285)na u(cid:285)y(cid:202), aby doda(cid:202) do projektów
funkcjonalno(cid:258)(cid:202) unikania przeszkód i (lub) wykrywania kolizji. Omówimy nast(cid:218)puj(cid:200)ce czujniki:
(cid:81) Czujniki zderzeniowe: s(cid:239)u(cid:285)(cid:200) do wykrywania kolizji, a tak(cid:285)e jako wy(cid:239)(cid:200)czniki
kra(cid:241)cowe dla drukarek 3D.
(cid:81) Czujniki na podczerwie(cid:241) do unikania przeszkód: s(cid:239)u(cid:285)(cid:200) do unikania przeszkód
w robotyce.
(cid:81) Ultrad(cid:283)wi(cid:218)kowe wykrywacze zasi(cid:218)gu: s(cid:239)u(cid:285)(cid:200) do unikania przeszkód w robotyce.
Maj(cid:200) tak(cid:285)e wiele innych zastosowa(cid:241) komercyjnych i wojskowych.
Poleć książkęKup książkęZosta(cid:276) mistrzem Arduino
Czujnik zderzeniowy
Czujnik zderzeniowy jest prostym prze(cid:239)(cid:200)cznikiem wyposa(cid:285)onym w rodzaj wzmacniacza, dzi(cid:218)ki
któremu zyskuje du(cid:285)y obszar do wykrywania kolizji. Prosty czujnik zderzeniowy pokazano
na poni(cid:285)szym zdj(cid:218)ciu:
Czujnik zderzeniowy pokazany na zdj(cid:218)ciu wymaga prostego prze(cid:239)(cid:200)cznika mechanicznego,
takiego jak te, które s(cid:200) stosowane do ograniczników w drukarkach 3D. Taki prze(cid:239)(cid:200)cznik jest
zamocowany na ko(cid:241)cu p(cid:239)ytki drukowanej. Dzi(cid:218)ki temu mo(cid:285)na go (cid:239)atwo zamontowa(cid:202) na
podwoziu robota lub innych powierzchniach. Idea dzia(cid:239)ania czujnika zderzeniowego bazuje
na za(cid:239)o(cid:285)eniu, (cid:285)e gdy czujnik w co(cid:258) uderzy, to za(cid:239)(cid:200)cza prze(cid:239)(cid:200)cznik.
Czujnik zderzeniowy ma trzy piny, wyra(cid:283)nie oznaczone jako GND, VCC i OUT. Pin GND
nale(cid:285)y pod(cid:239)(cid:200)czy(cid:202) do szyny masy, natomiast pin VCC — do szyny zasilania p(cid:239)ytki prototypo-
wej. Pin OUT mo(cid:285)na po(cid:239)(cid:200)czy(cid:202) bezpo(cid:258)rednio z wyj(cid:258)ciem cyfrowym na Arduino za po(cid:258)red-
nictwem rezystora podci(cid:200)gaj(cid:200)cego 4,7 k(cid:525).
162
Poleć książkęKup książkęRozdzia(cid:225) 10. • Unikanie przeszkód i wykrywanie kolizji
Czujnik na podczerwie(cid:241) do unikania przeszkód sk(cid:239)ada si(cid:218) z nadajnika podczerwieni, od-
biornika podczerwieni i potencjometru reguluj(cid:200)cego odleg(cid:239)o(cid:258)(cid:202), na jakiej czujnik potrafi wy-
krywa(cid:202) przeszkody. Czujnik unikania przeszkód, który zosta(cid:239) u(cid:285)yty w projekcie zaprezento-
wanym w tym rozdziale, przedstawiono na kolejnych zdj(cid:218)ciach.
Czujnik unikania przeszkód
Emiter na czujniku na podczerwie(cid:241) do unikania przeszkód emituje promieniowanie pod-
czerwone i je(cid:258)li przeszkoda znajduje si(cid:218) przed czujnikiem, cz(cid:218)(cid:258)(cid:202) promieniowania jest odbi-
jana wstecz i odbierana przez odbiornik. Je(cid:258)li przed czujnikiem nie znajduje si(cid:218) (cid:285)aden
przedmiot, promieniowanie si(cid:218) rozproszy, a odbiornik niczego nie odbierze.
163
Poleć książkęKup książkęZosta(cid:276) mistrzem Arduino
Piny na czujniku s(cid:200) wyra(cid:283)nie oznaczone — od lewej do prawej — OUT, GND i VCC. Pin GND
jest pod(cid:239)(cid:200)czony do szyny masy, natomiast pin VCC — do linii zasilania na p(cid:239)ytce prototypo-
wej. Pin OUT jest pod(cid:239)(cid:200)czony bezpo(cid:258)rednio do cyfrowego wyj(cid:258)cia Arduino. Je(cid:285)eli sygna(cid:239) na
pinie OUT jest w stanie LOW, to oznacza, (cid:285)e wykryto obiekt. Je(cid:258)li wyj(cid:258)cie jest w stanie HIGH,
to oznacza, (cid:285)e nie wykryto (cid:285)adnego obiektu.
Regulator odleg(cid:239)o(cid:258)ci dostosuje odleg(cid:239)o(cid:258)(cid:202) wykrywan(cid:200) przez czujnik. Je(cid:258)li obracamy regulator
w kierunku przeciwnym do ruchu wskazówek zegara, zmniejszamy odleg(cid:239)o(cid:258)(cid:202), natomiast je(cid:258)li
obracamy go w kierunku zgodnym z ruchem wskazówek zegara, to j(cid:200) zwi(cid:218)kszamy. Czujnik
wykrywa obiekty znajduj(cid:200)ce si(cid:218) w odleg(cid:239)o(cid:258)ci od 2 cm do 30 cm.
Ultrad(cid:283)wi(cid:218)kowy wykrywacz zasi(cid:218)gu
Trzecim czujnikiem, którego b(cid:218)dziemy u(cid:285)ywa(cid:202), jest dalmierz ultrad(cid:283)wi(cid:218)kowy MaxSonar EZ1.
Ten czujnik jest jednym z moich ulubionych. Stosowa(cid:239)em go w prawie wszystkich autono-
micznych robotach, które budowa(cid:239)em, w celu okre(cid:258)lania odleg(cid:239)o(cid:258)ci od pobliskich obiektów.
Dalmierz ultrad(cid:283)wi(cid:218)kowy EZ1 przedstawiono na poni(cid:285)szym zdj(cid:218)ciu:
164
Poleć książkęKup książkęRozdzia(cid:225) 10. • Unikanie przeszkód i wykrywanie kolizji
Na potrzeby przyk(cid:239)adu pokazanego w tym rozdziale b(cid:218)dziemy u(cid:285)ywa(cid:202) pinów czujnika 3,6 i 7.
Pin 3 s(cid:239)u(cid:285)y jako analogowe wyj(cid:258)cie, pin 6 pod(cid:239)(cid:200)czamy do zasilania (VCC), a pin 7 — do masy.
Piny 4 i 5 obs(cid:239)uguj(cid:200) linie RX i TX komunikacji szeregowej, natomiast pin 2 to wyj(cid:258)cie szero-
ko(cid:258)ci impulsu. W projekcie zaprezentowanym w tym rozdziale nie b(cid:218)dziemy jednak u(cid:285)ywa(cid:202)
tych wyj(cid:258)(cid:202).
Dalmierz ultrad(cid:283)wi(cid:218)kowy dzia(cid:239)a poprzez wysy(cid:239)anie ultrad(cid:283)wi(cid:218)kowego impulsu w okre(cid:258)lo-
nym kierunku. Je(cid:258)li na (cid:258)cie(cid:285)ce impulsu jest obiekt, to sygna(cid:239) jest odbijany w postaci echa.
Czujnik okre(cid:258)la odleg(cid:239)o(cid:258)(cid:202) od obiektu, mierz(cid:200)c czas potrzebny do odebrania echa.
Czujnik ultrad(cid:283)wi(cid:218)kowy EZ1 potrafi wykrywa(cid:202) i mierzy(cid:202) odleg(cid:239)o(cid:258)(cid:202) od obiektów w zakresie
od 0 do 6,45 metra (254 cale). Ten czujnik praktycznie nie ma martwej strefy i wykrywa
obiekty znajduj(cid:200)ce si(cid:218) tu(cid:285) przed nim.
Potrzebne komponenty
Do wykonania projektu w tym rozdziale b(cid:218)dziemy potrzebowa(cid:202) nast(cid:218)puj(cid:200)cych komponentów:
(cid:81) jednej p(cid:239)ytki Arduino Uno lub kompatybilnej,
(cid:81) jednego czujnika zderzeniowego,
(cid:81) jednego czujnika na podczerwie(cid:241) do unikania przeszkód,
(cid:81) jednego czujnika ultrad(cid:283)wi(cid:218)kowego EZ1,
(cid:81) jednego rezystora 4,7 k(cid:525),
(cid:81) przewodów (cid:239)(cid:200)cz(cid:200)cych,
(cid:81) jednej p(cid:239)ytki prototypowej.
Schematy po(cid:239)(cid:200)cze(cid:241)
Schemat Fritzing dla tego projektu przedstawiono na rysunku na nast(cid:218)pnej stronie.
(cid:165)rodkowy czujnik na schemacie reprezentuje czujnik zderzeniowy. U(cid:285)y(cid:239)em tego elementu
ze wzgl(cid:218)du na to, (cid:285)e w programie Fritzing nie ma elementu reprezentuj(cid:200)cego czujnik zde-
rzeniowy. Prze(cid:239)(cid:200)cznik na schemacie ma taki sam uk(cid:239)ad pinów jak czujnik zderzeniowy za-
prezentowany we wcze(cid:258)niejszej cz(cid:218)(cid:258)ci tego rozdzia(cid:239)u.
Jak wida(cid:202) na schemacie, wszystkie piny masy czujników s(cid:200) po(cid:239)(cid:200)czone z szyn(cid:200) masy na
p(cid:239)ytce prototypowej, a wszystkie piny VCC czujników s(cid:200) pod(cid:239)(cid:200)czone do szyny zasilania na
p(cid:239)ytce prototypowej.
165
Poleć książkęKup książkęZosta(cid:276) mistrzem Arduino
Analogowy sygna(cid:239) wyj(cid:258)ciowy ultrad(cid:283)wi(cid:218)kowego czujnika EZ1 jest pod(cid:239)(cid:200)czony do analogo-
wego pinu A1 na p(cid:239)ytce Arduino, czujnik zderzeniowy — do cyfrowego pinu 3, a czujnik
podczerwieni — do cyfrowego pinu 2. Do czujnika zderzeniowego pod(cid:239)(cid:200)czono tak(cid:285)e rezy-
stor podci(cid:200)gaj(cid:200)cy 4,7 k(cid:525). Teraz, gdy pod(cid:239)(cid:200)czyli(cid:258)my czujniki do Arduino, przyjrzyjmy si(cid:218) ko-
dowi dla tego projektu.
Kod
Kod zaczyna si(cid:218) od trzech makr definiuj(cid:200)cych piny, do których pod(cid:239)(cid:200)czone s(cid:200) trzy czujniki.
Makra maj(cid:200) tak(cid:200) posta(cid:202):
#define COLLISION_SWITCH 4
#define IR_SENSOR 3
#define RANGE_SENSOR A1
166
Poleć książkęKup książkęRozdzia(cid:225) 10. • Unikanie przeszkód i wykrywanie kolizji
Na podstawie powy(cid:285)szych makr widzimy, (cid:285)e czujnik zderzeniowy jest pod(cid:239)(cid:200)czony do cyfro-
wego pinu 4, czujnik podczerwieni — do cyfrowego pinu 3, a dalmierz ultrad(cid:283)wi(cid:218)kowy —
do analogowego pinu 1. Teraz trzeba ustawi(cid:202) tryb dla dwóch pinów cyfrowych, z których
korzystamy, oraz zainicjowa(cid:202) monitor szeregowy. Mo(cid:285)emy to zrobi(cid:202), dodaj(cid:200)c do funkcji
setup() nast(cid:218)puj(cid:200)cy kod:
Serial.begin(9600);
pinMode(COLLISION_SWITCH, INPUT);
pinMode(11, INPUT);
Zaczynamy od zainicjowania monitora szeregowego. Nast(cid:218)pnie konfigurujemy piny czujnika
zderzeniowego i czujnika podczerwieni jako wej(cid:258)cia. Teraz musimy doda(cid:202) kod do funkcji
loop(), której zadaniem b(cid:218)dzie odczyt warto(cid:258)ci z czujników. Zacznijmy od kodu odpowie-
dzialnego za odczyt czujnika zderzeniowego:
int collisionValue = digitalRead(COLLISION_SWITCH);
if (isnan(collisionValue)) {
Serial.println( B(cid:239)(cid:200)d odczytu czujnika zderzeniowego );
return;
}
if (collisionValue == LOW) {
Serial.println( Wykryto kolizj(cid:218) );
}
Ten kod rozpoczyna si(cid:218) od u(cid:285)ycia funkcji digitalRead() w celu odczytania pinu, do którego
jest pod(cid:239)(cid:200)czony czujnik zderzeniowy. Nast(cid:218)pnie wykorzystano funkcj(cid:218) isnan() w celu spraw-
dzenia, czy funkcja digitalRead() zwróci(cid:239)a poprawn(cid:200) warto(cid:258)(cid:202). Je(cid:258)li warto(cid:258)(cid:202) zwrócona przez
funkcj(cid:218) jest niepoprawna (nie jest liczb(cid:200)), to na konsoli szeregowej wy(cid:258)wietlamy komunikat
o b(cid:239)(cid:218)dzie, a nast(cid:218)pnie wywo(cid:239)ujemy instrukcj(cid:218) return, aby wyj(cid:258)(cid:202) z p(cid:218)tli.
Je(cid:258)li warto(cid:258)(cid:202) zwrócona przez funkcj(cid:218) digitalRead() jest prawid(cid:239)owa, to sprawdzamy, czy
warto(cid:258)(cid:202) reprezentuje stan LOW. Je(cid:258)li tak, to wykryli(cid:258)my przeszkod(cid:218). Sygnalizujemy to wys(cid:239)aniem
komunikatu do konsoli szeregowej. Teraz dodajemy kod obs(cid:239)ugi czujnika podczerwieni:
int irValue = digitalRead(IR_SENSOR);
if (isnan(irValue)) {
Serial.println( Niepowodzenie odczytu czujnika podczerwieni );
return;
}
if (irValue == LOW) {
Serial.println( Wykryto promieniowanie IR );
}
Ten kod jest dok(cid:239)adnie taki sam jak kod obs(cid:239)ugi czujnika zderzeniowego, z wyj(cid:200)tkiem tego,
(cid:285)e odczytali(cid:258)my pin czujnika podczerwieni i sprawdzili(cid:258)my odczytan(cid:200) z niego warto(cid:258)(cid:202).
Dodajmy teraz kod obs(cid:239)ugi ultrad(cid:283)wi(cid:218)kowego czujnika odleg(cid:239)o(cid:258)ci:
int anVolt = analogRead(RANGE_SENSOR);
if (isnan(anVolt)) {
Serial.println( B(cid:239)(cid:200)d odczytu czujnika odleg(cid:239)o(cid:258)ci );
return;
167
Poleć książkęKup książkęZostań mistrzem Arduino
}
int mm = anVolt*5;
float inch = mm/25.4;
Serial.println(mm);
Serial.print( W milimetrach: );
Serial.println(mm);
Serial.print( W calach: );
Serial.println(inch);
Serial.println( --------------------------- );
delay(1000);
Powyższy kod rozpoczyna się od użycia funkcji analogRead() w celu odczytania pinu, do któ-
rego jest podłączony dalmierz ultradźwiękowy. W dalszej kolejności używamy funkcji isnan(),
aby sprawdzić, czy została zwrócona poprawna wartość.
Następnie obliczamy odległość od obiektu w milimetrach i w calach. Liczby użyte w obli-
czeniach pochodzą z arkusza danych czujnika. Mogą się różnić w zależności od używanego
modelu. Na końcu funkcji loop() wprowadzamy niewielkie opóźnienie, aby wstrzymać wy-
konywanie pętli.
Projekt jest teraz gotowy do uruchomienia.
Uruchamianie projektu
Po uruchomieniu tego projektu powinniśmy zobaczyć wynik podobny do pokazanego na
poniższym zrzucie ekranu:
168
Poleć książkęKup książkęRozdzia(cid:225) 10. • Unikanie przeszkód i wykrywanie kolizji
Na zrzucie ekranu mo(cid:285)na zauwa(cid:285)y(cid:202), (cid:285)e obiekt dwukrotnie wykry(cid:239) kolizj(cid:218) za pomoc(cid:200) czujni-
ka podczerwieni (co wida(cid:202) po komunikacie „Wykryto promieniowanie IR” na konsoli szere-
gowej). Mo(cid:285)na zauwa(cid:285)y(cid:202) tak(cid:285)e, (cid:285)e raz zadzia(cid:239)a(cid:239) czujnik zderzeniowy (komunikat „Wykryto
kolizj(cid:218)” na konsoli szeregowej). Widzimy na zrzucie równie(cid:285) odleg(cid:239)o(cid:258)(cid:202), jak(cid:200) zmierzy(cid:239) dalmierz
ultrad(cid:283)wi(cid:218)kowy od najbli(cid:285)szego obiektu.
Zadanie dodatkowe
Zadanie dodatkowe w tym rozdziale b(cid:218)dzie si(cid:218) ró(cid:285)ni(cid:239)o od wi(cid:218)kszo(cid:258)ci zada(cid:241). Tak naprawd(cid:218)
nie ma w nim projektu do wykonania. Zamiast tego jest zadanie wymagaj(cid:200)ce my(cid:258)lenia.
Wyzwanie polega na tym, aby zastanowi(cid:202) si(cid:218), jak mo(cid:285)na zastosowa(cid:202) wszystkie trzy czujniki
razem do stworzenia autonomicznego robota. Aby to zrobi(cid:202), zastanów si(cid:218), jak dzia(cid:239)aj(cid:200) po-
szczególne czujniki:
1. Czujnik zderzeniowy: cyfrowy czujnik, który jest wyzwalany w przypadku,
gdy na co(cid:258) wpadnie.
2. Czujnik podczerwieni: cyfrowy czujnik, który zostaje wyzwolony, gdy w pobli(cid:285)u
znajdzie si(cid:218) jaki(cid:258) obiekt.
3. Ultrad(cid:283)wi(cid:218)kowy wykrywacz zasi(cid:218)gu: analogowy czujnik u(cid:285)ywany do wykrywania
odleg(cid:239)o(cid:258)ci obiektu od czujnika.
Oto odpowiedzi:
Ultrad(cid:283)wi(cid:218)kowe czujniki odleg(cid:239)o(cid:258)ci s(cid:200) zdecydowanie najdro(cid:285)sze, wi(cid:218)c zwykle u(cid:285)ywam tylko
dwóch czujników, które montuj(cid:218) w przedniej cz(cid:218)(cid:258)ci robota. S(cid:200) one u(cid:285)ywane przez robota do
obchodzenia przeszkód. Dzi(cid:218)ki mo(cid:285)liwo(cid:258)ci okre(cid:258)lenia, jak daleko przeszkoda znajduje si(cid:218)
od robota, mo(cid:285)emy wyposa(cid:285)y(cid:202) go w logik(cid:218) potrzebn(cid:200) do podj(cid:218)cia decyzji, kiedy nale(cid:285)y
skr(cid:218)ci(cid:202), a tak(cid:285)e — w przypadku zastosowania dwóch czujników ultrad(cid:283)wi(cid:218)kowych — logik(cid:218)
pozwalaj(cid:200)c(cid:200) zdecydowa(cid:202), w któr(cid:200) stron(cid:218) skr(cid:218)ci(cid:202). Czujników ultrad(cid:283)wi(cid:218)kowych mo(cid:285)emy
równie(cid:285) u(cid:285)y(cid:202) do stworzenia mapy pomieszczenia.
Czujniki podczerwieni s(cid:200) niedrogie i mog(cid:200) by(cid:202) u(cid:285)ywane na bokach i z ty(cid:239)u robota, aby nie
wpad(cid:239) on na przeszkod(cid:218) podczas obracania lub cofania. Poniewa(cid:285) s(cid:200) du(cid:285)o ta(cid:241)sze ni(cid:285) czujniki
ultrad(cid:283)wi(cid:218)kowe, mo(cid:285)emy u(cid:285)y(cid:202) wielu czujników podczerwieni. Dzi(cid:218)ki temu mo(cid:285)emy pokry(cid:202)
pe(cid:239)ny obszar wokó(cid:239) robota. Mogliby(cid:258)my równie(cid:285) zastosowa(cid:202) czujniki podczerwieni w pod-
stawie, aby upewni(cid:202) si(cid:218), czy robot nie odje(cid:285)d(cid:285)a z pó(cid:239)ki.
Czujniki zderzeniowe s(cid:200) równie(cid:285) bardzo tanie i mog(cid:200) by(cid:202) u(cid:285)ywane dooko(cid:239)a robota do obs(cid:239)ugi
zderze(cid:241) z obiektami, których nie wykry(cid:239)y czujniki ultrad(cid:283)wi(cid:218)kowe lub czujniki na podczer-
wie(cid:241). Najwi(cid:218)kszy problem z czujnikami ultrad(cid:283)wi(cid:218)kowymi i czujnikami podczerwieni jest
zwi(cid:200)zany z wysoko(cid:258)ci(cid:200) ich umieszczenia na robocie. Je(cid:258)li s(cid:200) zamontowane zbyt wysoko, mog(cid:200)
mie(cid:202) problemy z wykrywaniem przeszkód znajduj(cid:200)cych si(cid:218) nisko nad ziemi(cid:200). Do ich wykry-
wania mo(cid:285)na u(cid:285)y(cid:202) czujników zderzeniowych.
169
Poleć książkęKup książkęZosta(cid:276) mistrzem Arduino
Podsumowanie
W tym rozdziale omówili(cid:258)my kilka czujników, które mo(cid:285)na wykorzysta(cid:202) do unikania prze-
szkód oraz wykrywania kolizji. Czujnik zderzeniowy jest czujnikiem cyfrowym, którego
mo(cid:285)na u(cid:285)y(cid:202) do okre(cid:258)lenia, kiedy urz(cid:200)dzenie w co(cid:258) uderzy. Czujnik na podczerwie(cid:241) do uni-
kania przeszkód jest równie(cid:285) czujnikiem cyfrowym — rozpoznaje on, kiedy czujnik znajduje
si(cid:218) w pewnej odleg(cid:239)o(cid:258)ci od przeszkody. Ultrad(cid:283)wi(cid:218)kowy czujnik odleg(cid:239)o(cid:258)ci jest czujnikiem
analogowym, który mo(cid:285)na wykorzysta(cid:202) do okre(cid:258)lenia odleg(cid:239)o(cid:258)ci od przeszkody.
W nast(cid:218)pnym rozdziale przyjrzymy si(cid:218) ró(cid:285)nym typom diod LED i zobaczymy, jak mo(cid:285)emy
je wykorzysta(cid:202) w naszych projektach.
170
Poleć książkęKup książkęSkorowidz
po(cid:239)(cid:200)czenie szeregowe, 309
radio, 297
schematy po(cid:239)(cid:200)cze(cid:241), 299
topologia sieci, 298
wysy(cid:239)anie danych, 309
zdalne sterowanie
joystickiem, 312
Bluetooth LE, 259
czujnik (cid:258)rodowiskowy, 288
komponenty, 271
modu(cid:239) HM-10, 270
po(cid:239)(cid:200)czenia, 264
profile, 265
schematy po(cid:239)(cid:200)cze(cid:241), 272
sterowanie diod(cid:200) LED, 286
topologie sieciowe, 263
transmisja szeregowa, 273
Bluetooth mesh, 293
brz(cid:218)czyk piezoelektryczny, 181
budowa prototypu, 76
C
cykl roboczy, 29
czujnik DHT-11, 207
czujnik PIR, 141
czujnik ruchu, 141
kod, 146
komponenty, 144
schematy po(cid:239)(cid:200)cze(cid:241), 144
uruchamianie projektu, 147
czujnik (cid:258)rodowiskowy, 149, 288
kod, 152
komponenty, 152
schematy po(cid:239)(cid:200)cze(cid:241), 152
uruchamianie projektu, 159
czujnik unikania przeszkód,
163
czujnik zbli(cid:285)ania si(cid:218), 257
czujnik zderzeniowy, 162
D
diagramy Fritzing, 59
dioda
LED, 46
LED RGB, 171, 175
dodawanie zak(cid:239)adek, 130
d(cid:283)wi(cid:218)k, 181
kod, 184
komponenty, 183
odtwarzanie dzwonka, 187
pliki RTTTL, 187
schematy po(cid:239)(cid:200)cze(cid:241), 183
E
EDR, Enhanced Data Rate,
edytor, 87
elementy elektroniczne, 43
energia elektryczna, 48
EOT, End Of Transmission,
296
309
A
analogowe piny wej(cid:258)ciowe, 29
aplikacja echa, 99
Arduino, 22
IDE, 82
Mega 2560, 32
Micro, 31
Nano, 33
Web Editor, 86
ATmega328, 24
B
bezlutowa p(cid:239)ytka prototypowa,
69
biblioteka
Arduino servo, 221
NeoPixel Adafruit, 176
String, 137
biblioteki Arduino, 92
bloki
budulcowe projektu, 75
konstrukcyjne, 38
Bluetooth 2.0 + EDR, 296
Bluetooth 2.1 + EDR, 296
Bluetooth 3.0 + HS, 297
Bluetooth 4.1, 292
Bluetooth 4.2, 292
Bluetooth 5.0, 293
Bluetooth Classic, 295
komponenty, 299
konfigurowanie modu(cid:239)ów,
301
Poleć książkęKup książkęSkorowidz
F
format RTTTL, 187
Fritzing, 58
funkcja, 117
analogRead(), 126
analogWrite(), 125
digitalRead(), 124
digitalWrite(), 123
drawPixel(), 196
loop(), 310, 314
pinMode(), 122
setRotation(), 198
setTextSize(), 197
tone(), 184
funkcje arytmetyczne, 111
G
gniazdo zasilania pr(cid:200)dem
sta(cid:239)ym (DC), 23
H
historia Arduino, 20
I
iCSP dla ATmega328, 23
IDE, 83
IDE, Integrated Development
Environments, 81
instrukcja if, 114
inteligentny termostat, 257
K
kable Dupont, 73
kody kolorów rezystorów, 52
komentarze, 104
kondensator, 46
konfigurowanie Arduino
w (cid:258)rodowisku Arduino Web
Editor, 88
w (cid:258)rodowisku IDE, 84
konfigurowanie modu(cid:239)ów
Bluetooth, 301
konwerter analogowo-cyfrowy,
ADC, 29
318
L
LAP, Lower Address, 298
licencja GNU LGPL, 22
Lilypad, 32
M
miejsce do pracy, 68
moc, 51
monitor szeregowy, 95
MOVI, 203
multimetr, 40
N
NAP, Non-Significant Address,
298
napi(cid:218)cie, 49
nawiasy klamrowe, 104
NeoPixel shield, 176
O
obracanie tekstu, 198
obszar
kodowania, 84, 87
statusowy, 84, 87
obwody równoleg(cid:239)e, 61
obwody szeregowe, 61
napi(cid:218)cie, 63
pr(cid:200)d, 63
rezystancja, 63
napi(cid:218)cie, 62
pr(cid:200)d, 62
rezystancja, 62
obwód, 55
odczyt pinów
analogowych, 126
cyfrowych, 124
OOP, Object-oriented
programming, 134
operatory
logiczne, 113
porównania, 112
oporno(cid:258)(cid:202), 50
OUID, Organizationally
Unique Identifier, 298
P
pasek
menu, 83, 87
polece(cid:241), 83, 87
pasywne czujniki
podczerwieni, 141
p(cid:218)tla
do-while, 117
for, 116
while, 116
pierwszy
prototyp, 76
szkic, 98
pilot
na podczerwie(cid:241), 236
radiowy, 243
piny, 28
analogowe, 29
cyfrowe, 29
PWM, 29
SPI, 30
transmisji szeregowej, 30
VIN/GND, 24
zasilania, 30
pliki RTTTL, 187
p(cid:239)ytka
Arduino UNO R3, 22
Arduino shield, 27
NeoPixel, 172
shield MOVI, 205
polecenie testowe, 276, 304
po(cid:239)(cid:200)czenie szeregowe,
wysy(cid:239)anie danych, 309
port USB, 23
potencjometr, 43
prawo Ohma, 51
pr(cid:200)d, 49
sta(cid:239)y (DC), 37
zmienny (AC), 37
profil
atrybutów (GATT), 267
dost(cid:218)pu (GAP), 265
program Fritzing, 58
programowanie, 103, 121
obiektowe, OOP, 134
prototypowanie, 73
próba nawi(cid:200)zania po(cid:239)(cid:200)czenia
z adresem, 280
z urz(cid:200)dzeniem, 280
Poleć książkęKup książkęprzeka(cid:283)niki, 227
etykieta NC, 228
etykieta NO, 228
kod, 232
komponenty, 230
schematy po(cid:239)(cid:200)cze(cid:241), 231
prze(cid:239)(cid:200)czniki, 44
przycisk RESET, 23
przywracanie ustawie(cid:241)
domy(cid:258)lnych, 305
fabrycznych, 276
PWM, Pulse-Width
Modulation, 29, 125
R
radio Bluetooth, 297
regulator napi(cid:218)cia, 23
reset urz(cid:200)dzenia, 304
restart modu(cid:239)u, 277
rezystor, 43
robot, 245
informacje zwrotne, 255
obrotowy, 256
podwozie, 246
ruch, 246
silnik, 249
unikanie przeszkód, 252
wykrywanie kolizji, 252
zasilanie, 249
zdalne sterowanie, 255
rozpoznawanie mowy, 203
kod, 207
komponenty, 206
schematy po(cid:239)(cid:200)cze(cid:241), 206
uruchamianie projektu, 209
rysowanie linii, 196
rzutowanie, 113
S
schematy
obwodów, 55
symboliczne, 60
serwosilniki, 221
kod, 224
komponenty, 223
schematy po(cid:239)(cid:200)cze(cid:241), 223
silnik pr(cid:200)du sta(cid:239)ego, 211
kod, 217
komponenty, 215
schematy po(cid:239)(cid:200)cze(cid:241), 215
uruchamianie projektu, 218
silniki, 249
SOH, Start Of Heading, 309
spadek napi(cid:218)cia, 64
SPI, Serial Peripheral
Interface, 30
SSP, Simple Secure Pairing,
296
stacja pogodowa, 257
sta(cid:239)e, 110
sterowanie diod(cid:200) LED, 286
sterownik silnika L298, 213
struktury, 127
synteza g(cid:239)osu, 203
szkic, 81
(cid:165)
(cid:258)redniki, 104
(cid:258)wiat(cid:239)o, 171
dioda LED RGB, 171, 175
kod, 175
komponenty, 173
p(cid:239)ytka NeoPixel, 172
schematy po(cid:239)(cid:200)cze(cid:241), 174
uruchamianie projektu, 179
T
tablice, 108
znaków, 110
technologia
EDR, 296
SSP, 296
termistor, 149
topologie sieciowe, 263, 289
transmisja szeregowa, 273
tranzystor, 45
tryb pinu cyfrowego, 122
tworzenie
robota, 245
schematu, 76
typ danych
boolean, 106
byte, 106
char, 107
double, 107
float, 107
integer, 106
long, 107
Skorowidz
U
UAP, Upper Address Part, 298
uk(cid:239)ad
ADC, 29
L293D, 214
scalony, 47
steruj(cid:200)cy, 39
ultrad(cid:283)wi(cid:218)kowy wykrywacz
zasi(cid:218)gu, 164
unie, 129
unikanie przeszkód, 161, 252
czujnik unikania przeszkód,
163
czujnik zderzeniowy, 162
kod, 166
komponenty, 165
schematy po(cid:239)(cid:200)cze(cid:241), 165
ultrad(cid:283)wi(cid:218)kowy wykrywacz
zasi(cid:218)gu, 164
uruchamianie projektu, 168
urz(cid:200)dzenie na podczerwie(cid:241),
243
ustawianie
adresu powi(cid:200)zania, 306
identyfikatora cechy, 279
identyfikatora us(cid:239)ugi, 279
interwa(cid:239)u rozg(cid:239)aszania, 277
kodu PIN, 280
mocy modu(cid:239)u, 281
nazwy, 277
parametrów UART, 305
powiadomie(cid:241), 282
roli, 279
szybko(cid:258)ci transmisji, 278
trybu modu(cid:239)u, 305
trybu po(cid:239)(cid:200)czenia, 281, 306
typu rozg(cid:239)aszania, 278
W
wej(cid:258)cie, 39
zasilania DC, 25
wyczyszczenie informacji, 280
wyj(cid:258)cie, 39
PWM, 23
wykrywanie kolizji, 252, Patrz
tak(cid:285)e unikanie przeszkód
wy(cid:258)wietlacz LCD, 191
figura wype(cid:239)niona, 199
kod, 195
319
Poleć książkęKup książkęzapytanie
282
276
o adres MAC, 277
o adres modu(cid:239)u, 305
o adres powi(cid:200)zania, 306
o identyfikator us(cid:239)ugi, 279
o interwa(cid:239) rozg(cid:239)aszania, 278
o kod PIN, 281
o moc modu(cid:239)u, 281
o nazw(cid:218), 277
o oprogramowanie
firmware, 304
o parametry UART, 305
o rol(cid:218), 279
o szybko(cid:258)(cid:202) transmisji, 279
o tryb modu(cid:239)u, 305
o tryb po(cid:239)(cid:200)czenia, 281, 306
o typ rozg(cid:239)aszania, 278
o ustawianie powiadomie(cid:241),
o wersj(cid:218) oprogramowania,
zasilanie, 24, 38
silników, 251
zdalne sterowanie, 235
joystickiem, 312
kod, 239
komponenty, 238
robotem, 255
schematy po(cid:239)(cid:200)cze(cid:241), 239
zewn(cid:218)trzny reset, 24
zintegrowane (cid:258)rodowisko
programistyczne, IDE, 81
z(cid:239)(cid:200)cza
analogowe, 24
cyfrowe, 23
ICSP dla USB, 23
USB, 26
zmienne, 105
Skorowidz
wy(cid:258)wietlacz LCD
komponenty, 193
obracanie tekstu, 198
podstawowe kszta(cid:239)ty, 198
prostok(cid:200)t, 200
rysowanie linii, 196
schematy po(cid:239)(cid:200)cze(cid:241), 193
wype(cid:239)niony prostok(cid:200)t, 200
wype(cid:239)niony zaokr(cid:200)glony
prostok(cid:200)t, 201
wy(cid:258)wietlanie tekstu, 196
zaokr(cid:200)glony prostok(cid:200)t, 201
Z
zak(cid:239)adki, 130, 133
zamienniki p(cid:239)ytek Arduino, 33
zapalanie diody LED, 64
zapis pinów
analogowych, 125
cyfrowych, 123
320
Poleć książkęKup książkę
Pobierz darmowy fragment (pdf)