Ta strona używa ciasteczek (plików cookies), dzięki którym może działać lepiej. Dowiedz się więcejRozumiem i akceptuję
Testy SSLW przypadku problemów z działaniem bloga proszę o kontakt na adres web@forbot.pl lub na forum.

Roboty. JavaScript od podstaw. Projekty NodeBots dla…

Książki 21.07.2016 Mateusz Kraiński

okladka_roboty_recenzjaW tej recenzji chciałbym przedstawić czytelnikom Forbota książkę Roboty. Java Script od podstaw. Celem jej autorów było zapoznanie konstruktorów z podstawami budowy i programowania robotów wykorzystując język JavaScript.

Książka jest zbiorem projektów, wykorzystujących platformę NodeBots do obsługi płytek Beagle Bone Black, Raspberry Pi oraz Arduino.

Duża różnorodność

Interesująca w książce jest różnorodność. Znajdziemy tutaj proste konstrukcje – jak na przykład zdalnie sterowany robot dwukołowy, czy łódź, ale także bardziej złożone i wymagające większego przemyślenia – jak na przykład robot typu delta (widoczny na okładce), hexapod, czy projekt umożliwiający sterowanie głosem.

Każdy rozdział książki jest osobnym projektem, opisanym przez innego autora. Sprawia to w pewien sposób wrażenie niespójności – każdy autor trochę inaczej podchodzi o tematu budowy robotów i skupia się na innych częściach projektu. Z drugiej strony dzięki temu każdy może znaleźć odpowiedni dla siebie projekt, od którego warto zacząć przygodę z programowaniem robotów.

Okładka książki (przód i tył).

Okładka książki (przód i tył).

To, co bardzo cieszy w tego rodzaju podręcznikach, to lista części i narzędzi potrzebnych do zbudowania danego robota (wraz z odnośnikami do sklepów) oraz bogactwo ilustracji, które dokładnie pokazują każdy krok realizacji projektu. Wszystkie projekty są bardzo dokładnie opisane pod kątem zarówno mechanicznym, teoretycznym (np. kinematyka odwrotna w projekcie z robotem delta), jak i programistycznym.

Roboty w połączeniu z JavaScript?

Autorzy opisują na rzeczywistych przykładach w jaki sposób programować roboty w JavaScript. Oznacza to, że np. na Arduino wgrywamy ogólne oprogramowanie Firmata i cały kod programu jest później pisany na komputerze w języku JavaScript.

Jest to bardzo wygodne. Co więcej, w łatwy sposób, pozwala
wykorzystać moc obliczeniową komputera w projekcie.

Osobiście zabrakło mi w tej pozycji kilku rzeczy. Skrypty pisane w JavaScript, przytaczane w tej książce są dość proste. Aż prosi to o opisanie podstawowej składni języka w pewnego rodzaju wstępie. Ułatwiłoby to na pewno rozpoczęcie swojej przygody osobom, które tego języka nie znają.

Książka nie omawia podstaw JavaScriptu!

Przydałoby się też opisanie czym jest wykorzystywane w każdym projekcie oprogramowanie Firmata oraz podstawowe funkcje platformy Johnny-Five (również wykorzystywane w każdym projekcie).  Zamiast tego, po przedmowie, rozpoczyna się od razu pierwszy projekt.

johnny-five

Odnośnie samych przykładów, z których składa się książka, zabrakło mi wykorzystania możliwości języka JavaScript do łatwego opracowywania interfejsów użytkownika. W jednym (tylko jednym) przykładzie wykorzystano możliwość napisania aplikacji webowej na Raspberry Pi, z którą potem można się łączyć przez przeglądarkę w celu sterowania robotem.

(Nie)dostosowanie do polskich realiów

Ostatnią rzeczą, która mnie trochę zniechęca, są listy potrzebnych komponentów. Sam fakt list jest bardzo wygodny. Nie zostały one jednak przystosowane do naszych realiów. Sugerowane są tam moduły, które w Polsce nie są popularne (przez co są bardzo drogie).

