Massimo Banzi
Michael Shiloh

Wprowadzenie do Arduino

Wydanie 2

Przekład: Maria Chaniewska
Marek Włodarz

APN Promise 2022

Wprowadzenie do Arduino, wydanie 2
Polish edition copyright © 2022 APN PROMISE SA

Authorized Polish translation of English edition of Getting Started with Arduino, 4th edition, ISBN: 978-1-680-45693-6
Copyright © 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 Warszawa
tel. +48 22 35 51 600
e-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łodarz
Korekta: Ewa Swędrowska
Skł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

1 Wstęp

Arduino to platforma do budowania interaktywnych fizycznych urządzeń o otwartych źródłach (open source), działających samodzielnie lub połączonych z Internetem.

Arduino zostało początkowo zaprojektowane dla artystów, projektantów i inne osoby, które chciały włączyć przetwarzanie fizyczne do swoich projektów, bez konieczności wcześniejszego ukończenia studiów inżynierskich. Później stało się platformą dla literalnie milionów ludzi, którzy pragnęli być innowacyjni przy użyciu technologii cyfrowych.

Sprzęt i oprogramowanie Arduino jest open source (o otwartych źródłach). Filozofia open source sprzyja wychowywaniu społeczności w ogólnym dzieleniu się wiedzą. Jest to wspaniała rzecz dla początkujących, gdyż pomoc często jest dostępna w pobliżu (w sensie geograficznym), a zawsze online, na wielu różnych poziomach umiejętności i w oszałamiającej gamie tematów. Przedstawiane przykładowe projekty nie są po prostu zdjęciami ukończonej pracy, ale zawierają instrukcje zbudowania ich samodzielnie albo użycia jako punktu wyjścia dla własnego, pochodnego lub powiązanego projektu.

