Używamy cookies, aby ułatwić korzystanie z Portalu. Możesz określić warunki przechowywania, dostępu do plików cookies w Twojej przeglądarce. Dowiedz się więcej.
strona główna Strona główna | Nowości | Promocje | Zapowiedzi Twoje konto | Zarejestruj | Schowek | Kontakt | Pomoc
mapa działów
Szukaj: szukanie zaawansowane
Koszyk
Książki \ Programowanie

Skuteczne programowanie LEGO MINDSTORMS. Niezawodne techniki programowania dla zabawy i rywalizacji Język: 1

978-83-7541-124-9

Cena Brutto: 58.80

Cena netto: 56.00

Ilość:
Wersja: Drukowana
Autor James j. Trobaugh
Liczba_stron 230
Wydawnictwo Apress
Oprawa miękka
Data_Wydania 2013-07-01
Skuteczne programowanie

LEGO MINDSTORMS

Niezawodne techniki programowania dla zabawy i rywalizacji


Skuteczne programowanie LEGO MINDSTORMS stanowi przepustkę do udanego programowania 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 cenionej 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 planowania 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 poziomu.
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 programowego 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, zachowujących się przewidywalnie i skutecznie podczas wykonywania zadań nawigacyjnych – tak podczas zabawy w domu, jak i na zawodach.

Pragniemy Państwa zapewnić, iż dokładamy wszelkich możliwych starań, by opisy książek i podręczników, zawarte na naszych stronach internetowych, zawierały bieżące i wiarygodne materiały. Może jednak, mimo naszych wysiłków, w opisy książek wkraść się przekłamanie z naszej strony niezamierzone. Nie może to stanowić powodu do roszczeń. O ile macie Państwo jakiekolwiek pytania lub wątpliwości - prosimy o kontakt z działem handlowym. Tam nasi specjaliści postarają się odpowiedzieć na wszystkie Państwa pytania zanim podejmiecie Państwo decyzje o złożeniu zamówienia.

#

O autorach  . . . . . . . . . . . . . . . . . . . . xi
O recenzencie technicznym  . . . . . . xii
Podziękowania  . . . . . . . . . . . . . . . . xii
Wprowadzenie  . . . . . . . . . . . . . . . . xiii

Rozdział 1 Poznawanie oprogramowania NXT-G . . . .  . . 1
Odmiany oprogramowania NXT-G  . . . 1
Interfejs użytkownika . . . . . . . . . . 2
Łączenie się z NXT  . . . . . . . . . . . . . 10
USB  . . . . . . . . . . . . . . . . . . . . . . 10
Bluetooth  . . . . . . . . . . . . . . . . . . 11
Oprogramowanie firmowe  . . . . . 11
Podsumowanie  . . . . . . . . . . . . . . . . 12
Rozdział 2 Proces projektowania oprogramowania . . . .. . . . 13
Wybieranie odpowiedniego problemu . . . . . . .. . . . 13
Definiowanie problemu  . . . . . . . . . . 15
Pisanie pseudo-kodu  . . . . . . . . . . . . 16
Znajdowanie możliwych rozwiązań  . 18
Tworzenie kodu  . . . . . . . . . . . . . . . . 18
Testowanie rozwiązania  . . . . . . . . . . 20
Podsumowanie  . . . . . . . . . . . . . . . . 21

Rozdział 3 Praca z grupą My Blocks  . . 23
Dlaczego korzystać z grupy My Blocks? . . . . .  . . . . 23
Podstawy  . . . . . . . . . . . . . . . . . . . . . 24
Edytowanie zawartości własnego bloku . . . . . .. . . . . . . . . 28
Korzystanie z własnego bloku  . . . . . 29
Właściwości własnego bloku  . . . . . . 30
Pojedyncza właściwość  . . . . . . . 31
Wiele właściwości  . . . . . . . . . . . 35
Udostępnianie wartości  . . . . . . . 36
Zarządzanie blokami z grupy My Blocks i udostępnianie ich . . . . . . .. . . . . . 36
Zepsute bloki  . . . . . . . . . . . . . . . 38
Pack and Go (Pakowanie i przenoszenie) . . . . . . . . . . . . . 39
Podsumowanie  . . . . . . . . . . . . . . . . 40