Moim ulubionym przykładem jest projekt dwukołowego robota, który ma znaleźć wyjście z pudełka ograniczonego z trzech stron, na który składają się między innymi dalmierz ultradźwiękowy (sugerowany MaxBotics LV-EZ2 za 100 zł), zestaw bezprzewodowy XBee (koszt około 400 zł), podwozie z shieldem dla Arduino (BOE Bot Robotics Shield Kit za około 520 zł) i kontrolery od PS3 lub PS4 (około 180 zł). Razem sporo ponad 1000 zł – trochę drogo, jak na możliwości robota.

Spis treści oraz fragment książki

Roboty JavaScript od podstaw. Projekty NodeBots dla platformy Johnny-Five z wykorzystaniem płytek Raspberry Pi, Arduino oraz BeagleBone:

Podsumowanie

Pomimo przytoczonych wad, uważam lekturę za ciekawą i pouczającą. Przykłady są barwne i bardzo dobrze się je czyta. Książka może być ciekawym wstępem do robotyki dla osób, które znają język JavaScript, nawet na podstawowym poziomie. Takiej też grupie osób bym ją polecił.

Dobrze przedstawia podstawowe zasady mechaniczne i elektroniczne budowy robotów i zachęca do pogłębiania swojej wiedzy. Projekty są ciekawe i zróżnicowane, co sprawia że zaangażowany czytelnik nie znudzi się zbyt prędko.

Spodobała Ci się recenzowana książka?

Kup wersję papierowąKup wersję elektroniczną

Więcej naszych recenzji można znaleźć na stronie z polecanymi książkami.

Powiadomienia o nowych, darmowych artykułach!

Załączniki

Komentarze

Mellon

13:39, 09.08.2016

#1

Zastanawiam się nad wydajnością aplikacji stworzonych w języku interpretowanym JavaScript a klasycznym językiem kompilowanym C lub C++.

deshipu

16:18, 09.08.2016

#2

Zastanawiam się nad potrzebą wydajności w robocie, który porusza się z prędkością panicznie przerażonego żółwia, a jedyny sygnał, jaki musi przetwarzać, to odczyt czujnika ultradźwiękowego co kilka sekund.

Już nawet nie wspomnę, że na maszynach wirtualnych z JIT-em programy w JavaScripcie są konsekwentnie szybsze od analogicznych programów w C, przynajmniej w nietrywialnych przypadkach.

Ani o tym, że JavaScript jest tak samo "interpretowanym" językiem, jak C# czy Java -- to znaczy kompiluje się do bajtkodu i wykonuje na maszynie wirtualnej.

Mellon

15:16, 10.08.2016

#3

Jeśli ktoś używa kontrolera do jazdy w przód 10s i w tył 5s to może na bramkach zbudować:)

[ Dodano: 10-08-2016, 15:23 ]

deshipu napisał/a:

Już nawet nie wspomnę, że na maszynach wirtualnych z JIT-em programy w JavaScripcie są konsekwentnie szybsze od analogicznych programów w C, przynajmniej w nietrywialnych przypadkach.

Maszyny wirtualne używa się do budowania np. serwerów a nie do sterowania / automatyki. Chyba, że do uruchomienia serwera baz danych z bazą do przechowywania danych pomiarowych - ale to już wysoka warstwa soft np. SCADA. Nie zapominajmy, że sama maszyna ma też swoje wymagania sprzętowe.

Jakieś konkrety

deshipu

16:30, 10.08.2016

#4

Na przykład ta maszyna wirtualna JavaScripta: https://developers.google.com/v8/

Elvis

16:42, 10.08.2016

#5

A w czym jest napisana V8?

[ Dodano: 10-08-2016, 16:53 ]

Trochę porównań V8 vs C++: http://benchmarksgame.alioth.debian.org/u64/compare.php?lang=v8&lang2=gpp

deshipu

17:03, 10.08.2016

#6

W nietrywialnych przypadkach. JIT musi mieć czas żeby się rozgrzać.

Elvis

17:15, 10.08.2016

#7

Ja jednak myślę, że rację ma Mellon, JS do sterowania robotów się nie nadaje, chociaż to świetny język do aplikacji webowych.

deshipu

17:19, 10.08.2016

#8

Dzięki za informację.

Zobacz powyższe komentarze na forum

FORBOT Damian Szymański © 2006 - 2017 Zakaz kopiowania treści oraz grafik bez zgody autora. vPRsLH.