So benutzt du diese Anleitung
WALL·E besteht aus 310 gedruckten Teilen, 7 kleinen Servomotoren, 2 Antriebsmotoren und etwas Elektronik. Das klingt nach viel. Aber du baust ihn nicht auf einmal, sondern in kleinen Baugruppen: erst die Ketten, dann die Räder, die Arme, den Kopf und so weiter. Am Ende steckst du alles zusammen.
Die Anleitung hat vier Teile:
| Teil | Was passiert | Warum in dieser Reihenfolge? |
|---|---|---|
| A · Elektronik testen | Du baust die Elektronik lose auf dem Tisch auf und probierst alles aus: Strom, Servos, Motoren, Sensor. | Du brauchst die Servos in Mittelstellung, bevor du sie einbaust. Und Fehler findet man auf dem Tisch viel leichter als im fertigen Roboter. |
| B · Zusammenbauen | Die Mechanik: Ketten, Räder, Arme, Kopf, Hals, Körper und dann alles zusammen. | Genau die Reihenfolge des Original-Videos, nur mit Ketten zuerst, damit du früh die Motoren testen kannst. |
| C · Einbauen | Die Elektronik kommt in den Bauch, Kabel werden verlegt. | Erst wenn die Mechanik steht, weißt du, wo Platz ist. |
| D · Einstellen | Jeder Servo bekommt seine genauen Grenzen, damit nichts gegen einen Anschlag drückt. | Geht erst, wenn alles eingebaut ist. |
Was ist bei dir anders als im Original?Das Original nutzt Arduino + Raspberry Pi. Du nutzt einen ESP32.
| Aufgabe | Im Original | Bei dir | Was das bedeutet |
|---|---|---|---|
| Gehirn | Arduino Uno | ESP32 DevKit | Der ESP32 ist schneller und hat WLAN eingebaut. Er arbeitet mit 3,3 Volt an den Pins, der Arduino mit 5 Volt. Darauf achten wir bei der Verkabelung. |
| Fernsteuerung, Webseite | Raspberry Pi | fällt weg | Der ESP32 kann selbst eine kleine Webseite im WLAN anbieten. Du steuerst WALL·E dann vom Handy aus. |
| Kettenmotoren steuern | Arduino Motor Shield | 2× BTS7960 | Pro Kette ein Motortreiber. Die sind viel kräftiger als das Shield. Jeder braucht 2 Steuerleitungen (vorwärts / rückwärts). |
| Servos steuern | PCA9685 | PCA9685 (gleich) | Hier ändert sich nichts, nur die zwei Datenleitungen gehen an andere Pins. |
| Strom für Servos | ein 12→5 V Wandler für alles | 12-A-Wandler auf 6 V | Die Servos bekommen ihren eigenen, kräftigen Stromwandler. Das ist besser, weil zuckende Servos sonst den ESP32 zum Absturz bringen können. |
| Strom für das Gehirn | über denselben Wandler | LM2596 auf 5 V | Ein eigener kleiner Wandler nur für den ESP32. Er speist die 5-V-Pins des Erweiterungsboards. |
| Akku | 12-V-Akku | LiPo 3S (11,1 V) | Passt gut. Voll geladen hat er 12,6 V. LiPo-Akkus brauchen etwas Vorsicht (siehe Sicherheit). |
| Abstandssensor | nichts | RCWL-1601 | Ein Extra von dir. Im Gehäuse gibt es dafür keinen festen Platz. Wir schließen ihn an und testen ihn, den Einbauort suchst du dir später aus. |
| Kamera | Raspberry-Pi-Kamera am Pi | XIAO ESP32S3 Sense | Ein eigener, winziger ESP32 mit Kamera, der im Auge sitzt und das Bild selbst per WLAN aufs Handy schickt. Er braucht nur Strom (5 V und GND), keine Datenleitung zum großen ESP32. Test in Schritt A8. |
| Programm | Arduino-Code von chillibasket | muss angepasst werden | Der Original-Code läuft nicht direkt auf ESP32 + BTS7960. In dieser Anleitung bekommst du Testprogramme für jeden Teil. Das richtige WALL·E-Programm schreibe ich (Chanti) dir als nächsten Schritt. |
Sicherheit zuerstBitte einmal ganz lesen, bevor du irgendwas anschließt
- Nie kurzschließen. Plus (rot) und Minus (schwarz) dürfen sich nie direkt berühren. Ein LiPo liefert so viel Strom, dass Kabel glühen und der Akku brennen kann.
- Nie beschädigen. Nicht fallen lassen, nicht einklemmen, nicht durchstechen. Wird er dick („aufgebläht"), nicht mehr benutzen.
- Nur mit dem IMAX B6 laden, im Programm LiPo · BALANCE, 3S, Ladestrom 1,0 bis 2,0 A. Beide Stecker anschließen: den dicken XT60 und den kleinen weißen Balancer-Stecker.
- Beim Laden dabei bleiben und den Akku auf eine feuerfeste Unterlage legen (Fliese, Blech, am besten ein LiPo-Sicherheitsbeutel).
- Nicht leer fahren. Unter 3,3 V pro Zelle (also unter 9,9 V gesamt) nimmt der Akku Schaden. Ein kleiner LiPo-Warner (Piepser für den Balancer-Stecker) hilft.
- Lagern mit dem IMAX-Programm STORAGE (halb voll), wenn du WALL·E länger nicht benutzt.
- Umbauen nur ohne Strom. Bevor du ein Kabel umsteckst: Akku abstecken. Immer.
- Erst messen, dann anschließen. Die beiden Spannungswandler kommen mit einer zufälligen Einstellung aus der Packung. Du stellst sie mit dem Multimeter ein, bevor etwas daran hängt. Sonst können ESP32 oder Servos sofort kaputtgehen.
- Alle Minus-Leitungen (GND) gehören zusammen. Das ist die gemeinsame „Null". Fehlt diese Verbindung, verstehen sich die Bauteile nicht.
Was du brauchstAbgeglichen mit deiner Teileliste
Elektronik (hast du schon)
| Teil | Stück | Wofür | Status |
|---|---|---|---|
| ESP32 DevKit | 1 (+1 Ersatz) | das Gehirn | da |
| ESP32-Erweiterungsboard (DC 6,5 bis 16 V, Jumper 3.3V/5V) | 1 | Steckplatz für den ESP32, jeder Pin mit eigener Reihe Signal / Plus / GND | da |
| PCA9685 Servo-Board | 1 (+1 Ersatz) | steuert die 7 Servos | da |
| MG90S Servo | 7 (+1 Ersatz) | Augen, Kopf, Hals, Arme | da |
| BTS7960 Motortreiber | 2 | linke und rechte Kette | da |
| JGB37-520 Getriebemotor 12 V | 2 | Kettenantrieb | da |
| Step-Down-Wandler 12 A (der große) | 1 | macht 6 V für die Servos | da |
| LM2596 Step-Down (die kleinen blauen) | 1 (+2 Ersatz) | macht 5 V für den ESP32 (über das Erweiterungsboard) | da |
| RCWL-1601 Ultraschallsensor | 1 | Abstand messen (Extra) | da |
| LiPo 3S 2200 mAh + IMAX B6 | 1 | Strom + Ladegerät | da |
| XT60-Stecker mit Kabel | 1 | Akku-Anschluss | da |
| Schrumpfschlauch-Set | 1 | Lötstellen isolieren | da |
| M3-Schraubenset (440 Teile) | 1 | alles verschrauben | da |
| alle 310 Druckteile | 310 | der Roboter | da |
| Lötkolben + Lötzinn | 1 | nur falls nötig: Motoren ohne Kabel, kaputte Stecker. Die Stromverteilung geht ohne Löten (WAGO). | da |
| Multimeter | 1 | Spannungen einstellen | bitte prüfen |
| Teil | Wofür | Wie wichtig? |
|---|---|---|
| Multimeter | Ohne Multimeter kannst du die Spannungswandler nicht einstellen. In deiner Teileliste steht es auf „Nein". | Pflicht |
| Lötzinn (bleifrei, 0,8 bis 1 mm, mit Flussmittel-Seele) | für den Lötkolben, falls doch gelötet werden muss | Reserve |
| 2 Linsen, plankonvex, 31,5 bis 32,5 mm Durchmesser (Glas oder Acryl/PMMA) | die Augen. Ohne Linsen sieht WALL·E „leer" aus. Suchwort: „Plankonvexlinse 32 mm" oder „Kondensorlinse". Nachgemessen: Der Linsensitz im grünen Ring hat 33,0 mm und läuft vorne auf etwa 31 mm zu. 31,6 mm passt gut, 33 mm ist zu groß (gedruckte Löcher werden etwas kleiner). Acryl ist leichter als Glas, verkratzt aber schneller. | für die Optik |
| Seeed XIAO ESP32S3 Sense (mit Kamera OV2640 und Antenne) | die Kamera im Auge (Extra). Wichtig: „Sense" muss im Namen stehen, sonst fehlt die Kamera. Eine reicht, das zweite Auge bleibt Deko. | Extra |
| Büroklammern (mind. 5, normale Metallklammern) | Gestänge an Augen und Hals | Pflicht |
| Sekundenkleber (am besten Gel) | einige Teile werden geklebt | Pflicht |
| Dupont-Kabel Buchse auf Buchse, 20 cm (ca. 30 Stück) | ESP32 mit den Boards verbinden | Pflicht |
| Servo-Verlängerungskabel 30 cm (4 Stück) | Die Servos in Kopf und Hals sind weit weg vom Servo-Board im Bauch. Die Original-Kabel (ca. 25 cm) reichen wahrscheinlich nicht. | sehr wahrscheinlich nötig |
| Litze rot + schwarz, 0,75 mm² (18 AWG), je 1 m | Stromleitungen zu Wandlern und Motortreibern | Pflicht |
| 2 kleine Verteiler-Klemmen (z.B. WAGO 221, 5-fach) | ein Plus-Verteiler, ein Minus-Verteiler. Spart viel Löten. | sehr empfohlen |
| Sicherung 10 A (KFZ-Flachsicherung mit Halter) | schützt bei einem Kurzschluss | sehr empfohlen |
| Schalter (Wippschalter, mind. 10 A) | An/Aus, ohne jedes Mal den Stecker zu ziehen | empfohlen |
| LiPo-Warner (1S bis 8S Spannungsanzeige mit Piepser) | piept, bevor der Akku zu leer wird | sehr empfohlen |
| Klettband oder doppelseitiges Klebeband, Kabelbinder | Elektronik im Bauch befestigen | empfohlen |
| Schleifpapier (240er) oder eine kleine Feile | Gelenke glatt machen | empfohlen |
Werkzeug
Inbusschlüssel (liegt beim Schraubenset bei) · kleiner Kreuzschlitz-Schraubendreher (für die Servo-Schrauben) · Spitzzange (Büroklammern biegen) · Seitenschneider · Abisolierzange oder Cuttermesser · Feuerzeug oder Heißluft (Schrumpfschlauch) · Lötkolben · Multimeter · Kreppband und Stift (zum Beschriften).
Welche Schrauben wo? (Übersicht)
M3 heißt: Die Schraube ist 3 mm dick. Die Zahl dahinter ist die Länge ohne Kopf. Leg eine Schraube an ein Lineal, wenn du unsicher bist.
| Baugruppe | M3 × 6 mm | M3 × 10 mm | M3 × 20 mm | Muttern |
|---|---|---|---|---|
| Arme (beide) | 0 | 0 | 0 | 0 |
| Kopf | 0 | 0 | 4 | 4 |
| Hals | 0 | 2 | 0 | 2 |
| Räder links | 1 | 2 | 1 | 2 |
| Räder rechts | 1 | 2 | 1 | 2 |
| Körper | 0 | 0 | 6 | 6 |
| Endmontage | 0 | 8 | 2 | 8 |
| Summe | 2 | 14 | 14 | 24 |
Kleines WörterbuchDie wichtigsten Wörter, einfach erklärt
- Servo
- Ein kleiner Motor, der nicht ständig dreht, sondern auf einen bestimmten Winkel fährt und dort stehen bleibt (0° bis 180°). Damit bewegen sich Augen, Kopf, Hals und Arme.
- Servo-Horn / Hebel
- Das kleine Plastikteil, das man oben auf den Servo steckt. Liegt in mehreren Formen bei.
- Mittelstellung
- Der Servo steht auf 90°, also genau in der Mitte seines Weges. So baust du jeden Servo ein.
- Getriebemotor
- Ein normaler Motor, der sich immer weiter dreht. Das Getriebe macht ihn langsamer und stärker. Er treibt die Ketten an.
- Motortreiber (BTS7960)
- Der „Verstärker" für einen Motor. Der ESP32 ist zu schwach, um einen Motor direkt anzutreiben. Er sagt dem Treiber nur, was er tun soll.
- Spannungswandler / Step-Down
- Macht aus der hohen Akku-Spannung (12 V) eine kleinere (6 V oder 5 V). Mit der kleinen Messingschraube (Poti) stellt man ein, wie viel.
- Volt (V)
- Wie stark der Strom „drückt". Zu viel Volt macht Bauteile kaputt.
- Plus / Minus / GND
- Plus ist meistens rot, Minus schwarz. Minus heißt auch GND (Ground, „Masse"). Alle GND werden miteinander verbunden.
- 3V3 / VCC / VIN
- 3V3 = 3,3 Volt. VCC = „hier kommt der Strom für die Elektronik rein". VIN = Eingang am ESP32 für 5 V.
- Erweiterungsboard
- Die schwarze Platine, in die der ESP32 gesteckt wird. Jeder Pin hat dort eine Reihe mit drei Stiften: S (Signal), V (Plus) und G (GND).
- Jumper
- Ein kleines Steckerchen, das zwei Stifte verbindet. Auf dem Erweiterungsboard stellt es ein, ob die V-Stifte 3,3 V oder 5 V haben.
- Pin / GPIO
- Ein Anschluss-Beinchen am ESP32. Auf der Platine steht eine Nummer, z.B.
D25oder nur25. - PWM
- Ein schnell an- und ausgeschaltetes Signal. Damit sagt man einem Motor „halbe Kraft" oder einem Servo „fahr auf 90°".
- I2C (SDA / SCL)
- Eine Zwei-Draht-Leitung, über die der ESP32 mit dem Servo-Board spricht. SDA = Daten, SCL = Takt.
- Dupont-Kabel
- Die bunten Steckkabel mit kleinen Steckern an den Enden.
- XT60
- Der dicke gelbe Akku-Stecker. Die Seite mit den abgeschrägten Ecken ist Minus.
- Schrumpfschlauch
- Ein Plastikröhrchen. Man schiebt es über eine Lötstelle und macht es warm, dann zieht es sich zusammen und isoliert.
Teil A · Elektronik auf dem Tisch testenNoch nichts einbauen! Alles liegt lose auf dem Tisch.
In Teil A baust du die Elektronik einmal komplett auf dem Tisch auf. Dann weißt du sicher, dass jedes Bauteil funktioniert, und du bringst gleich alle Servos in die richtige Stellung für den Einbau. Leg dir eine Holzplatte oder dicke Pappe als Unterlage hin, keine Metallfläche.
Den Computer vorbereiten
- deinen PC, den ESP32 und ein USB-Kabel (Micro-USB oder USB-C, je nach Board. Es muss ein Datenkabel sein, kein reines Ladekabel)
- Arduino IDE 2 installieren (von arduino.cc, unter Linux am einfachsten das AppImage).
- In der Arduino IDE: Datei → Einstellungen. Bei „Zusätzliche Boardverwalter-URLs" das hier eintragen:
https://espressif.github.io/arduino-esp32/package_esp32_index.json - Links auf das Board-Symbol klicken (Boardverwalter), nach esp32 suchen und „esp32 by Espressif Systems" installieren (Version 3.x).
- Links auf das Bücher-Symbol (Bibliotheksverwalter), nach Adafruit PWM Servo Driver suchen und installieren.
- ESP32 per USB anstecken. Oben in der Auswahlleiste „ESP32 Dev Module" und den richtigen Anschluss wählen (unter Linux meist
/dev/ttyUSB0oder/dev/ttyACM0). - Test: Datei → Beispiele → 01.Basics → Blink öffnen, auf den Pfeil (Hochladen) klicken. Blinkt eine kleine LED auf dem ESP32? Super.
dialout sein. Sag mir Bescheid, dann richte ich das ein.
Manche ESP32-Boards wollen beim Hochladen, dass man die Taste BOOT gedrückt hält, bis „Connecting…" vorbei ist.Das Erweiterungsboard vorbereiten
- ESP32, das schwarze Erweiterungsboard, Multimeter, USB-Kabel
Auf dem Erweiterungsboard steckt der ESP32 in einer Buchsenleiste. Neben jedem Pin gibt es eine Reihe mit drei Stiften: S (Signal, der Pin selbst), V (Plus) und G (GND). Dadurch bekommt jedes Modul seinen Strom direkt neben seinem Signal, und du brauchst keine selbstgelöteten Verteiler-Kabel.
- Jumper umstecken: Oben neben der USB-C-Buchse steht
JUMPmit3.3V,Vund5V. Das schwarze Steckerchen (Jumper) muss den mittleren StiftVmit3.3Vverbinden. Auf deinem Foto steckt er auf 5V. Einfach abziehen und eins weiter rüber stecken. - ESP32 einstecken: Die Beschriftung auf dem ESP32 muss zur Beschriftung auf dem Board passen (z.B.
D25nebenD25). Falsch herum eingesteckt geht der ESP32 kaputt, also genau hinschauen. - Welcher Stift ist was? Am Ende der Dreierreihen sind die Buchstaben
G,V,Saufgedruckt. Schau einmal nach und merk dir die Reihenfolge. - Nachmessen: ESP32 per USB anstecken (an der USB-Buchse des ESP32). Multimeter auf „V⎓": schwarze Spitze an einen
G-Stift, rote an einenV-Stift. Es müssen ungefähr 3,3 V sein. Dann dasselbe amVCC-Stift des kleinen Vierer-BlocksGND VCC D21 D22: auch hier 3,3 V.
- Steht der Jumper auf 5V, bekommen Motortreiber und Ultraschallsensor 5 V. Der Sensor schickt dann 5 V zurück an den ESP32, und das kann den Pin zerstören. Also: immer 3.3V.
- Die runde Strombuchse und die USB-Buchsen des Boards benutzen wir nicht. Der Strom kommt später vom 5-V-Wandler (Schritt A7), programmiert wird über die USB-Buchse am ESP32 selbst.
- Keine Servos in die Dreierreihen des Boards stecken. Die Servos gehören ans Servo-Board (PCA9685), das hat die kräftigen 6 V.
V und am VCC des Vierer-Blocks 3,3 V misst. Ab jetzt ist mit „ESP32" immer der ESP32 auf dem Board gemeint.Das Hauptstromkabel bauen (Akku → Sicherung → Verteiler)
Worum geht es? Der Akku hat nur einen einzigen Stecker. Strom brauchen aber vier Geräte: zwei Motortreiber und zwei Spannungswandler. In diesem Schritt baust du deshalb eine kleine Verteilerstation: Vom Akku geht ein Kabel zu zwei Klemmen (eine für Plus, eine für Minus), und an diese Klemmen kommen später alle vier Geräte. In das Plus-Kabel kommt eine Sicherung, die bei einem Fehler durchbrennt, bevor etwas heiß wird. Löten musst du dafür nicht, die WAGO-Klemmen halten die Kabel mit kleinen Hebeln fest.
- 1× XT60-Stecker mit Kabel, der in den Stecker am Akku passt
- 1× Flachsicherungs-Halter mit Kabel und 1× 10-A-Sicherung
- 3× WAGO-Klemme (221-415, 5-fach) und 2 kurze Stücke Kabel (je 5 cm) als Messpunkte
- Multimeter, Abisolierzange oder Cuttermesser, Kreppband und Stift
- Akku weglegen. Er bleibt den ganzen Schritt über abgesteckt und liegt weit weg.
- Die Sicherung noch nicht einstecken. Solange sie fehlt, kann kein Strom fließen, selbst wenn du dich irgendwo vertust. Sie kommt erst ganz am Schluss rein.
- Klemmen beschriften: Ein Stück Kreppband mit PLUS auf die erste WAGO, eins mit MINUS auf die zweite. Die dritte ist nur ein Verbinder.
- So funktioniert eine WAGO: Kabelende 11 mm abisolieren (an der Seite der Klemme ist eine Markierung zum Abmessen). Orangen Hebel hochklappen, Kabel bis zum Anschlag reinschieben, Hebel runterdrücken. Kurz am Kabel ziehen: Es muss fest sitzen. Die Litzen dürfen dabei nicht auffächern, dreh sie vorher zwischen den Fingern zusammen.
- Schwarzes Kabel vom XT60 in die MINUS-Klemme.
- Rotes Kabel vom XT60 in die Verbinder-Klemme. In dieselbe Klemme kommt das eine Kabel vom Sicherungshalter.
- Das andere Kabel vom Sicherungshalter in die PLUS-Klemme.
- Messpunkte: In die PLUS-Klemme und in die MINUS-Klemme je ein kurzes, an beiden Enden abisoliertes Kabelstück stecken. Daran misst du jetzt und in A3.
- Kurzschluss-Test: Multimeter auf Durchgang (das Piepser-Symbol; tipp die zwei Spitzen kurz zusammen, dann piepst es). Jetzt eine Spitze an den PLUS-Messpunkt, die andere an den MINUS-Messpunkt. Es darf nicht piepsen. Piepst es, hast du irgendwo Plus und Minus verbunden: Klemmen nochmal ansehen, bevor der Akku drankommt.
- Sicherung einstecken (die 10-A-Sicherung).
- Spannung messen: Multimeter auf V⎓ 20V. Rote Spitze an den PLUS-Messpunkt, schwarze an den MINUS-Messpunkt. Erst jetzt den Akku in den XT60 stecken. Das Multimeter muss zwischen 11,0 und 12,6 anzeigen, ohne Minus davor. Springt die Zahl um ein paar Zehntel hin und her, liegt das an den Spitzen, die nicht ganz fest anliegen. Das ist in Ordnung. Danach Akku wieder abziehen.
- Wenn der Akku steckt, dürfen sich die zwei Messpunkte nie berühren. Leg sie auseinander, am besten in verschiedene Richtungen.
- Zeigt das Multimeter ein Minus vor der Zahl (z.B. −12,1), sind Plus und Minus vertauscht. Akku sofort abziehen und schauen, welches Kabel wo steckt.
- Zeigt es 0: Sicherung drin? Kabel richtig in den Klemmen (Hebel unten)? Akku geladen?
+ und −.
Ganz sicher bist du aber erst mit der Messung im letzten Punkt.Die zwei Spannungswandler einstellen
- den großen 12-A-Wandler und einen LM2596 (kleines blaues Board)
- Multimeter, kleinen Schraubendreher, Litze
- Beide Wandler haben einen Eingang (IN+, IN−) und einen Ausgang (OUT+, OUT−). Schau genau hin, meist steht es auf der Platine.
- Den Eingang beider Wandler mit dem Plus- und Minus-Verteiler verbinden (rot an IN+, schwarz an IN−).
- Akku an, Schalter an. Multimeter an OUT+ und OUT− des LM2596 halten.
- An der kleinen Messingschraube drehen, bis das Multimeter 5,0 V zeigt. Keine Sorge: Man muss oft viele Umdrehungen machen, bis sich etwas tut.
- Jetzt das Multimeter an den Ausgang des 12-A-Wandlers. Den auf 6,0 V stellen.
- Ausschalten, 10 Sekunden warten, wieder einschalten und nochmal messen. Stimmen beide Werte noch?
- Mit Kreppband beschriften: „5 V: ESP32" und „6 V: SERVOS". Die Messingschrauben ab jetzt nicht mehr anfassen.
- Erst üben: zwei Kabelreste abisolieren, verzinnen und aneinanderlöten. Zwei, drei Mal, bis es klappt.
- Lötkolben auf etwa 330 bis 350 °C, Spitze am feuchten Schwamm abwischen und mit etwas Lötzinn benetzen, bis sie glänzt.
- Kabel vorbereiten: 5 mm abisolieren, Drähte fest verdrillen, dann verzinnen: Lötkolben unter das blanke Ende halten, Lötzinn von oben dranhalten, bis es sich vollsaugt.
- Platine festmachen (Kreppband auf den Tisch oder eine Wäscheklammer), damit nichts verrutscht.
- Kabel von oben durch das Loch stecken. Passt es nicht durch, lege es von oben flach auf das Lötauge.
- Lötkolben so anlegen, dass er Lötauge und Draht gleichzeitig berührt, 2 Sekunden warten, dann Lötzinn an die Stelle halten (nicht an die Spitze). Erst das Zinn weg, dann den Kolben. 5 Sekunden nicht bewegen.
- Gute Lötstelle: glänzt und sieht aus wie ein kleiner Kegel. Eine matte Kugel heißt: nochmal kurz erhitzen. Das Zinn darf das Nachbarloch nicht berühren.
- Überstehende Drahtenden auf der Unterseite abknipsen.
Servo-Board anschließen und alle 7 Servos auf Mitte stellen
- ESP32, PCA9685, 7 Servos, 4 Dupont-Kabel, Kreppband + Stift
- den eingestellten 6-V-Wandler
- Akku aus. ESP32 per USB am PC.
- 4 Dupont-Kabel vom Board zum PCA9685 (linke Stiftleiste am PCA9685):
Der Vierer-BlockVierer-Block am Board PCA9685 GNDGNDVCCVCCD21SDAD22SCLGND VCC D21 D22sitzt links oben auf dem Board, neben den zwei großen Kondensatoren. Er passt genau zum Servo-Board. Die PinsOEundV+an der Stiftleiste bleiben frei. - Den Ausgang des 6-V-Wandlers an die blaue Schraubklemme oben auf dem PCA9685: Plus an
V+, Minus anGND. Genau hinschauen, verpolt geht das Board kaputt. - Die Servos in die Kanäle 0 bis 6 stecken. Das braune Kabel zeigt zur Reihe mit der Aufschrift GND, das orange Kabel zur Reihe PWM.
- Jeden Servo mit Kreppband beschriften, damit du später weißt, wohin er gehört:
Das ist dieselbe Reihenfolge wie im Original-Programm. So passt später alles zusammen.Kanal Servo für … 0 Kopf drehen (links/rechts) 1 Hals oben (Kopf nicken) 2 Hals unten (Hals heben/senken) 3 Auge rechts 4 Auge links 5 Arm links 6 Arm rechts - Das Programm „Servo-Tester" (unten) in die Arduino IDE kopieren und hochladen.
- Oben rechts den Seriellen Monitor öffnen (Lupe). Unten rechts einstellen: 115200 Baud und „Neue Zeile".
- Jetzt erst den Akku anstecken und einschalten. Die Servos bekommen Strom.
- Im Monitor m tippen und Enter. Alle Servos fahren auf 90° (Mitte).
- Einen Servo einzeln testen: z.B. 3 45 + Enter, dann 3 135 + Enter. Bewegt er sich hin und her? Dann 3 90.
- Am Ende nochmal m, dann Akku aus. Ab jetzt die Servo-Wellen nicht mehr von Hand verdrehen!
Programm „Servo-Tester"
// WALL·E Servo-Tester für ESP32 + PCA9685
// Serieller Monitor: 115200 Baud, "Neue Zeile"
// m = alle 7 Servos auf Mitte (90 Grad)
// 3 90 = Servo an Kanal 3 auf 90 Grad
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver(0x40);
const int SERVO_MIN_US = 500; // Pulslänge bei 0 Grad
const int SERVO_MAX_US = 2500; // Pulslänge bei 180 Grad
void setServoAngle(uint8_t kanal, int winkel) {
winkel = constrain(winkel, 0, 180);
int us = map(winkel, 0, 180, SERVO_MIN_US, SERVO_MAX_US);
pwm.writeMicroseconds(kanal, us);
}
void setup() {
Serial.begin(115200);
delay(500);
Wire.begin(21, 22); // SDA = 21, SCL = 22
Wire.beginTransmission(0x40);
if (Wire.endTransmission() == 0) {
Serial.println("PCA9685 gefunden :)");
} else {
Serial.println("PCA9685 NICHT gefunden! Pruefe 3V3, GND, SDA (21) und SCL (22).");
}
pwm.begin();
pwm.setOscillatorFrequency(27000000);
pwm.setPWMFreq(50);
delay(10);
Serial.println("Servo-Tester bereit.");
Serial.println("Tippe m = alle Servos auf Mitte");
Serial.println("Tippe 3 90 = Kanal 3 auf 90 Grad");
}
void loop() {
if (!Serial.available()) return;
String zeile = Serial.readStringUntil('\n');
zeile.trim();
if (zeile.length() == 0) return;
if (zeile == "m") {
for (int k = 0; k < 7; k++) setServoAngle(k, 90);
Serial.println("Alle 7 Servos auf 90 Grad.");
return;
}
int leer = zeile.indexOf(' ');
if (leer < 0) {
Serial.println("Bitte so tippen: Kanal Winkel, z.B. 3 90");
return;
}
int kanal = zeile.substring(0, leer).toInt();
int winkel = zeile.substring(leer + 1).toInt();
if (kanal < 0 || kanal > 15) {
Serial.println("Kanal muss 0 bis 15 sein.");
return;
}
setServoAngle(kanal, winkel);
Serial.printf("Kanal %d -> %d Grad\n", kanal, winkel);
}
Die zwei Motortreiber und Motoren testen
- 2× BTS7960, 2× Motor, 16 Dupont-Kabel, Litze
- Akku aus.
- Jeder Motortreiber (BTS7960, nicht der Motor) hat 4 Schraubklemmen:
B+B−(Strom rein) undM+M−(zum Motor).B+an den Plus-Verteiler,B−an den Minus-Verteiler. Einmal für den linken, einmal für den rechten Treiber. - Kabel an den Motor: Der Motor selbst hat hinten nur zwei kleine Metall-Laschen (Lötfahnen), keine Klemmen. Dort lötest du je ein rotes und ein schwarzes Silikonkabel an (ca. 20 cm). Das geht auch, wenn der Motor schon am Radgestell sitzt. Schrumpfschlauch über die Lötstellen, damit sich die zwei Laschen nie berühren.
- Die zwei Kabel vom Motor an
M+undM−des Motortreibers. Welches wohin, ist hier egal. Wenn die Kette später falsch herum läuft, tauscht du die zwei einfach. - Beschrifte die Treiber mit „LINKS" und „RECHTS" (aus Sicht von WALL·E, also wenn er von dir wegschaut).
- Die 8-polige Stiftleiste mit Dupont-Kabeln an das Board. „S von D25" heißt: der Signal-Stift in der Reihe von
D25.BTS7960 Board bei LINKS Board bei RECHTS RPWMS von D25S von D32LPWMS von D26S von D33R_ENS von D27S von D4L_ENS von D13S von D23R_IS,L_ISfrei lassen frei lassen VCCV von D25V von D32GNDG von D25G von D32D4undD23sitzen auf der anderen Seite des Boards als die übrigen, das ist in Ordnung. - Die Ketten müssen in der Luft sein bzw. die Motoren dürfen frei drehen (noch nicht eingebaut ist perfekt).
- Programm „Motor-Test" (unten) hochladen, Seriellen Monitor öffnen, dann Akku an. Nach dem Programmstart kannst du auch die Taste EN (Reset) am ESP32 drücken (die Taste heißt nur zufällig genauso wie die EN-Pins am Motortreiber), dann läuft der Test nochmal.
B+/B−.Programm „Motor-Test"
// WALL·E Motor-Test für ESP32 + 2x BTS7960
// KETTEN IN DIE LUFT! Serieller Monitor: 115200 Baud
const int L_VOR = 25; // BTS7960 LINKS: RPWM
const int L_ZUR = 26; // BTS7960 LINKS: LPWM
const int R_VOR = 32; // BTS7960 RECHTS: RPWM
const int R_ZUR = 33; // BTS7960 RECHTS: LPWM
const int EN_PINS[] = {27, 13, 4, 23}; // R_EN/L_EN links, R_EN/L_EN rechts
void treiber(bool an) {
for (int pin : EN_PINS) digitalWrite(pin, an ? HIGH : LOW);
}
// tempo: -255 (voll rückwärts) bis 255 (voll vorwärts)
void motor(int pinVor, int pinZur, int tempo) {
tempo = constrain(tempo, -255, 255);
if (tempo >= 0) {
analogWrite(pinZur, 0);
analogWrite(pinVor, tempo);
} else {
analogWrite(pinVor, 0);
analogWrite(pinZur, -tempo);
}
}
void stopp() {
motor(L_VOR, L_ZUR, 0);
motor(R_VOR, R_ZUR, 0);
}
void schritt(const char* text, int links, int rechts, int ms) {
Serial.println(text);
motor(L_VOR, L_ZUR, links);
motor(R_VOR, R_ZUR, rechts);
delay(ms);
stopp();
delay(1000);
}
void setup() {
Serial.begin(115200);
for (int pin : EN_PINS) pinMode(pin, OUTPUT);
treiber(false); // Treiber erstmal aus
stopp();
delay(500);
Serial.println("Motor-Test startet in 3 Sekunden ...");
delay(3000);
treiber(true); // Treiber einschalten
schritt("LINKS vorwaerts", 150, 0, 2000);
schritt("LINKS rueckwaerts", -150, 0, 2000);
schritt("RECHTS vorwaerts", 0, 150, 2000);
schritt("RECHTS rueckwaerts", 0, -150, 2000);
schritt("BEIDE vorwaerts", 150, 150, 2000);
treiber(false);
Serial.println("Fertig. Taste EN druecken fuer einen neuen Durchlauf.");
}
void loop() {}
M+ und M− an diesem Treiber tauschen.Ultraschallsensor testen (Extra)
- RCWL-1601, 4 Dupont-Kabel
- Anschließen:
Trig→ S vonD18,Echo→ S vonD19,VCC→ V vonD18,GND→ G vonD18. - Programm „Abstand" hochladen, Seriellen Monitor öffnen, Hand vor den Sensor halten.
// WALL·E Abstands-Test (RCWL-1601)
const int TRIG = 18;
const int ECHO = 19;
void setup() {
Serial.begin(115200);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
}
void loop() {
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
long dauer = pulseIn(ECHO, HIGH, 30000); // max. ca. 5 m
if (dauer == 0) {
Serial.println("nichts gemessen");
} else {
Serial.printf("Abstand: %.1f cm\n", dauer * 0.0343 / 2.0);
}
delay(300);
}
Den ESP32 über den Akku versorgen
- Akku aus, USB-Kabel ab.
- Den Ausgang des 5-V-Wandlers (LM2596) an das Board, und zwar an den Achter-Block rechts oben (beschriftet
3.3V,5V,GND):OUT+→ ein Stift der5V-Reihe,OUT−→ ein Stift derGND-Reihe. Nicht an die3.3V-Reihe! - Akku an. Leuchtet die LED
PWRauf dem Board und die rote LED am ESP32? Das zuletzt hochgeladene Programm startet jetzt von allein.
5V-Stift des Boards ab.
Sonst treffen die 5 V vom PC und die 5 V vom Wandler aufeinander. Nicht jedes ESP32-Board ist dagegen geschützt.
Das GND-Kabel darf dran bleiben, und die Motoren und Servos dürfen dabei ruhig Akku-Strom haben.Die Kamera testen (Extra)
- Seeed XIAO ESP32S3 Sense mit Kamera-Aufsteckboard und kleiner Klebeantenne
- USB-C-Kabel (eins, das Daten kann, nicht nur ein Ladekabel), Handy
- später für den Linsen-Test: eine Linse und den schwarzen Einsatz
eye-camera-mount
- Zusammenstecken: Die Kamera mit dem kleinen Flachkabel in die Buchse am Aufsteckboard stecken (die Klappe hochklappen, Kabel rein, Klappe zu). Das Aufsteckboard auf den XIAO drücken, bis es einrastet.
- Antenne anstecken: Den kleinen runden Stecker der Antenne auf die Buchse am XIAO drücken, bis es klickt. Ohne Antenne ist das WLAN sehr schwach.
- Programm hochladen: XIAO per USB-C an den PC. In der Arduino-IDE als Board
XIAO_ESP32S3wählen und unter Werkzeuge → PSRAM aufOPI PSRAMstellen. Ohne PSRAM findet das Programm die Kamera nicht. Dann das Programm „Kamera" unten hochladen. - Seriellen Monitor öffnen (115200). Dort muss „Kamera ok." stehen.
- Handy verbinden: In den WLAN-Einstellungen das Netz
WALL-E-Kamerawählen, Passwortwalle1234. Das Handy meckert vielleicht, dass es kein Internet gibt. Das ist richtig so, einfach verbunden bleiben. - Im Handy-Browser
192.168.4.1eingeben. Jetzt siehst du live, was die Kamera sieht. - Test durch die Linse: Die Linse (gewölbte Seite nach außen) vor die Kamera halten, mit etwa dem Abstand, den sie später im Auge hat. Wie sieht das Bild aus?
// WALL·E Kamera-Test (Seeed XIAO ESP32S3 Sense)
// Der XIAO macht ein eigenes WLAN "WALL-E-Kamera" auf.
// Handy damit verbinden (Passwort: walle1234), dann im Browser 192.168.4.1 öffnen.
// Board: XIAO_ESP32S3, PSRAM: OPI PSRAM
#include "esp_camera.h"
#include <WiFi.h>
#include "esp_http_server.h"
const char* WLAN_NAME = "WALL-E-Kamera";
const char* WLAN_PASSWORT = "walle1234";
// Kamera-Pins des XIAO ESP32S3 Sense (fest verdrahtet)
camera_config_t kameraEinstellungen() {
camera_config_t c = {};
c.pin_pwdn = -1; c.pin_reset = -1; c.pin_xclk = 10;
c.pin_sccb_sda = 40; c.pin_sccb_scl = 39;
c.pin_d7 = 48; c.pin_d6 = 11; c.pin_d5 = 12; c.pin_d4 = 14;
c.pin_d3 = 16; c.pin_d2 = 18; c.pin_d1 = 17; c.pin_d0 = 15;
c.pin_vsync = 38; c.pin_href = 47; c.pin_pclk = 13;
c.xclk_freq_hz = 20000000;
c.ledc_timer = LEDC_TIMER_0; c.ledc_channel = LEDC_CHANNEL_0;
c.pixel_format = PIXFORMAT_JPEG;
c.frame_size = FRAMESIZE_VGA; // 640 x 480
c.jpeg_quality = 12; // kleiner = schöner, aber langsamer
c.fb_count = 2;
c.fb_location = CAMERA_FB_IN_PSRAM;
c.grab_mode = CAMERA_GRAB_LATEST;
return c;
}
static const char SEITE[] =
"<!doctype html><html><head><meta name=viewport content='width=device-width'>"
"<title>WALL-E Kamera</title></head><body style='margin:0;background:#222;color:#eee;font-family:sans-serif;text-align:center'>"
"<h2>WALL·E sieht:</h2><img src='/stream' style='width:100%;max-width:640px'></body></html>";
esp_err_t seite(httpd_req_t* req) {
httpd_resp_set_type(req, "text/html");
return httpd_resp_send(req, SEITE, HTTPD_RESP_USE_STRLEN);
}
esp_err_t stream(httpd_req_t* req) {
httpd_resp_set_type(req, "multipart/x-mixed-replace;boundary=bild");
char kopf[64];
while (true) {
camera_fb_t* fb = esp_camera_fb_get();
if (!fb) return ESP_FAIL;
int n = snprintf(kopf, sizeof(kopf), "\r\n--bild\r\nContent-Type: image/jpeg\r\nContent-Length: %u\r\n\r\n", fb->len);
esp_err_t ok = httpd_resp_send_chunk(req, kopf, n);
if (ok == ESP_OK) ok = httpd_resp_send_chunk(req, (const char*)fb->buf, fb->len);
esp_camera_fb_return(fb);
if (ok != ESP_OK) return ESP_OK; // Browser geschlossen
}
}
void setup() {
Serial.begin(115200);
delay(2000);
camera_config_t c = kameraEinstellungen();
if (esp_camera_init(&c) != ESP_OK) {
Serial.println("FEHLER: Kamera nicht gefunden. Flachkabel richtig eingesteckt? PSRAM auf OPI?");
return;
}
Serial.println("Kamera ok.");
WiFi.softAP(WLAN_NAME, WLAN_PASSWORT);
Serial.printf("WLAN \"%s\" ist an. Im Browser: http://%s\n", WLAN_NAME, WiFi.softAPIP().toString().c_str());
httpd_config_t cfg = HTTPD_DEFAULT_CONFIG();
httpd_handle_t server = NULL;
if (httpd_start(&server, &cfg) == ESP_OK) {
httpd_uri_t a = { "/", HTTP_GET, seite, NULL };
httpd_uri_t b = { "/stream", HTTP_GET, stream, NULL };
httpd_register_uri_handler(server, &a);
httpd_register_uri_handler(server, &b);
}
}
void loop() {
delay(1000);
}
eye-camera-mount ist für die Kamera des Raspberry Pi gemacht. Innen ist er eine runde Tasse mit 32 mm Durchmesser und 15 mm Tiefe, hinten mit einem 15-mm-Loch für die Kabel. Der XIAO passt in der Breite gut hinein, in der Höhe wird es knapp (mit Aufsteckboard ist er etwa 15 mm hoch). Probier es trocken aus. Ist es zu eng, druckst du einen angepassten, tieferen Einsatz.5V-Pin des XIAO → 5-V-WAGO (Ausgang LM2596), GND-Pin → 5V-Minus-WAGO. Er braucht etwa 0,2 bis 0,3 A, das schafft der LM2596 locker. Wie bei A7 gilt: Hängt der XIAO am USB-Kabel, darf die 5-V-Leitung nicht gleichzeitig dran sein.Die SchaltpläneZum Nachschauen, immer wenn du etwas anschließt
Plan 1: Der Strom-Plan (dicke Kabel)
Rot ist Plus, Schwarz ist Minus. Alle roten Kabel treffen sich im Plus-Verteiler, alle schwarzen im Minus-Verteiler. Wo ein Kabel über ein anderes drüberspringt (kleiner Bogen), sind die zwei nicht verbunden.
Plan 2: Der Signal-Plan (dünne Dupont-Kabel)
Der ESP32 steckt auf dem Erweiterungsboard. Jede farbige Linie ist ein Dupont-Kabel zum S-Stift der genannten Reihe. VCC und GND der Module holst du dir vom V- und G-Stift derselben Reihe, das steht bei jedem Modul dabei. Jumper am Board: 3.3V.
Alle Verbindungen als Tabelle
| Von | Nach | Kabel |
|---|---|---|
| Akku Plus | Verbinder-WAGO → Sicherung (→ später Schalter) → Plus-Verteiler | XT60-Kabel |
| Akku Minus | Minus-Verteiler | XT60-Kabel |
| Plus-/Minus-Verteiler | BTS7960 LINKS B+/B−, BTS7960 RECHTS B+/B−, 12-A-Wandler IN+/IN−, LM2596 IN+/IN− | Litze 0,75 mm² |
12-A-Wandler OUT (6,0 V) | PCA9685 Schraubklemme V+/GND | Litze 0,75 mm² |
LM2596 OUT (5,0 V) | Board: 5V-Reihe / GND-Reihe (Achter-Block rechts oben) | Dupont / dünne Litze |
BTS M+/M− | Motor LINKS bzw. RECHTS | Motorkabel |
S von D25 / D26 | BTS LINKS RPWM / LPWM | Dupont |
S von D27 / D13 | BTS LINKS R_EN / L_EN | Dupont |
V / G von D25 | BTS LINKS VCC / GND | Dupont |
S von D32 / D33 | BTS RECHTS RPWM / LPWM | Dupont |
S von D4 / D23 | BTS RECHTS R_EN / L_EN | Dupont |
V / G von D32 | BTS RECHTS VCC / GND | Dupont |
Vierer-Block GND VCC D21 D22 | PCA9685 GND VCC SDA SCL | Dupont |
S von D18 / D19 | RCWL-1601 Trig / Echo | Dupont |
V / G von D18 | RCWL-1601 VCC / GND | Dupont |
| Servos | PCA9685 Kanal 0 bis 6 (Tabelle in Schritt A4) | Servokabel |
LM2596 OUT (5,0 V), über die 5-V-WAGOs | XIAO ESP32S3 Sense (Kamera im Auge) 5V / GND | dünne Litze durch den Hals |
Teil B · WALL·E zusammenbauenDie Mechanik. Pro Baugruppe ein paar Schritte.
- Alles erst ohne Kleber zusammenstecken („Trockenprobe"). Passt es? Dann erst kleben.
- Gelenke müssen leicht laufen. Wo etwas klemmt: Schleifpapier oder Feile, nicht mit Gewalt. Die Servos sind nicht stark.
- Druckreste und Stützmaterial komplett entfernen, besonders in Löchern und Schlitzen.
- Muttern werden in sechseckige Schlitze im Druckteil geschoben. Klemmt eine: Schraube von der anderen Seite ein Stück reindrehen und die Mutter damit reinziehen.
- Schrauben nicht zu fest anziehen. Plastik reißt schneller als man denkt.
Die zwei Ketten
- 35×
tread-plate(Kettenglied) und 70×tread-pin(kleiner Stift)



- Zwei Kettenglieder so hinlegen, dass die Nasen ineinandergreifen (wie im Bild).
- Von jeder Seite einen Stift durch die Löcher stecken. Die Stifte halten durch Klemmen, ohne Kleber.
- Prüfen: Die zwei Glieder müssen sich leicht gegeneinander knicken lassen.
- So weitermachen, bis 35 Glieder hintereinander hängen. Die Kette erst in Schritt B2 zum Ring schließen.
- Das Ganze nochmal für die zweite Kette.
Radgestell mit Rädern (einmal links, einmal rechts)
wheel-frame-leftbzw.-right(das große Dreieck-Gestell) + 1×wheel-frame-addon- 2×
wheel-back(große Räder), 2×wheel-front(mittlere), 2×wheel-top(kleine) - 1×
wheel-gear-driven(großes Zahnrad), 3×wheel-axle-notched(Achse mit Rille), 1×wheel-axle-back, 4×wheel-axle-spacer(dünne Scheiben) - 2× Mutter, Sekundenkleber (die Schrauben kommen erst in B3)







- Zwei Muttern in die sechseckigen Schlitze des Gestells schieben. Die bleiben dort einfach stecken: In B3 wird der Motorhalter mit Schrauben in diese Muttern geschraubt.
- Das kleine Dreieck
wheel-frame-addonan die markierte Stelle kleben (Bild 2). - Die Achsen in die Löcher des Gestells stecken (Bild 3). Geschraubt wird hier nichts. Die Achsen halten, weil auf beiden Enden ein Rad festgeklebt wird.
- Die Räder auf die Achsen kleben: große Räder hinten, mittlere vorne, kleine oben. Das große Zahnrad gehört mit auf die hintere Achse (Bild 4).
- Die dünnen Scheiben (spacer) auf die Achsen stecken, bevor das äußere Rad draufkommt. Sie sorgen dafür, dass nichts am Gestell schleift.
- Die Kette um alle Räder legen. Das letzte Glied mit dem ersten verbinden (zwei Stifte), jetzt ist sie ein Ring.
wheel-top-larger-x0.STL (in deinem Ordner 05_OPTIONAL). Die ist etwas größer als wheel-top und spannt die Kette. Dann einfach 4 Stück davon drucken und die kleinen oberen Räder tauschen. Hängt sie danach immer noch deutlich durch (mehr als etwa 1 cm, wenn du sie oben in der Mitte anhebst), nimm ein Kettenglied heraus und probier es nochmal. Das lässt sich jederzeit rückgängig machen.Motor einbauen und ans Radgestell schrauben
- 1 Motor JGB37-520,
wheel-bracket-inner-left+wheel-bracket-outer-left(bzw.-right) - 1×
wheel-gear-motor(kleines Zahnrad) - 1× M3 × 6 mm, 2× M3 × 10 mm, 1× M3 × 20 mm, Sekundenkleber




- Die zwei Motorhalter-Teile (
wheel-bracket-innerund-outer) um den Motor legen. Der Motor liegt dazwischen wie in einer Schale. - Den Motor mit der M3 × 6 mm Schraube festmachen. Sie geht durch den Halter in eines der kleinen Gewindelöcher vorne am Getriebe.
- Das kleine Zahnrad
wheel-gear-motorauf die Motorwelle stecken. Die Welle hat eine flache Seite, das Loch im Zahnrad auch. Mit einem Tropfen Kleber sichern. - Den Halter so ans Radgestell setzen, dass das kleine Zahnrad in das große Zahnrad greift.
- Mit 1× M3 × 20 mm und 2× M3 × 10 mm festschrauben (Bilder 3 und 4).
- Das Ganze für die andere Seite wiederholen.

Die zwei Arme mit Händen
arm-barrel(langes Rohr),arm-piston(Kolben),arm-barrel-end(Ring)arm-hinge-inner(Schultergelenk),arm-hinge-axle(kurzer Zylinder)hand-bracket,hand-axle,hand-finger-left,hand-finger-middle,hand-finger-right- keine Schrauben! Hier wird alles gesteckt.
- etwas Sekundenkleber und ein Zahnstocher (falls Teile zu locker sitzen)




- Die Hand: Die Finger und die Hand-Halterung (
hand-bracket) übereinanderlegen und die dünnehand-axlevon oben durchstecken (Bild 2). Die Finger sollen sich mit etwas Widerstand bewegen lassen, damit sie in jeder Stellung stehen bleiben. - Der Kolben:
arm-pistonan die Hand stecken, dann den Ringarm-barrel-endauf den Kolben schieben (Bild 3). - Das Rohr: Den Kolben in das lange Rohr
arm-barrelschieben. Er soll hin- und hergleiten können. - Die Schulter:
arm-hinge-innerin die Gabel am Rohr-Ende setzen und den kurzen Zylinderarm-hinge-axlevon oben durchdrücken (Bild 4). - Den zweiten Arm genauso bauen. Achte darauf, dass du am Ende einen linken und einen rechten Arm hast (spiegelbildlich).
arm-barrel hatte der Druck Probleme. Prüf hier besonders genau, ob der Kolben sauber im Rohr gleitet. Innen eventuell mit zusammengerolltem Schleifpapier glätten.- Ring
arm-barrel-end: an seiner Stelle in der Mitte des Kolbens festkleben, erst trocknen lassen, dann den Kolben ins Rohr schieben. - Handachse
hand-axle: in die Hand-Halterung kleben, nicht an die Finger. Ein Tropfen oben am Stiftende reicht. - Schulter-Zylinder
arm-hinge-axle: in die Gabel am Rohr kleben, nicht in das runde Gelenkteil. - Nur einen winzigen Tropfen mit der Zahnstocherspitze. Sekundenkleber kriecht in Spalte. Das bewegliche Teil danach sofort ein paarmal hin und her bewegen.
Der Kopf mit den zwei Augen
head-center(Mittelstück),head-axle(langer Stab)- pro Auge:
eye-front(grüner Ring),eye-middle,eye-back eye-camera-replicaundeye-camera-mount(die schwarzen Einsätze hinter der Linse)- 2 Linsen (31,6 mm), Servo Kanal 3 (Auge rechts) und Servo Kanal 4 (Auge links), beide auf 90°
- 2 Büroklammern, 4× M3 × 20 mm, 4× Mutter, Sekundenkleber, Spitzzange






- Augenringe noch nicht kleben! Die grünen Ringe (
eye-front) kommen ganz zum Schluss dran (letzter Punkt). Sobald sie angeklebt sind, kommst du an Linse und Kamera nicht mehr heran. - Muttern: In jedes Mittelteil eine Mutter schieben (Bild 2) und in jedes Rückteil
eye-backebenfalls eine. - Mittelteile verschrauben: Je eine M3 × 20 mm durch die in Bild 3 markierten Löcher in die Mutter drehen.
- Servos: Servo 3 ins rechte Auge, Servo 4 ins linke Auge (rechts/links aus Sicht von WALL·E). Kabel nach hinten herausführen.
- Servo-Hebel: Einen einarmigen Hebel so aufstecken, dass er ungefähr so steht wie im Bild (das Auge ist dabei in der Mitte seines Weges). Servo dabei nicht verdrehen! Den Hebel ggf. um eine Zacke versetzen statt die Welle zu drehen. Mit der kleinen Servo-Schraube festschrauben.
- Mittelstück einsetzen:
head-centerzwischen die beiden Augen legen, so dass die Löcher der Gelenke übereinanderliegen. - Büroklammer-Gestänge: Aus einer Büroklammer ein kurzes, gerades Stück mit zwei Haken biegen (Z-Form). Ein Haken in das 2. oder 3. Loch des Servo-Hebels, der andere in das Loch am Mittelstück
head-center(Bilder 4 und 5). Einmal pro Auge. - Rückteile: Die
eye-back-Teile hinten ansetzen und mit den letzten zwei M3 × 20 mm verschrauben (Bild 6). - Achse: Die lange Achse
head-axledurch die Gelenklöcher der Augen und des Mittelstücks schieben. Die Augen hängen jetzt drehbar an der Achse. - Linsen und Einsätze: Erst wenn A8 (Kamera-Test) fertig ist. In jeden grünen Ring die Linse legen, gewölbte Seite nach außen, dahinter den schwarzen Einsatz. Ins eine Auge kommt
eye-camera-replica(nur Deko), ins andereeye-camera-mountmit dem XIAO darin. Die zwei Stromkabel des XIAO hinten durch das Loch im Einsatz führen. - Augenring ankleben: Jetzt den Ring vorn an das Mittelteil (
eye-middle) kleben (Bild 1, „Add Glue"). Vorher einmal prüfen: Die Linse liegt sauber im Ring und wackelt nicht.


Der Hals
neck-bottom-left,neck-bottom-right(unteres Halsstück, zwei Hälften)neck-top(oberes Halsstück),neck-middle-axle(kurzer Zylinder)neck-round-bottom,neck-round-top-left,neck-round-top-right(der runde „Drehteller" oben)neck-top-linkage(schwarzes Hebelchen)- Servo Kanal 1 (Hals oben) und Servo Kanal 0 (Kopf drehen), beide auf 90°
- 1 Büroklammer, 2× M3 × 10 mm, 2× Mutter, Sekundenkleber






- Zwei Muttern in die Schlitze von
neck-bottom-leftschieben (Bild 1). - Servo 1 (Hals oben) in die Öffnung im unteren Halsstück setzen (Bild 2).
- Den kurzen Zylinder
neck-middle-axleins Gelenkloch stecken und das obere Halsstückneck-topdaraufsetzen. - Die zweite Hälfte
neck-bottom-rightauflegen und mit 2× M3 × 10 mm verschrauben (Bild 3). Das obere Halsstück muss danach leicht kippen können. - Servo 0 (Kopf drehen) von oben in
neck-topeinsetzen, Welle nach oben (Bild 4). - Drehteller: Einen Servo-Hebel in
neck-round-bottomlegen. Die zwei Hälftenneck-round-top-left/rightdarum legen und alle drei zusammenkleben (Bild 5). Der Hebel sitzt dann fest im Teller. - Den Drehteller auf die Welle von Servo 0 stecken, so dass er gerade nach vorn zeigt (Servo steht ja auf 90° = Kopf schaut geradeaus).
- Gestänge: Auf Servo 1 einen Hebel stecken. Das schwarze
neck-top-linkageund ein Stück Büroklammer verbinden den Servo-Hebel mit dem oberen Halsstück (Bild 6). Die Büroklammer kommt ins 2. Loch des Servo-Hebels.


neck-wire-guide-left/right kommen im Video nicht vor, sie wurden später vom Designer ergänzt. Sie sind dafür da, die Servokabel ordentlich am Hals entlangzuführen. Die genaue Position zeigt das Original nicht. Halte sie an den fertigen Hals und such die Stelle, an der sie gut anliegen und die Kabel nicht beim Bewegen einklemmen. Erst probieren, dann kleben.Der Körper (der gelbe Kasten) mit den Arm-Servos
body-back,body-left,body-right,body-front,body-front-door, 2×body-front-pins,body-bottomarm-servo-bracket-left,arm-servo-bracket-right, 2×arm-hinge-outer- die fertigen Arme aus B4
- Servo Kanal 5 (Arm links) und Servo Kanal 6 (Arm rechts), beide auf 90°
- 6× M3 × 20 mm, 6× Mutter, Sekundenkleber







- Vier Muttern in die Schlitze der Seitenwände
body-leftundbody-rightschieben (Bild 2). - Arm-Servos: Servo 5 in
arm-servo-bracket-left, Servo 6 inarm-servo-bracket-right. In jeden Halter eine Mutter (Bild 3). - Einen Servo-Hebel in die gelbe Scheibe
arm-hinge-outereinsetzen (bei Bedarf kleben) und die Scheibe auf die Servo-Welle stecken. - Die Servo-Halter innen an die Seitenwände kleben, so dass die Scheibe durch das Loch in der Wand nach außen schaut (Bild 4). Erst trocken probieren!
- Die Klappe
body-front-doormit den zwei Stiftenbody-front-pinsanbody-frontbefestigen (das ist das Scharnier). Die Klappe muss auf- und zugehen. - Seitenwände an die Rückwand
body-backsetzen, Front davor (Bild 6). - Alles auf den Boden
body-bottomstellen und von unten mit 4× M3 × 20 mm verschrauben (Bild 7). Die restlichen 2× M3 × 20 mm gehen oben durch die Rückwand in die Muttern der Arm-Servo-Halter (die zwei Schrauben oben auf der Rückwand in Bild 6). - Arme anstecken: Das Schultergelenk jedes Arms (
arm-hinge-inner) auf die Scheibe am Servo setzen. Stellung: Der Arm steht in der Mitte zwischen ganz oben und ganz unten.


Endmontage: Ketten an den Körper, Kopf auf den Hals, Hals auf den Deckel
- alle Baugruppen: 2 Antriebsseiten, Körper, Hals, Kopf
body-top(Deckel),body-neck-servo-holder,neck-bottom-axle,neck-bottom-linkage- Servo Kanal 2 (Hals unten) auf 90°
- 8× M3 × 10 mm, 2× M3 × 20 mm, 8× Mutter, 1 Büroklammer, Sekundenkleber







- Ketten an den Körper: Acht Muttern innen in den Boden legen. Die zwei Antriebsseiten von unten ansetzen und mit 8× M3 × 10 mm festschrauben (Bilder 2 und 3). Die Motorkabel zeigen nach innen.
- Kopf auf den Hals: Das Mittelstück des Kopfes auf den Drehteller oben am Hals kleben (Bild 4). Vorher prüfen: Kopf schaut geradeaus, wenn Servo 0 auf 90° steht.
- Hals-Servo unten: Servo 2 in den Halter
body-neck-servo-holdersetzen und den Halter unter dem Deckelbody-topbefestigen. - Hals auf den Deckel: Das untere Halsstück zwischen die zwei Ösen auf dem Deckel setzen und die Achse
neck-bottom-axledurchschieben (Bild 5). Der Hebel am Hals ragt durch den Schlitz nach unten. - Gestänge: Den Hebel am Hals mit
neck-bottom-linkageund einer Büroklammer mit dem Servo-Hebel von Servo 2 verbinden (Bild 6). - Kabel von Kopf und Hals nach unten durch die Öffnung im Deckel führen (siehe Teil C). Jetzt ist der beste Moment dafür!
- Deckel auf den Körper setzen und mit 2× M3 × 20 mm festschrauben (Bild 7). Diesen Schritt machst du erst, wenn Teil C fertig ist.


Teil C · Elektronik einbauenAlles kommt in den Bauch
Plan machen, wo was hinkommt
- Lege alle Elektronik-Teile vor dich und halte sie probeweise in den Körper. Der Deckel ist noch ab.
- Akku vorn hinter die Klappe. Er muss zum Laden rausnehmbar bleiben, also mit Klettband, nicht fest kleben.
- Die zwei BTS7960 nahe an die Motoren (Boden, links und rechts). Sie haben große Kühlkörper, die dürfen nichts berühren und brauchen etwas Luft.
- PCA9685 weiter oben, nah am Hals. Dann reichen die Servokabel eher.
- ESP32 so, dass du mit dem USB-Kabel noch dran kommst (z.B. an der Rückwand). Sonst musst du zum Programmieren alles ausbauen.
- Wandler und Verteiler dazwischen, wo Platz ist.
- Schalter: an eine Stelle, an die du von außen drankommst, ohne die Klappe zu öffnen. Dafür musst du ggf. ein Loch bohren. Mach das nur an einer unauffälligen Stelle, z.B. hinten unten.
Servokabel durch den Hals verlegen
- Durch den Hals laufen 4 Servokabel: Auge rechts (3), Auge links (4), Kopf drehen (0) und Hals oben (1). Servo 2 sitzt schon unter dem Deckel. Dazu kommen die 2 Stromkabel der Kamera (5V und GND), die unten in die 5-V-WAGOs gehen.
- Die Kabel locker am Hals entlang nach unten führen, mit den kleinen Kabelführungen oder einem dünnen Kabelbinder sichern.
- Bewegungstest: Mit dem Servo-Tester Kopf ganz nach links und rechts drehen, Hals ganz hoch und runter. Die Kabel dürfen dabei nirgends ziehen oder eingeklemmt werden. Lieber eine Schlaufe Reserve lassen.
- Reicht ein Kabel nicht bis zum PCA9685: Servo-Verlängerung dazwischenstecken. Die Steckverbindung mit einem Stück Klebeband sichern, damit sie nicht aufgeht.
- Jedes Kabel am Ende nochmal beschriften (0 bis 6), dann ist das Einstecken leicht.
Alles festmachen und nach Plan verbinden
- Akku ab.
- Boards mit Klettband oder doppelseitigem Klebeband an ihre Plätze kleben. Unter die Platinen darf kein Metall (Schrauben, Muttern).
- Nach dem Strom-Plan die dicken Kabel verbinden. Dann nach dem Signal-Plan die Dupont-Kabel.
- Servos in die Kanäle 0 bis 6 stecken (braun zu GND).
- Kabel mit Kabelbindern bündeln, damit nichts in die Zahnräder oder Ketten kommt.
- Checkliste vor dem ersten Einschalten:
- Rot und Schwarz nirgends vertauscht? (Wandler, PCA9685-Schraubklemme, BTS7960)
- PCA9685-Schraubklemme hängt am 6-V-Wandler, die
5V-Reihe des Boards am 5-V-Wandler? - Jumper am Erweiterungsboard auf 3.3V? (Nachmessen: V-Stift gegen G-Stift = 3,3 V)
- Nirgends blanke Drähte, die sich berühren können?
- Akku an. Riecht etwas, wird etwas heiß? Sofort aus. Sonst: Servo-Tester und Motor-Test nochmal laufen lassen, jetzt im fertigen Roboter.
Teil D · FeineinstellungDamit kein Servo gegen einen Anschlag drückt
Für jeden Servo die Grenzen herausfinden
Jedes Gelenk kann sich nur ein Stück bewegen, nicht die vollen 180°. Fährt ein Servo weiter, drückt er gegen das Plastik, brummt, wird warm und geht irgendwann kaputt. Darum schreibst du dir für jeden Servo auf, wie weit er gehen darf.
- Servo-Tester hochladen (5V-Kabel am Board dabei ab!), Seriellen Monitor öffnen, Akku an.
- Mit Kanal 0 anfangen: 0 90. Dann in kleinen Schritten weiter: 0 80, 0 70 … bis der Kopf so weit gedreht ist wie auf dem Bild „LOW". Wert aufschreiben.
- Genauso in die andere Richtung bis „HIGH". Wert aufschreiben.
- Wenn es brummt: Du bist zu weit. 5° zurück.
- Das für alle 7 Servos machen und in die Tabelle schreiben:
| Kanal | Gelenk | LOW (Grad) | HIGH (Grad) | Original-Bild |
|---|---|---|---|---|
| 0 | Kopf drehen | _____ | _____ | 30° rechts / 30° links |
| 1 | Hals oben | _____ | _____ | Kopf nach unten / oben |
| 2 | Hals unten | _____ | _____ | Hals flach / aufgerichtet |
| 3 | Auge rechts | _____ | _____ | Auge unten / oben |
| 4 | Auge links | _____ | _____ | Auge unten / oben |
| 5 | Arm links | _____ | _____ | Arm unten / oben |
| 6 | Arm rechts | _____ | _____ | Arm unten / oben |
Erste Probefahrt
- WALL·E auf den Boden stellen, genug Platz drumherum.
- Motor-Test laufen lassen. Fährt er bei „BEIDE vorwärts" wirklich nach vorn? Wenn eine Seite rückwärts läuft: Akku aus, an diesem BTS7960
M+undM−tauschen. - Bei „LINKS vorwärts" muss sich WALL·E nach rechts drehen (die linke Kette schiebt). Wenn nicht: linker und rechter Treiber sind vertauscht.
Hilfe, es geht nicht!Die häufigsten Probleme und was du tun kannst
| Problem | Mögliche Ursache | Lösung |
|---|---|---|
| Kein Anschluss in der Arduino IDE | USB-Kabel ist nur ein Ladekabel · fehlende Rechte unter Linux | Anderes Kabel probieren · Gruppe dialout (sag mir Bescheid) |
| Hochladen hängt bei „Connecting…" | Board will in den Upload-Modus | Taste BOOT gedrückt halten, bis das Hochladen losgeht |
| „PCA9685 NICHT gefunden" | SDA und SCL vertauscht, VCC oder GND fehlt | Vierer-Block: D21 → SDA, D22 → SCL prüfen. VCC und GND richtig herum? |
| Board gefunden, aber Servos bewegen sich nicht | Kein Strom an der blauen Schraubklemme · Stecker verdreht | 6 V an der Schraubklemme messen · braun zu GND |
| Servos zucken wild, ESP32 startet neu | Servos und ESP32 hängen am selben Wandler · GND fehlt | Servos nur an den 6-V-Wandler · GND-Verbindungen prüfen |
| Servo brummt und wird warm | Er drückt gegen einen Anschlag | Sofort auf 90°. Grenzen neu bestimmen (D1). Hebel ggf. eine Zacke versetzen |
| Motor dreht nicht | EN-Pins nicht an 27/13 bzw. 4/23 · VCC am BTS7960 fehlt · B+/B− ohne Strom | Verkabelung mit Tabelle vergleichen · 12 V an B+/B− messen |
| Motor dreht nur in eine Richtung | RPWM oder LPWM hat keinen Kontakt | Dupont-Kabel an D25/D26 bzw. D32/D33 prüfen oder tauschen |
| Kette springt ab oder hängt durch | Kette zu locker | wheel-top-larger drucken (Ordner 05_OPTIONAL) |
| Kette klemmt | Druckreste an den Gliedern · Stifte zu stramm | Glieder einzeln prüfen, entgraten |
| Zahnräder rattern | Motorzahnrad greift nicht richtig | Halter-Schrauben lösen, Motor ausrichten, wieder anziehen |
| Hals schafft den Kopf nicht | Zu viel Reibung · Servo zu schwach | Gelenke leichtgängig machen · Büroklammer ins andere Loch |
| ESP32 geht plötzlich aus | Akku fast leer | Akku messen. Unter 10 V: sofort laden |
WALL·E-Design: Simon Bluett (chillibasket), Remix auf Printables von Mr Prints, Lizenz CC BY-SA 4.0. Montagebilder: Standbilder aus dem offiziellen Aufbau-Video. Anleitung, Schaltpläne und Testprogramme für ESP32 + BTS7960: Chanti für Kevin, September 2026.