Transcription

Roboter programmieren mit NXC für LEGO MINDSTORMS NXTvonDaniel Braun2., überarb. Aufl. 2010Roboter programmieren mit NXC für LEGO MINDSTORMS NXT – Braunschnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNGmitp/bhv 2010Verlag C.H. Beck im Internet:www.beck.deISBN 978 3 8266 9064 8

2., aktualisierte AuflageDaniel Braun Konstanten und Variablen Verbindung zur Außenweltmit Sensoren Einsatz eines Displays Buttons zur Navigation Töne und Musikproduzieren Subroutinen und Makros Einsatz von Variablenfür Fortgeschrittene Daten speichern in Dateien Erweiterte MotorenBefehle Verwendung eines Timers Kommunikation zwischenRobotern Abschlussprojekt: derRoboter als Spielekonsolefür zwei PersonenDer Autor erläutert Ihnen das Programmieren mit derSprache NXC von Grund auf, dabei werden keine Programmierkenntnisse vorausgesetzt. Anhand praxisnaher Beispiele werden Sie nach und nach immer mehrBefehle kennen lernen und somit immer weitere Möglichkeiten haben, Ihren Roboter zu steuern. Am Endewerden Sie in der Lage sein, einen autonomen Roboter zu programmieren, der intelligent auf seine Umgebung reagiert und die verschiedensten Aufgaben lösenkann.ISBN 978-3-8266-5953-9Jedes Kapitel enthält am Ende eine Übersicht der neueingeführten Befehle. Darüber hinaus finden Sie in jedem Kapitel mehrere Fragen und Übungsaufgaben mitvollständigen Musterlösungen. Abgerundet wird dasBuch durch eine Zusammenstellung aller im Buch behandelten Befehle zum Nachschlagen.NXC Schleifen undVerzweigungenAußerdem zum Thema:für LEGO MINDSTORMS NXT Installation und Arbeitenmit BricxCCKleine Roboter in Form von intelligenten Maschinensind heutzutage im Alltag – meist unsichtbar – schonüberall zu finden. Mit diesem Buch lernen Sie, eineneigenen Roboter zu programmieren. Sie brauchen dafür lediglich einen LEGO MINDSTORMS NXT und einenComputer.RoboterprogrammierenmitAus dem Inhalt:Die aktualisierte Neuauflage beinhaltet alles Wissenswerte zur neuen Version NXT 2.0 und zum neuen Farbsensor. Alle Beispiele sind sowohl auf dem NXT 1.0 alsauch auf dem NXT 2.0 ausführbar.Über den Autor:Daniel Braun beschäftigt sich schon seit langem mitden Themen Künstliche Intelligenz und Robotik. Ernahm bereits als aktiver Teilnehmer und als Coach anzahlreichen Wettbewerben teil wie z.B. bei der FirstLego League. Im Jahr 2005 trat er zusammen mit demspäteren Weltmeister im Roboter-Fußball bei den German Open des RoboCups an. Außerdem ist er mitverantwortlich für das „Pleopatra“-Projekt des DeutschenForschungszentrums für Künstliche Intelligenz (DFKI).(D)17x24cmfür LEGO MINDSTORMS NXT Von einfachen Befehlen überden Einsatz von Sensoren bis zurKommunikation zwischen RoboternZahlreiche Praxisbeispiele undÜbungsaufgaben mit vollständigen Lösungen 34,95Für die Versionen NXT 1.0 und 2.0Daniel 4 Klecks Roboter U4 RS korr.indd 1NXCAbschlussprojekt: der Roboter alsSpielekonsole für zwei PersonenRegalsystematik:ProgrammierungProbekapitel und Infoserhalten Sie oter programmieren mit906419,5 mm11.03.2010 12:15:31

00 Roboter.book Seite 3 Donnerstag, 11. März 2010 1:40 13Daniel BraunRoboter programmieren mit NXCfür LEGO MINDSTORMS NXT des Titels »Roboter programmieren mit NXC für LEGO MINDSTORMS NXT« (ISBN 978-3-8266-9064-8) 2010by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/9064

