Lego-Robotik mit Java

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

NXT Direkt


Im direkten Modus (remote Steuerung) läuft das Java-Programm auf dem Computer. Während der Programmausführung kommuniziert der Rechner via Bluetooth mit dem NXT. Dabei schickt er ihm die Steuerbefehle und liest die Sensorwerte. Die Programme können auf unserem Webserver kompiliert werden.

Voraussetzungen:

  • NXT mit Java-Firmware (Java-Firmware-Installation)
  • Bluetooth
  • Windows, Mac OSX oderLinux
  • Für die Arbeit mit einer lokalen Java-Entwicklungsumgebung (z.B. Netbeans oder Eclipse) kann die Klassenbibliothek NxtJLib kostenlos von der Website des Autors www.aplu.ch herunter geladen werden.

 

 
 


 


Webserver

Didaktische Absichten:

  • Das Lernprogramm NxtDirekt eignet sich hervorragend für die Einführung in das objektorientierte Programmieren mit Java insbesondere für Benutzer, die Wert auf einen sauberen Klassendesign legen und "schöne" Java-Programme enwickeln möchten. Die Grundlage bietet die Klassenbibliothek NxtJLib, die nach Grundprinzipien des objektorientierten Programmierens aufgebaut ist. Jeder NXT-Roboter wird als ein Objekt der Klasse NxtRobot aufgefasst, mit dem Vorteil, dass mehrere Roboter gleichzeitig gesteuert werden können. Auch Motoren, Fahrwerke und Sensoren werden als Objekte aufgefasst und mit der Methode addPart() den Robotern zugeordnet.
  • Den Programmieranfängern steht eine Klasse TurtleRobot zur Verfügung, welche analog zur Turtle-Grafik insbesondere die Methoden forward(), backward(), left() und right() enthält. Für Programmieranfänger werden unter dem Menüpunkt TurtleRobot an Hand von einfachen Beispielen die wichtigsten Programmstrukturen und Java-Grundbegriffe erläutert.
  • Sensoren lösen typischerweise Events aus. Diese werden in NxtJLib gemäss dem bekannten Java-Eventmodell analog zum Maus-Events beschrieben. Die Verwendung von Events fördert das Denken mit eventgesteuerten Algorithmen, welches für das Programmieren von modernen Applikationen unerlässlich ist.