Wprowadzenie do Arduino, wydanie 2Polish edition copyright ? 2022 APN PROMISE SA
Authorized Polish translation of English edition of Getting Started with Arduino, 4th edition, ISBN: 978-1-680-45693-6Copyright ? 2022 Massimo Banzi and Michael Shiloh. All rights reserved.
This translation is published and sold by permission of O'Reilly Media, Inc., which owns or controls all rights to sell the same.
APN PROMISE SA, ul. Domaniewska 44a, 02-672 Warszawatel. +48 22 35 51 600e-mail: wydawnictwo@promise.pl
Wszystkie prawa zastrzeżone. Żadna część niniejszej książki nie może być powielana ani rozpowszechniana w jakiejkolwiek formie i w jakikolwiek sposób (elektroniczny, mechaniczny), włącznie z fotokopiowaniem, nagrywaniem na taśmy lub przy użyciu innych systemów bez pisemnej zgody wydawcy.
Wszystkie wymienione w książce nazwy mogą być znakami towarowymi lub zarejestrowanymi znakami towarowymi ich odnośnych właścicieli i zostały użyte tylko w celach identyfikacyjnych.
Ważna informacja dla Czytelników: Czytelnicy sami odpowiadają za swoje bezpieczeństwo, w tym właściwe użycie sprzętu i elementów ochronnych, oraz decydują, czy mają odpowiednie umiejętności i doświadczenie. Elektryczność i elementy używane w tych projektach są niebezpieczne, o ile nie są właściwie używane i bez właściwych środków ostrożności. Niektóre ilustracje nie przedstawiają elementów zabezpieczających ani stosownych przyrządów, aby bardziej czytelnie przedstawić kroki projektu. Te projekty nie są przeznaczone dla dzieci. Instrukcji i sugestii z książki Wprowadzenie do Arduino należy używać na własne ryzyko. Wydawnictwo O'Reilly Media, Inc. i autor nie ponoszą żadnej odpowiedzialności za żadne skutki, w tym zniszczenia, uszkodzenia zdrowia i koszty. Do Czytelników należy odpowiedzialność za zgodność ich działalności z odpowiednimi prawami, w tym prawami autorskimi.
APN PROMISE SA dołożyła wszelkich starań, aby zapewnić najwyższą jakość tej publikacji. Jednakże nikomu nie udziela się rękojmi ani gwarancji. APN PROMISE SA nie jest w żadnym wypadku odpowiedzialna za jakiekolwiek szkody będące następstwem korzystania z informacji zawartych w niniejszej publikacji, nawet jeśli APN PROMISE została powiadomiona o możliwości wystąpienia szkód.
ISBN: 978-83-7541-492-9 (druk), 978-83-7541-493-6 (ebook)
Ilustracje: Judy Aime' Castro
Przekład: Maria Chaniewska, Marek WłodarzKorekta: Ewa SwędrowskaSkład i łamanie: MAWart Marek Włodarz
Spis treści
1 Wstęp
Grupa docelowa
Czym jest projektowanie interaktywne?
Czym jest programowanie urządzeń?
2 Droga Arduino
Prototypowanie
Majstrowanie
Uwielbiamy śmieci!
Rozpracowywanie zabawek
Współpraca
3 Platforma Arduino
Sprzęt Arduino
Oprogramowanie (IDE)
Instalacja Arduino na komputerze
Instalowanie IDE: MacOS
Instalowanie IDE: Windows
Instalowanie IDE: Linux
4 Prawdziwe wprowadzenie do Arduino
Anatomia urządzeń interaktywnych
Czujniki i elementy wykonawcze
Migotanie diody LED
Podaj mi parmezan
Arduino nie dla dezerterów
Prawdziwi majsterkowicze piszą komentarze
Kod krok po kroku
Co będziemy budować
Co to jest elektryczność?
Używanie przycisku do sterowania diodą LED
Jak to działa?
Jeden obwód, tysiące zachowań
5 Zaawansowane wejście i wyjście
Próbowanie innych czujników dwustanowych
Sterowanie światłem przy użyciu modulacji szerokości impulsu
Używanie czujnika światła zamiast przycisku
Wejście analogowe
Próbowanie innych czujników analogowych
Komunikacja szeregowa
Sterowanie większymi obciążeniami (silnikami, lampami itp.)
Czujniki złożone
Alfabet Arduino
6 Budowanie lampy Arduino
Planowanie
Kodowanie
Składanie obwodu
Sposób montażu
7 Arduino Cloud
Arduino Cloud IDE
Project Hub
IoT Cloud
Funkcje Arduino IoT Cloud
Plany Arduino Cloud
8 Automatyczny system nawadniania ogrodu
Planowanie
Testowanie zegara czasu rzeczywistego (RTC)
Testowanie przekaźników
Schematy elektroniczne
Testowanie czujnika temperatury i wilgotności
Kodowanie
Składanie obwodu
Proto Shield
Lutowanie projektu na nakładce Proto Shield
Testowanie zmontowanej nakładki Proto Shield
Montowanie naszego projektu w obudowie
Testowanie ukończonego systemu
Rzeczy do wypróbowania samodzielnie
Lista zakupów projektu nawadniania
9 Rodzina Arduino ARM
Na czym polega różnica pomiędzy AVR i ARM?
Jak dużą różnicę robią 32 bity?
Czym różni się mikrokontroler od mikroprocesora?
Co jest lepsze: AVR czy ARM?
Przedstawiamy płytki Arduino oparte na ARM
Funkcje specjalne
Napięcie robocze
Sterowanie prądem
Konwerter cyfrowo-analogowy
Host USB
Format płytek Nano i MKR
10 Komunikowanie się z Internetem: Przybij piątkę!
"Piątka" połączona z Internetem
Przedstawiamy MQTT: protokół Message Queueing Telemetry Transfer
Sprzęt
Broker MQTT w Shiftr.io
Kod Arduino
Strona Web
11 Rozwiązywanie problemów
Zrozumienie
Upraszczanie i dzielenie
Wykluczanie i pewność
Testowanie płytki
Testowanie obwodu na płytce stykowej
Izolowanie problemów
Problemy z instalowaniem sterowników w Windows
Identyfikowanie portu COM w Windows
Problemy ze środowiskiem IDE w Windows
Inne techniki debugowania
Korzystanie z pomocy online
A Płytka stykowa (prototypowa)
B Odczytywanie wartości oporników i kondensatorów
C Vademecum Arduino
Struktura
Symbole specjalne
Stałe
Zmienne
Zasięg zmiennej
Struktury sterujące
Arytmetyka i formuły
Operatory porównania
Operatory logiczne
Operatory złożone
Funkcje wejścia i wyjścia
Funkcje czasu
Funkcje matematyczne
Funkcje liczb losowych
Komunikacja szeregowa
D Czytanie schematów
E Rodzina Arduino
Klony Arduino, konstrukcje pochodne, kompatybilne i podróbki
Przedmowa
Massimo i ja z radością przystąpiliśmy do wprowadzania licznych zmian pojawiających się w gwałtownie rozwijającym się świecie prototypowania elektronicznego do nowego wydania Wprowadzenia do Arduino.
Wydanie to zawiera szereg nowych rozdziałów. Rozdział 7 przedstawia chmurę Arduino, w tym IoT Cloud oraz Project Hub. Rozdział 8 to rozbudowany i praktyczny przykład systemu nawadniania ogrodu. Rozdział 9 przedstawia nową rodzinę płytek Arduino z 32-bitowym procesorem ARM, a rozdział 10 to nowy projekt wykorzystujacy sieć, oparty na Arduino ARM: Internet Fistbump.
Zostały wprowadzone również inne uaktualnienia:
Wydanie to uwzględnia IDE w wersji 2.0.
Instalowanie IDE jest dużo łatwiejsze i dołączone zostały instrukcje dla systemu Linux.
Dodatek zawiera obecnie przegląd wszystkich rodzin Arduino, płytek z ich wymiarami oraz przewodnik ułatwiający wybór.
Dokonaliśmy pewnych zmian w nomenklaturze:Nazwy sygnałów SPI są obecnie zgodne z rezolucją Open Source Hardware dostępną pod adresem oshwa.org/a-resolution-to-redefinespi-signal-names/Rodzaje łączówek to obecnie albo pin, albo gniazdko.
W kolejnych wydaniach ilustracje się zmieniały i dodawanych było wiele nowych. Autorzy uznają wkład Elisy Canducci, która sporządziła ilustracje do pierwszego i drugiego wydania oraz Judy Aime' Castro, która zmodyfikowała niektóre istniejące ilustracje i dodała wiele nowych w wydaniu trzecim i bieżącym.
- Michael
Wprowadzenie
Parę lat temu stanąłem przed bardzo interesującym wyzwaniem: miałem nauczyć projektantów technicznych absolutnego minimum elektroniki, aby mogli budować interaktywne prototypy obiektów, które projektują.
Na początku zacząłem, kierując się podświadomym instynktem, uczyć elektroniki w taki sam sposób, w jaki byłem jej uczony w szkole. Później stwierdziłem, że nie przynosi to zamierzonych efektów, i zacząłem przypominać sobie, jak piekielnie znudzony siedziałem w klasie, zalewany całą tą teorią bez wzmianki o jakimkolwiek praktycznym zastosowaniu.
W rzeczywistości, gdy byłem w szkole, znałem już elektronikę w bardzo empiryczny sposób: niewiele teorii, ale mnóstwo przydatnych doświadczeń.
Zacząłem myśleć o tym, jak naprawdę uczyłem się elektroniki:
Rozkładałem na części dowolne urządzenia elektroniczne, które wpadały mi w ręce.
Powoli poznawałem wszystkie elementy.
Zaczynałem z nimi majstrować, zmieniając pewne wewnętrzne połączenia i patrząc, co dzieje się z urządzeniem: zwykle coś między wybuchem a smugą dymu.
Zaczynałem budować pewne zestawy z czasopism elektronicznych.
Łączyłem rozpracowane urządzenia oraz zestawy i inne obwody, znalezione w czasopismach, zmieniając ich zastosowanie, aby powstawały nowe rzeczy.
Jako małe dziecko, zawsze byłem zafascynowany odkrywaniem, jak rzeczy działają. Dlatego miałem zwyczaj rozbierania ich na części. Ta pasja rozwijała się, a celem stawały się różne nieużywane sprzęty domowe, które następnie rozkładałem na najmniejsze kawałki. W końcu ludzie zaczęli przynosić mi wszelkiego rodzaju urządzenia do rozmontowania. Moim największym projektem w tym czasie były zmywarka i wczesny komputer, który pochodził z biura ubezpieczeniowego. Ten komputer miał dużą drukarkę, karty elektroniczne, magnetyczne czytniki kart i wiele innych rzeczy, które oczywiście były bardzo interesujące, a ich całkowite rozłożenie było wspaniałym wyzwaniem.
Po rozmontowaniu wielu urządzeń znałem elementy elektroniczne i z grubsza wiedziałem, do czego służą. Na dobitek mój dom był pełen starych czasopism elektronicznych, które mój ojciec kupił zapewne na początku lat siedemdziesiątych. Spędziłem wiele godzin, czytając te artykuły i przyglądając się schematom obwodów - bez większego zrozumienia.
Czytanie w kółko artykułów wraz ze wzrostem wiedzy zdobywanej dzięki rozkładaniu sprzętu na części tworzyły powoli efekt spirali.
Wspaniały przełom nastąpił w pewne Boże Narodzenie, gdy mój ojciec dał mi zestaw pozwalający nastolatkom uczyć się elektroniki. Każdy element był umieszczony w plastikowej kostce, która magnetycznie łączyła się z innymi kostkami, ustanawiając połączenie. Na wierzchu był umieszczony symbol elektroniczny. Nie zdawałem sobie wtedy sprawy, że ta zabawka, która powstała w latach sześćdziesiątych, była także charakterystyczna dla niemieckiego stylu projektowania, ponieważ jej projektantem był Dieter Rams.
Dzięki temu nowemu narzędziu mogłem szybko składać obwody i wypróbowywać ich działanie. Cykl prototypowania stawał się coraz krótszy.
Następnie budowałem radia, wzmacniacze, obwody wydające straszne hałasy i przyjemne dźwięki, czujniki deszczu i małe roboty.
Szukałem długo słowa, które podsumowuje sposób pracy bez specyficznego planu, zaczynający się od jednego pomysłu, a kończący się na całkowicie nieoczekiwanym wyniku. W końcu nazwałem to "majstrowaniem" (ang. tinkering). Odkryłem, że to słowo jest używane w wielu innych dziedzinach do opisania sposobu działania i określenia osób, które wytyczają drogę rozwoju. Na przykład pokolenie francuskich reżyserów, którzy powołali do życia "Nową falę", było nazywane mianem "tinkerers". Najlepsza definicja majstrowania, jaką kiedykolwiek spotkałem, pochodzi z wystawy w Exploratorium w San Francisco*:
Majstrowanie polega na próbowaniu czegoś, gdy nie do końca wiemy, co chcemy osiągnąć. Kierunek wskazuje humor, wyobraźnia i zaciekawienie. Podczas majstrowania nie ma żadnych instrukcji - ale nie ma też błędów ani dobrych czy złych sposobów wykonania. Jest to rozpoznawanie, jak rzeczy działają i przerabianie ich. Przyrządy, maszyny, niedopasowane obiekty działające w harmonii - to istota majstrowania. Majstrowanie to zasadniczo proces łączący zabawę i dociekanie.
Dzięki moim wczesnym eksperymentom wiedziałem, ile doświadczenia wystarcza do zbudowania obwodu działającego zgodnie z oczekiwaniami, gdy zaczynamy od podstawowych elementów.
Inny przełom przyszedł latem 1982 r., kiedy przyjechałem do Londynu z moimi rodzicami i spędziłem wiele czasu zwiedzając Muzeum Nauki. Właśnie otworzyli wtedy nowy dział komputerowy, gdzie dzięki seriom ćwiczeń z instruktorem nauczyłem się podstaw matematyki binarnej i programowania.
Wtedy odkryłem, że w wielu zastosowaniach inżynierowie nie muszą już budować obwodów z podstawowych elementów, ale zamiast tego mogą implementować znaczną część logiki przy użyciu mikroprocesorów. Oprogramowanie zastąpiło wiele godzin projektowania elektronicznego i pozwoliło skrócić cykl majstrowania.
Gdy wróciłem, zacząłem oszczędzać pieniądze, ponieważ chciałem kupić komputer i nauczyć się programować.
Moim pierwszym i najważniejszym projektem po tym wydarzeniu było użycie mojego fabrycznie nowego komputera ZX81 do sterowania spawarką. Wiem, że nie brzmi to jak bardzo ekscytujący projekt, ale był potrzebny i stanowił dla mnie wspaniałe wyzwanie, ponieważ właśnie nauczyłem się programować. W tym momencie stało się jasne, że pisanie wierszy kodu zabiera mniej czasu niż modyfikowanie złożonych obwodów.
Wiele parę lat późnej zacząłem myśleć, że to doświadczenie pozwala mi uczyć osoby, które niewiele pamiętają z lekcji matematyki, i zarazić je tym samym entuzjazmem i zdolnością do majstrowania, które miałem w młodości i zachowałem do tej pory.
-Massimo
Podziękowania od Massimo Banzi
Książkę tę dedykuję Ombretcie.
Podziękowania Michaela Shiloha
Dedykuję tę książkę memu bratu i rodzicom.
Nade wszystko chciałbym podziękować Massimo za zaproszenie mnie do pracy nad kolejnym wydaniem tej książki i za wprowadzenie mnie do społeczności Arduino. Uczestnictwo w tym projekcie to prawdziwy zaszczyt i radość.
Dziękuję Brianowi Jepsonowi za wskazówki, zachęty i wsparcie. Frank Teng zadbał, abym nie zbaczał z wytyczonego planu. Kim Cofer i Nicole Shelby wykonały świetną robotę przy redagowaniu tekstu i przygotowywaniu go do produkcji.
Dziękuję mojej córce Yasmine za tak dobre myśli, za nieustające wsparcie i dodawanie odwagi i za to, że nadal uważa za fajne to, że jestem jej ojcem. Niewiele bym zdziałał przy tej książce bez jej pomocy.
Jako ostatnią, ale zdecydowanie nie najmniej ważną muszę wymienić Judy Aime' Castro. Dziękuję za niekończące się godziny spędzone nad przekształcaniem moich niezdarnych szkiców w piękne ilustracje, za dyskusje o różnych aspektach książki i za nieograniczoną cierpliwość. Bez twojej pomocy to na pewno nie mogło się udać.
Konwencje zastosowane w tej książce
W tej książce użyliśmy następujących konwencji typograficznych:
Kursywa. Wskazuje nowe terminy, adresy URL i e-mail oraz nazwy i rozszerzenia plików.
Czcionka stałopozycyjna. Jest używana do listingów programów, a także wewnątrz akapitów, aby odwołać się do elementów programu, takich jak nazwy zmiennych lub funkcji, bazy danych, typy danych, zmienne środowiskowe, instrukcje i słowa kluczowe.
Stała szerokość i pogrubienie. Pokazuje polecenia lub inny tekst, który powinien być wpisany przez użytkownika dokładnie tak.
Stała szerokość i kursywa. Pokazuje tekst, który powinien być zastąpiony przez wartości podane przez użytkownika lub wynikające z kontekstu.
Ta ikona oznacza ogólną uwagę.
Ta ikona oznacza ostrzeżenie lub przestrogę.
Używanie przykładów kodu
Ta książka ma pomóc programistom w osiąganiu własnych celów. Zasadniczo jeśli książka zawiera przykładowy kod, można użyć go we własnych programach oraz dokumentacji. Nie ma potrzeby kontaktowania się w celu uzyskania zezwolenia, o ile nie planuje się reprodukcji znaczącej części kodu. Na przykład, napisanie programu wykorzystującego kilka fragmentów kodu z książki nie wymaga zezwolenia. Natomiast sprzedaż lub dystrybucja przykładów z książek wydawnictwa O'Reilly wymaga zezwolenia. Udzielenie odpowiedzi poprzez zacytowanie tej książki i przykładowego kodu nie wymaga zezwolenia. Umieszczenie znaczącej części przykładów kodu z tej książki w dokumentacji własnego produktu wymaga zezwolenia.
Będziemy wdzięczni za wskazanie źródła, choć nie jest to wymagane. Odwołanie do źródła zwykle zawiera nazwisko autora, tytuł, wydawnictwo oraz numer ISBN. Na przykład: "Getting Started With Arduino, Fourth Edition, by Massimo Banzi and Michael Shiloh (Make Community LLC). Copyright 2022 Massimo Banzi and Michael Shiloh, 978-1-6804-5693-6".
W przypadku wątpliwości, czy planowane zastosowanie przykładowego kodu wykracza poza przedstawione powyżej zezwolenia, prosimy o kontakt za pośrednictwem adresu e-mail: books@make.co.
* www.exploratorium.edu/tinkering