ASi (Anansi) Roboter-Begleiter: Freundlicher Bot mit Arduino Nano & LED-Matrix
Komponenten und Zubehör
| Bauteil | Anzahl | Hinweis |
|---|---|---|
| Arduino Nano R3 | 1 | Steuert LED-Matrix (Augen) |
| Adafruit Trinket 5V (oder Pro Trinket) | 1 | Steuert Servo (Hals-Bewegung) |
| SG90 Mikro-Servo | 1 | Für Kopf-Drehung |
| MAX7219 8×8 LED-Dot-Matrix Modul (rot) | 1 | Zwei 8×8 Matrizen = ein Modul mit 2 Chips |
| 4× AA-Batteriehalter (oder 1× Li-Ion 3,7 V 200 mAh) | 1 | Zwei getrennte Stromkreise empfohlen |
| Klarsicht-Acryl-Kugel (Badebomben-Form, ~6–8 cm) | 1 | Kopf-Gehäuse, leicht schwarz besprüht |
| 3D-gedruckte Teile (Körper, Beine, Gelenke, Zahnrad) | 1 Satz | STL-Dateien im CAD-Bereich |
| Schrauben, Muttern, Heißkleber | nach Bedarf |
Benötigte Werkzeuge
- 3D-Drucker (z. B. Artillery X1, 300×300×400 mm)
- Heißklebepistole
- Lötkolben, Seitenschneider, Schraubendreher
Projektgeschichte
Ursprünglich als „Xpider“ (Thingiverse) geplant, inspirierte mich Archimedes von Alex Glow zu einem eigenen Roboter-Begleiter. Ich wollte keine Eule, sondern etwas Einzigartiges – und erinnerte mich an Anansi, den westafrikanischen Spinnen-Trickster und Gott der Geschichten. So entstand ASi (eigentlich ASi_v4, v1–v3 waren Prototypen).
Mechanischer Aufbau

Der Zusammenbau ist weitgehend selbsterklärend. Wichtige Punkte:
- Servo-Zahnrad muss fest auf der Servowelle sitzen (Schraube nutzen)
- Elektronik kann in Kopf-Oberteil oder -Unterteil platziert werden
- Zwei getrennte Mini-Breadboards (je einer MCU), per 4×AA versorgt – gemeinsamer Ein/Aus-Schalter für synchronen Start
- Kopf: Acrylkugel leicht schwarz matt lackieren, mit Heißklebe an Halsplatte fixieren
- Tragen: Draht durch Bohrungen im Unterkörper, um Rucksack-Träger gewickelt