00 Roboter.book Seite 4 Donnerstag, 11. März 2010 1:40 13Bibliografische Information Der Deutschen NationalbibliothekDie Deutsche Nationalbibliothek verzeichnet diese Publikation in derDeutschen Nationalbibliografie; detaillierte bibliografischeDaten sind im Internet über http://dnb.d-nb.de abrufbar.Bei der Herstellung des Werkes haben wir uns zukunftsbewusst fürumweltverträgliche und wiederverwertbare Materialien entschieden.Der Inhalt ist auf elementar chlorfreiem Papier gedruckt.ISBN 978-3-8266-9064-82. Auflage 2010E-Mail: [email protected]: 49 89/2183-7928Telefax: 49 89/2183-7620 2010 mitp, eine Marke der Verlagsgruppe Hüthig Jehle Rehm GmbHHeidelberg, München, Landsberg, Frechen, HamburgLEGO, das LEGO Logo, die Konfiguration der Noppen und die Minifigur sind Marken derLEGO Gruppe. 2009 The LEGO Group.Die Buchinhalte sind nicht in Zusammenarbeit mit der LEGO Group GmbH entstanden.IT -fachportal.deDieses Werk, einschließlich aller seiner Teile, ist urheberrechtlich geschützt.Jede Verwertung außerhalb der engen Grenzen des Urheberrechtsgesetzes istohne Zustimmung des Verlages unzulässig und strafbar. Dies gilt insbesonderefür Vervielfältigungen, Übersetzungen, Mikroverfilmungen und dieEinspeicherung und Verarbeitung in elektronischen Systemen.Lektorat: Sabine SchulzSprachkorrektorat: Petra Heubach-ErdmannSatz: III-satz, Husby, www.drei-satz.de des Titels »Roboter programmieren mit NXC für LEGO MINDSTORMS NXT« (ISBN 978-3-8266-9064-8) 2010by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/9064

00 Roboter.book Seite 5 Donnerstag, 11. März 2010 1:40 13InhaltsverzeichnisVorwort. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1311.11.2NXT und NXC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Der NXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .NXC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1.2.1Not eXactly C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1.2.2 Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1.2.3 Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15151616171722.12.22.3BricxCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Oberfläche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Menüleiste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2.3.1 Datei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2.3.2 Suche. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2.3.3 Compiler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2.3.4 Hilfe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2.3.5 Bearbeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2.3.6 Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Editor-Fenster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2.5.1 Tastenkombinationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1919202222232525262833333333.13.23.33.4Das erste Programm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Die ersten Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Fehler finden und beheben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Programmierstil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3.4.1 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3.4.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3535373738383844.1Schleifen und Verzweigungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .repeat-Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41412.42.5 des Titels »Roboter programmieren mit NXC für LEGO MINDSTORMS NXT« (ISBN 978-3-8266-9064-8) 20105by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/9064

