RobotC Crashkurs

Dieser Artikel soll den Schnelleinstieg in die Roboter Programmierung mit RobotC erleichtern. Hier erkläre ich die wichtigsten Menüpunkte und Einstellungen der Software, des Weiteren erhalten Sie einen Überblick über die Programmierung.

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
    1
    task main()
    statt
    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

Optionen: Drucken

| Share

Design by Christopher Walles © 2010 Impressum Sitemap Login