Tytuł oryginału: Make: JavaScript Robotics: Building ...pdf.helion.pl/roboty/roboty.pdf · Tytuł...
Transcript of Tytuł oryginału: Make: JavaScript Robotics: Building ...pdf.helion.pl/roboty/roboty.pdf · Tytuł...
Tytuł oryginału: Make: JavaScript Robotics: Building NodeBots with Johnny-Five, Raspberry Pi, Arduino, and BeagleBone
Tłumaczenie: Andrzej Watrak
ISBN: 978-83-283-2054-3
© 2016 Helion S.A.
Authorized Polish translation of the English edition of Make: JavaScript Robotics, ISBN 9781457186950 © 2015 Backstop Media, LLC, published by Maker Media Inc.
This translation is published and sold by permission of O’Reilly Media, Inc., which owns or controls all rights to publish and sell the same.
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 Wydawnictwo HELION 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 Wydawnictwo HELION nie ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji zawartych w książce.
Wydawnictwo HELIONul. Kościuszki 1c, 44-100 GLIWICEtel. 32 231 22 19, 32 230 98 63e-mail: [email protected]: http://helion.pl (księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem: ftp://ftp.helion.pl/przyklady/roboty.zip
Drogi Czytelniku!Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres http://helion.pl/user/opinie/robotyMoż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ść
3
Spis tre ci
Przedmowa ...................................................................................................................... 11
1. Budowanie robotów ze zwyk ych materia ów ................................................................ 15Budowa robota SimpleBot ..................................................................................................................16
Wykaz materia ów .......................................................................................................................16Etapy budowy .............................................................................................................................17Instalacja pakietów Node.js .........................................................................................................20Sprawdzenie urz dzenia za pomoc podstawowego programu ....................................................20Diagnostyka problemów ..............................................................................................................21Prosty program steruj cy ............................................................................................................21Diagnostyka problemów ..............................................................................................................23
Odci cie przewodu ............................................................................................................................24Budowa bezprzewodowego robota SimpleBot ..............................................................................24Po czenia ...................................................................................................................................24Sterowanie robotem SimpleBot ....................................................................................................25Diagnostyka problemów ..............................................................................................................28
Co dalej? ...........................................................................................................................................29
2. Robot pisz cy TypeBot ..................................................................................................... 31Wykaz materia ów ..............................................................................................................................31
Informacje o serwomotorach .......................................................................................................32Anatomia ramienia robota ..................................................................................................................33
Konstrukcja ramienia ...................................................................................................................33Warunki zwi zane z ruchem ramienia ..........................................................................................34
Poleć książkęKup książkę
4 Spis tre ci
Budowa cz ci mechanicznej ............................................................................................................34Podstawa i rami .........................................................................................................................34okie .........................................................................................................................................35
Nadgarstek ..................................................................................................................................36Palec ...........................................................................................................................................37Mózg ...........................................................................................................................................37
Utworzenie programu .........................................................................................................................38Utworzenie plików projektu ..........................................................................................................38Sterowanie serwomotorami .........................................................................................................38Inicjalizacja ..................................................................................................................................41Okre lenie sekwencji naci ni klawiszy .....................................................................................43Pierwsze uruchomienie ................................................................................................................46Dok adna regulacja ramienia ........................................................................................................46
Co dalej? ...........................................................................................................................................47
3. Pierwsze kroki z robotami NodeBoat .............................................................................. 49Wykaz materia ów ..............................................................................................................................50
Narz dzia ....................................................................................................................................50Zasobnik z silnikiem ...........................................................................................................................51
Po co stosowa sterownik silnika? ..............................................................................................51Komponenty zasobnika silnika .....................................................................................................51Modyfikacja silnika ......................................................................................................................52Monta silnika .............................................................................................................................53Sprawdzenie silnika .....................................................................................................................53Przygotowanie silnika ..................................................................................................................53Otwór w zasobniku na silnik ........................................................................................................54Zamkni cie zasobnika na silnik ....................................................................................................55Uszczelnienie przewodów ............................................................................................................55
Konfiguracja modu u Spark ................................................................................................................56Test modu u Spark ......................................................................................................................56
Twój pierwszy program Spark ............................................................................................................57Przylutowanie sterownika silnika ........................................................................................................58Po czenie komponentów odzi ..........................................................................................................58
Zasilanie sterownika silnika ..........................................................................................................59Po czenie modu u Spark i sterownika silnika ..............................................................................60Pod czenie silnika ......................................................................................................................61
Sterowanie silnikiem: kod ..................................................................................................................62Obs uga zdarzenia naci ni cia klawisza .......................................................................................62Zapisywanie stanu klawiszy .........................................................................................................63
Wodowanie odzi ...............................................................................................................................64
Poleć książkęKup książkę
Spis tre ci 5
Sterowanie odzi za pomoc serwomotoru .......................................................................................66Programowanie serwomotoru ......................................................................................................66Monta steru ...............................................................................................................................68
Pierwszy rejs .....................................................................................................................................69Co dalej? ...........................................................................................................................................69
4. Mobilna platforma piDuino5 ............................................................................................ 71Wykaz materia ów ..............................................................................................................................72
Instalacja platformy Node.js na p ytce Raspberry Pi .....................................................................73Pobranie kodu piDuino5 i zale no ci ............................................................................................73Narz dzia ....................................................................................................................................73
Konfiguracja p ytek i instalacja oprogramowania ................................................................................73Pod czenie Arduino ....................................................................................................................74Przegl d kodu app.js ...................................................................................................................74Sprawdzenie platformy Johnny-Five za pomoc protoko u WebSocket .........................................74Inicjalizacja platformy Johnny-Five ..............................................................................................75Sterowanie urz dzeniami .............................................................................................................75Sterowanie z ma ymi opó nieniami za pomoc protoko u WebSocket ..........................................75Po czenie z ka dego miejsca ......................................................................................................76
Monta komponentów ........................................................................................................................76Wys anie adresu do aplikacji WWW .............................................................................................78
Sterowanie za pomoc smartfona ......................................................................................................78Pobranie aplikacji WWW do sterowania robotem piDuino5 ..........................................................78Sprawd aplikacj WWW na telefonie ..........................................................................................79
Przegl d plików app.js i index.html .....................................................................................................79Zapisanie lokalnego adresu IP ......................................................................................................79Udost pnienie interfejsu u ytkownika ...........................................................................................79Dotykowy joystick .......................................................................................................................80Nawi zanie po czenia .................................................................................................................80Wysy anie polece ......................................................................................................................80
Co dalej? ...........................................................................................................................................81
5. Sterowanie heksapodem za pomoc platformy Johnny-Five ......................................... 83Wykaz materia ów ..............................................................................................................................83Sterowanie robotem za pomoc wiersza polece ...............................................................................84Wprowadzenie do programu phoenix.js ..............................................................................................85Monta robota ....................................................................................................................................86
Przygotowanie szkieletu ..............................................................................................................87Monta komponentów elektronicznych ........................................................................................87Przygotowanie serwomotorów ....................................................................................................87Monta stawów biodrowych ........................................................................................................88
Poleć książkęKup książkę
6 Spis tre ci
Monta segmentów udowych ......................................................................................................89Monta segmentów piszczelowych ..............................................................................................89
Uk ad wspó rz dnych .........................................................................................................................90Regulacja serwomotorów ..................................................................................................................91
Regulacja stawów biodrowych ....................................................................................................91Regulacja segmentów udowych ..................................................................................................92Regulacja segmentów piszczelowych ..........................................................................................92
Okre lenie zakresów ruchu serwomotorów ........................................................................................92Chodzenie jest trudne! .......................................................................................................................93Poznaj klas Animation ......................................................................................................................94
Tabela serwomotorów jako grupa docelowa ................................................................................94Obiekt Servo.Array jako grupa docelowa ......................................................................................94Tabela obiektów Servo.Array jako grupa docelowa ......................................................................94
Pierwszy segment animacyjny ...........................................................................................................95Chodzenie ..........................................................................................................................................98
Wios owanie (row) ......................................................................................................................98Marsz (walk) ...............................................................................................................................99Bieg (run) ..................................................................................................................................100
Lista polece ...................................................................................................................................100Obracanie robota .............................................................................................................................100Co dalej? .........................................................................................................................................101
6. Budowanie robota NodeBot sterowanego g osem ....................................................... 103Wykaz materia ów ............................................................................................................................103
P ytka BeagleBone Black ...........................................................................................................105Tworzenie projektu ...........................................................................................................................106Budowa obwodu przeka nika ...........................................................................................................106
Sterowanie obwodem za pomoc platformy Johnny-Five ...........................................................107Budowa obwodu mikrofonu .............................................................................................................108
Obs uga mikrofonu i przeka nika za pomoc kodu Johnny-Five .................................................108Tworzenie serwera polece ..............................................................................................................110Prosty kontroler g osowy wykorzystuj cy interfejs Web Speech API .................................................112Integracja serwera polece z obwodem przeka nika .........................................................................112Zaawansowany kontroler g osowy wykorzystuj cy gad et z Androidem ...........................................115
Aplikacja przeno na dla systemu Android ..................................................................................115Aplikacja dla gad etu z Androidem .............................................................................................120
Co dalej? .........................................................................................................................................123
7. Pokojowy zegar s oneczny ............................................................................................ 125Wykaz materia ów ............................................................................................................................126
Elementy z pianki PCV ...............................................................................................................126
Poleć książkęKup książkę
Spis tre ci 7
Budowanie zegara s onecznego .......................................................................................................128Wycinanie elementów i przygotowanie g ównej konstrukcji ..............................................................129
Przygotowanie p yty monta owej ...............................................................................................129Pod czenie i konfiguracja serwomotorów .......................................................................................130
Pod czenie serwomotorów .......................................................................................................130Konfiguracja serwomotorów ......................................................................................................131
Przygotowanie tarcz .........................................................................................................................132Przygotowanie cianek i podparcia tarczy podstawowej ...................................................................133
Przygotowanie cianek ..............................................................................................................133Umieszczenie tarcz ....................................................................................................................134Przygotowanie podparcia tarczy ................................................................................................134
Wykonanie ostatnich elementów i monta zegara .............................................................................136Przygotowanie ramienia azymutu ...............................................................................................136Przygotowanie uku wysoko ci ..................................................................................................137Wyci cie gnomonu ....................................................................................................................138Pod czenie „s o ca” ................................................................................................................138
Kod, który wszystkim steruje ...........................................................................................................139Program sundial.js ....................................................................................................................140Dane konfiguracyjne w programie sundial.js ..............................................................................140Szczegó y programu sundial.js ..................................................................................................141
Z ó wszystko razem! .......................................................................................................................143W cz zegar! ....................................................................................................................................144Co dalej? .........................................................................................................................................144
8. wiate ka-straszyde ka ................................................................................................. 145Wykaz materia ów ............................................................................................................................145
Dobór kontrolera matrycy ..........................................................................................................146Teoria ..............................................................................................................................................146
Co to jest matryca LED? ............................................................................................................147Budowa a cucha wiate ek .............................................................................................................147
Potrzebne narz dzia ...................................................................................................................148Przygotowanie matryc ...............................................................................................................149Przygotowanie kabla ..................................................................................................................150Diagnostyka ..............................................................................................................................153
Sterowanie matryc LED ..................................................................................................................153Przygotowanie p ytki Arduino .....................................................................................................153Dekorowanie a cucha wiate ek ...............................................................................................153Opcje konstruktora klasy Matrix .................................................................................................154Rysowanie wzorów na matrycy .................................................................................................154Uruchomienie programu testuj cego .........................................................................................154
Poleć książkęKup książkę
8 Spis tre ci
Utworzenie aplikacji WWW ...............................................................................................................155Narz dzia programistyczne ........................................................................................................155Korzystanie z generatora express ...............................................................................................155Utworzenie interfejsu API ...........................................................................................................156Utworzenie interfejsu u ytkownika .............................................................................................157Rozbudowa aplikacji ..................................................................................................................158
Co dalej? .........................................................................................................................................158
9. Lampa CheerfulJ5 .......................................................................................................... 159Wykaz materia ów ............................................................................................................................159Zbudowanie obwodu ........................................................................................................................160Kod do lampy CheerfulJ5 .................................................................................................................161
Po czenie z p ytk Arduino .......................................................................................................161Sterowanie diod RGB ...............................................................................................................162U ycie platformy Node.js i p tli REPL ........................................................................................163Zdefiniowanie mapy kolorów us ugi CheerLights ........................................................................163Dost p do us ugi CheerLights za pomoc interfejsu ThingSpeak API ..........................................164Korzystanie z interfejsu Twitter Streaming API ...........................................................................165
czno bezprzewodowa dzi ki zestawowi Spark WiFi Development Kit .........................................169Umieszczenie modu u Spark w obwodzie ..................................................................................169Zastosowanie wtyczki Spark-io ..................................................................................................170Prze czenie na zasilanie z akumulatora .....................................................................................170
Umieszczenie obwodu w obudowie .................................................................................................171Co dalej? .........................................................................................................................................172
10. Interaktywny panel LED RGB z p ytk BeagleBone Black ............................................ 173Wykaz materia ów ............................................................................................................................174
P ytka BeagleBone Black ...........................................................................................................174Adapter WiFi (opcjonalny) .........................................................................................................174Zewn trzny zasilacz 5 V (opcjonalny) ........................................................................................174Panel LED RGB ..........................................................................................................................175Czujniki .....................................................................................................................................175Inne komponenty .......................................................................................................................175
Pierwsze kroki: oprogramowanie .....................................................................................................175Oprogramowanie LEDScape ......................................................................................................175Pod czenie panelu RGB LED ....................................................................................................176
Pod czenie panelu RGB LED ...........................................................................................................176Czas na kod! U yj j zyka JavaScript .................................................................................................178
Uruchomienie skryptu testowego ...............................................................................................179Zastosowanie platformy Johnny-Five i obudowy beaglebone-io .................................................181
Poleć książkęKup książkę
Spis tre ci 9
Pod czenie fotorezystora ..........................................................................................................183Zmienianie kolorów za pomoc przyspieszeniomierza ................................................................185
Co dalej? .........................................................................................................................................187
11. Osobiste bezpiecze stwo, JavaScript i Ty .................................................................... 189Prosty czujnik ultrad wi kowy .........................................................................................................190
Implementacja ...........................................................................................................................190Urz dzenie ultrad wi kowe wysy aj ce SMS-y .................................................................................193
Implementacja ...........................................................................................................................193System monitoringu .........................................................................................................................194
Implementacja ...........................................................................................................................194Laser robi wra enie na wrogach i przyjacio ach ................................................................................195
Implementacja ...........................................................................................................................195Wska nik stanu, przyciski i diody LED ..............................................................................................196
Implementacja ...........................................................................................................................198Co dalej? .........................................................................................................................................201
12. Sztuczna inteligencja: robot BatBot .............................................................................. 203Sztuczna inteligencja — podstawy ...................................................................................................203
Roboty semiautonomiczne ........................................................................................................204Roboty autonomiczne ................................................................................................................204Robot BatBot .............................................................................................................................204Roboty zdalnie sterowane ..........................................................................................................204
Wykaz materia ów ............................................................................................................................205Uwagi dotycz ce materia ów .....................................................................................................206
Monta ............................................................................................................................................206Krok 1. Zdalne sterowanie ................................................................................................................207
Poruszanie robotem ..................................................................................................................208Sterowanie robotem ..................................................................................................................210Ustawianie czujnika ultrad wi kowego i odczyt sygna u .............................................................210
Krok 2. Autonomia ...........................................................................................................................211Implementacja algorytmu ..........................................................................................................213
Diagnostyka .....................................................................................................................................215Co dalej? .........................................................................................................................................216
13. Roboty delta i kinematyka ............................................................................................. 217Wykaz materia ów ............................................................................................................................218Anatomia robota delta ......................................................................................................................219Budowa robota Junky Delta .............................................................................................................220
Wprawienie robota w ruch .........................................................................................................223Okre lanie po o enia w kinematyce ...........................................................................................225
Bardziej zaawansowane roboty delta ................................................................................................229
Poleć książkęKup książkę
10 Spis tre ci
Robot TapsterBot ......................................................................................................................229Robot Army ...............................................................................................................................229
Co dalej? .........................................................................................................................................230
14. Interaktywne buty .......................................................................................................... 231Wykaz materia ów ............................................................................................................................231Opis elementów ...............................................................................................................................231Przygotowanie czujników .................................................................................................................234
Przylutowanie przewodów do czujników ....................................................................................234Umieszczenie czujników w butach .............................................................................................235Wyprowadzenie przewodów na zewn trz buta ...........................................................................235
Po czenie butów .............................................................................................................................235Przygotowanie przewodu spiralnego ..........................................................................................235
Pod czenie butów do p ytki Arduino ................................................................................................237Przygotowanie przewodów ........................................................................................................237Przylutowanie p ytki Arduino ......................................................................................................238Przymocowanie p ytki Arduino do prawego buta ........................................................................238
Tworzenie kodu opartego na platformie Johnny-Five ........................................................................238Pod czenie do platformy Johnny-Five .......................................................................................238Konfiguracja czujników ..............................................................................................................239Wy wietlanie danych z czujników ..............................................................................................239Przyk adowe zachowania ...........................................................................................................240
Co dalej? .........................................................................................................................................241
A. Dodatek ........................................................................................................................... 243Instalacja biblioteki Node.js ..............................................................................................................243Instalacja platformy Johnny-Five ......................................................................................................243
Diagnostyka ..............................................................................................................................244Dodatkowe informacje ...............................................................................................................244
Konfigurowanie sprz tu ....................................................................................................................244Arduino .....................................................................................................................................244BeagleBone Black ......................................................................................................................244Raspberry Pi .............................................................................................................................244Zestaw Particle WiFi Development Kit ........................................................................................245
Programowanie w systemie Android ................................................................................................247Instalacja oprogramowania Android Studio ................................................................................247Tworzenie projektu Android .......................................................................................................247Instalacja biblioteki Volley .........................................................................................................248
Skorowidz ...................................................................................................................... 249
Poleć książkęKup książkę
83
Sterowanie heksapodemza pomoc platformy
Johnny-Five5
Donovan Buck
W tym rozdziale dowiesz si , jak zbudowa prostegokrocz cego heksapoda, czyli sze cionogiego robota.Opisany tu heksapod, pokazany na rysunku 5.1, b dziemia po trzy stawy w ka dej nodze. Robot b dziesterowany za pomoc klasy Animation z platformyJohnny-Five. Klasa ta jest wykorzystywana do two-rzenia skryptów steruj cych serwomotorami w cza-sie. Oferuje funkcjonalno ci takie jak harmonogram,kluczowe ramki, p ynne przej cie jednej ramki w drug(ang. tweening) i funkcje wyg adzaj ce (ang. easingfunctions). Na koniec otrzymasz doskona platformdo budowania w przysz o ci z o onych, ciekawychrobotów.
Wykaz materia ów
Materia y u yte w tym rozdziale wymienione sw tabeli 5.1.
Sze serwomotorów Hitec HS-485HB b dzie tworzystawy biodrowe, sze modeli Hitec HS-645MG —
Rysunek 5.1. Gotowy heksapod
stawy segmentów udowych, a sze Hitec HS-5685MH — stawy segmentów piszczelowych. Firma Lynx-motion zaleca zastosowanie sze ciu serwomotorówHS-485HB i dwunastu HS-645MG, jednak modeleHS-5685MH oferuj wi kszy moment obrotowy nie-zb dny w stawach segmentów udowych. Do poru-szania robotem b dzie potrzebny maksymalnymoment obrotowy, jaki silniki mog osi gn .
Poleć książkęKup książkę
84 5. Sterowanie heksapodem za pomoc platformy Johnny-Five
Tabela 5.1. Wykaz materia ów do budowy robota
Liczba Element Przybli ona cena Numer/ ród o
1 Heksapod Phoenix 3DOF (bez serwomotorówi elementów elektronicznych)
950 z LM PHOE
1 Arduino Mega 2560 175 z MS MKSP5, AF 191, SF DEV-11061
1 Nak adka DFRobot Mega Sensor 75 z AZ B0098SJ1RS
6 Serwomotor HiTec HS-485HB 65 z LM S485HB, AZ B00944TF72
6 Serwomotor HiTec HS-645MG 120 z LM S645MG, AZ B003T6RSVQ
6 Serwomotor HiTec HS-5685MH 150 z LM S5685MH, AZ B003X6KT7C
1 adowarka 6 V – 12 V NiMH/NiCd 85 z LM USC-02, AZ B001DHC2LO
1 Akumulator 6 V / 2800 mAh Ni-MH 105 z LM BAT-05
Lista potrzebnych narz dzi jest skromna. Do podsta-wowego monta u b d potrzebne:
zestaw ma ych wkr taków, szczypce precyzyjne, wiertarka, wiert o o rednicy 3 mm, wiert o o rednicy 6 mm, opaski zaciskowe (kilkadziesi t sztuk).
Sterowanie robotemza pomoc wiersza polece
Podczas konstruowania robota b dziesz musia ste-rowa serwomotorami i zmienia ich pozycje, wyko-rzystuj c uk ad wspó rz dnych. P tla REPL oferowanaprzez platform Node.js doskonale nadaje si do tegocelu. Mo liwo wysy ania polece do serwomo-torów i obserwowania ich reakcji w czasie rzeczy-wistym jest bardzo fajna i przydatna.
Do sterowania robotem za pomoc p tli REPL b dziepotrzebny program phoenix.js. Wykonaj nast puj ceczynno ci:
1. Pobierz zawarto katalogu Buck.Animationz serwisu GitHub (https://github.com/rwaldron/javascript-robotics).
2. Zapisz zawarto katalogu w folderze roboczymna komputerze.
3. Przejd do katalogu roboczego, a nast pnie u yjpolecenia npm do zainstalowania zale no ci:
npm install
Powy sze polecenie powinno dostarczy wszystkichdanych potrzebnych do skonfigurowania robota i ste-rowania nim. Je eli nie zainstalowa e jeszcze plat-formy Node.js na swoim komputerze, zajrzyj docz ci „Instalacja platformy Node.js” w dodatku.
P tla REPL
Skrót REPL oznacza p tl odczytaj-przetwórz-wy wietl (ang. read-eval-print loop). Umo liwia onawprowadzanie informacji za pomoc wiersza polece , nast pnie przetwarzanie wprowadzonych danychza pomoc kodu i na koniec wy wietlenie wyników i oczekiwanie na kolejne polecenia.
Poleć książkęKup książkę
Wprowadzenie do programu phoenix.js 85
Wprowadzeniedo programu phoenix.js
Plik phoenix.js ze skryptem JavaScript zawiera pe nykod potrzebny do konfiguracji robota i sterowania nim.W dalszej cz ci rozdzia u okre lisz w tym kodziepewne warto ci konfiguracyjne, ale na razie tylkoprzejrzyj go i zapoznaj si z jego kilkoma podsta-wowymi funkcjonalno ciami.
Plik sk ada si z dwóch g ównych sekcji, w którychmo e by konieczne wprowadzenie zmian. Pierw-sza z nich — sekcja konfiguracyjna — znajduje siw pobli u pocz tku pliku. S w niej zdefiniowaneobiekty opisuj ce wszystkie pozycje, jakie przyjmujserwomotory podczas wykonywania przez heksapodakroków przesuwaj cych go naprzód i obracaj cychna boki. Te dane b dziesz musia zmieni tylko w przy-padku, gdy zastosujesz inne serwomotory ni wymie-nione w li cie.
Druga sekcja, w której koniecznie musisz wprowa-dzi zmiany, zawiera instrukcje tworz ce obiektyreprezentuj ce serwomotory poruszaj ce nogamirobota. Sekcja ta znajduje si wewn trz funkcjizwrotnej w metodzie five.Board().on("ready").Za pomoc w a ciwo ci offset musisz ustawiw rodkowej pozycji wszystkie 18 serwomotorów.Szczegó owe instrukcje, jak to zrobi , zawarte sw dalszej cz ci rozdzia u. Ponadto, je eli u ywaszinnego typu serwomotorów ni wymienione w tabeli,b dziesz musia zmieni warto ci w a ciwo ci rangeserwomotorów.
Definicja serwomotoru w obiekcie phoenix jestnast puj ca:
phoenix.r1c = new five.Servo({ pin:40, offset: 0, startAt: l.c, range: [50, 180], isInverted: true });// + 17 kolejnych takich definicji…
w a ciwo pin okre la numer pinu nak adki MegaSensor, do którego pod czony jest serwomotor.W a ciwo offset s u y do regulacji pozycjiserwomotoru.
W a ciwo startAt okre la pozycj pocz t-kow serwomotoru.W a ciwo range okre la minimaln i maksy-maln warto k ta, o jaki mo e obróci si ser-womotor.W a ciwo isInverted odwraca warto k taobrotu wysy an do serwomotoru (np. warto180 jest zamieniana na 0, 45 na 135 itd.).
Tabela 5.2 przedstawia funkcje serwomotorów orazpiny wykorzystane przez wszystkie serwomotoryporuszaj ce stawami robota.
Gdy przyjrzysz si dok adniej kodowi, zauwa ysz,e w konfiguracjach serwomotorów tylnych stawów
biodrowych w a ciwo isInverted przyjmujeprzeciwne warto ci ni w przypadku serwomoto-rów w pozosta ych stawach biodrowych z tej samejstrony robota. Jest tak dlatego, poniewa podczasprzesuwania przedniej nogi w przód dwie pozosta enogi musz by przesuwane wstecz. W dalszejcz ci kodu dla ka dej nogi zdefiniowana jest tabelaServo.Array:
phoenix.l1 = new five.Servo.Array([ phoenix.l1c, phoenix.l1f, phoenix.l1t]);// Pi kolejnych podobnych definicji
Po wywo aniu metody klasy Servo.Array, na przy-k ad z obiektu phoenix.l1, w ka dym obiekcie typuServo zawartym w powy szej klasie wywo ywanajest ta sama metoda z takimi samymi argumentami.Klasa Servo.Array jest równie wykorzystywana do
czenia serwomotorów w grupy animacyjne. Wi cejinformacji na ten temat znajduje si w dalszej cz cirozdzia u.
W pliku phoenix.js tworzone s równie nast puj ceobiekty typu Servo.Array:
coxa: sze serwomotorów tworz cych stawybiodrowe,
femur: sze serwomotorów w segmentachudowych,
tibia: sze serwomotorów w segmentachpiszczelowych,
legs: wszystkie serwomotory (osiemna cie sztuk)
Poleć książkęKup książkę
86 5. Sterowanie heksapodem za pomoc platformy Johnny-Five
Tabela 5.2. Lista serwomotorów
Serwomotor Skrót Model Pin
Staw biodrowy lewy 1 L1C HS-485HB 27
Segment udowy lewy 1 L1F HS-645MG 26
Segment piszczelowy lewy 1 L1T HS-5685MH 25
Staw biodrowy lewy 2 L2C HS-485HB 23
Segment udowy lewy 2 L2F HS-645MG 21
Segment piszczelowy lewy 2 L2T HS-5685MH 20
Staw biodrowy lewy 3 L3C HS-485HB 19
Segment udowy lewy 3 L3F HS-645MG 18
Segment piszczelowy lewy 3 L3T HS-5685MH 17
Staw biodrowy prawy 1 R1C HS-485HB 40
Segment udowy prawy 1 R1F HS-645MG 39
Segment piszczelowy prawy 1 R1T HS-5685MH 38
Staw biodrowy prawy 2 R2C HS-485HB 49
Segment udowy prawy 2 R2F HS-645MG 48
Segment piszczelowy prawy 2 R2T HS-5685MH 47
Staw biodrowy prawy 3 R3C HS-485HB 45
Segment udowy prawy 3 R3F HS-645MG 44
Segment piszczelowy prawy 3 R3T HS-5685MH 43
Ponadto tworzona jest tabela zawieraj ca tabele ser-womotorów, która b dzie u yta pó niej podczas ani-mowania u pienia i przebudzenia robota:
phoenix.joints = new five.Servo.Array([ phoenix.coxa, phoenix.femur, phoenix.tibia]);
Jak wida , w pliku phoenix.js tworzonych jest wieleobiektów typu Servo.Array, zawieraj cych ró nekombinacje serwomotorów. Dzi ki takiej konfiguracjiporuszanie segmentami nóg robota b dzie atwiejsze.Zadaniem kodu w tym pliku jest wysy anie polecetylko do wybranych grup serwomotorów.
Monta robota
Zanim poznasz klas Animation, musisz zmonto-wa robota. Wi kszo czynno ci wykonaj wed uginstrukcji dostarczonej przez Lynxmotion. S jednaktrzy miejsca, na które musisz zwróci szczególnuwag . Oto najwa niejsze etapy monta u:
1. Przygotowanie szkieletu. 2. Monta komponentów elektronicznych. 3. Przygotowanie serwomotorów. 4. Monta stawów biodrowych. 5. Monta segmentów udowych. 6. Monta segmentów piszczelowych.
Poleć książkęKup książkę
Monta robota 87
Przygotowanie szkieletuJednym z problemów, które musisz rozwi za , jestmonta komponentów elektronicznych. Firma Lynx-motion zaprojektowa a heksapoda Phoenix pod k temp ytki BotBoarduino. P ytka ta ma otwory monta owew innych miejscach ni Arduino Mega. Ponadto p ytkaArduino Mega jest du a. Jej monta wewn trz szkie-letu robota Phoenix jest idealnym, ale trudnym roz-wi zaniem. Musisz odsun platformy szkieletu natyle, aby dopasowa je do szeroko ci p ytki Mega.Na razie zamontuj p ytk Arduino po prostu na górnejplatformie szkieletu.
Na rysunku 5.2 widoczne s dwa ma e s upki dystan-sowe z tworzywa sztucznego, dopasowane do otwo-rów monta owych w p ytce Arduino Mega. Zwróuwag , e nie s one dopasowane idealnie. P ytka pozamontowaniu b dzie obrócona w stosunku do szkie-letu pod niewielkim k tem. Gdyby Ci to nie odpo-wiada o, wywier dodatkowe otwory monta owe.
Rysunek 5.2. Zmontowany szkielet robota
Od tego momentu do oznaczenia nóg heksapoda b dstosowane skróty R1, R2 i R3 (nogi prawe) oraz L1,L2 i L3 (nogi lewe).
Monta komponentówelektronicznychAby zamontowa elementy elektroniczne, wykonajnast puj ce czynno ci:
1. Przymocuj p ytk Arduino do s upków dystanso-wych 1/2".
2. Za ó nak adk silnikow na p ytk Arduino. 3. W zestawie Phoenix znajduje si wy cznik zasi-lania serwomotorów. Aby go zamontowa , trzebawykona otwór o rednicy 6 mm, poniewa ist-niej ce otwory w szkielecie zostan zas oni teprzez komponenty elektroniczne. Wywier wi cnowy otwór pod wy cznik, który zalecam zamon-towa w pobli u nogi R2. Zamontuj go w szkie-lecie w sposób pokazany na rysunku, przytnijprzewody na odpowiedni d ugo i pod cz jedo z czy zasilania nak adki silnikowej.
4. Akumulator Ni-MH mo na ci le wpasowapomi dzy s upki dystansowe i nie trzeba gomocowa adnymi dodatkowymi elementami.Wsu akumulator obrócony o 45° i umie go wew a ciwym po o eniu. Rysunek 5.3 przedstawiaurz dzenie na obecnym etapie monta u.
Rysunek 5.3. Szkielet robota z zamontowanymikomponentami elektronicznymi
Przygotowanie serwomotorówTeraz przygotuj serwomotory. Wykonaj nast puj ceczynno ci:
1. Pod cz wszystkie serwomotory stawów biodro-wych i segmentów udowych do nak adki MegaSensor zgodnie z tabel 5.2. Pod czenie serwo-motorów segmentów piszczelowych nie jest narazie konieczne, ale je eli chcesz, mo esz tozrobi .
2. Pod cz p ytk Arduino do portu USB komputera,a przewody zasilaj ce do nak adki. Rysunek 5.4przedstawia widok wszystkich komponentów naobecnym etapie monta u.
Poleć książkęKup książkę
88 5. Sterowanie heksapodem za pomoc platformy Johnny-Five
Rysunek 5.4. Pod czone wszystkie serwomotory
3. Nasadki wszystkich serwomotorów musz byustawione jak najdok adniej w rodkowej pozycji.W tym celu przed za o eniem nasadki na serwo-motor musisz ustawi go w rodkowej pozycji.W katalogu, w którym znajduje si plik phoenix.js,wpisz nast puj ce polecenie:node phoenix
4. Serwomotory po zainicjowaniu zostan ustawionew pozycjach odpowiadaj cych warto ci w a-ciwo ci startAt. Wszystkie trzeba ustawi
w pozycji 90°, wi c w p tli REPL wpisz nast -puj ce polecenie:ph.joints.to(90);
5. Wszystkie serwomotory zostan ustawione w po-zycji 90°. Teraz za ó nasadki na serwomotorystawów biodrowych i serwomotory segmentówudowych tak, aby otwory monta owe by y równo-leg e do osi. Nie zak adaj nasadek na serwomo-tory segmentów piszczelowych. Nasadki powinnyby za o one tak, aby otwory znalaz y si w po o-eniu pokazanym na rysunku 5.5.
Rysunek 5.5. Serwomotor ustawiony w pozycji 90°z poprawnie za o on nasadk
6. Wykonaj powy sz czynno dla wszystkich 12serwomotorów stawów biodrowych i segmentówudowych. Nasadki za ó dopiero po wy czeniuzasilania nak adki.
Monta stawów biodrowychW celu zamontowania serwomotorów stawów bio-drowych wykonaj nast puj ce czynno ci:
1. Z ó wszystkie elementy stawów biodrowychi segmentów udowych zgodnie z instrukcjamiproducenta. Zwró uwag , e trzy elementy slustrzanymi odbiciami trzech innych (patrz rysu-nek 5.6).
Rysunek 5.6. Zmontowane stawy biodrowe
2. Teraz przymocuj do szkieletu elementy stawówbiodrowych i segmentów udowych dwóch rod-kowych nóg (R2 i L2). Nie mocuj na razie nasadekdo szkieletu.
3. Przeci gnij przewody od serwomotorów pomi dzynak adk Mega Sensor a szkieletem robota.
4. Pod cz cztery serwomotory do nak adki MegaSensor. Tabela 5.2 zawiera informacje, gdzienale y pod czy ka dy serwomotor.
Serwomotory stawów biodrowychtrzeba przygotowa inaczej niserwomotory segmentów udowychi piszczelowych. Uwa aj, aby niepomyli wkr tów i nie uszkodziserwomotorów.
Poleć książkęKup książkę
Monta robota 89
5. Pod cz p ytk Arduino do komputera i akumu-latory do nak adki, uruchom program phoenix.jsi ustaw wszystkie serwomotory w pozycji 90°.Pami taj, e na razie zajmujesz si tylko stawamibiodrowymi.
6. Obró serwomotory stawów biodrowych tak, abynasadki na serwomotorach segmentów udowychby y skierowane w przód, a otwory monta owew nasadkach by y dopasowane do otworóww rusztowaniu. Serwomotory stawów biodrowychnie musz by umieszczone pod idealnym k temw stosunku do szkieletu. Nie przejmuj si , dopa-sujesz je pó niej.
7. Po cz nasadki ze szkieletem za pomoc wkr tów,ale jeszcze ich nie dokr caj.
8. Od cz przewód USB i przewody zasilaj ce,a nast pnie dokr wszystkie cztery wkr tyw ka dej nasadce serwomotoru.
9. Wykonaj kroki 1. – 8. dla nóg przednich (R1 i L1).Zwró uwag , e otwory monta owe w nasadceserwomotoru stawu biodrowego s obrócone podk tem 45°. Oba segmenty udowe b d ustawionepod k tem 45° w kierunku na wprost heksapoda.
10. Na koniec powtórz kroki 1. – 8. dla nóg tylnych(R3 i L3). Otwory monta owe równie b d obró-cone o 45°. Oba segmenty udowe b d usta-wione pod k tem 45° w kierunku do ty u hek-sapoda.
11. Uruchom program phoenix.js i przymocuj nasadkido serwomotorów segmentów udowych ustawio-nych w pozycji 90°.
12. Od cz przewód USB i przewody zasilaj ce. 13. Dokr cztery wkr ty w ka dej nasadce serwo-motoru.
Rysunek 5.7 przedstawia efekt dotychczasowej pracy.
Monta segmentów udowychAby zamontowa segmenty udowe, wykonaj nast -puj ce czynno ci:
1. Uruchom program phoenix.js i ustaw wszystkieserwomotory w pozycji 90°.
Rysunek 5.7. Szkielet robota ze wszystkimisze cioma stawami biodrowymi
2. Do segmentów udowych powinny ju by przy-mocowane nasadki. Za ó je na serwomotorysegmentów udowych wszystkich sze ciu nóg.Segmenty udowe b d ustawione na wprost, nie-mal równolegle do pod o a.
3. Zatrzymaj program phoenix.js, naciskaj c klawiszeCtrl+C, i od cz p ytk Arduino od komputera.Teraz mo esz bezpiecznie przykr ci segmentyudowe do serwomotorów. Rysunek 5.8 przed-stawia zamontowane segmenty.
Rysunek 5.8. Wszystkie segmenty udowe juzamontowane
Monta segmentówpiszczelowychMonta jest prawie zako czony, pozosta y tylko seg-menty piszczelowe. Wykonaj nast puj ce czynno ci:
Poleć książkęKup książkę
90 5. Sterowanie heksapodem za pomoc platformy Johnny-Five
1. Przymocuj sze segmentów piszczelowych doserwomotorów. Zwró uwag , e trzy elementys lustrzanymi odbiciami trzech innych.
2. Pod cz przewody od serwomotorów segmentówpiszczelowych do nak adki, ale nie mocuj jesz-cze serwomotorów do segmentów udowych.
Po ponownym uruchomieniu programuphoenix.js porusz si serwomotorywszystkich stawów. Je eli robot jestpo o ony p asko na stole, mo ezmieni po o enie i spowodowapowa ne zamieszanie. Od tej chwiliprzed uruchomieniem programuphoenix.js musisz trzyma robotanad pod o em. Mo esz go trzymaw r ce, albo lepiej — zbudowaspecjalne stanowisko testowe i z niegokorzysta . B d ostro ny, je elipostanowisz trzyma robota w d oni— potrafi uszczypn .
3. Uruchom program i ustaw wszystkie serwomo-tory w pozycji 90°.
4. Przymocuj serwomotory segmentów piszczelo-wych do segmentów udowych. Ko cówki nógpowinny znajdowa si pod nasadkami serwo-motorów segmentów piszczelowych. Ustaw seg-menty pod niewielkim k tem w kierunku dowewn trz szkieletu.
5. Od cz przewód USB i zasilanie i przykr serwo-motory segmentów piszczelowych do segmen-tów udowych.
Teraz jest odpowiedni moment, aby za pomoc opa-sek zaciskowych uporz dkowa przewody i przy-mocowa je w odpowiednich miejscach. Pami tajo pozostawieniu odpowiedniego zapasu, aby ka danoga mog a porusza si w pe nym zakresie. Niepozostawiaj zbyt du ego zapasu, aby przewody niezaczepia y o nogi. Rysunek 5.9 przedstawia robotaz zamontowanymi segmentami piszczelowymi.
Rysunek 5.9. Zamontowane segmenty piszczelowei serwomotory wszystkich stawów ustawione podk tem 90°
Uk ad wspó rz dnych
W tym projekcie dla ka dej nogi b dzie zastosowanyosobny, lokalny uk ad wspó rz dnych. Zamiast defi-niowania po o enia ko cówek nóg w przestrzeni zapomoc trzech wspó rz dnych X, Y, Z b d stoso-wane warto ci k tów obrotów serwomotorów. Jest totzw. przegubowy uk ad wspó rz dnych. Uk ad tennie pozwala stosowa tak zaawansowanych metodanimacji jak np. kinematyka odwrotna w globalnymuk adzie wspó rz dnych, ale lepiej nadaje si do po-znania klasy Animation.
Poniewa w programie phoenix.js wykorzystany jestprzegubowy uk ad wspó rz dnych, ka dy serwomotorustawiany jest pod okre lonym k tem. Obracany jestrównie lokalny uk ad wspó rz dnych tak, aby osieby y ustawione równolegle. Ponadto odwracane skierunki obrotów po lewej i prawej stronie robota, jakrównie po stronie przedniej i tylnej.
Taka konfiguracja powoduje, e poruszanie robotemjest maksymalnie u atwione. Je eli zamierzasz opro-gramowa w asny sposób poruszania robotem, przy-datne jest narysowanie uk adu wspó rz dnych na sta-nowisku testowym. rodek uk adu przyjmij w rodkuszkieletu robota, a jako jednostk miary ustal jedencentymetr.
Poleć książkęKup książkę
Regulacja serwomotorów 91
Regulacja serwomotorów
Do tej pory stara e si jak najdok adniej dopasowanasadki serwomotorów, jednak wypustki ograniczajpo o enia przek adni i wszystkie nasadki mog byobrócone o kilka stopni. Do zniwelowania tego efektuwykorzystaj w a ciwo offset w obiektach kon-figuracyjnych serwomotorów.
Kalibracja wszystkich serwomotorów u atwi procesprogramowania animacji robota. Je eli podczas wyko-nywania kroku w przód k t obrotu ka dego stawubiodrowego b dzie dok adnie taki sam, wtedy zaka dym razem b dziesz musia wylicza tylko jedenparametr ruchu. W d u szej perspektywie op aci sipo wi ci czas na wykonanie tej wst pnej pracy.
Regulacja stawów biodrowychNajpierw wyreguluj serwomotor stawu biodrowegoL2C:
1. Gdy popatrzysz na robota z góry (rysunek 5.10),segment udowy powinien by ustawiony podk tem prostym w stosunku do robota (równo-legle do osi x uk adu wspó rz dnych). Je eli u y-wasz stanowiska testowego z narysowanym uk a-dem wspó rz dnych, powiniene móc to atwosprawdzi . Je eli serwomotor L2C ma obróci sizgodnie ze wskazówkami zegara, nale y ustawigo pod k tem wi kszym ni 90°. Je eli ma obró-ci si w przeciwnym kierunku, zmniejsz powy szwarto . Zwi kszaj za ka dym razem k t o kilkastopni, aby znale warto , przy której serwo-motor b dzie ustawiony najdok adniej. Nie u y-waj u amkowych warto ci, poniewa platformaJohnny-Five wysy a do serwomotorów tylko war-to ci ca kowite:ph.joints.to(91); // Lepsze ustawienieph.joints.to(94); // O, za daleko!ph.joints.to(93); // Super!
2. Po okre leniu dok adnej warto ci musisz od niejodj liczb 90, aby obliczy warto w a ci-wo ci offset. W tym przypadku b dzie to dzia a-nie 93–90 = 3, wi c w a ciwo offset otrzymawarto 3. Warto ta pe ni dok adnie tak samrol jak trymer w nadajniku do zdalnego stero-
Rysunek 5.10. Wyregulowany staw biodrowy
wania. Jej przeznaczeniem jest ustawienie w rod-kowej pozycji serwomotoru obróconego o kilkastopni.
3. W kodzie phoenix.js odszukaj wiersz, w którymtworzony jest obiekt l2c, i zmie warto w a ci-wo ci offset:l2c = new five.Servo({ pin: 27, invert: true, offset: 3, startAt: 90, range: [50, 130]})
4. Powtórz kroki 1. i 2. dla serwomotoru R2C.Pami taj, e ten serwomotor jest odwróconyw stosunku do serwomotoru po lewej stronie.B dziesz musia odwróci warto ci k ta obrotu.
5. Teraz wyreguluj serwomotor L1C. Segment jestustawiony pod k tem ok. 45° w stosunku doosi x, ale musi by do niej równoleg y, wi custaw serwomotor pod k tem 45°. Segmentpowinien ustawi si do dok adnie, jednakb dziesz musia wyregulowa jego po o enie.Ca y proces wygl da nast puj co:ph.joints.to(45); // Znacznie lepiejph.joints.to(47); // le, nie tak!ph.joints.to(44); // Super!
6. Po wyregulowaniu odejmij od uzyskanej warto ciliczb 90. B dzie to warto (ujemna) w a ciwo cioffset.
7. Zmie warto w a ciwo ci offset w obiekciel1c. Cz sto zdarza si , e jest to du a liczba,np. 20.
Poleć książkęKup książkę
92 5. Sterowanie heksapodem za pomoc platformy Johnny-Five
8. Powtórz kroki 4. – 6. dla pozosta ych trzechserwomotorów stawów biodrowych, a nast p-nie zatrzymaj i uruchom ponownie programphoenix.js. Teraz wszystkie serwomotory sta-wów biodrowych po ustawieniu pod k tem 90°powinny by równoleg e do osi x.
Regulacja segmentów udowychRegulacja segmentów udowych jest podobna do opi-sanej wy ej regulacji stawów biodrowych. Jak po-przednio, segmenty udowe po ustawieniu serwomo-torów w pozycji 90° powinny by równoleg e do osi x:
1. Patrz c na robota od przodu lub od ty u, wyregulujserwomotory segmentów udowych tak, aby seg-menty by y skierowane równolegle do pod o a.
2. Od otrzymanych warto ci odejmij liczb 90, abyobliczy warto ci w a ciwo ci offset.
3. Ustaw w a ciwo ci offset dla wszystkich sze ciuobiektów serwomotorów segmentów udowychl1f, r1f, l2f, r2f, l3f oraz r3f. Rysunek 5.11przedstawia wyregulowane segmenty.
Rysunek 5.11. Wyregulowany segment udowy
Regulacja segmentówpiszczelowychNa koniec wyreguluj segmenty piszczelowe. Tym razemmusisz wyregulowa ka dy serwomotor tak, aby poustawieniu go w pozycji 90° linia poprowadzona odrodka nasadki serwomotoru segmentu piszczelo-
wego do jego ko ca tworzy a z pod o em k t prosty(patrz rysunek 5.12).
Rysunek 5.12. Wyregulowany segment piszczelowy
Po wyliczeniu wszystkich warto ci w a ciwo cioffset wpisz je w pliku phoenix.js w definicjachobiektów l1t, r1t, l2t, r2t, l3t i r3t.
Okre lenie zakresów ruchuserwomotorów
Teraz okre l zakres ruchu ka dego serwomotoru.Wi kszo serwomotorów nie obraca si w pe nymzakresie 180°. Jest to normalne. Aby uzyska pe nyzakres, mo e by wymagane przeprogramowanieserwomotoru lub w czenie pomi dzy serwomotorema nak adk silnikow uk adu zwi kszaj cego zakresobrotu. W przypadku heksapoda nie b dzie potrzebnype ny zakres, wi c nie musisz si tym przejmowa .W rzeczywisto ci b dziesz musia zakres jeszcze bar-dziej ograniczy , aby serwomotory nie ustawia y siw pozycjach powoduj cych zaczepianie nóg o siebie.
W tej cz ci b dziesz za ka dym razem sterowatylko jednym serwomotorem. Wykonaj nast puj ceczynno ci:
1. Jak poprzednio, zacznij od stawu biodrowegonogi L2. Aby okre li w a ciwe granice, musiszobraca serwomotorem w obu kierunkach. Ser-womotor jest w stanie obraca si w wi kszymzakresie, ni jest to konieczne.
2. Metod prób i b dów okre l zakres obrotóww obu kierunkach. Gdy przy pewnej warto ci ser-womotor przestanie reagowa , b dzie to znak, ewykroczy e poza zakres ruchu. Je eli na przy-k ad serwomotor obróci si przy warto ci 165,
Poleć książkęKup książkę
Chodzenie jest trudne! 93
ale nie b dzie reagowa dla warto ci 166, b dzieto oznacza , e górn granic zakresu stanowiwarto 165. Proces regulacji wygl da nast -puj co:ph.l2c.to(60); // Wci jest miejsceph.l2c.to(58); // To dobra pozycjaph.l2c.to(122); // Segmenty udowe zaczepiaj // o siebieph.l2c.to(119); // SUPER!
3. W pliku phoenix.js odszukaj wiersz, w którymtworzony jest obiekt l2c, i we w a ciwo ci rangewpisz okre lone przed chwil warto ci:l2c = new five.Servo({ pin:27, invert: true, offset: 3, startAt: 90, range: [58, 119]})
4. Powtórz kroki 1. – 3. dla pozosta ych pi ciuserwomotorów stawów biodrowych i zmiew a ciwo ci range w obiektach l1c, l3c, r1c,r2c oraz r3c.W przypadku serwomotorów segmentów udo-wych i piszczelowych zakres ruchu jest znaczniewi kszy, poniewa istnieje mniejsze prawdopo-dobie stwo, e podczas obracania serwomo-torów nogi b d zaczepia o siebie. W praktyceprawdopodobnie b dziesz wykorzystywa pe nyzakres ruchu serwomotorów zarówno segmen-tów udowych, jak i piszczelowych.
5. Poeksperymentuj i znajd warto ci, przy którychserwomotory ju si nie obracaj . Mo eszzastosowa t sam metod prób i b dów jakw przypadku serwomotorów stawów biodrowych.Pami taj, e zakresy ruchu wszystkich serwo-motorów segmentów udowych powinny by takiesame (lub podobne).
6. Zmie w a ciwo ci range dla wszystkich obiek-tów serwomotorów segmentów udowych: l1f,l2f, l3f, r1f, r2f i r3f.
7. Zakresy ruchu wszystkich serwomotorów seg-mentów piszczelowych równie musz by takiesame. Okre l te zakresy.
8. W pliku phoenix.js zmie w a ciwo ci rangew obiektach l1t, l2t, l3t, r1t, r2t, r3t.
Korzy ci z okre lenia rzeczywistego zakresu ruchuserwomotorów mog nie by oczywiste. Gdybyustawi k t obrotu na 175° dla serwomotoru, którymo e ustawi si pod k tem 165°, wtedy ko ce nógnie zostan ustawione w pozycjach, których oczekujeprogram phoenix.js, i klasa Animation przyjmie, erobot wci si porusza, mimo e serwomotor si nieobraca. Nie b dzie to po dany efekt.
Po zako czeniu konfiguracji obiekty serwomotorówsegmentów udowego i piszczelowego nogi L2 b dwygl da y jak poni ej:
l2f = new five.Servo({ pin:22, invert: true, offset: -2, startAt: 180, range: [25, 165]}),l2t = new five.Servo({ pin:21, invert: true, offset: 4, startAt: 180, range: [21, 159]}),
Po ustawieniu warto ci w a ciwo ci offset i rangedla wszystkie 18 serwomotorów czas na zabaw !Uruchom robota!
Chodzenie jest trudne!
Oczywi cie jest mo liwe poruszanie robotem bezkorzystania z klasy Animation, ale wymaga to w o e-nia mnóstwa pracy. By mo e wydaje Ci si , e prze-suni cie robota w przód wymaga jedynie postawieniako ca nogi na pod o u i obrócenia stawu biodrowegowstecz. Problem jednak polega na tym, e ko cówkanogi zakre la uk o rodku znajduj cym si w osiobrotu stawu biodrowego, jak pokazuje rysunek 5.13.Ka da noga zakre la wtedy w asny uk i utrudnia funk-cjonowanie innych nóg. Z tego powodu chodzeniewygl da bardzo niezgrabnie.
Aby zniwelowa ten efekt i aby ko cówka nogi poru-sza a si po linii prostej równolegle do kierunku ruchurobota, jak pokazuje rysunek 5.14, trzeba segment
Poleć książkęKup książkę
94 5. Sterowanie heksapodem za pomoc platformy Johnny-Five
sterowany serwomotor lub grupa serwomotorów.Grup mo e by równie tabela serwomotorów, czyliobiekt Servo.Array, lub tabela serwomotorówi obiektów Servo.Array. Poniewa mo e to wyda-wa si skomplikowane, poznaj kilka przyk adów.
Tabela serwomotorówjako grupa docelowaW listingu 5.1 trzy serwomotory wchodz ce w sk adnogi L1 s poruszane niezale nie.
Listing 5.1. Tabela serwomotorów
board = new five.Board().on("ready",function() { var l1c = new five.Servo(27); var l1f = new five.Servo(26); var l1t = new five.Servo(25); var myAnimation = new five.Animation([ l1c, l1f, l1t]); // …});
Rysunek 5.13. Ten robot chodzi, jakby by pijany
Rysunek 5.14. Taka sekwencja ruchów zapewniap ynne chodzenie
piszczelowy przesuwa do wewn trz i na zewn trz.Ale zaczekaj! Podczas przesuwania segmentu pisz-czelowego do wewn trz i na zewn trz ko cówka nogiporusza si w gór i w dó w stosunku do pod o a,wi c trzeba jeszcze podnosi i opuszcza segmentudowy, aby skompensowa ten efekt.
Aby robot porusza si p ynnie, wszystkie 18 serwo-motorów musi nieustannie ze sob wspó pracowaw zgrany sposób jak w orkiestrze. To zadanie mo ewydawa si bardzo trudne, ale platforma Johnny-Fivei klasa Animation pozwala nad wszystkim zapa-nowa .
Poznaj klas Animation
Klasa Animation jest wykorzystywana do sterowaniarobotami za pomoc skryptów definiuj cych ich ruchy.Klasa ta stanowi opakowanie klasy Servo. Oferujeharmonogramy, kluczowe ramki, p ynne przej ciaz jednej ramki do drugiej (ang. tweening) i punktykontrolne (ang. cue points). Grup docelow stanowi
Taki kod pozwala wys a do ka dego z serwomoto-rów inn warto w dowolnym punkcie kontrolnymharmonogramu.
Obiekt Servo.Arrayjako grupa docelowaWynik wykonania kodu przedstawionego w listingu5.2 jest taki sam jak poprzedniego kodu. Zwró jednakuwag , e jako domy lna grupa docelowa przeka-zywany jest jeden obiekt Servo.Array. Podobniejak poprzednio, grupa jest jednowymiarow tabel .
Tabela obiektów Servo.Arrayjako grupa docelowaW ostatnim listingu 5.3 serwomotory s zgrupowanewed ug typów stawów. Dzi ki temu mo liwe jest ste-rowanie serwomotorami stawów biodrowych jakojedn grup , serwomotorami segmentów udowych
Poleć książkęKup książkę
Pierwszy segment animacyjny 95
Listing 5.2. Obiekt Servo.Array
board = new five.Board().on("ready", function() { var l1c = new five.Servo(27); var l1f = new five.Servo(26); var l1t = new five.Servo(25); var l1 = new Servo.Array([ l1c, l1f, l1t ]); var myAnimation = new five.Animation(l1); // …});
jako drug grup i serwomotorami segmentów pisz-czelowych jako trzeci . Przekazanie warto ci k to-wej w argumencie metody obiektu reprezentuj cegoca grup powoduje przekazanie tej samej warto ciw argumentach metod wszystkich obiektów serwo-motorów w danej grupie.
Listing 5.3. Tabela obiektów Servo.Array
board = new five.Board().on("ready",function() {
var l1c = new five.Servo(27); var l1f = new five.Servo(26); var l1t = new five.Servo(25); var l2c = new five.Servo(23); var l2f = new five.Servo(22); var l2t = new five.Servo(21); var coxa = new Servo.Array([ l1c, l2c ]); var femur = new Servo.Array([ l1f, l2f ]); var tibia = new Servo.Array([ l1t, l2t ]); // Dwuwymiarowa tabela tabel var myAnimation = new five.Animation([ coxa, femur, tibia ]); // …});
Dzi ki zastosowaniu klasy Servo.Array mo naw jednej grupie docelowej umieszcza serwomo-tory i inne obiekty Servo.Array. Grup serwomo-torów w tabeli Servo.Array mo na sterowa taksamo jak ka dym innym urz dzeniem.
Teraz przyjrzyj si wierszowi pliku phoenix.js, w którymtworzona jest instancja klasy Animation i definio-wana domy lna grupa docelowa:
var legsAnimation = newfive.Animation(phoenix.legs);
W powy szym wierszu domy lna grupa docelowaphoenix.legs jest obiektem typu Servo.Arrayzawieraj cym 18 serwomotorów robota. Ta domy lnagrupa wymaga okre lenia warto ci dla ka dego ser-womotoru w ka dym punkcie kontrolnym harmo-nogramu.
Pierwszy segmentanimacyjny
Po utworzeniu obiektu animacyjnego mo na zdefinio-wa segmenty animacyjne. Segment animacyjny tokrótka sekwencja ruchów. Segmenty to miejsca,w których zdefiniowane s wszystkie k ty obrotówserwomotorów, punkty kontrolne, czasy trwania ruchui funkcje wyg adzaj ce. Krótko mówi c, jest to miej-sce, w którym dzieje si ca a magia animacyjna.
Segmenty animacyjne s wykonywane synchroniczne.Po umieszczeniu w kolejce animacyjnej wykonywanes zgodnie z zasad „pierwszy wchodzi, pierwszywychodzi”. Po uruchomieniu programu phoenix.jssegmenty mo na wywo ywa z p tli REPL. Poni szaseria polece powoduje, e robot powstaje, idzie,zatrzymuje si i zasypia:
> node phoenixph.stand();ph.walk();ph.stop();ph.sleep();
Poleć książkęKup książkę
96 5. Sterowanie heksapodem za pomoc platformy Johnny-Five
Powy sze segmenty zosta y ju zdefiniowane w pro-gramie phoenix.js, wi c nie musisz ich tworzy aniedytowa . Poni ej przedstawione s fragmenty pro-gramu, które u atwi Ci poznanie zawarto ci seg-mentów animacyjnych.
Przyjrzyj si pokazanemu w listingu 5.4 pierwszemuzdefiniowanemu w pliku phoenix.js segmentowi ani-macyjnemu.
Opcjonalna w a ciwo target definiuje grupanimowanych serwomotorów. Po utworzeniuobiektu typu Animation domy ln warto ci tejw a ciwo ci jest grupa docelowa phoenix.legs.W tym segmencie jest ona zast powana grupphoenix.altJoints. Wpisuj c inn warto tejw a ciwo ci, mo na sterowa inn grup ser-womotorów. Wszystkie serwomotory w grupies skojarzone z tym samym harmonogramemi kolejk animacyjn . Je eli we w a ciwo citarget nie wska esz w asnej grupy, wtedyw danym segmencie zostanie u yta domy lnagrupa docelowa.W opcjonalnej w a ciwo ci duration okre lanyjest w milisekundach czas trwania animacji. Zwróuwag , e zmiana pr dko ci animacji podczasodtwarzania segmentu powoduje wyd u enie lubskrócenie jego czasu trwania (domy lnie w a-ciwo ta ma warto 1000 ms).
Opcjonalna w a ciwo cuePoints (punktykontrolne) jest jednowymiarow tabel war-to ci z zakresu od 0,0 do 1,0. Ka dy segmentanimacyjny ma w asny harmonogram. W har-monogramie mo na zdefiniowa dowoln liczbpunktów kontrolnych, w których urz dzenia ssterowane za pomoc kluczowych ramek. Punktykontrolne i kluczowe ramki nie musz by roz-mieszczone w regularnych odst pach czasu.W tym przypadku, gdy czas trwania segmentujest równy 500 ms, punkty kontrolne odpowia-daj warto ciom 50 ms, 150 ms, 350 ms i 500ms. Zmiana czasu trwania animacji powodujezmian skali czasu, w którym realizowane swszystkie punkty kontrolne (domy lnie s topunkty [0, 1]).Ta funkcja jest wywo ywana po zako czeniuwykonywania segmentu animacyjnego.W a ciwo keyFrames (kluczowe ramki) jestw a ciwo ci obowi zkow . Jest to dwuwymia-rowa tabela. Pierwszy wymiar odpowiada urz -dzeniom w grupie docelowej i jego d ugo musiby równa d ugo ci grupy. Aby okre li urz dze-nia powi zane z ka dym elementem pierwszegowymiaru, przyjrzyj si kodowi przedstawionemuw listingu 5.5, w którym zdefiniowana jest grupadocelowa phoenix.altJoints.
Listing 5.4. Segment animacyjny powoduj cy powstanie robota
var stand = { target: phoenix.altJoints, duration: 500, cuePoints: [0, 0.1, 0.3, 0.7, 1.0], oncomplete: function() { phoenix.state = "stand"; }, keyFrames: [ ///5 [null, { degrees: 90 }], [null, { degrees: 66 }], [null, false, false, { degrees: 120, easing: easeOut}, { degrees: 94, easing: easeIn}], [null, false, { degrees: 106}, false, { degrees: 93 }] ]};
Poleć książkęKup książkę
Pierwszy segment animacyjny 97
Listing 5.5. Grupa docelowa phoenix.altJoints
altJoints = new five.Servo.Array([ phoenix.innerCoxa, phoenix.outerCoxa, phoenix.femurs, phoenix.tibia]),
W grupie phoenix.altJoints znajduj si obiektyreprezentuj ce cztery urz dzenia: phoenix.midCoxa,phoenix.outerCoxa, phoenix.femur i phoenix.tibia. Ka dy z nich jest obiektem typu
Servo.Array, zawieraj cym dwa, cztery lub szeobiektów reprezentuj cych serwomotory:
element keyFrames[0] jest skojarzony z ser-womotorami rodkowych stawów biodrowych,
element keyFrames[1] jest skojarzony z serwo-motorami przednich i tylnych stawów biodrowych,
element keyFrames[2] jest skojarzony z serwo-motorami segmentów udowych,
element keyFrames[3] jest skojarzony z serwo-motorami segmentów piszczelowych.
Ka da tabela keyFrames zawiera od 1 do n elemen-tów, gdzie n oznacza liczb punktów kontrolnych.Przeanalizujmy kilka tabel z segmentu stand powo-duj cego powstanie robota. Najpierw przyjrzyjmy sielementowi keyFrames[0] odpowiadaj cemu grupieinnerCoxa:
[null, false, { degrees: 88 }],
W elemencie keyFrames[0][0] zdefiniowana jestwarto dla pierwszego urz dzenia w grupie docelo-wej, wykorzystywana w punkcie kontrolnym w chwili0 ms. W elemencie keyFrames[0][1] zdefinio-wana jest warto wykorzystywana w punkcie kon-trolnym 50 ms. Do okre lenia warto ci po rednichw przedziale czasu od 0 ms do 50 ms wykorzysty-wana jest funkcja wyg adzaj ca.
Pierwsza warto w pierwszym elemencie keyFrames jest równa null. Oznacza ona, e animacja
powinna rozpoczyna si od bie cej pozycji urz -dzenia. Je eli urz dzenie jest zdefiniowane za pomocobiektu Servo.Array, wtedy bie ca pozycja jest
odczytywana z pierwszego elementu tego obiektu.Je eli warto null znajduje si w innym elemencietabeli keyFrames, wówczas klasa Animation pomijaramk dla danego urz dzenia. W tej tabeli zdefinio-wane s warto ci tylko pierwszych dwóch punktówkontrolnych. We wszystkich pozosta ych wykorzy-stywana jest ostatnia zdefiniowana warto (tj. 70).
Teraz przyjrzyjmy si elementowi keyFrames[3](odpowiadaj cemu serwomotorom segmentów pisz-czelowych):
[null, { degrees: 110}, false,{ degrees: 110}]
Je eli element w tabeli keyFrames zawiera wartofalse, wówczas klasa Animation kopiuje wartoobliczon dla poprzedniego elementu. Umieszczeniew pierwszych dwóch elementach warto ci nulli false powoduje, e klasa Animation w ogólenie b dzie sterowa urz dzeniami, dopóki nie miniedrugi punkt kontrolny.
Je eli w elemencie zostanie podana liczba, wtedy klasaAnimation doda j do poprzedniej warto ci.
Ten segment animacyjny powoduje, e heksapodprzechodzi z pozycji u pienia w pozycj wyj ciow(pozycja wyj ciowa jest przyjmowana jako pozycjastartowa w wi kszo ci segmentów animacyjnych).
Gry porównasz kod z listingu 5.5z kodem w pliku phoenix.js, zauwa yszró nice. W pliku zamiast jawnychwarto ci liczbowych s u yte elementyz tabeli h. Tabela ta, zdefiniowanana pocz tku pliku, zawiera informacjeo pozycjach serwomotorów dlawszystkich podstawowych krokówrobota. Dzi ki zapisaniu tych warto ciw jednym miejscu atwiej je stosowai modyfikowa w dalszej cz ci kodu.Poniewa zastosowanie elementówtabeli powoduje, e kod jest bardziejskomplikowany, w opisywanychprzyk adach zosta y u yte liczby.
Poleć książkęKup książkę
98 5. Sterowanie heksapodem za pomoc platformy Johnny-Five
Chodzenie
Sekwencje kroków robota dziel si na dwie g ównekategorie: statyczne i dynamiczne. Podczas wykony-wania kroków statycznych rodek ci ko ci robotaw ka dym momencie jest utrzymywany na stabilnymoparciu (przynajmniej na trzech nogach). Innymi s owyrobot nie przewróci by si , gdyby w dowolnym mo-mencie zosta zatrzymany w pó kroku. Podczas wyko-nywania kroku dynamicznego przez pewien czaswyst puje stan nierównowagi. Program phoenix.jswykonuje tylko kroki statyczne.
Jak wspomnia em wcze niej, sekwencja kroków hek-sapoda jest bardziej skomplikowana, ni mog oby sito wydawa . Aby przesun robota w przód, nie wy-starczy poruszy jedynie stawami biodrowymi, ponie-wa spowodowa oby to obrócenie si ko cówek nógwokó osi serwomotorów stawów biodrowych. Ko -cówka nogi musi porusza si wzd u linii prostej.
Przesuwanie ko cówki nogi wzd u linii prostejwymaga skoordynowania ruchów wszystkich trzechserwomotorów nogi. Przesuwanie w przód ca egoszkieletu robota wymaga wspó pracy wszystkich 18serwomotorów, które musz ustawia ko cówki nógw okre lonych miejscach na pod o u. Je eli serwo-
motory nie b d wspó pracowa , robot b dzie pow ó-czy nogami po pod o u i kroki nie b d p ynne.
W programie phoenix.js zdefiniowane s cztery rodzajekroków: wios owanie (row), kraul (crawl), marsz(walk) i bieg (run). W ka dym rodzaju kroku przy-j ty jest odcinek przesuni cia (odleg o pomi dzypocz tkow a ko cow pozycj ko cówki nogi)równy 8 cm. Teraz przyjrzyjmy si dok adniej ka -demu rodzajowi kroku.
Wios owanie (row)Sekwencja ruchów w tym kroku (zwanym równiefal ) powoduje przesuwanie nóg parami do przodu,a nast pnie przesuwanie szkieletu do przodu. Nie jestto elegancki krok (patrz rysunek 5.15), ale prostyw implementacji, poniewa wymaga umieszczeniaw tabeli keyFrames tylko o miu elementów.
Do zdefiniowania ruchu nogi potrzebne s tylkotrzy punkty kontrolne. Pierwszy z nich zawierawarto null lub false, wi c ruch nogi rozpo-czyna si od bie cych pozycji urz dze , niezale -nie od tego, jakie one s . Drugi punkt kontrolny de-finiuje moment zgi cia nogi, natomiast trzeci — jejko cowy ruch. Ilustruje to listing 5.6.
Rysunek 5.15. Fala
Listing 5.6. Wios owanie
var row = { target: phoenix.jointPairs, duration: 1500,
Poleć książkęKup książkę
Chodzenie 99
cuePoints: [0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.85, 1.0], loop: true, fps: 100, onstop: function() { phoenix.att(); }, oncomplete: function() { }, keyFrames: [ [null, null, null, null, false, null, {degrees: 56}, false, {degrees: 70}, {degrees: 91}], [null, null, null, null, false, { step: 30, easing: easeOut }, {degrees: 116}, false, {degrees: 120}, {degrees: 119}], [null, null, null, null, false, { step: -20, easing: easeOut }, {degrees: 97}, false, {degrees: 110}, {degrees: 116}], // …dwie nast pne pary nóg ]}
Marsz (walk)W tym kroku (patrz listing 5.7) cztery nogi pozostajprzez ca y czas w kontakcie z pod o em. Krok rozpo-czyna si od przesuni cia jednej nogi do przodu. Gdynoga zostanie zgi ta, do przodu przesuwana jest druganoga. Pierwsza noga oprze si na pod o u w tymsamym momencie, w którym zostanie zgi ta druganoga. Jednocze nie do przodu przesuwana jest trze-cia noga.
Listing 5.7. Marsz
Graficzne przedstawienie kluczowych ramek dla tegokroku jest trudne, wi c ich opis zosta pomini ty. Gdy-by chcia zbada , jak jest realizowany ten krok, ustaww a ciwo duration segmentu na 20 000 ms. Krokb dzie wtedy wykonywany w zwolnionym tempie.
var walk = { duration: 2000, cuePoints: [0, 0.071, 0.143, 0.214, 0.286, 0.357, 0.429, 0.5, 0.571, 0.643, 0.714, 0.786, 0.857, 0.929, 1], loop: true, loopback: 0.5, fps: 100, onstop: function() { phoenix.att(); }, oncomplete: function() { }, keyFrames: [ [null, null, {degrees: 82}, null, null, null, null, {degrees: 82}, null, {56}, null, null, null, null, {degrees: 82}], // r1c [null, { step: 30, easing: easeOut }, {degrees: 119, easing: easeIn}, null, null, null, null, {degrees: 119}, { step: 30, easing: easeOut }, {degrees: s.f.f[0], easing: easeIn}, null, null, null, null, {degrees: 119}], [null, { step: -20, easing: easeOut }, {degrees: 119, easing: easeIn}, null, null, null, null, {degrees: 119}, { step: -20, easing: easeOut }, {degrees: 97, easing: easeIn}, null, null, null, null, {degrees: 119}], // …pi nast pnych nóg ]};
Poleć książkęKup książkę
100 5. Sterowanie heksapodem za pomoc platformy Johnny-Five
Bieg (run)Ten krok (zwany popularnie trójnogiem, zdefiniowanyw listingu 5.8) powoduje najszybsze przemieszczaniesi robota, ale obci a serwomotory segmentówudowych i piszczelowych. Stosuj go rzadko. W tymkroku jednocze nie poruszane s trzy nogi, nato-miast trzy inne pozostaj w kontakcie z pod o emi musz one utrzyma wi kszy ci ar ni w przy-padku pozosta ych kroków.
Obracanie robota
Obracanie robota jest trudniejsze ni wykonywaniekroków. Ko cówki nóg nie poruszaj si wtedy poliniach prostych, ale zakre laj koncentryczne ukio rodkach znajduj cych si w rodku szkieleturobota. Promie uku dla nóg R2 i L2 jest inny nidla pozosta ych czterech nóg.
Krok obracaj cy robota jest bardzo podobny do krokubiegowego. Trzy nogi pozostaj w kontakcie z pod-o em, a pozosta e obracaj si o k t pomi dzy15° a 30°.
W programie phoenix.js zdefiniowane s dodat-kowe, nieopisane tutaj segmenty animacyjne: sleep(u pienie), waveRight (przesuni cie przedniej prawej
Listing 5.8. Bieg
nogi), waveLeft (przesuni cie przedniej lewej nogi)i pe zanie (crawl). Wypróbuj je po wyregulowaniu ro-bota i uzyskaniu prawid owego kroku.
Lista polece
Wszystkie poni sze polecenia mo na wpisywa w p tliREPL podczas ruchów robota:
ph.stand() (powstanie) ph.sleep() (u pienie) ph.walk() (marsz) ph.crawl() (pe zanie) ph.row() (wios owanie) ph.badRow() (inne wios owanie) ph.run() (bieg) ph.run("rev") (bieg do ty u) ph.turn() (obrót) ph.turn("left") (obrót w lewo) ph.stop() (zatrzymanie) ph.waveLeft() (przesuni cie przedniej prawejnogi)
ph.waveRight() (przesuni cie przedniej lewejnogi)
ph.att() (powrót do pozycji wyj ciowej)
var run = { duration: 1000, cuePoints: [0, 0.25, 0.5, 0.75, 1.0], loop: true, fps: 100, onstop: function() { phoenix.att(); }, oncomplete: function() { }, keyFrames: [ [ null, {degrees: 70}, {degrees: 56}, null, {degrees: 91}], [ null, {degrees: 120}, {degrees: 116}, { step: 30, easing: easeOut }, {degrees: 119, easing: easeIn}], [ null, {degrees: 110}, {degrees: 97}, { step: -20, easing: easeOut }, {degrees: 116, easing: easeIn}], // …5 nast pnych nóg ]};
Poleć książkęKup książkę
Co dalej? 101
Wypróbuj mia o powy sze polecenia i sprawd , doczego s u .
Co dalej?
Teraz Twój heksapod powinien na komend chodzi ,obraca si i robi kilka innych rzeczy. Ale to dopieropocz tek. Mo esz go wykorzysta do tworzenianowych, niesamowitych konstrukcji. Poni ej wymie-nionych jest kilka pomys ów, które mo esz zre-alizowa :
Utwórz inne segmenty animacyjne.U yj podstawy testowej i swojej wyobra ni.Podziel si na forum http://forums.nodebots.ioefektami z innymi konstruktorami heksapodów.
Dodaj kontroler.Wpisywanie polece w terminalu jest uci liwe.Powiniene zbada inne mo liwo ci sterowaniaheksapodem. Dost pne s interfejsy API plat-formy Node.js do nast puj cych kontrolerów:
Leap Motion Controller (http://bit.ly/19LY4nm), nak adka SparkFun Joystick — po prostuu yj platformy Johnny-Five,
Kinect (http://bit.ly/1bQRz4l), Wii Motion Controller — po prostu u yj plat-formy Johnny-Five,
Brainwaves (http://bit.ly/19LYoT4).
Dodaj czujniki.Dodaj kamer i czujniki ultrad wi kowe, aby robotmóg orientowa si w swoim otoczeniu. Nauczgo podejmowa decyzje oparte na informacjachodbieranych z tych urz dze .
Zbuduj innego heksapoda.Przedstawiony w tym rozdziale kod nadaje si nietylko do sterowania robotem Phoenix. Dost p-nych jest wiele innych robotów, pod adresemhttp://www.thingiverse.com mo na znale nawetich ogólnodost pne projekty do wykonania nadrukarce 3D. B dziesz musia zmieni warto ciw tabelach h, t, s oraz l, ale je eli zbudujeszstanowisko testowe i wyregulujesz wszystkie ser-womotory, b dzie to ca kiem proste zadanie.
Decyzja o zastosowaniu platform Node.js i Johnny-Fiveokaza a si s uszna. Wszystkie pakiety npm znajdujsi w zasi gu palców. Dzi ki temu mo esz pod adowolnie wybran cie k . Co wi cej, Johnny-Fivejest najbardziej elastyczn i najlepiej obs ugiwanplatform wykorzystywan podczas budowania robo-tów. Realizuj wi c mia o wszystkie pomys y, jakieCi przyjd do g owy.
Rozwój spo eczno ci majsterkowiczów oraz pot gaplatformy Node.js sprawiaj , e bardzo przyjemne jestby robotykiem amatorem!
Poleć książkęKup książkę
102 5. Sterowanie heksapodem za pomoc platformy Johnny-Five
Poleć książkęKup książkę
249
Skorowidz
Aadapter WiFi, 174, 245adres
I2C, 149IP, 79
akumulator, 18algorytm sterowania robotem,
208anatomia
ramienia robota, 33robota delta, 219
animacja, 95Android, 115
aplikacja WWW, 78, 79, 155
BBatBot
algorytm, 214czujnik ultrad wi kowy, 210diagnostyka, 215implementacja algorytmu,
213monta , 206poruszanie robotem, 208sterowanie robotem, 210wykaz materia ów, 205zdalne sterowanie, 207
bezpiecze stwo, 189bezprzewodowe sterowanie
robotem, 27bezprzewodowy robot
SimpleBot, 24biblioteka
Johnny-Five, 156Node.js, 243Twilio, 193Volley, 248wsccat, 74
bieg, 100budowa
a cucha wiate ek, 147odzi, 50obwodu mikrofonu, 108obwodu przeka nika, 106robota bezprzewodowego, 24robota SimpleBot, 16zegara s onecznego, 128
budowanie robotów, 15
Cchodzenie, 93, 98, 175czujnik, 234
HC-SR04, 190ultrad wi kowy, 190, 206wody, 69
Ddekorowanie a cucha wiate ek,
153diagram pinów sterownika
silnika, 60dioda
LED, 196RGB, 162
dobór kontrolera matrycy, 146
Eelementy
elektroniczne lampyCheerfulJ5, 160
interaktywnych butów, 232panelu LED RGB, 174robota
BatBot, 205heksapod, 84Junky Delta, 218NodeBoat, 50NodeBot, 104piDuino5, 72SimpleBot, 16TypeBot, 32
zegara s onecznego, 126
Poleć książkęKup książkę
250 Skorowidz
Ffala, 98fotorezystor, 183fritzing, 37funkcja, patrz tak e metoda
callback, 41delta_calcAngleYZ, 227getLatestColor, 165min(), 67setInterval(), 165sunPositionInDegrees, 143tick, 141ultraData(), 200
Ggenerator express, 155gnomon, 125
Hheksapod
chodzenie, 98lista polece , 100monta robota, 86obracanie robota, 100program phoenix.js, 85regulacja serwomotorów, 91sterowanie robotem, 84uk ad wspó rz dnych, 90wykaz materia ów, 83zakres ruchu serwomotorów,
92
Iinformacje o serwomotorach, 32inicjalizacja
modu u, 41platformy Johnny-Five, 75
instalacjabiblioteki Node.js, 243biblioteki Volley, 248oprogramowania, 73oprogramowania Android
Studio, 247platformy Node.js, 73
instancja platformy Johnny-Five,243
interaktywne buty, 231czujniki, 235kod, 238pod czenie do Arduino, 237po czenie butów, 235stan lewego buta, 240wykaz materia ów, 231wy wietlanie danych, 239
interaktywny panel LED RGB, 173interfejs
API, 156ThingSpeak API, 164, 166Twitter Streaming API, 165u ytkownika, 79, 157Web Speech API, 112
Jjoystick, 79
dotykowy, 80Junky Delta
anatomia robota, 219budowa, 220ruch robota, 223wykaz materia ów, 218
Kkabel, 150kinematyka, 217, 225klasa
Animation, 83, 90, 94, 95AsyncTask, 122Led, 75Led.Matrix, 158Matrix, 154Servo.Array, 95WebSocketServer, 75
koddo lampy CheerfulJ5, 161funkcji tick, 141servo-test.js, 20simplebot.js, 22steruj cy kolorami, 184steruj cy obwodem, 109
komponenty zasobnika silnika, 51
komunikaty Firmata, 27konfiguracja
adaptera WiFi, 245Arduino, 26czujników, 239modu u Spark, 56modu u WiFi, 25serwomotorów, 41, 130, 131sprz tu, 244
konsola DualShock, 210konstrukcja ramienia, 33kontroler
g osowy, 112, 115matrycy, 146
Llampa CheerfulJ5, 159
kod, 161czno bezprzewodowa,
169modu Spark, 171obwód, 160umieszczenie obwodu, 171warianty obudowy, 161wykaz materia ów, 159
laser, 195lista serwomotorów, 86lutowanie sterownika silnika, 58
czenieprzewodów, 150serwomotorów, 37
czno bezprzewodowa, 24,169
okie , 35uk wysoko ci, 137
Mmapa kolorów, 163marsz, 99matryca
LED, 147wietlna, 188
mened er Homebrew, 27
Poleć książkęKup książkę
Skorowidz 251
metoda, patrz te funkcjacallback, 41forward(), 76init, 39joystick.left(), 80joystick.up(), 80led.color(), 165motor.forward(), 63move, 40sonarServo.center(), 210sonarServo.max(), 210temporal.queue(), 68tick, 45
mikrofon, 108mobilna platforma, 71mocowanie
akumulatora, 18, 76efektora, 222przewodów, 37ramion, 222, 223segmentu nadgarstka, 37serwomotoru, 18
okcia, 36nadgarstka, 36
zasobnika z silnikiem, 65modulacja szeroko ci impulsu, 60modu
dualshock-controller, 210keypress, 63Spark, 56, 58, 59Spark Core, 58, 169Spark-IO, 58temporal, 68WiFi, 24WIFI232, 27
modyfikacja silnika, 52monitoring, 194monta
kad uba odzi, 64komponentów, 76komponentów
elektronicznych, 87segmentów piszczelowych, 89segmentów udowych, 89silnika, 53stawów biodrowych, 88steru, 68zasobnika na silnik, 55zegara, 136
Nnadgarstek, 36nap d
ró nicowy, 23Tamiya, 52
narz dzia programistyczne, 155nawi zanie po czenia, 80NodeBoat
czenie komponentów, 58modu Spark, 56sterowanie odzi , 66sterownik silnika, 58, 62wodowanie odzi, 64wykaz materia ów, 50zasobnik z silnikiem, 51
NodeBotaplikacja Android, 115kontroler g osowy, 112, 115mikrofon, 108obwód przeka nika, 106p ytka BeagleBone Black, 105serwer polece , 110tworzenie projektu, 106wykaz materia ów, 103
Oobiekt
Board, 58MatrixView, 158Motor, 62, 66Servo, 66Servo.Array, 94, 95
obliczenie k ta, 226obracanie robota, 100obs uga zdarze , 62, 63obudowa Beaglebone-io, 181, 182obwód
mikrofonu, 108przedwzmacniacza
mikrofonu, 108przeka nika, 106
odwrócona kinematyka, 226opcje konstruktora klasy, 154oprogramowanie
Firmata, 20LEDScape, 175VoodooSpark, 170
Ppalec, 33, 37panel LED RGB, 173, 175
czujniki, 175kod, 178, 180komponenty, 175obudowa Beaglebone-io, 182oprogramowanie, 175schemat pod czenia, 177wykaz materia ów, 174zmienianie kolorów, 185
parametr nonblock, 28Particle WiFi Development Kit, 245p tla
REPL, 84, 163steruj ca
otwarta, 213zamkni ta, 213
pianka PCV, 135piDuino5
monta komponentów, 76sterowanie smartfonem, 78sterowanie urz dzeniami, 75wykaz materia ów, 72
pierwsze uruchomienie, 46platforma
Johnny-Five, 38, 75, 181, 243Node.js, 73ThingSpeak API, 164
plikactivity_main.xml, 116align.js, 36AndroidManifest.xml, 120app.js, 79, 156boat.js, 62circuit.js, 113CommandRequest.java, 115,
118index.html, 79, 111, 112lights.js, 156ListenerService.java, 119MainActivity.java, 116moveBot.js, 209package.json, 57, 68, 193phoenix.js, 88rect_activity_wear_main.xml,
123
Poleć książkęKup książkę
252 Skorowidz
plikrelay.js, 107server.js, 110, 112, 114servos.js, 131sundial.js, 139typebot.js, 41WearMainActivity.java, 120
p ytkaArduino, 244Arduino Uno, 31BeagleBone Black, 105,
173, 244Raspberry Pi, 73, 244
pod czenieArduino, 74butów, 237czujnika HC-SR04, 190diody laserowej, 196fotorezystora, 183matrycy, 151, 152modu u Spark, 57modu u WiFi, 25panelu RGB LED, 176p ytki Arduino, 151serwomotorów, 19, 88, 130silnika, 61sterownika silnika, 60zasilania, 59
podparcie tarczy, 134podstawa, 34pokojowy zegar s oneczny, 125po czenie
butów, 235modu u Spark i silnika, 60z ka dego miejsca, 76z modu em WiFi, 26z serwomotorem, 66
pozycja pocz tkowa robota, 42prezentacja urz dzenia, 189pr dko obrotowa, 33program
cheerful.js, 162, 166cheerful-twit.js, 168matrix-test.js, 154open-pixel-test.js, 179phoenix.js, 85socat, 27Spark, 57
steruj cy, 21sundial.js, 139, 140, 141VSPE, 28warmup.js, 224
programowanie, 247serwomotoru, 66
projekt VoiceController, 247protokó WebSocket, 74, 75prototyp systemu
bezpiecze stwa, 201przedwzmacniacz mikrofonu, 108przegl darka, 75przeka nik, 106przeliczanie odczytów, 186przewód mikro-USB, 50przycisk resetowania, 27przygotowanie
czujników, 234kabla, 150matryc, 149serwomotorów, 87
przyspieszeniomierz, 185PWM, pulse-width modulated,
33, 60
Rrami , 38
azymutu, 128, 136robota, 32, 33
regulacjaramienia, 46segmentów piszczelowych, 92segmentów udowych, 92serwomotorów, 91stawów biodrowych, 91
rejs, 69resetowanie
Arduino, 28uk adów, 28
robotArmy, 217, 229, 230BatBot, 203Junky Delta, 217NodeBoat, 49NodeBot, 15, 103piDuino5, 71, 76SimpleBot, 15
TapsterBot, 217, 229TypeBot, 31
robotyautonomiczne, 204delta, 217pisz ce, 31semiautonomiczne, 204sterowane g osem, 103zdalnie sterowane, 204
rozpoznawanie mowy, 112ruch ramienia, 34rysowanie prostok ta, 228rzepy, 76
Sschemat
ideowy pod czenia czujnika,207
obwodu przeka nika, 107pod czenia fotorezystora,
184, 186po cze robota SimpleBot,
19ruchów robota, 208stanów, 43
segmentanimacyjny, 95palca, 37
sekwencja naci ni klawiszy, 43serwer
polece , 110WWW, 75
serwis GitHub, 201serwomotor, 17, 18, 21, 86silnik, 53SimpleBot
budowa robota, 16diagnostyka problemów,
21, 28czno bezprzewodowa,
24sterowanie robotem, 25wykaz materia ów, 16
Spark WiFi Development Kit, 169sprawdzenie
sieci, 26silnika, 53
Poleć książkęKup książkę
Skorowidz 253
stanbuta, 240klawiszy, 63robota, 212
stawbiodrowy, 88okciowy, 35
ster, 68sterowanie, 23
smartfonem, 78diod RGB, 162heksapodem, 83odzi , 66matrycami, 157matryc LED, 153obwodem przeka nika, 107robotem, 210robotem SimpleBot, 25serwomotorami, 38
sterowanieserwomotorem, 67silnikiem, 62urz dzeniami, 75
sterownik silnika, 51, 58, 59sygna o modulowanej
szeroko ci, 33system
bezpiecze stwa, 201monitoringu, 194
szkic StandardFirmata.ino, 26sztuczna inteligencja, 203szyna I2C, 148, 150
ruba, 54wiate ka-straszyde ka, 145
aplikacja WWW, 155budowa, 147diagnostyka, 153interfejs u ytkownika, 157komponenty, 146
program testuj cy, 154sterowanie matryc LED, 153wykaz materia ów, 145
Ttabela
obiektów Servo.Array, 94serwomotorów, 94
tag <div>, 80tarcza, 132tarcze gnomonu, 133test modu u Spark, 56, 57tworzenie
interfejsu API, 156interfejsu u ytkownika, 157plików projektu, 38projektu Android, 247serwera polece , 110
TypeBotbudowa
cz ci mechanicznej, 34inicjalizacja, 41pierwsze uruchomienie, 46program, 38wykaz materia ów, 31
Uuk ad wspó rz dnych, 90umieszczenie tarcz, 134urz dzenie ultrad wi kowe, 193us uga CheerLights, 163, 164ustawianie
czujnika ultrad wi kowego,210
uszczelnienie przewodów, 55
Wwarto null, 97wiercenie otworów, 222
wios owanie, 98wodowanie odzi, 64wska nik stanu, 196wtyczka Spark-io, 170wyci cie gnomonu, 138wyliczanie po o enia efektora, 227wysy anie
polece , 80SMS-ów, 193
wy wietlacz, 173
Zzak adanie czówek, 152zakres ruchu serwomotorów, 92zapisywanie stanu klawiszy, 63zasilacz 5 V, 174zasilanie sterownika silnika, 59zasobnik z silnikiem, 51, 54, 55zatrzask, 52zdalne sterowanie, 207zdarzenie
message, 76naci ni cia klawisza, 62
zegar s oneczny, 125budowanie, 128kod, 139konfiguracja serwomotorów,
130konstrukcja g ówna, 129monta , 136podparcie tarczy, 133przygotowanie tarcz, 132cianki, 133
w czanie, 144wycinanie elementów, 129wykaz materia ów, 126
zmianakolorów, 185rezystancji czujnika, 233
Poleć książkęKup książkę