Voraussetzungen
Ich setze hier voraus, dass Sie über zumindest solide C-Kenntnisse verfügen, einen Lego Mindstorms NXT Roboter besitzen und RobotC bereits auf Ihrem Computer installiert haben. Damit zwischen RobotC bzw. Ihrem Computer und Ihrem NXT eine Verbindung hergestellt werden kann, muss der entsprechende Treiber mit installiert sein.
Erste Schritte in RobotC
Starten Sie nun RobotC und Sie sollten eine große weiße Texteingabefläche vor sich haben. Vergewissern Sie sich dass der passende Treiber installiert. Schalten Sie nun den NXT ein und verbinden Sie diesem per USB Kabel mit Ihrem Computer.
Damit die Programme die mit RobotC compiliert (erstellt) wurden auch auf dem NXT laufen, müssen Sie die entsprechende Firmware auf diesen laden. Haben Sie die Verbindung zwischen dem Roboter und dem Computer erfolgreich hergestellt, können Sie nun im Menüpunkt Robot | Download Firmware die passende Firmware auf den Roboter spielen. Wurde dieser Vorgang erfolgreich abgeschlossen, kann nun mit der Programmierung gestartet werden.
Hello Robot!
Die wesentlichen Unterschiede zwischen "normalen" C-Programmen und Programmen für den NXT, die unter RobotC entwickelt wurden, sind die Folgenden:
- Der Programmeinstiegspunkt heißt bei RobotC
statt1 task main() 1 int main(void) - Sie müssen keine Bibliotheken inkludieren, RobotC ist spezialisiert und verlinkt diese automatisch.
Sie sollten über den Assistenten Ihre angeschlossenen Motoren und Sensoren angeben. Den Assistenten öffnen Sie über Robot | Motors and Sensors Setup. Dieser fügt die benötigten Codezeilen nach Abschluss der Konfigurierung automatisch ein.
Register
RobotC stellt Ihren für Ihre Programmierarbeit die folgenden Register zur Verfügung:
Register: Motor
Wie der Name bereits verrät, ist dieses Register zuständig für die Motorensteuerung. Bei allen Registern handelt es sich um Arrays des Datentyps int. Mit diesem Array steuern Sie Leistung eines Motors. Der Einstellungsbereich liegt zwischen -100 (volle Leistung rückwärts) und 100 (volle Leistung vorwärts).
Hier sehen Sie ein Anwendungsbeispiel:
| 1 2 3 4 5 | task main() { motor[motorA] = 100; motor[motorB] = 100; } |
Mit den Makros motorA bis motorC bestimmen Sie welche Motorenbuchse angesteuert werden soll.
Register: Sensorvalue
Mit dem Array SensorValue können Sie einen Messwert von einem angeschlossenen Sensor abfragen. DIe Makros zur Unterscheidung der Sensorbuchse heißen S1 bis S4.
| 1 2 3 4 5 6 7 | task main() { if(SensorValue[S1] == 1) { //... } } |
Wichtig: Dies gilt nur für "Analoge Sensoren" oder Digitale Sensoren im Standartmodus. Mehr über Sensoren lesen Sie im entsprechenden Kapitel.
| 13.06.2010 von Christopher Walles |