Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00095 008636 11204034 na godz. na dobę w sumie
Arduino i projekty LEGO - ebook/pdf
Arduino i projekty LEGO - ebook/pdf
Autor: Liczba stron:
Wydawca: Promise Język publikacji: polski
ISBN: 978-83-7541-189-8 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> bazy danych
Porównaj ceny (książka, ebook, audiobook).

Zobacz, jak połączyć dwa najbardziej popularne narzędzia do budowy i zabawy – Arduino i LEGO – by tworzyć zabawne i interesujące gadżety, takie jak kryształowa kula z czujnikiem RFID, konstrukcje LEGO wyposażone w sensory, a nawet sterowany przez Arduino pociąg LEGO.
Poznaj podstawowe techniki wykorzystania Arduino, zaczynając od najprostszych programów powodujących mruganie diod LED, po bardziej złożone wykorzystujące moduły Arduino. Odkryj podstawową zasadę LEGO solidnego budowania, zaczynając od stabilnej podstawy i zamiennie wstawiając klocki, aby utworzyć ściany zdolne utrzymać konstrukcję. Dzięki szczegółowym wyjaśnieniom i ilustracjom zobaczysz, jak wszystko pasuje do siebie i jak możesz nadać swoim projektom różne poziomy funkcjonalności i interakcji.
Dowiedz się, jak:
Zasymulować okrągłe kształty lub kopuły przy użyciu klocków LEGO
Dołączyć sensory do swoich projektów
Wykorzystać Arduino do sterowania silnikami w projektach LEGO
Przekształcić królika LEGO na Twitter Pet
Stworzyć swoją własną kryształową kulę z odbiornikiem RFID
Zbudować z LEGO statek TARDIS sterowany przez Arduino

Bez względu na to, czy chcesz zadziwić przyjaciół, rozdrażnić kota, czy też po prostu cieszyć się swymi kreacjami, książka pokaże, czego potrzebujesz i jak to połączyć ze sobą. Uzyskasz podstawową wiedzę i umiejętności, które, uzupełnione kreatywnością, pomogą tworzyć najbardziej zadziwiające gadżety na tej planecie.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