Oprogramowanie Arduino, znane jako zintegrowane środowisko programowania (Integrated Development Environment – IDE), jest darmowe. Można je pobrać ze strony www.arduino.cc. Arduino IDE opiera się na języku Processing (http://www.processing.org/), który został opracowany w celu ułatwienia artystom tworzenia sztuki komputerowej bez konieczności zostania najpierw inżynierem oprogramowania. Arduino IDE może działać w systemach Windows, Mac i Linux.

Płytka Arduino UNO jest niedroga (około 23 dolarów) i dość tolerancyjna, jeśli chodzi o typowe błędy nowicjuszy. Jeśli komuś jednak uda się jakoś zniszczyć główny komponent Arduino Uno, można go wymienić za cenę 4 dolarów.

Projekt Arduino został opracowany w środowisku szkolnym i jest bardzo popularnym narzędziem edukacyjnym. Ta sama filozofia open source, która stworzyła społeczność ogólnie dzielącą się informacjami, odpowiedziami i projektami, udostępnia też metody kształcenia, programy nauczania i inne informacje.

Jako że sprzęt i oprogramowanie Arduino są open source, można pobrać projekt sprzętowy Arduino i zbudować je samodzielnie, aby wykorzystać jako punkt wyjścia dla własnego projektu opartego (lub wykorzystującego) Arduino w swoich ramach, albo po prostu po to, by zrozumieć, jak działa Arduino. To samo można zrobić z oprogramowaniem.

Arduino jest zaprojektowane z myślą o łatwości użycia, a niniejsza książka ma za zadanie pomóc początkującym bez wcześniejszego doświadczenia w rozpoczęciu korzystania z Arduino.

Niniejsza książka ma za zadanie pomóc początkującym poznać korzyści, jakie odniosą z nauki korzystania z platformy Arduino i działania zgodnie z jej koncepcją.

Grupa docelowa

Ta książka została napisana dla „pierwotnych” użytkowników Arduino: projektantów i artystów. Dlatego sposób wytłumaczenia pewnych rzeczy może doprowadzić niektórych inżynierów do szału. Faktycznie jeden z nich nazwał wstępne rozdziały mojego pierwszego brudnopisu „banałami”. To oddaje istotę rzeczy. Zmierzmy się z tym: większość inżynierów nie potrafi wyjaśnić, co robią, innym inżynierom, a co dopiero zwykłym ludziom. Dlatego teraz zagłębimy się w banały.

Książka ta nie ma być podręcznikiem do nauki elektroniki lub programowania, ale w trakcie lektury, niejako „po drodze”, nauczysz się co nieco z obu tych dziedzin.

Gdy Arduino stawało się popularne, zorientowałem się, że eksperymentatorzy, hobbyści i hakerzy wszelakiej maści zaczęli używać go do tworzenia zarówno cudownych, jak i szalonych rzeczy. Pojąłem, że wszyscy jesteśmy artystami i projektantami na swoich własnych zasadach, zatem ta książka jest również dla was.

—Massimo

Arduino powstało na podstawie pracy dyplomowej Hernanda Barragana na platformie Wiring w szkole IDII w Ivrea. Pracą oprócz mnie kierował Casey Reas.

Czym jest projektowanie interaktywne?

Arduino powstało, aby można było nauczać projektowania interaktywnego, dyscypliny projektowej, która umieszcza prototypowanie w centrum swojej metodologii. Istnieje wiele definicji projektowania interaktywnego, ale najbardziej podoba mi się następująca:

Projektowanie interaktywne to projektowanie dowolnych doświadczeń interaktywnych.

W dzisiejszym świecie projektowanie interaktywne skupia się na tworzeniu znaczących doświadczeń między nami (ludźmi) i obiektami. Jest dobrą drogą, która pozwala zagłębić się w tworzenie pięknych – a może nawet kontrowersyjnych – doświadczeń między nami a technologią. Projektowanie interaktywne stymuluje proces tworzenia dzięki interaktywnemu procesowi opartemu na prototypach o coraz większej dokładności. To podejście – również stanowiące część pewnego rodzaju konwencjonalnego projektowania – może być rozszerzone, aby obejmowało prototypowanie przy użyciu technologii. W szczególności – prototypowanie z wykorzystaniem elektroniki.

Szczególnym polem projektowania interaktywnego, dotyczącym Arduino, jest programowanie urządzeń (lub projektowanie interakcji z urządzeniami).

Czym jest programowanie urządzeń?

Programowanie urządzeń korzysta z elektroniki do prototypowania nowych materiałów dla projektantów i artystów. Obejmuje projektowanie interaktywnych obiektów, które mogą się komunikować z ludźmi przy użyciu czujników i elementów aktywnych sterowanych oprogramowaniem działającym w mikrokontrolerze (małym komputerze zawartym w jednym układzie scalonym).

W przeszłości korzystanie z elektroniki oznaczało konieczność nieustannej współpracy z inżynierami oraz tworzenie obwodów po jednym małym elemencie na raz. Te problemy powodowały, że kreatywne osoby trzymały się z dala od bezpośredniej zabawy z medium. Większość narzędzi była przeznaczona dla inżynierów i wymagała dużej wiedzy.

W ostatnich latach mikrokontrolery stały się tańsze i łatwiejsze w użyciu, co pozwala na tworzenie lepszych narzędzi. Jednocześnie komputery stały się szybsze i wydajniejsze, umożliwiając tworzenie lepszych (i łatwiejszych w użyciu) narzędzi programistycznych.

Dzięki Arduino dokonaliśmy postępu, który polegał na przybliżeniu tych narzędzi do nowicjuszy. Teraz tworzenie własnych projektów jest możliwe po zaledwie dwóch czy trzech dniach warsztatów – albo po przeczytaniu tej książki!

Korzystając z Arduino, projektant lub artysta może bardzo szybko poznać podstawy elektroniki i czujników, a następnie zacząć budować prototypy przy bardzo małym nakładzie finansowym.

2 Droga Arduino

Koncepcja Arduino jest oparta na tworzeniu rzeczy, zamiast ich omawiania. Jest to nieustanne szukanie szybszych i potężniejszych sposobów budowania lepszych prototypów. Zbadaliśmy wiele technik prototypowania i wynaleźliśmy myślenie przy użyciu rąk.

Klasyczna inżynieria polega na prostym procesie przechodzenia z A do B. Droga Arduino zachwyca możliwością zagubienia się na trasie i znalezienia zamiast tego C.

Jest to proces majstrowania, który tak lubimy – zabawa ze środkami w otwarty sposób i znajdowanie nieoczekiwanego. W tym szukaniu sposobów budowania lepszych prototypów wybraliśmy także pewną liczbę pakietów oprogramowania, które umożliwiają proces stałego zmieniania środków programistycznych i sprzętowych.

W następnych punktach zaprezentujemy pewne koncepcje, zdarzenia i osoby, które zainspirowały drogę Arduino.

Prototypowanie

Prototypowanie to najważniejsza koncepcja drogi Arduino: wykonujemy rzeczy i budujemy obiekty, które oddziałują z innymi obiektami, osobami i sieciami. Staramy się znaleźć prosty i szybki sposób prototypowania, a równocześnie możliwie najtańszy.

Wiele osób początkujących podchodzących do elektroniki po raz pierwszy myśli, że będzie się uczyć, jak budować wszystko od podstaw. Jest to strata energii: chcemy bardzo szybko sprawdzić, że coś działa, aby zmotywować się do podjęcia następnego kroku, a nawet zmotywować kogoś innego, aby nam za to zapłacił.

Dlatego wynaleźliśmy prototypowanie oportunistyczne: po co tracić czas i energię na budowanie od podstaw, proces wymagający czasu i głębokiej wiedzy technicznej, jeżeli możemy wziąć gotowe urządzenia i rozpracować je, aby zbadać ciężką pracę wykonaną przez duże firmy i dobrych inżynierów?

Majstrowanie

Wierzymy, że jest ono istotą działania z technologią, badania różnych możliwości bezpośrednio sprzętowych i programistycznych – czasami bez dobrze zdefiniowanego celu.

Ponowne używanie istniejącej technologii jest jednym z najlepszych sposobów majstrowania. Rozpracowywanie tanich zabawek lub starego, wyrzuconego sprzętu i używanie ich do czegoś innego jest jednym z najlepszych sposobów osiągnięcia wspaniałych wyników.

Uwielbiamy śmieci!

Obecnie ludzie wyrzucają mnóstwo elementów technicznych: stare drukarki, komputery, dziwne urządzenia biurowe, sprzęt techniczny, a nawet mnóstwo militariów. Zawsze istniał duży rynek obejmujący tę nadwyżkę technologii, szczególnie wśród młodych i/lub biednych majsterkowiczów oraz tych, którzy dopiero zaczynają. Ten rynek stał się oczywisty w Ivrea, gdzie wynaleźliśmy Arduino. To miasto było siedzibą firmy Olivetti. Firma ta produkowała komputery od lat 60 XX w. W środku lat dziewięćdziesiątych wyrzucali wszystko na okoliczne złomowiska. Były one pełne części komputerowych, elementów elektronicznych i dziwnych urządzeń wszelkiego rodzaju. Spędzaliśmy tam niezliczone godziny, kupując najrozmaitsze ustrojstwa za grosze i rozpracowując je, aby tworzyć nasze prototypy. Kiedy można kupić tysiąc głośników za bardzo małe pieniądze, niewątpliwie ktoś wpadnie w końcu na jakiś pomysł, co z nimi zrobić. Warto zbierać śmieci i korzystać z nich, zanim zaczniemy coś robić od podstaw.

Rozpracowywanie zabawek

Zabawki są cudownym źródłem taniej technologii, którą można rozpracować i użyć ponownie, o czym świadczy praktyka łączenia obwodów wspomniana wcześniej. Przy obecnym napływie tysięcy bardzo tanich zabawek technologicznych z Chin, możemy szybko realizować pomysły przy użyciu kilku hałaśliwych kotów i paru mieczy świetlnych.

Robiłem to przez parę lat, aby przekonać moich studentów, że technika nie jest straszna ani trudna do opanowania. Jednym z moich ulubionych źródeł jest broszura „Low Tech Sensors and Actuators” Usmana Haque i Adama Somlai-Fischera (lowtech.propositions.org.uk). Uważam ich opis tej techniki za doskonały i chętnie z niego korzystam.

—Massimo

Współpraca

Współpraca między użytkownikami jest jedną z kluczowych zasad w świecie Arduino – korzystając z forum pod adresem forum.arduino.cc osoby z różnych części świata pomagają sobie nawzajem poznawać i uczyć się tej platformy. Zespół Arduino zachęca ludzi do współpracy na poziomie lokalnym, pomagając im tworzyć grupy użytkowników w każdym mieście, które odwiedza. Utworzyliśmy też witrynę o nazwie „Project Hub” (https://create.arduino.cc/projecthub), gdzie użytkownicy dokumentują swoje projekty i udostępniają je innym. Zdumiewające jest widzieć, jak dużo wiedzy przekazują te osoby do Internetu, aby każdy mógł z niej korzystać. Ta kultura udostępniania i pomagania sobie nawzajem jest jedną z rzeczy, z których jestem najbardziej dumny, gdy chodzi o Arduino.