Lego-Robotik mit Java

English
Virtueller Campus Projekt, PHBern
HomeoopNXToopNXJlejosNXTlejosNXJLegoRCXDruckenJava-Online
Online-Editor starten

Fahren und stoppen


Benötigter Roboter: NXT-Basismodel


Mit der Methode new wird ein neues Objekt - ein NxtRobot mit dem Namen robot erzeugt. Bei der Erzeugung wird automatisch die Bluetooth-Verbindung aufgebaut. Nachfolgend werden zwei Motoren motA und motB erzeugt. A und B entspricht der Bezeichnung der Anschlüsse auf dem NXT-Baustein. Der rechte Motor ist an der Buchse A und der linke an B angeschlossen. Als nächstes werden die Motoren als Bauteile mit addPart() zum Rboter hinzugefügt.
Die Vorwärtsbewegung eines Motors wird mit forward() gestartet. Diese Methode ist nicht blockierend, so dass das Programm sofort weiterläuft. Der Motor läuft so lange, bis stop() aufgerufen oder das Programm mit exit() beendet wird.
Die Zeit, die zwischen forward() und stop() verstreicht, kann mit Tools.delay() geregelt werden und bestimmt die zurückgelegte Distanz.

 

Beispiel: 2000 Millisekunden vorwärts fahren

Beispiel mit Online Editor testen

Programmcode:

// MoveEx1.java

import ch.aplu.nxt.*;

class MoveEx1
{
  MoveEx1()
  {
    NxtRobot robot = new NxtRobot();
    Motor motA = new Motor(MotorPort.A);
    Motor motB = new Motor(MotorPort.B);
    robot.addPart(motA);
    robot.addPart(motB);
    motA.forward();
    motB.forward();
    Tools.delay(2000);
    robot.exit();
  }

  public static void main(String[] args)
  {
    new MoveEx1();
  }
}

Erklärungen zum Programmcode:
import ...
importiert die nötigen Klassenbibliotheken
NxtRobot robot  =  new NxtRobot("NXT") erzeugt eine neue Roboterinstanz robot (NXT entspricht dem Namen des NTX-Bausteines) und baut die Bluetooth-Verbindung auf
Motor motA  =  new Motor(MotorPort.A) erzeugt eine neue Motorinstanz motA (A entspricht Anschlussbuchse A)
MoveEx1()

MoveEx1 () wird als Konstruktor der Klasse MoveEx1 bezeichnet. Der Konstruktor hat den gleichen Namen wie die Klasse selbst
Tools.delay(2000)
Hält das Programm während 2000 Millisekunden an
exit ()

Stoppt die beiden Motoren und unterbricht die Kommunikation zwischen dem Roboter und dem Computer
public static void main(String[] args) Jede Applikation enthält eine Methode main(). Diese erstellt mit new eine Instanz des Programms, wodurch den Konstruktor ausgeführt wird

Hinweise zur Syntax