Software
From Nibo
Contents |
Programmierung
C
Die am Besten unterstützte Programmiersprache für AVR Controller ist C. AVR-GCC stellt die notwendigen Tools für C zur Verfügung. Für das Betriebssystem MS Windows bietet sich die Kombination aus AVR Studio und WinAVR (enthält avr-gcc, avr-g++, avrdude, avr-gdb u.a.) an. Eine umfangreiche Ansteuerungsbibliothek für die Programmiersprache C wurde bereits entwickelt. Diese beinhaltet auch komfortable Routinen für die Textausgabe auf dem optionalen Grafik-Display.
C++
Auch die Programmiersprache C++ wird vom AVR-GCC-Compiler unterstützt. Da die C++ Standardbibliothek leider nicht zur Verfügung steht, bringt die NiboLib eine Ersatzklasse für Strings mit. In der NiboLib sind alle Funktionen aus der C Bibliothek gekapselt.
Assembler
Der Roboter kann auch in Assembler programmiert werden. Auch hierfür stellt der AVR-GCC-Compiler entsprechende Unterstützung bereit.
Java
Mit Hilfe der NanoVM kann der Roboter in Java programmiert werden. Eine Java-Bibliothek für den Nibo steht zur Verfügung.
Firmware
Initializer
Mit der [Initializer Software], die man auf den Haupt-Controller aufspielt ist es möglich die Firmware von MOTCO und IRCO zu aktualisieren. Zusätzlich beinhaltet sie ein paar Test-Routinen.
MOTCO
Die Firmware für den Motor-Controller beinhaltet Routinen für die Motorregelung und Odometriesensoren. Es gibt eine ofizielle Version, die Software kann aber auch selbst entwickelt werden.
IRCO
Die Firmware für den IR-Controller beinhaltet Routinen für die Distanzmessung und die Kommunikation über IR. Auch hier gibt eine ofizielle Version, die Software kann jedoch modifiziert werden.
Initialisierung
Für die anfängliche Inbetriebnahme des Roboters steht eine Initialisierungs-Software (hex-File) zur Verfügung, mit der der IR-Controller und der Motorcontroller programmiert werden können. Um das Update durchzuführen, wird die aktuelle Version der Initialisierungssoftware mittels ISP auf den ATmega128 aufgespielt.
Zum automatischen Updaten des MotCo wird Jumper JP1 geschlossen und Jumper JP2 geöffnet. Nach dem Drücken des Reset-Tasters beginnt dann die Überprüfung und Programmierung (Status-LEDs rot). Ist die Programmierung abgeschlossen, leuchten die Status-LEDs grün.
Zum automatischen Updaten des IRCo wird Jumper JP1 geöffnet und Jumper JP2 geschlossen. Nach dem Drücken des Reset-Tasters beginnt dann die Überprüfung und Programmierung (Status-LEDs rot). Die Programmierung ist abgeschlossen, wenn die Status-LEDs grün leuchten.
Sollte sich schon die aktuelle Version auf dem jeweiligen Controller befinden, blinken die LEDs rot (3*kurz, Pause, ...).
Die Software beinhaltet neben der Firmware für MOTCo und IRCo auch einen Funktionstest: Wenn keiner der beiden Jumper gesteckt ist, wird ein Blinktest durchgeführt: Nach dem Einschalten leuchten alle LEDs kurz orange auf. Danach wiederholt sich folgendes Muster:
- Die LEDs leuchten im Uhrzeigersinn nacheinander rot auf.
- Die LEDs leuchten im Uhrzeigersinn nacheinander grün auf.
- Die weißen Scheinwerfer-LEDs leuchten kurz auf.
Wenn beide Jumper gesteckt sind, werden alle Komponenten getestet:
- Der Roboter sollte sich in ca. 6 Sekunden einmal im Uhrzeigersinn um seine mittlere Hochachse drehen.
- Die mehrfarbigen Status-LEDs zeigen die Freiräume an (rot: besetzt, aus: mittel, grün: frei)
- Die weißen LEDs leuchten, wenn der Roboter an allen Bodensensoren keinen Bodenkontakt hat.
- Folgende Werte werden auf dem Display angezeigt:
- Batteriespannung
- Odometrie-Ticks rechts
- Odometrie-Ticks links
- Die fünf IR-Distanzmessungen
- Werte von Abgrund- und Liniensensoren
- Empfangener RC5-Code
Download
- firmware_20070710.hex - Aktuelle Version als Intel-Hex File
- firmware_20070710.zip - Aktuelle Version als gezipptes Intel-Hex File
Links
- Nibo Library - Projektseite zur Nibo Library
- Nibo Library Doc - Dokumentation zur Nibo Library