Rozdział 4 Gdy coś pójdzie nie tak  . . . . 41
Przechodzenie przez kod krok po kroku . . . . . . . . . .. . . . . . 41
Przeglądanie wartości  . . . . . . . . . . . 42
Menu View (Widok) w klocku NXT . . . . . . . . . 42
Bloki do przeglądania wartości  . 44
Blok alarmowy  . . . . . . . . . . . . . 47
Rozbijanie kodu na części  . . . . . . . . 49
Typowe błędy  . . . . . . . . . . . . . . . . . 50
Kończenie obrotu  . . . . . . . . . . . . 50
Ustawienia portów  . . . . . . . . . . . 50
Wartość Duration (Czas trwania)  50
Środowisko  . . . . . . . . . . . . . . . . . . . 51
Podsumowanie  . . . . . . . . . . . . . . . . 52

Rozdział 5 Przenoszenie danych  . . . . . . 53
Połączenia danych  . . . . . . . . . . . . . . 53
Zmienne  . . . . . . . . . . . . . . . . . . . . . 56
Jak to działa  . . . . . . . . . . . . . . . 56
Zarządzanie zmiennymi  . . . . . . . 56
Korzystanie z bloku Variable (Zmienna) . . . . . . . . . . . . 59
Zasięg  . . . . . . . . . . . . . . . . . . . . 62
Stałe  . . . . . . . . . . . . . . . . . . . . . . . . 64
Definiowanie stałej  . . . . . . . . . . 65
Niestandardowa stała  . . . . . . . . 67
Podsumowanie  . . . . . . . . . . . . . . . . 68

Rozdział 6 Podejmowanie inteligentnych decyzji . . . . . . . . . . . . . 69
Blok Switch (Przełącznik)  . . . . . . . . . 69
Podstawy . . . . . . . . . . . . . . . . . . 70
Zaawansowane przełączanie  . . . 72
Zmienne  . . . . . . . . . . . . . . . . . . 78
Zagnieżdżanie  . . . . . . . . . . . . . . 81
Blok Logic (Logika)  . . . . . . . . . . . . . 82
Blok Compare (Porównanie)  . . . . . . . 84
Blok Range (Zakres)  . . . . . . . . . . . . 86
Podsumowanie  . . . . . . . . . . . . . . . . 87

Rozdział 7 Silniki i ruch  . . . . . . . . . . . . . . 89
Obwód koła  . . . . . . . . . . . . . . . . . . . 89
Programowanie ruchu po prostej  . . . 91
Blok Move (Ruch)  . . . . . . . . . . . 91
Blok Motor (Silnik)  . . . . . . . . . . . 92
Blok Reset Motor (Wyzerowanie silnika) . . .  . . . . 93
Własne bloki Move  . . . . . . . . . . 94
Obracanie robota  . . . . . . . . . . . . . . . 98
Blok Move  . . . . . . . . . . . . . . . . . 98
Bloki Motor  . . . . . . . . . . . . . . . . 99
Obliczanie zakrętów  . . . . . . . . 100
Tworzenie niestandardowego bloku MyPivot (Mój obrót) . . . . . . . 105
Tworzenie niestandardowego bloku MyTurn (Mój skręt) . . . . . . . . 108
Wykrywanie zatrzymania silnika  . . 108
Podsumowanie  . . . . . . . . . . . . . . . 110

Rozdział 8 Wykrywanie światła  . . . . . . 111
Czujnik światła NXT  . . . . . . . . . . . . 111
Jak to działa  . . . . . . . . . . . . . . 112
Światło otoczenia  . . . . . . . . . . 113
Światło odbite  . . . . . . . . . . . . . 113
Kalibracja  . . . . . . . . . . . . . . . . . . . 113
Blok kalibracyjny NXT-G  . . . . . 115
Plik lokalny  . . . . . . . . . . . . . . . 116
Przeglądanie kalibracji  . . . . . . . 117
Usuwanie kalibracji  . . . . . . . . . 118
Podążanie za linią  . . . . . . . . . . . . . 118
Prosty warunek  . . . . . . . . . . . . 119
Złożony warunek  . . . . . . . . . . . 120
Regulator proporcjonalny  . . . . . 122
Dwa czujniki światła  . . . . . . . . 123
Wykrywanie linii  . . . . . . . . . . . . . . 125
Znajdowanie linii  . . . . . . . . . . . 126
Odczytywanie kolorowych linii  . 128
Wyrównywanie do linii i krawędzi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Podsumowanie  . . . . . . . . . . . . . . . 130
Rozdział 9 Dotyk i zderzanie  . . . . . . . . 131
Czujnik dotyku  . . . . . . . . . . . . . . . . 131
Korzystanie z czujnika dotyku  . . . . 132
Kiedy naciśnięcie nie jest wykrywane? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Ustalanie, kiedy skręcić  . . . . . . . . . 133
Ustawianie robota  . . . . . . . . . . . . . 134
Zdalny pomarańczowy przycisk NXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Ogranicznik  . . . . . . . . . . . . . . . . . . 138
Czujnik dotyku jako wskaźnik obecności obiektu . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
Podsumowanie  . . . . . . . . . . . . . . . 139
Rozdział 10 Widzenie ultradźwiękami  . 141
Jak to działa  . . . . . . . . . . . . . . . . . 141
Korzystanie z czujnika ultradźwiękowego na polu gry . . . . . . . . . . . . . . . . . . . . . . . 142
Znajdowanie pobliskich obiektów  . 144
Podsumowanie  . . . . . . . . . . . . . . . 148

