Skuteczne programowanie Lego Mindstorms
Skuteczne programowanie LEGO MINDSTORMS stanowi przepustkę do udanego programo-wania
robotów LEGO MINDSTORMS w języku programowania NXT-G, używanym między innymi w
zawodach FIRST LEGO League.
Książka rozwija zagadnienia omówione w ce-nionej książce Jamesa Trobaugha na temat
fizycznego projektowania robotów: Winning Design!. Ta nowa książka skupia się
wyłącznie na stronie programowej robotów MINDSTORMS. Obie pozycje razem dają solidną
podstawę do tworzenia robotów LEGO MINDSTORMS, czy to dla zabawy w domu, czy to z
przeznaczeniem na zawody drużynowe.
Zbudowanie zwycięskiego robota nie wiąże się jedynie z udanym projektem
sprzętowym. Potrzebne są też dobre techniki programistyczne i umiejętność wspólnej
pracy w drużynie. Współpraca z innymi członkami drużyny, umiejętności prezentacyjne
i planowanie z myślą o ułatwieniu rozwiązywania problemów oraz debugowania to tyko
niektóre aspekty składające się na końcowy sukces. Z pracą zespołową wiąże się
umiejętność uczenia się i korzystania z osiągnięć innych.
Skuteczne programowanie LEGO MINDSTORMS podkreśla znaczenie wczesnego plano-wania i
analizy realizowanego wyzwania projektowego. Nauczy oceniania możliwych rozwią-zań
przez testowanie ich logiki przed przystąpieniem do faktycznego pisania kodu.
Zastosowanie technik opisanych w tej książce ułatwi wybranie najlepszej opcji przy
pisaniu kodu.
Przeczytanie tej książki pomoże w:
• Wykorzystaniu funkcji językowych, takich jak grupa My Blocks (Moje bloki) do
tworzenia kodu łatwego do debugowania oraz poprawienia jego czytelności.
• Zarządzaniu kodem podczas jego zmieniania i poprawiania, aby móc łatwo śledzić
dokonywane zmiany i w razie potrzeby wrócić do poprzedniej wersji.
• Unikaniu typowych pułapek programistycznych.
• Skutecznym współdziałaniu z członkami drużyny podczas zawodów dowolnego
po-ziomu.
Czego się można nauczyć z tej książki
• Pisania dobrze zaplanowanego kodu, który można łatwo modyfikować wraz ze
zmieniającym się podejściem do rozwiązania danego zadania.
• Lepszej umiejętności obsługi każdego z czujników MINDSTORM NXT.
• Planowania programu pod kątem jego debugowania i rozwiązywania problemów.
• Pisania programów dających naszej drużynie przewagę w zawodach.
• Unikania typowych pułapek programistycznych, które mogą kosztować utratę
punktów.
• Współpracy z członkami zespołu przy przedstawianiu własnego rozwiązania
progra-mowego sędziom na zawodach.
• Cennych wskazówek i sztuczek, które można wykorzystać na zawodach robotów i we
własnych projektach.
Dla kogo jest ta książka
Książka Skuteczne programowanie LEGO MINDSTORMS jest przeznaczona dla osób chcą-cych
poprawić swoje umiejętności tworzenia i wdrażania robotów LEGO MINDSTORMS,
za-chowujących się przewidywalnie i skutecznie podczas wykonywania zadań nawigacyjnych
– tak podczas zabawy w domu, jak i na zawodach.
O autorach
O recenzencie technicznym
Podziękowania
Wprowadzenie
Rozdział 1. Poznawanie oprogramowania NXT-G
Odmiany oprogramowania NXT-G
Interfejs użytkownika
Łączenie się z NXT
USB
Bluetooth
Oprogramowanie firmowe
Podsumowanie
Rozdział 2. Proces projektowania oprogramowania
Wybieranie odpowiedniego problemu
Definiowanie problemu
Pisanie pseudo-kodu
Znajdowanie możliwych rozwiązań
Tworzenie kodu
Testowanie rozwiązania
Podsumowanie
Rozdział 3. Praca z grupą My Blocks
Dlaczego korzystać z grupy My Blocks?
Podstawy
Edytowanie zawartości własnego bloku
Korzystanie z własnego bloku
Właściwości własnego bloku
Pojedyncza właściwość
Wiele właściwości
Udostępnianie wartości
Zarządzanie blokami z grupy My Blocks i udostępnianie ich
Zepsute bloki
Pack and Go (Pakowanie i przenoszenie)
Podsumowanie
Rozdział 4. Gdy coś pójdzie nie tak
Przechodzenie przez kod krok po kroku
Przeglądanie wartości
Menu View (Widok) w klocku NXT
Bloki do przeglądania wartości
Blok alarmowy
Rozbijanie kodu na części
Typowe błędy
Kończenie obrotu
Ustawienia portów
Wartość Duration (Czas trwania)
Środowisko
Podsumowanie
Rozdział 5. Przenoszenie danych
Połączenia danych
Zmienne
Jak to działa
Zarządzanie zmiennymi
Korzystanie z bloku Variable (Zmienna)
Zasięg
Stałe
Definiowanie stałej
Niestandardowa stała
Podsumowanie
Rozdział 6. Podejmowanie inteligentnych decyzji
Blok Switch (Przełącznik)
Podstawy
Zaawansowane przełączanie
Zmienne
Zagnieżdżanie
Blok Logic (Logika)
Blok Compare (Porównanie)
Blok Range (Zakres)
Podsumowanie
Rozdział 7. Silniki i ruch
Obwód koła
Programowanie ruchu po prostej
Blok Move (Ruch)
Blok Motor (Silnik)
Blok Reset Motor (Wyzerowanie silnika)
Własne bloki Move
Obracanie robota
Blok Move
Bloki Motor
Obliczanie zakrętów
Tworzenie niestandardowego bloku MyPivot (Mój obrót)
Tworzenie niestandardowego bloku MyTurn (Mój skręt)
Wykrywanie zatrzymania silnika
Podsumowanie
Rozdział 8. Wykrywanie światła
Czujnik światła NXT
Jak to działa
Światło otoczenia
Światło odbite
Kalibracja
Blok kalibracyjny NXT-G
Plik lokalny
Przeglądanie kalibracji
Usuwanie kalibracji
Podążanie za linią
Prosty warunek
Złożony warunek
Regulator proporcjonalny
Dwa czujniki światła
Wykrywanie linii
Znajdowanie linii
Odczytywanie kolorowych linii
Wyrównywanie do linii i krawędzi
Podsumowanie
Rozdział 9. Dotyk i zderzanie
Czujnik dotyku
Korzystanie z czujnika dotyku
Kiedy naciśnięcie nie jest wykrywane?
Ustalanie, kiedy skręcić
Ustawianie robota
Zdalny pomarańczowy przycisk NXT
Ogranicznik
Czujnik dotyku jako wskaźnik obecności obiektu
Podsumowanie
Rozdział 10. Widzenie ultradźwiękami
Jak to działa
Korzystanie z czujnika ultradźwiękowego na polu gry
Znajdowanie pobliskich obiektów
Podsumowanie
Rozdział 11. Programowanie zaawansowane
Tablice danych
Maszyny stanów
Programy główne
Własne bloki
Prosty program sekwencera
Lepszy sekwencer
Zaawansowany sekwencer
Podsumowanie
Rozdział 12. Zarządzanie kodem
Scenariusz z pojedynczym komputerem
Scenariusz z wieloma komputerami
Repozytoria sieciowe
Napędy USB
Nazwy plików
Pakowanie i przenoszenie
Komentarze do kodu
Podsumowanie
Rozdział 13. Pułapki programistyczne
Domyślne ustawienia bloków i programów
Domyślne porty
Błąd żółto-pomarańczowy
Nieprawidłowe połączenia danych
Użycie bloku Stop (Zatrzymanie) zamiast zatrzymania silników
Niedopasowanie oprogramowania do sprzętu
Zmienianie jednostek miar
Zapominanie, co mieliśmy na myśli
Podsumowanie
Rozdział 14. Porady i wskazówki
Zrozumienie przepływu programu
Zarządzanie przepływem danych
Wskazówki dotyczące debugowania
Co mieliśmy na myśli?
Słuchanie robota
Zastosowanie wzorców projektowych
Zrozumienie, co napisaliśmy
Jak nawigować po programie?
Porady sprzętowe
Zarządzanie warunkami oświetleniowymi wokół czujnika światła
Unikanie czujników ultradźwiękowych skierowanych wzajemnie na siebie
Rozmieszczanie przewodów
Łączenie logiki we własnych blokach
Aktualizowanie oprogramowania firmowego NXT
Nie odkrywajmy Ameryki
Podsumowanie
234 strony, Format: 17.0x24.0cm, oprawa miękka