00 Roboter.book Seite 6 Donnerstag, 11. März 2010 1:40 13Inhaltsverzeichnis4.24.34.44.5while-Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .if-Verzweigung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Projekt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4.5.1 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4.5.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42434445454655.15.2Konstanten und Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Konstanten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.2.1 Deklaration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.2.2 Wertzuweisung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Rechnen mit Variablen, Konstanten und Zahlen . . . . . . . . . . . . . . . .Vergleichen von Variablen, Konstanten und Zahlen . . . . . . . . . . . . .Projekt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Kommentare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.7.1Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5.7.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .494951515354555758585859Sensoren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Tastsensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Lichtsensor (NXT 1.0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.2.1 Funktionsweise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.2.2 Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Farbsensor (NXT 2.0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.3.1 Funktionsweise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.3.2 Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Ultraschallsensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.4.1 Funktionsweise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.4.2 Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Geräuschsensor (NXT 1.0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Rotationssensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Projekt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.8.1 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6.8.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6161646465666667696970717273777778Display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Technische Daten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81815.35.45.55.65.766.16.26.36.46.56.66.76.877.16 des Titels »Roboter programmieren mit NXC für LEGO MINDSTORMS NXT« (ISBN 978-3-8266-9064-8) 2010by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/9064

00 Roboter.book Seite 7 Donnerstag, 11. März 2010 1:40 13Inhaltsverzeichnis7.27.3Verwendung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.3.1Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.3.2 Buchstaben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.3.3 Punkte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.3.4 Rechtecke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.3.5 Kreise. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.3.6 Strecken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.3.7 .ric-Dateien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.4.1 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7.4.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .81828283848586868687878888.18.28.38.48.5Buttons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Betätigungen zählen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Betätigungen und Status. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.5.1 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8.5.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .898991929294949499.19.29.39.49.59.6Musik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Töne spielen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .wav-Dateien abspielen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Midi-Dateien abspielen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Brick Piano. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.6.1 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9.6.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . inen und Makros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Subroutinen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Makros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Subroutinen in BricxCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10.4.1 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10.4.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1071071131161171171177.4 des Titels »Roboter programmieren mit NXC für LEGO MINDSTORMS NXT« (ISBN 978-3-8266-9064-8) 20107by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/9064

00 Roboter.book Seite 8 Donnerstag, 11. März 2010 1:40 13Inhaltsverzeichnis1111.1Variablen für Fortgeschrittene . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Globale und lokale Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.1.1 Globale Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.1.2 Lokale Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.2.1 Anzahl der Elemente bestimmen . . . . . . . . . . . . . . . . . . . . . .11.2.2 Arrays kopieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.2.3 Arrays zusammensetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.2.4 Mehrdimensionale Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . .Strings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.3.1 Zahlen in Strings umwandeln. . . . . . . . . . . . . . . . . . . . . . . . .11.3.2 Strings in Zahlen umwandeln. . . . . . . . . . . . . . . . . . . . . . . . .11.3.3 Länge von Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.3.4 ASCII-Code eines Zeichens. . . . . . . . . . . . . . . . . . . . . . . . . . .11.3.5 Strings zusammenfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.3.6 Teile von Strings kopieren . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.3.7 Teile eines Strings ersetzen . . . . . . . . . . . . . . . . . . . . . . . . . . .Weitere Variablentypen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.4.1 Long . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.4.2 Char . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Structs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.6.1 Übung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11.6.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381381381391391411411421212.112.212.3Verzweigungen und Sprunganweisung. . . . . . . . . . . . . . . . . . . . . . . .case-Verzweigung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Sprunganweisung (Goto) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12.3.1 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12.3.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1451451471481481481313.113.213.313.413.5Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Aufruf von Tasks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Multitasking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Tasks stoppen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Mutex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13.5.1 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .13.5.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15115115315515615915915911.211.311.411.511.68 des Titels »Roboter programmieren mit NXC für LEGO MINDSTORMS NXT« (ISBN 978-3-8266-9064-8) 2010by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/9064

00 Roboter.book Seite 9 Donnerstag, 11. März 2010 1:40 izugriff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Anlegen einer Datei. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Löschen einer Datei. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .In Dateien schreiben . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14.3.1 Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14.3.2 ASCII-Zeichen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Dateien einlesen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Dateien umbenennen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Fehlerbehandlung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14.8.1 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14.8.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . sor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .#include . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15.1.1 Erstellen einer eigenen Header-Datei. . . . . . . . . . . . . . . . . . . .15.1.2 Einfügen von Header-Dateien. . . . . . . . . . . . . . . . . . . . . . . . . .Bedingte Kompilierung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15.3.1 Übung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15.3.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175175176177179181181182Erweiterte Motoren-Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Bremsen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Synchronisiertes Fahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16.2.1 Bögen fahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16.2.2 Geradeaus fahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Gradweise Motordrehung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Motorstatus auslesen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16.4.1 Geschwindigkeit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16.4.2 Rotationen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16.4.3 Synchronisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16.4.4 Bewegungsstatus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16.5.1 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16.5.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .185185186186187189190190191191192193193193Weitere Schleifen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197do-while-Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 197 des Titels »Roboter programmieren mit NXC für LEGO MINDSTORMS NXT« (ISBN 978-3-8266-9064-8) 20109by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/9064

00 Roboter.book Seite 10 Donnerstag, 11. März 2010 1:40 13Inhaltsverzeichnis17.217.317.417.5until-Schleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zählschleife . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .break & continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17.5.1 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17.5.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1981992012022022021818.118.218.318.4Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Verwendung des Timers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Sleep-Timer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Projekt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.4.1 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18.4.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2052052072082092092091919.119.2Sensoren für Profis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Erweiterte Sensorfunktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .RCX-Sensoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19.2.1 Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Sensoren in BricxCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Weitere Farbsensor-Befehle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Weitere Sensoren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19.5.1 HiTechnic-Sensoren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19.5.2 Mindsensors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19.5.3 Bezugsquellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19.6.1 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19.6.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ion zwischen Robotern . . . . . . . . . . . . . . . . . . . . . . . . . .Kommunikation zwischen RCX und NXT . . . . . . . . . . . . . . . . . . . . .Bluetooth-Kommunikation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20.2.1 Steuerung per Handy und PDA . . . . . . . . . . . . . . . . . . . . . . .20.2.2 Kommunikation zwischen NXT und PC . . . . . . . . . . . . . . . .20.2.3 Kommunikation zwischen zwei NXTs . . . . . . . . . . . . . . . . . .Kommunikation per Kabel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20.3.1 Verbindung herstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20.3.2 Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20.220.310 des Titels »Roboter programmieren mit NXC für LEGO MINDSTORMS NXT« (ISBN 978-3-8266-9064-8) 2010by Verlagsgruppe Hüthig Jehle Rehm GmbH, HeidelbergNähere Informationen unter: http://www.it-fachportal.de/9064

00 Roboter.book Seite 11 Donnerstag, 11. März 2010 1:40 13Inhaltsverzeichnis20.4Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27020.4.1 Übungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27020.4.2 Wiederholung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27021Abschlussprojekt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4A.15A.16A.17A.18Lösungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Kapitel 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Kapitel 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Kapitel 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Kapitel 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Kapitel 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Kapitel 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Kapitel 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Kapitel 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Kapitel 11 . . . . . . . . . .

Roboter programmieren mit NXC für LEGO MINDSTORMS NXT von Daniel Braun 2., überarb. Aufl. 2010 Roboter programmieren mit NXC für LEGO MINDSTORMS NXT – Braun schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv 2010 Verlag