Rozdział 11 Programowanie zaawansowane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
Tablice danych  . . . . . . . . . . . . . . . . 149
Maszyny stanów  . . . . . . . . . . . . . . 151
Programy główne  . . . . . . . . . . . . . 153
Własne bloki  . . . . . . . . . . . . . . 154
Prosty program sekwencera  . . 155
Lepszy sekwencer  . . . . . . . . . . 159
Zaawansowany sekwencer  . . . 165
Podsumowanie  . . . . . . . . . . . . . . . 168

Rozdział 12 Zarządzanie kodem  . . . . . . 169
Scenariusz z pojedynczym komputerem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Scenariusz z wieloma komputerami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Repozytoria sieciowe  . . . . . . . . . . . 171
Napędy USB  . . . . . . . . . . . . . . . . . 175
Nazwy plików  . . . . . . . . . . . . . . . . 175
Pakowanie i przenoszenie  . . . . . . . 176
Komentarze do kodu  . . . . . . . . . . . 178
Podsumowanie  . . . . . . . . . . . . . . . 180

Rozdział 13 Pułapki programistyczne  . 181
Domyślne ustawienia bloków i programów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Domyślne porty  . . . . . . . . . . . . . . . 186
Błąd żółto-pomarańczowy  . . . . . . . 186
Nieprawidłowe połączenia danych  . 187
Użycie bloku Stop (Zatrzymanie) zamiast zatrzymania silników . . . . . . . . . . . . . . . . 189
Niedopasowanie oprogramowania do sprzętu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
Zmienianie jednostek miar  . . . . . . . 192
Zapominanie, co mieliśmy na myśli  193
Podsumowanie  . . . . . . . . . . . . . . . 194

Rozdział 14 Porady i wskazówki  . . . . . . 195
Zrozumienie przepływu programu  . 195
Zarządzanie przepływem danych  . . 199
Wskazówki dotyczące debugowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
Co mieliśmy na myśli?  . . . . . . 200
Słuchanie robota  . . . . . . . . . . . 201
Zastosowanie wzorców projektowych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Zrozumienie, co napisaliśmy  . . . . . 205
Jak nawigować po programie?  . . . 206
Porady sprzętowe  . . . . . . . . . . . . . 207
Zarządzanie warunkami oświetleniowymi wokół czujnika światła . . . . . . . . . . . 207
Unikanie czujników ultradźwiękowych skierowanych wzajemnie na siebie . . . . 208
Rozmieszczanie przewodów  . . 208
Łączenie logiki we własnych blokach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Aktualizowanie oprogramowania firmowego NXT . . . . . . . . . . . . . . . . . . . . . . . . . . 210
Nie odkrywajmy Ameryki  . . . . . . . . 210
Podsumowanie  . . . . . . . . . . . . . . . 211

powrót
 
Produkty Podobne
Laravel. Wstęp do programowania aplikacji internetowych
Poradnik design thinking, czyli jak wykorzystać myślenie projektowe w biznesie
Data Mining. Eksploracja danych w sieciach społecznościowych. Wydanie III
Programowanie w języku Kotlin. The Big Nerd Ranch Guide
Algorytmy Data Science. Siedmiodniowy przewodnik. Wydanie II
UXUI. Design Zoptymalizowany. Manual Book
UXUI. Design Zoptymalizowany. Workshop Book
Vue.js 2. Wprowadzenie dla profesjonalistów
Ciągłe dostarczanie oprogramowania w języku Java. Najlepsze narzędzia i praktyki wdrażania kodu
Baw się kodem! Twoja własna gra. CoderDojo Nano
Więcej produktów