Jon Lazar Arduino i projekty LEGO Przekład: Tomasz Jerzy Brenet APN Promise, Warszawa 2013 ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Arduino i projekty LEGO Authorized Polish translation of the English edition Arduino and LEGO Projects, ISBN: 978-1-4302-4929-0 (pbk), 978-1-4302-4930-6 (electronics) Original edition copyright © 2013 by Jon Lazar. All rights reserved. Polish edition copyright © 2013 by APN PROMISE SA. All rights reserved. APN PROMISE SA, biuro: ul. Kryniczna 2, 03-934 Warszawa tel. +48 22 35 51 600, fax +48 22 35 51 699 e-mail: mspress@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. Książka ta przedstawia poglądy i opinie autorów. Przykłady firm, produktów, osób i wydarzeń opisane w niniejszej książce są fikcyjne i nie odnoszą się do żadnych konkretnych firm, produktów, osób i wydarzeń, chyba że zostanie jednoznacznie stwierdzone, że jest inaczej. Ewentualne podobieństwo do jakiejkolwiek rzeczywistej firmy, organizacji, produktu, nazwy domeny, adresu poczty elektronicznej, logo, osoby, miejsca lub zdarzenia jest przypadkowe i niezamierzone. 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-136-2 Przekład: Tomasz Jerzy Brenet Redakcja: Marek Włodarz Korekta: Ewa Swędrowska Skład i łamanie: MAWart Marek Włodarz Kody źródłowe oraz pozostałe materiały dodatkowe, do których w niniejszej książce odnosi się autor, dostępne są dla czytelników na stronie www.apress.com. Szczegółowe informacje dotyczące tego, w jaki sposób zlokalizować kod źródłowy opisany w książce, znaleźć można na stronie www.apress.com/source-code/. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Wszystkim tym, którzy biorą w dłonie dwa klocki i je składają. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== ■ ■ ■ Spis treści O autorze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ix O recenzencie technicznym . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ix Podziękowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .ix Wstęp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xi Rozdział 1 LEGO, Arduino i Ultimate Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Parę słów o Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Pierwszy program Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Programowanie Ultimate Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Składanie Arduino i silnika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Programowanie Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Budowanie Ultimate Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Wybór wymiarów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Budowanie ścian z klocków . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Dodanie Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Dodanie ramion LEGO i przełącznika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Podwyższenie ścian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Budowanie pokrywy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Rozdział 2 Wykorzystanie czujników z Androidem . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Czujnik ultradźwiękowy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Podłączenie dodatkowych czujników . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Budowanie Androida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Tworzenie podstawy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Budowanie uprzęży dla Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Dodanie warstwy na wtyczkę zasilającą . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Budowanie korpusu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Dodanie ramion i czujników . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Oddzielenie korpusu od głowy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Budowanie głowy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 v ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Spis treści Budowanie nóg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Budowanie ramion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 Budowanie anteny . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 Rozdział 3 Twitter Pet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Podłączenie Arduino do Internetu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 Budowanie Twitter Pet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Budowanie podstawy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 Umieszczenie Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Zakrywanie Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 Dodanie obręczy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 Dodanie oczu i nosa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Dodanie głowy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Rozdział 4 RFID i kryształowa kula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Arduino i RFID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Tworzenie magii przy pomocy kodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Budowanie kryształowej kuli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Budowanie podstawy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 Budowanie pokrywy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 Budowanie kuli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Budowanie czarodziejskiej różdżki. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 Rozdział 5 Ożywienie statku TARDIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Ulepszenie statku TARDIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 Kodowanie modułu plików dźwiękowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 Obwód Kameleona: Budowanie statku TARDIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Budowanie ścian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Wzmacnianie ścian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130 Budowanie okien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 Montowanie okien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 Dodanie Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Powrót do korpusu... . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 Tworzenie etykiet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Budowanie dachu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 vi ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Spis treści Rozdział 6 Sterowanie pociągami LEGO przy pomocy Arduino . . . . . . . . . . . . . . 153 Sterowniki pociągu Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 Programowanie sterowników pociągu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 Budowanie stacji kolejowej . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Budowanie pociągu LEGO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Dodanie kół . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162 Dodanie baterii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Dodanie odbiornika podczerwieni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169 Rozdział 7 Budowanie szkatułki światłoczułej . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Części mechaniczne szkatułki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 Programowanie szkatułki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 Budowanie szkatułki . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 Dodanie Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 Dodanie silnika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Dostosowanie wysokości ściany . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Dodanie zawiasów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Dodanie pokrywy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 Podsumowanie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 Załącznik Lista części . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Rozdział 1: LEGO, Arduino i Ultimate Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Elektroniczne części urządzenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 LEGO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 Rozdział 2: Wykorzystanie czujników z Androidem . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Elektroniczne części urządzenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 LEGO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 Rozdział 3: Twitter Pet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Elektroniczne części urządzenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 LEGO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 Rozdział 4: RFID i kryształowa kula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Elektroniczne części urządzenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 LEGO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Rozdział 5: Ożywienie statku TARDIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Elektroniczne części urządzenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 LEGO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 Rozdział 6: Sterowanie pociągami LEGO przy pomocy Arduino. . . . . . . . . . . . . . . . . 192 Elektroniczne części urządzenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Klocki LEGO do zbudowania stacji kolejowej . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 vii ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Spis treści Klocki LEGO do zbudowania pociągu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192 Rozdział 7: Budowa szkatułki światłoczułej . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Elektroniczne części urządzenia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 LEGO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193 Indeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 viii ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== ■ ■ ■ O autorze Jon Lazar jest niezależnym programistą oraz konstruk- torem LEGO z ponad piętnastoletnim doświadczeniem w dziedzinie technologii. Swoją karierę rozpoczął w AT T i od tego czasu pomógł wielu przedsiębiorstwom roz- poczynającym działalność na terenie Nowego Jorku za- znaczyć swą cyfrową obecność i stworzyć cyfrowe za- plecze. W wolnym czasie zajmuje się konstruowaniem rzeźb z klocków LEGO, przejawiając przy tym ogromny talent. Regularnie pisze o LEGO, mediach społecznoś- ciowych, technologii oraz innych pokrewnych tematach na justjon.net. Można go również znaleźć na portalu Twitter — @JustJon. O recenzencie technicznym Brian Evans jest artystą zajmującym się mediami elektronicznymi oraz docentem na Uniwersytecie w Denver, gdzie prowadzi wielokierunkowe kursy z zakresu sztuki, obej- mujące także zagadnienia dotyczące elektroniki i produkcji cyfrowej. Jest autorem takich książek jak: Beginning Arduino Programming (Apress, 2011) i Practical 3D Printers (Apress, 2012). W 2005 roku obronił na Uniwersytecie w Arizonie pracę licencjacką ze sztuk pięknych, zaś w roku 2008 otrzymał tytuł magistra sztuk pięknych na Uniwersytecie Kalifornijskim. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== ix Podziękowania Autor pragnie podziękować Mike’owi i Lee za wyprowadzenie z „wieków ciemnych” LEGO oraz pomoc przy staniu się konstruktorem i fanem LEGO, jakim jest dzisiaj. Podziękowania należą się także Marwanowi za pomoc przy sterowniku Arduino dla pociągu LEGO dzia- łającego w systemie Power Functions. Słowa uznania dla Briana za sprawdzenie kodu projektów oraz jego ulepszenie. Specjalne podziękowania kierowane są do British Broadcasting Company za udzielenie pozwolenia na zawarcie w książce TARDIS oraz za 50 lat Doktora Who. x ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== ■ ■ ■ Wstęp Od 80 lat Grupa LEGO produkuje z myślą o dzieciach zabawki do składania. W miarę postępu technologii wprowadziła ona pewne elementy interaktywne, których możliwości pozostawały jednak pod różnymi względami ograniczone. Arduino jest mikrokontrolerem o otwartym kodzie źródłowym, który umożliwia in- terakcje ze wszystkimi rodzajami urządzeń elektronicznych i czujników. Pozwala on na szereg twórczych projektów, które mogą być sterowane przy pomocy niewielkiego komputera o małej mocy. Dzięki połączeniu tych dwóch elastycznych systemów, można stworzyć niezliczoną ilość projektów, a ich możliwości będą praktycznie nieograniczone — jedynym ograni- czeniem może być wyobraźnia. ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== xi ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== ROZDZIAŁ 1 ■ ■ ■ LEGO, Arduino i Ultimate Machine OD WIELU LAT LEGO PRODUKUJE system oparty na komputerze, znany pod nazwą Mindstorms. Daje on mózg komputera plastikowym klockom LEGO, które są z nami już od dekad. Mimo iż Mindstorms rozwijał się przez 15 lat, a więc od czasu pojawie- nia się go na rynku, to jednak był on ograniczony. Był on bowiem uzależniony od rozmiaru inteligentnych klocków LEGO oraz od dostępnych czujników i silników. Alternatywą dla zastosowania LEGO Mindstorms jest mikroprocesor Arduino, mały komputer mogący dzięki oprogramowaniu obsłużyć dowolny element elektroniczny. Parę słów o Arduino Arduino (rysunek 1-1) jest mikrokontrolerem o otwartym kodzie źródłowym, który po- zwala na programowanie i interakcje. Jest programowany w języku C/C++ wraz z biblioteką Arduino, by zapewnić mikrokontrolerowi dostęp do sprzętu komputerowego. Dzięki Arduino programowalność jest bardziej elastyczna, a możliwość korzystania z części elektronicznych podłączonych do Arduino większa. Jako że Arduino ma otwarty dostęp do kodu źródłowego, plany obwodów są dostępne online za darmo dla każdego, kto pragnie tworzyć swoje projekty w oparciu o przedstawione schematy — o ile podzieli się swoimi tworami z innymi. Możliwe jest także dostosowanie projektów do indywidual- nych potrzeb użytkownika. Pozwala na to Arduino, który dzięki rozwojowi ma już różne rozmiary, kształty i poziomy mocy przeznaczone do sterowania projektami. Do głównych korzyści wynikających z zastosowania Arduino zamiast własnych sy- stemów silnikowych LEGO należą: baza o otwartym kodzie źródłowym, rozszerzalność i rozmiary. Z systemem LEGO użytkownik jest ograniczony do części wyprodukowanych przez LEGO. Taka sytuacja może stanowić przeszkodę w przypadku mniejszych projek- tów, w których inteligentny klocek Mindstorms NXT może być za duży, aby można było bez problemu zawrzeć go w projekcie lub ukryć za nim. Z mniejszą płytką drukowaną układu Arduino potrzeba mniej miejsca na jej umieszczenie. Oznacza to większą ela- styczność projektu. Na rysunku 1-2 porównano rozmiary Arduino i klocka LEGO NXT. 1 ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Rozdział 1 ■ LEGO, Arduino i Ultimate Machine Rysunek 1-1 Mikrokontroler Arduino Rysunek 1-2 Arduino i inteligentny klocek LEGO Mindstorms NXT Samo Arduino może nie być w stanie wykonać wszystkich działań, jakie przy jego pomocy chciałoby się przeprowadzić. Są jednak dostępne płytki rozszerzeń zwane modułami, które można dołączyć do górnej części płytki Arduino, zwiększając tym samym jego użyteczność. Dzięki tym rozszerzeniom można tak zaprogramować Arduino, że będzie ono wykonywać działania, które inaczej byłyby niemożliwe, w tym: wykorzystanie sil- ników, połączenie internetowe, odtwarzanie dźwięku z plików .wav i wiele innych. Dla przykładu rysunek 1-3 przedstawia moduł sieci ethernetowej umożliwiający podłączenie Arduino do Internetu. 2 ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Pierwszy program Arduino Rysunek 1-3 Moduł sieci ethernetowej umożliwiający podłączenie Arduino do Internetu Pierwszy program Arduino Przeważnie gdy ktoś wypróbowuje nowy język programowania, to ustawia na ekranie napis „Witaj”. Arduino w takiej sytuacji reaguje miganiem diody LED. Przez podłączenie diody LED do dwóch portów umieszczonych na Arduino i napisanie prostego programu Arduino może włączać i wyłączać światło. Pierwszym krokiem jest podłączenie diody LED do Arduino. Działanie diod uzależ- nione jest od sposobu ich użycia. Diodę należy podłączyć w taki sposób, aby jej dłuższy koniec znalazł się w złączu oznaczonym liczbą, zaś krótszy koniec w uziemieniu, inaczej światło się nie zapali. Rysunek 1-4 przedstawia dłuższą część w gnieździe oznaczonym liczbą 13 i krótszą część w uziemieniu. Rysunek 1-4 Dioda LED podłączona do Arduino 3 ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== ■ Rozdział 1 ■ LEGO, Arduino i Ultimate Machine Gdy dioda LED jest już na stałe umieszczona w Arduino, należy podłączyć go do kom- putera przy pomocy kabla USB. Komputer musi mieć zainstalowane oprogramowanie Arduino, aby można było go zaprogramować. Oprogramowanie można pobrać za darmo na stronie arduino.cc zgodnie z systemem operacyjnym posiadanego komputera. Gdy tylko program jest pobrany i zainstalowany, należy uruchomić oprogramowanie Arduino. Ścieżka programu jest następująca File  Examples  01.Basics  Blink. Może być on także wprowadzony ręcznie — patrz listing 1-1. Listing 1-1 Podstawowy program migotania — Blink /* migotanie włączenie diody LED na jedną sekundę, następnie wyłączenie na jedną sekundę — wielokrotnie. Kod przykładowy znajduje się w domenie publicznej. */ // Złącze 13 ma diodę LED podłączoną do większości płyt Arduino. // nadanie nazwy: int led = 13; // program ustawień rozpoczyna się po wciśnięciu przycisku reset: void setup() { // inicjowanie złącza cyfrowego jako wyjścia. pinMode(led, OUTPUT); } // program pętli odtwarzany jest przez cały czas: void loop() { digitalWrite(led, HIGH); // włączenie diody LED (poziom napięcia jest HIGH) delay(1000); // opóźnienie programu działania digitalWrite(led, LOW); // wyłączenie diody LED poprzez ZMNIEJSZENIE napięcia delay(1000); // opóźnienie programu działania } Kod przedstawiony na listingu 1-1 jest podstawowym programem dla Arduino. Jest on odczytywany od góry do dołu. Pierwszą rzeczą, którą należy wykonać w programie, jest zdefi niowanie globalnej zmiennej dla złącza z diodą LED. Globalna zmienna jest de- fi niowana poza funkcjami setup() i loop() i można uzyskać do niej dostęp z dowolnego miejsca programu. Wiersz int led=13; defi niuje globalną zmienną nazwaną led jako liczbę całkowitą o wartości 13. Za każdym razem, gdy używane jest słowo led, program będzie interpretował je jako liczbę 13. Jako że zmienna defi niowana jest przed słowami void setup();, jest to zmienna globalna. Oznacza to, iż dowolna część programu ma do niej dostęp i może wprowadzać w niej zmiany. Jeżeli zmienna zostanie zdefi niowana 4 ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Pierwszy program Arduino w sekcji ustawień lub pętli (jak określono poniżej), to będzie ona jedynie lokalną zmienną, do której dostęp będzie miała ta konkretna sekcja kodu. Warto zauważyć, iż elementy znajdujące się między symbolami /* i */ lub po // są komentarzami, które zostaną przez komputer zignorowane podczas odczytywania programu. // program ustawień rozpoczyna się po wciśnięciu przycisku reset: void setup() { // inicjowanie złącza cyfrowego jako wyjścia. pinMode(led, OUTPUT); } Każdy element umieszczony w nawiasach klamrowych po setup() zostanie wykonany bezpośednio po uruchomieniu programu. Każdy z umieszczonych tam elementów zo- stanie odczytany tylko raz. Nie ma możliwości, aby program do nich wrócił. W tym wypadku pinMode służy przekazaniu Arduino informacji, że będzie wykorzystywał złą- cze 13, zdefi niowane jako led, do przesłania sygnału. Należy zaznaczyć, iż złącza mogą być wykorzystywane jako elementy wejścia i wyjścia, lecz muszą być zgodnie z tą rolą zdefi niowane. // program pętli odtwarzany jest przez cały czas: void loop() { digitalWrite(led, HIGH); // włączenie diody LED (poziom napięcia jest HIGH) delay(1000); // opóźnienie programu działania digitalWrite(led, LOW); // wyłączenie diody LED poprzez ZMNIEJSZENIE napięcia delay(1000); // opóźnienie programu działania } Po wykonaniu procedur rozruchowych wykonane zostaną działania określone w na- wiasach klamrowych po loop(). Różnica jest taka, że po rozpoczęciu sekcji loop() kod zostanie odczytany ponownie, gdy dojdzie już do końca. Złącze 13 na Arduino ma tylko dwa stany — wyłączony i włączony. Funkcja digitalWrite przekazuje diodzie informację o włączeniu lub wyłączeniu w zależności od tego, czy napięcie jest wysoki (HIGH) czy niskie (LOW). Wprowadzenie opóźnienia między polecenia digitalWrite daje możliwość zobaczenia, jak światło się włącza i wyłącza — nie jest to więc jedynie efekt światła stro- boskopowego. Polecenie delay wprowadza opóźnienie wyrażone przez liczbę w nawiasie (w tysięcznych częściach sekundy). Napisany kod musi zostać załadowany przez Arduino. Przez podłączenie go standar- dowym kablem USB komputer może się z nim komunikować. Kliknięcie strzałki w pra- wym górnym rogu spowoduje skompilowanie kodu i załadowanie go do Arduino. Gdy kod zostanie już zainstalowany, po kilku sekundach polecenia zaczną być wykonywane, a dioda LED zacznie migać. 5 ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== ■ LEGO, Arduino i Ultimate Machine Rozdział 1 ■ Programowanie Ultimate Machine Ultimate Machine to urządzenie znane również jako bezużyteczna maszyna. Uważana jest za najbardziej efektywne urządzenie, jakie kiedykolwiek zostało stworzone. Jedyną jego funkcją jest wyłączenie się, gdy zostanie włączone. Oryginalne urządzenie zostało stwo- rzone przez Claude’a Shannona w 1952 r. — w czasach, gdy pracował on w Laboratoriach Bella. Poszczególne etapy zostały wyjaśnione poniżej. Składanie Arduino i silnika Aby zbudować Ultimate Machine, potrzebny jest silnik. Aby można było go uruchomić, należy moduł silnika umieścić na płycie Arduino. Jest kilka różnych modułów, które umożliwiają podłączenie silnika do Arduino — w naszym przykładzie zostanie jednak wykorzystany moduł silnika Adafruit Industries, ponieważ pozwala on na uruchomienie różnych rodzajów silnika, które będą wykorzystywane w projektach opisanych w niniej- szej książce. Rysunek 1-5 przedstawia rozłożony na części moduł silnika fi rmy Adafruit Industries. Rysunek 1-5 Niezłożony moduł silnika Często sprzęt o otwartym kodzie źródłowym postrzegany jest jako element kategorii „zrób to sam”. Dlatego producenci sprzedają nieraz produkty, jak np. moduły, które wyma- gają złożenia. Posiadając podstawowe umiejętności dotyczące lutowania, nie wydaje się to nazbyt skomplikowane. Instrukcje dotyczące tego, jak należy złożyć części, znaleźć można na stronie www.ladyada.net/make/mshield/solder.html. Rysunek 1-6 przedstawia złożony moduł silnika. 6 ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Programowanie Ultimate Machine Rysunek 1-6 Złożony moduł silnika Gdy części modułu silnika są już przylutowane, można go bez problemu przyłączyć do górnej części Arduino. Przyciśnij je do siebie, lecz nie za mocno. Gdy są już połą- czone, można dodać silnik. Moduł silnika Adafruit wspiera silniki prądu stałego (DC), serwomotory oraz silniki krokowe. Przy tym projekcie należy zastosować serwomotor. Jego przewody należy podpiąć na górze po lewej stronie do gniazda z trzema portami (rysunek 1-7). Rysunek 1-7 Moduł silnika z przyłączonym do Arduino serwomotorem 7 ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== ■ Rozdział 1 ■ LEGO, Arduino i Ultimate Machine W przykładzie z migotaniem Arduino jest zasilany przez podłączony kablem USB kompu- ter. Ponieważ projekt ten będzie ostatecznie niezależny od komputera, wymagana będzie do jego zasilenia bateria lub adapter. Jeżeli używany jest adapter, to jest on podłączony bezpośrednio do Arduino. Sama obudowa LEGO wymaga otworu o szerokości jednej wypustki LEGO. Niektóre silniki wymagają drugiego źródła zasilania z powodu dużego zużycia energii przez silniki. W tym projekcie jednak pojedyncze źródło mocy dla Arduino i serwomotoru będzie wystarczające. Po podłączeniu Arduino i modułu silnika należy dodać jeszcze ostatni element sprzętu, aby można było przystąpić do programowania projektu. Ultimate Machine rozpoczyna pracę po włączeniu przełącznika – trzeba więc go zamontować. W tym celu należy wziąć przełącznik (ten na rysunku 1-8 wyprodukowała fi rma Radio Shack), przylutować do niego przewody, a następnie całość podłączyć do jednego z portów cyfrowych na górnej części modułu silnika. Dzięki temu maszyna będzie wiedzieć, kiedy ma się uruchomić. Jako że wykorzystuje się nie samego Arduino a moduł, należy wszystkie przewody przylutować w jednym miejscu, aby zapewnić bezpieczne połączenie. Jeden koniec będzie przyluto- wany do portu oznaczonego liczbą, podczas gdy drugi zostanie przylutowany do portu uziemienia — patrz rysunek 1-9. Rysunek 1-8 Przełącznik dodany do Arduino, modułu silnika i silnika 8 ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== Programowanie Ultimate Machine Rysunek 1-9 Schemat połączenia silnika i przełącznika — bez podłączonego modułu silnika Programowanie Arduino Po przygotowaniu sprzętu należy zająć się oprogramowaniem. Program uruchamiający silnik ma podobny układ do programu odpowiedzialnego za migotanie diody — jest jed- nak trochę bardziej zaawansowany. Na samym początku należy dodać bibliotekę modułu silnika. Zawiera ona kod, który został już napisany z myślą o uruchomieniu modułu. Nie ma więc potrzeby przygotowywać go samemu. Aby zainstalować bibliotekę, należy przejść do strony www.ladyada.net/make/mshield/use.html i postępować zgodnie z instrukcjami dotyczącymi pobrania i instalacji biblioteki. Po zakończeniu instalacji i zrestartowaniu oprogramowania Arduino należy skopiować kod przedstawiony na listingu 1-2. Listing 1-2 Kod Ultimate Machine #include Servo.h // serwomotor prądu stałego Servo servo1; // przełącznik podpięty do złącza cyfrowego 2 int SwitchPin = 2; void setup() { // włączenie serwomotoru servo1.attach(9); ##7#52#aSUZPUk1BVC1WaXJ0dWFsbw== 9 ■
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Arduino i projekty LEGO
Autor:

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: