Do IT yourself! - LEGO® Mindstorms® NXT-Arduino

Inhaltsverzeichnis

Projektidee

Pinouts der NXT-Sensoren und -Aktoren

Ultraschall-Sensor

Material

Schaltplan

Do IT yourself!

NXT-Arduino Roboter

Fazit

Projektidee: LEGO® Mindstorms® NXT-Arduino

Die Idee zu diesem Projekt ist schon relativ alt und wurde in dem Moment konkret umgesetzt, als endlich ein (defekter) NXT-Stein zur Verfügung stand, der "ausgeschlachtet" werden konnte. Anders als die LEGO® MINDSTORMS® EV3 - Sensoren kommunizieren viele Sensoren der LEGO® MINDSTORMS® NXT Roboter analog statt mittels eines (proprietären) I2C-Protokolls mit dem NXT-Baustein, sodass sie bestens für den Anschluss an einen Arduino geeignet sind.

Nach oben

Pinouts der NXT-Sensoren und -Aktoren

Nach oben

Ultraschall-Sensor

Der NXT-Ultraschall-Sensor kommuniziert über eine nicht-konforme I2C-Schnittstelle mit dem NXT-Baustein, sodass er nicht ohne Probleme an einem Arduino betrieben werden kann; trotz vieler (älterer) Anleitungen und Bibliotheken gelang es nicht, diesen erfolgreich zur Zusammenarbeit mit einem Arduino zu bewegen. Für dieses Projekt wurde daher ein HC-SR04 Ultraschallsensor benutzt, an den eine NXT-kompatible RJ11-Buchse gelötet wurde. Zur Befestigung an andere LEGO® Technic Komponenten wurde für den HC-SR04 eine LEGO®-kompatible Halterung 3D-gedruckt (STL-Dateien: Sonic2.stl und Sonic3.stl):

Nach oben

Material (NXT-Arduino)

Material (Ultraschall-Sensor)

Nach oben

Schaltplan

 

Nach oben

Do IT yourself!

In diesem Projekt wurde zunächst das elektronische Innenleben eines (defekten) NXT-Bausteins entfernt, der gesamte Schaltungsaufbau erfolgte flexibel auf einem (zurechtgeschnittenen) Breadboard mit aufgestecktem Arduino mit Bluetooth-Verbindung. Auf dem Breadboard wurden auch ein Motortreiber sowie alle benötigten elektronischen Komonenten gesteckt. Um ausreichend Platz für alle benötigten Komponenten und Kabelverbindungen zu schaffen, musste das NXT-Gehäuseoberteil aufgeschitten werden. Der NXT-Lautsprecher wurde ebenso wie das auf der Unterseite befindliche Batteriefach (6x AA-Batterien mit je 1,5V = 9V) weiter genutzt:

Ein mechanischer Schalter wurde eingebaut, um die Stromversorgung zuverlässig ein- und ausschalten zu können und es musste auf einen freien Zugang zur USB-Schnittstelle des Arduinos geachtet werden, um den NXT-Arduino programmieren zu können. Die ursprünglich verbauten NXT-RJ11-Buchsen (Befestigungskerbe wie beim EV3 oben rechts, nicht oben mittig!) wurden ausgelötet, auf pinkompatible Breakout-Boards gelötet und wieder am NXT-Gehäuse befestigt:

Nach oben

NXT-Arduino Roboter

Zum Testen des NXT-Arduinos wurde ein fahrbares Robotermodell aus noch vorhandenen LEGO® Technic Bausteinen kontruiert. An dieses Modell wurden alle vorhandenen NXT-Sensoren sowie zwei Motoren mittels NXT-Verbindungskabeln angeschlossen. Der Bauplan für das Robotermodell wurde mit dem "LEGO Instruction Creator" erstellt, welcher über LDraw™ installierbar ist. Der Bauplan enthält am Ende auch eine Liste der benötigten LEGO®-Bausteine (hier: mit Original-NXT-Baustein, aber ohne NXT-Verbindungskabel):

Der NXT-Arduino lässt sich sowohl autonom mittels Sensoren als auch per Bluetooth z.B. vom Smartphone aus steuern, beides funktioniert mit dem BLE-Nano problemlos. In diesem Arduino-Programmbeispiel fährt der Roboter vorwärts, sobald der Tastsensor gedrückt wird. Wenn der Lichtsensor einen sehr dunklen Bereich auf dem Boden erkennt oder wenn der Soundsensor ein lautes Geräusch hört, stoppt der NXT-Arduino, fährt aber bei hellerem reflektiertem Licht bzw. geringer Lautstärke wieder vorwärts. Der Ultraschallsensor misst die Distanz und stoppt den NXT-Arduino, um eine Kollision zu vermeiden: Dann spielt der NXT-Arduino eine Melodie ab, fährt ein kurzes Stück rückwärts, dreht und fährt dann weiter vorwärts, wie in dem Kurzvideo beispielhaft zu sehen ist:

Nach oben

Fazit

Der NXT-Arduino bietet durch die Möglichkeit, unterschiedliche Roboter-Modelle mittels LEGO®-Bausteinen zu konstruieren, eine nahezu unendliche Vielfalt für spannende Projektideen auf der Basis eines Arduino-Mikrocontrollers. Auch die unkomplizierte Anschlussmöglichkeit von NXT-Sensoren und -Motoren und die Verwendung von NXT-Verbindungskabeln erlaubt eine einfache Konstruktion und Programmierung autonomer oder über Bluetooth gesteuerter Maschinen. Fortgeschrittene Programmiererinnen und Programmierer können über das Breadboard weitere analoge oder digitale Sensoren und Aktoren an den NXT-Arduino anschließen und mittels 3D-gedruckten LEGO®-kompatiblen Bauteilen aufwändigere Konstruktionen realisieren.

Nach oben