Erste Schritte in der Roboterprogrammierung mit leJOS

Tipps vor der ersten Fahrt

Programm beenden: Ist der EV3 nicht abgestürzt, sondern z.B. in einer Endlosschleife tätig, kann man das laufende Programm durch Drücken von "ENTER" und "DOWN" auf dem Brick beendet werden.

Neustart EV3: Ist der EV3 abgestürzt, kann man ihn mit "ESCAPE", "ENTER" und "DOWN" manuell neu starten.

Probefahrt

Das erste Programm wirkt auf den ersten Blick etwas komplex. Dank der leJOS-Bibliothek sind viele Klassen, Methoden und die zugrundeliegenden Programmierparadigmen sehr intuitiv, so dass man sehr schnell durch einfache Aufrufe bereits Programme mit spannendem Output erzeugen kann.

import lejos.robotics.RegulatedMotor;
import lejos.hardware.motor.EV3LargeRegulatedMotor;
import lejos.hardware.port.MotorPort;
public class EV3Probefahrt 
{
  static RegulatedMotor reMo = new EV3LargeRegulatedMotor(MotorPort.A);
  static RegulatedMotor liMo = new EV3LargeRegulatedMotor(MotorPort.D);
  
  public static void main(String[] args) 
  {        
    liMo.setSpeed(500);
    reMo.setSpeed(500);       
    liMo.rotate(1080,true);
    reMo.rotate(1080);
  }  
}
import lejos.nxt.Motor;
import lejos.nxt.NXTRegulatedMotor;

public class Probefahrt 
{
  static NXTRegulatedMotor reMo = Motor.A;
  static NXTRegulatedMotor liMo = Motor.B;  
  public static void main(String[] args) 
  {        
    liMo.setSpeed(500);
    reMo.setSpeed(500);       
    liMo.rotate(1080,true);
    reMo.rotate(1080);
  }  
}

Probefahrt.java bewirkt, dass der Roboter ein Stück geradeaus fährt. Durch die import-Zeilen wird die Verfügbarkeit der leJos-Bibliothek hergestellt. reMo und liMo sind die beiden Motoren, die den Roboter in der Fahrt antreiben. Mit setSpeed stellt man beide auf eine Geschwindigkeit (Grad pro Sekunde) ein, welche auf ~100*Batteriespannung limitiert ist [900 mit Batterien, 740 bei Akku). Der Befehl rotate bewirkt die Drehung der Motoren um eine angegebene Gradzahl (hier drei Umdrehungen). Durch den Parameter true wird der nachstehende rotate-Befehl gleichzeitig, und nicht erst nach Beendigung des ersten Aufrufs, ausgeführt. Somit fährt der Roboter geradeaus. Befehle zur Messung und Steuerung des Roboters müssen grundsätzlich innerhalb der main-Methode stehen (der Startpunkt eines jeden Java-Programms). Eine Auslagerung an andere Stelle wird durch Methoden möglich.

Aufgaben - Modifikation der Probefahrt

  1. Erprobe die Veränderung der Parameter Geschwindigkeit und Distanz. Setze auch mal in beiden Motoren voneinander verschiedene Werte ein.
  2. Verwende für einen der beiden Motoren bei rotate den gleichen Betrag, jedoch mit negativem Vorzeichen.
  3. Durch Wiederholung der Befehle rotate kann ein Programm "mehrere Fahrten" in einem Programmdurchlauf ausführen. Probier es aus!
  4. Stecke z.B. mit Kisten einen Parcours ab, den der Roboter bewältigen muss.

Anmerkungen und Hilfen zu den Aufgaben

  1. Durch die Erprobung wird man ein Gefühl für die Auswirkungen und Grenzen der Parameter entwickeln. Bei verschiedenartigen Werten fährt der Roboter eine Kurve, die in dieser Form noch ruckelnd und (insbesondere am Ende der Fahrt) unschön sein wird.
  2. Der Roboter dreht auf der Stelle aufgrund entgegengesetzt laufender Ketten. Experimentell könnte man an dieser Stelle eine Drehung um 90 oder 180 Grad bestimmen.
  3. Beispiel: Geradeausfahrt > Drehung > Geradeausfahrt
	    
	liMo.rotate(1080,true);
	reMo.rotate(1080);
	liMo.rotate(-1080,true);
	reMo.rotate(1080);
	liMo.rotate(540,true);
	reMo.rotate(540); 
X

Fehler melden

X

Suche