Roboter programmieren mit NXC für Lego Mindstorms NXT 1. Auflage Roboter programmieren mit NXC für Lego Mindstorms NXT schnell und portofrei erhältlich bei beck-shop.de DIE FACHBUCHHANDLUNG mitp/bhv Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 8266 5070 3 Inhaltsverzeichnis: Roboter programmieren mit NXC für Lego Mindstorms NXT
Kapitel 1 NXT und NXC 1.1 Der NXT Der NXT ist das neueste Mitglied der LEGO-Mindstorms-Familie. Wie sein direkter Vorgänger, der RCX, ist er ein»intelligenter Baustein«zum Bauen und Programmieren von Robotern, basierend auf einem Mikrocontroller. Standardmäßig wird der NXT mit der NXT-G-Programmierumgebung ausgeliefert, einer grafischen Oberfläche zur Erstellung von Programmen. An den NXT können über drei Ausgänge Motoren angeschlossen werden. Im Gegensatz zu den älteren RCX-Motoren haben die neuen Motoren einen Rotationssensor eingebaut. Außerdem verfügt der NXT über vier Eingänge für Sensoren. Es gibt sowohl von LEGO als auch von Drittherstellern eine Vielzahl an verschiedenen Sensoren. Zu den gebräuchlichsten gehören der Lichtsensor und der Tastsensor. Abb. 1.1: Der NXT (Quelle: LEGO GmbH) Während der Vorgänger nur über eine langsame Infrarot-Schnittstelle zum Kommunizieren mit dem Computer verfügte, steht dem NXT ein USB-Anschluss und drahtlose Verbindung per Bluetooth zur Verfügung. Die technischen Daten des NXT im Überblick: 32 Bit ATMEL-ARM-Prozessor ATmega48-Koprozessor mit 8 Bit 15
Kapitel 1 NXT und NXC Bluetooth USB-2.0-Anschluss 3 Sensoreneingänge + Highspeed-Port 3 Motorenausgänge LC-Display mit 100 x 64 Pixel 8-Bit-Soundausgabe Open-Source-Firmware Wer mit all diesen Begriffen nichts anfangen kann, muss sich keine Sorgen machen, zum Programmieren des NXT sind keine Kenntnisse der Hardware nötig. Wer sich jedoch etwas auskennt, wird feststellen, dass im NXT einiges an Power steckt, und wird sich auch denken können, dass längst nicht alle Reserven mit der grafischen Programmiersprache NXT-G mobilisiert werden können. Mit diesem Buch und der entsprechenden Programmiersprache wird es Ihnen aber bald möglich sein, die versteckten Reserven des NXT zu nutzen. Die Programmiersprache, die wir dazu verwenden, heißt NXC. 1.2 NXC NXC ist eine noch sehr junge Programmiersprache, sie entstand erst 2007, kurz nach der Veröffentlichung des NXT. Ihr Erfinder John Hansons hat außerdem die BricxCC-Entwicklungsumgebung und den direkten Vorgänger der Sprache, NQC, eine Programmiersprache für den RCX, entwickelt. NXC wurde extra für den NXT entwickelt und ist somit optimal auf die Hardware abgestimmt. 1.2.1 Not exactly C Die Abkürzung NXC steht für Not exactly C, was auf Deutsch so viel heißt wie nicht genau C. Der Name beschreibt auch schon eine der wichtigsten Eigenschaften von NXC, denn die Sprache ist vom Aufbau her der Programmiersprache C sehr ähnlich, gleichzeitig aber wesentlich einfacher. Die Ähnlichkeit zu C hat sowohl für Profis als auch für Neueinsteiger in der Welt des Programmierens große Vorteile. Wer schon Programmiersprachen wie C, C++, Java, PHP oder ähnliche kennt, wird sich schnell im Quellcode von NXC zurechtfinden, umgekehrt haben es Anfänger leicht, von NXC auf eine dieser Sprachen umzusteigen. 16
1.2 NXC Inzwischen gibt es auch weitere Sprachen zum Programmieren des NXT, der Vorteil an NXC ist jedoch, dass keine spezielle Firmware benötigt wird und man somit NXC-Programme und normale NXT-G-Programme, also Programme, die mit der LEGO-Software erstellt wurden, parallel verwenden kann. 1.2.2 Compiler Wie in fast allen Programmiersprachen, müssen auch NXC-Programme kompiliert (oft auch: compiliert) werden, bevor sie ausgeführt werden können. Dazu wird ein so genannter Compiler (selten auch: Kompiler) benötigt. Ein Compiler ist eine Art Übersetzer, er übersetzt den eingegebenen Code in eine Sprache, die der NXT versteht. Da diese Sprache komplizierter ist als die Programmiersprache, programmiert man in NXC und kompiliert die Programme anschließend. Der Compiler für NXC ist für alle Windows-Betriebssysteme ab Windows 95, Linux, Mac OS X und FreeBSD erhältlich. Der Compiler ist unter der Mozilla Public License 1.1 (MPL 1.1) veröffentlicht und so genannte Open-Source-Software. Das bedeutet, dass das Programm und der Quellcode des Programms für jeden frei verfügbar sind und beliebig verändert werden dürfen (unter Beachtung der Lizenzbestimmungen). 1.2.3 Zusammenfassung Wiederholung Begriff BricxCC Not exactly C (NXC) Compiler/Kompiler Kompilieren Open Source Bedeutung Grafische Oberfläche zum Programmieren mit NXC Programmiersprache zum Erstellen von Programmen für den NXT Programm, das ein Programm in Maschinensprache übersetzt Das Übersetzen von Code in Maschinensprache Programme, die für jeden kostenlos und frei zur Verfügung stehen Hinweis Die aktuellste Version des Compilers ist immer auf der offiziellen Website verfügbar: http://bricxcc.sourceforge.net/nbc/. Bei Verwendung des BricxCC (siehe nächstes Kapitel) muss der Compiler allerdings nicht extra heruntergeladen werden, da er im Download integriert ist. 17