NXT 2.0 Farbsensor

Folgendes Beispiel-Programm lässt den Roboter geradeaus fahren, solange er sich auf blauem Untergrund befindet. Solange er sich auf rotem Untergrund befindet, fährt er rückwärts.

#include "NXCDefs.h"

task main()
{
  // Sensor
  SetSensorColorFull(IN_1);

  while(true)
  {

    while(SENSOR_1 == 2) //blau
    {
      OnFwd(OUT_AC, 80);
    }

    while(SENSOR_1 == 5) //rot
    {
      OnRev(OUT_AC, 80);
    }

  }

}

Motorensteuerung per Bluetooth

Um die Steuerung der Motoren über eine Bluetooth-Verbindung zu vereinfachen können folgende Makros benutzt werden:

#define RemoteOnFwd(ausgang, geschwindigkeit) RemoteSetOutputState(BT_CONN, \
        ausgang, geschwindigkeit, \
        OUT_MODE_MOTORON+OUT_MODE_BRAKE+OUT_MODE_REGULATED, OUT_REGMODE_IDLE, \
        0, OUT_RUNSTATE_RUNNING, 0)

Nun können die Motoren über den Befehl RemoteOnFwd(), den Ausgang und die Geschwindigkeit, wie vom OnFwd()-Befehl bekannt, angesteuert werden. Anders als beim OnFwd()-Befehl kann aber immer nur ein Motor gestuert werden.

#define RemoteOff(ausgang) RemoteOnFwd(ausgang, 0)

Dieses Makro sorgt dafür, dass die Motoren bequem, per RemoteOff(), ausgeschaltet werden können.