LEGO Wall-E Roboter mit Arduino Nano bauen: Schritt-für-Schritt-Anleitung
Komponenten und Materialien
- 1× LEGO Wall-E Set (gebraucht, nicht mehr produziert)
- 1× Arduino Nano R3
- 2× DC-Motor (mit ausreichend Drehmoment)
- 1× L298N Dual-Motortreiber
- 1× Bi-Color-LED (3 Pins, Rot/Grün)
- 1× Infrarot-Hindernissensor (einstellbare Reichweite)
- 1× Summer (Piezo, verschiedene Töne)
- 1× 9-V-Blockbatterie
- 3× Widerstand 330 Ω
- ca. 20× Jumper-Kabel
Werkzeuge
- Lötkolben
Software
- Arduino IDE
Über das Projekt
Jeder kennt Wall-E – den kleinen Müllroboter, der die Erde aufräumt. Ich habe ein LEGO-Wall-E-Set motorisiert und mit Hindernisvermeidung ausgestattet. Mein erstes Elektronikprojekt – große Lernkurve!
Schritt 1: Der Code
Als Softwareentwickler begann ich mit der Logik. Wall-E fährt vorwärts, erkennt Hindernisse per IR-Sensor (LOW = Hindernis), stoppt, spielt „Uh-oh“, schaut links/rechts, wählt freien Weg. Bei Blockade beiderseits: rückwärts mit Warnpiepsen, dann zufällige Drehung.
Wichtige Code-Elemente:
delay(2000)imsetup()– schützt vor Spannungsspitzen beim Batterie-Anschließen nach Reset- IR-Sensor hat Potentiometer für Erkennungsdistanz – keine Entfernungsberechnung nötig
- Zufällige Wendungen via
millis()-Timer (noch verbesserungswürdig) - Melodien:
playHello()(C4-E4-G4-C5),playUhOh()(C5-Gis4)
// Pin-Definitionen
#define INFRA_RED 9
#define GREEN_LED 7
#define RED_LED 8
#define BUZZER 10
#define MR_1 A1; #define MR_2 A2; #define MR_ENABLE 5
#define ML_1 A3; #define ML_2 A4; #define ML_ENABLE 6
const int NORMAL_SPEED = 255;
void setup() {
delay(2000);
pinMode(GREEN_LED, OUTPUT); pinMode(RED_LED, OUTPUT);
digitalWrite(RED_LED, LOW); digitalWrite(GREEN_LED, HIGH);
pinMode(MR_ENABLE, OUTPUT); pinMode(MR_1, OUTPUT); pinMode(MR_2, OUTPUT);
pinMode(ML_ENABLE, OUTPUT); pinMode(ML_1, OUTPUT); pinMode(ML_2, OUTPUT);
pinMode(INFRA_RED, INPUT);
randomSeed(analogRead(0));
playHello();
}
void loop() {
driveForwards(NORMAL_SPEED);
digitalWrite(RED_LED, LOW); digitalWrite(GREEN_LED, HIGH);
if (digitalRead(INFRA_RED) == LOW) { // Hindernis
digitalWrite(GREEN_LED, LOW); digitalWrite(RED_LED, HIGH);
stopDriving(); playUhOh();
// Links prüfen
turnLeft(500); bool obstacleLeft = (digitalRead(INFRA_RED) == LOW);
delay(100); turnRight(500); delay(500);
// Rechts prüfen
turnRight(500); bool obstacleRight = (digitalRead(INFRA_RED) == LOW);
delay(100); turnLeft(500);
// Entscheidung
if (obstacleLeft && obstacleRight) { /* rückwärts + piepsen + randomTurn */ }
else if (obstacleLeft) turnRight(1000);
else if (obstacleRight) turnLeft(1000);
else randomTurn(1000, 1800);
}
if (random(100) == 0) randomTurn(200, 2000); // gelegentliche Zufallswendung
}
// Motor-Funktionen: driveForwards, driveBackwards, turnLeft, turnRight, stopDriving, setSpeed
// randomTurn nutzt millis() % 2 für Richtung
Schritt 2: Verkabelung & Mechanik
- IR-Sensor ins Auge: Zerlegt, LEGO-Pin angeklebt, mit Blu-Tack in Augenfassung montiert – Auge bleibt beweglich
- Motoren: Drähte angelötet, Wellen mit Gipsband + Technic-Pins an Räder geklebt (Superkleber in Nut der Pins für Halt)
- LED in Brust: Aussparung geschnitten, 3-Pin-Bi-Color-LED eingebaut
- L298N passt gerade in den Bauch
- Stromversorgung: 9 V-Batterie → L298N (Motorstrom). Dessen 5 V-Ausgang → Arduino 5 V-Pin (geregelter 5 V, sicher!). Vin → IR-Sensor (5 V). Hinweis: Nur bei geregelter 5 V vom Treiber zulässig!



Schritt 3: Wall-E in Aktion
Videos zeigen: normales Fahren, Hindernisreaktion, Verhalten in der Ecke (rückwärts + Piepsen + Zufallsdrehung).
Geplante Verbesserungen: Kabelmanagement optimieren, Servo für Kopfdrehung, kleinere Platinen/Shields für kompletten Einbau in den Rumpf.
Und so lebte Wall-E glücklich bis an sein Ende.
Schaltplan (Fritzing)
wall-e2_3P6X71BCnP.fzz
Kabelfarben: Rot = Plus, Schwarz = Masse, Gelb = IR-Signal, Orange/Grün = LED, Lila = Motorrichtung, Blau = Motor-PWM (im Fritzing-Teil fehlen die PWM-Pins am L298N-Symbol).
Herstellungsprozess
- K30 CO₂-Sensor: Echtzeit-Luftqualitätsmessung mit Arduino
- Kommunikationshilfe für Taubblinde: 1Sheeld + Arduino + Sprachausgabe & Anzeige
- Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
- Automatischen LEGO Star Wars Shooter mit Arduino Uno bauen
- Servogesteuerter Hindernisvermeidungs-Roboter: Bauen mit Arduino & HC-SR04
- LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
- DFRobot Kapazitiver Fingerabdrucksensor mit Arduino oder ESP8266 einbinden
- Autonomer Linienfolger-Roboter mit Arduino UNO
- Interaktives Nextion HMI Projekt mit Arduino Mega und Sensoren
- Arduino-basierter 6-DoF Roboterarm mit Nunchuk-Steuerung