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
Algorytmy uczenia maszynowego. Zaawansowane techniki implementacji
Python. Uczymy się programowania
Deep Learning. Receptury
Uczenie maszynowe z językiem JavaScript. Rozwiązywanie złożonych problemów
Kubernetes. Tworzenie niezawodnych systemów rozproszonych
Uczenie maszynowe w C#. Szybkie, sprytne i solidne aplikacje
Django 2. Praktyczne tworzenie aplikacji sieciowych. Wydanie II
Intro to Python for Computer Science and Data Science: Learning to Program with AI, Big Data and The Cloud
Zautomatyzuj swoją firmę z Pythonem. Praktyczne rozwiązania dla firmowej sieci
C++. Podróż po języku dla zaawansowanych. Wydanie II
Więcej produktów