Elektronik & Steuerung
Zwei-Mikrocontroller-Architektur
- Arduino Nano: Steuert die Augen (MAX7219 Dual-Matrix) – zufällige Blickbewegungen, Blinzeln, Effekte (Kreuzblick, Drehen, „Meth-Eyes“, Glühen)
- Adafruit Trinket: Steuert den Hals-Servo (Pin 4) – zufällige Kopfdrehungen alle ~0,5 s (10% Chance), LED-Blinken an Pin 1 (10% Chance)
Beide MCUs teilen sich die Stromversorgung (getrennte Breadboards, gemeinsamer Schalter). Li-Ion allein führte manchmal zu Startproblemen → zwei getrennte Li-Ion oder 4×AA empfohlen.
Software
1. ASi Eye (Arduino Nano)
Steuert zwei 8×8 Matrizen als Augen. Zufällige Blickbewegungen, Blinzeln, diverse Effekte.
#include <LedControl.h>
#define PIN_EYES_DIN 12
#define PIN_EYES_CLK 10
#define PIN_EYES_CS 11
LedControl lc = LedControl(PIN_EYES_DIN, PIN_EYES_CLK, PIN_EYES_CS, 2);
bool rotateMatrix0 = false, rotateMatrix1 = false;
byte eyeBall[8] = {
B00111100, B01111110, B11111111, B11111111,
B11111111, B11111111, B01111110, B00111100
};
byte eyePupil = B11100111;
byte eyeCurrent[8];
int currentX = 0, currentY = 0;
int cntLoop = 0, cntEffect = 0;
#define MIN -2
#define MAX 2
#define DELAY_BLINK 40
#define EFFECT_ITERATION 4
void setup() {
lc.shutdown(0,false); lc.shutdown(1,false);
lc.setIntensity(0,1); lc.setIntensity(1,1);
lc.clearDisplay(0); lc.clearDisplay(1);
// LED-Test beim Start
byte b = B10000000;
for (int c=0; c<=7; c++) {
for (int r=0; r<=7; r++) { setRow(0,r,b); setRow(1,r,b); }
b >>= 1; delay(50);
}
b = B11111111;
for (int r=0; r<=7; r++) { setRow(0,r,b); setRow(1,r,b); }
delay(500);
lc.clearDisplay(0); lc.clearDisplay(1); delay(500);
randomSeed(analogRead(0));
displayEyes(0,0); delay(2000);
blinkEyes(true,false); blinkEyes(false,true); delay(1000);
}
void loop() {
// Zufällige Blickbewegung
moveEyes(random(MIN, MAX+1), random(MIN, MAX+1), 50);
delay(random(5,7) * 500);
// Zufälliges Blinzeln
if (random(0,5) == 0) { delay(500); blinkEyes(); delay(500); }
// Periodische Effekte
if (EFFECT_ITERATION > 0) {
if (++cntLoop == EFFECT_ITERATION) {
cntLoop = 0;
if (cntEffect > 6) cntEffect = 0;
switch(cntEffect) {
case 0: crossEyes(); delay(1000); break;
case 1: roundSpin(2); delay(1000); break;
case 2: crazySpin(2); delay(1000); break;
case 3: methEyes(); delay(1000); break;
case 4: lazyEye(); delay(1000); break;
case 5: blinkEyes(true,false); blinkEyes(false,true); delay(1000); break;
case 6: glowEyes(3); delay(1000); break;
}
cntEffect++;
}
}
}
// Hilfsfunktionen: setRow(), bitswap(), displayEyes(), moveEyes(), blinkEyes(),
// crossEyes(), roundSpin(), crazySpin(), methEyes(), lazyEye(), glowEyes(),
// getValidValue() – siehe vollständiger Code im Repository
2. ASi Neck with Trinket (Adafruit Trinket)
Steuert Servo für Kopfdrehung und Status-LED.
#define SERVO_PIN 4 // Pin 1 oder 4 auf Trinket
#define SERVO_MIN 4 // ~1 ms
#define SERVO_MAX 26 // ~2 ms
#include <Adafruit_TiCoServo.h>
Adafruit_TiCoServo servo;
void setup() {
#if (F_CPU == 16000000L)
clock_prescale_set(clock_div_1); // 16 MHz Trinket: Prescaler setzen VOR servo.attach()
#endif
servo.attach(SERVO_PIN);
pinMode(1, OUTPUT); digitalWrite(1, HIGH); // Onboard LED
}
uint32_t lastLookTime = 0;
void loop() {
unsigned long t = millis();
if ((t - lastLookTime) > 500) {
if (random(10) == 0) { // 10% Chance
servo.write(random(SERVO_MIN, SERVO_MAX));
lastLookTime = t;
}
}
if (random(10) == 0) { // LED "Blinken"
digitalWrite(1, LOW);
delay(random(50, 250));
digitalWrite(1, HIGH);
}
delay(100);
}
3D-Druckdateien (CAD)
Alle STL-Dateien für Körper, Beine, Gelenke, Zahnrad, Servo-Halter, Halsplatte, Fuß etc. sind im Projekt enthalten. Wichtige Teile:
- Körper (Hauptgehäuse)
- Oberschenkel & Unterschenkel (je 2×)
- Beingelenke (Knie)
- Zahnrad für Servo (in Servo-Halter)
- Halsplatte (Acrylkugel wird hier aufgeklebt)
- Fußplatte
- Schrauben & Muttern für Gelenke
Schaltpläne


Fazit
ASi ist ein charmantes, tragbares Roboter-Haustier mit lebendigen Augenbewegungen und neugierigem Kopfdrehen. Das Projekt verbindet 3D-Druck, Elektronik und Programmierung zu einem einzigartigen Begleiter – perfekt für Maker, die Charakter in ihre Projekte bringen wollen.
Weiterführende Links
- GitHub Repository mit Code & STLs
- Inspiration: Xpider, Archimedes by Alex Glow
Herstellungsprozess
- Arduino-Roboter mit Raspberry Pi bauen: Schritt-für-Schritt-Anleitung
- DIY Wall-E-inspirierter Raspberry Pi CD-Box-Roboter
- PiCy: Eigenen winzigen Raspberry-Pi-betriebenen Roboter bauen
- Rolling Alarm Robot: Intelligentes, mobiles Wecksystem mit Raspberry Pi und Google Kalender
- Einen motorisierten Minecraft-Creeper-Roboter mit Arduino bauen
- Archimedes: Der emotionserkennende KI-Roboter-Eule
- Sprachgesteuerter Computer-Vision-Roboter auf Windows 10 IoT Core bauen
- ROS Roboter: Terminal-gesteuerte Navigation auf Raspberry Pi
- Simple Pi Robot: 2-WD Autonomer Rover mit Raspberry Pi bauen
- Getränkeroboter: Technologie, Automatisierung und Rolle in der Getränkeindustrie