ASi (Anansi) : Construire un robot compagnon avec Arduino Nano et affichage LED
Composants et fournitures
| Composant | Quantité | Notes |
|---|---|---|
| Arduino Nano R3 | 1 | Contrôle l'affichage des yeux (matrice LED) |
| Servomoteur SG90 | 1 | Mouvement de la tête (cou) |
| Module matrice LED MAX7219 (8x8, rouge) | 1 | Deux matrices en cascade pour les deux yeux |
| Support 4 piles AA (ou Li-ion 3,7 V 200 mAh) | 1 | Alimentation |
| Vis diverses | 1 | Assemblage mécanique |
| Coques sphères acrylique transparentes (moules à bombes de bain) | 1 | Tête du robot |
| Adafruit Trinket 5V | 1 | Contrôle du servomoteur (mouvement aléatoire tête) |
Outils nécessaires
- Imprimante 3D (generic)
- Pistolet à colle chaude
À propos du projet
Histoire
Initialement inspiré du robot « Xpider » (Thingiverse) puis d'« Archimedes » par Alex Glow, j'ai voulu créer mon propre compagnon robotique. L'histoire africaine d'Anansi, l'araignée farceuse et déesse des histoires, a donné son nom et son esprit à ce robot : ASi (version 4, les v1-v3 étant des prototypes).
Assemblage
La plupart des pièces sont imprimées en 3D. L'assemblage est intuitif ; voici les points clés :

L'électronique se loge dans la tête (haut ou bas). Le servomoteur doit être fixé avec son engrenage.

Deux microcontrôleurs :
- Trinket : Contrôle le mouvement de la tête (servo) – va-et-vient aléatoire.
- Arduino Nano : Contrôle les yeux (matrices MAX7219) – animations aléatoires (regard, clignement, effets).

Alimentation : deux petites plaques d'essai (breadboards) en cascade avec le pack 4xAA (ou deux batteries Li-ion sur le même interrupteur).
La tête est une boule de Noël en plastique, légèrement peinte en noir à la bombe, puis collée à la pièce de cou avec de la colle chaude.

Porté : fil d'armature passé dans les trous du bas et fixé sur la sangle d'un sac à dos.

Code
ASi Eye (Arduino Nano)
Gère les deux matrices MAX7219 pour afficher des yeux animés (regard, clignement, strabisme, rotation, etc.).
#include <LedControl.h>
#define PIN_EYES_DIN 12
#define PIN_EYES_CS 11
#define PIN_EYES_CLK 10
LedControl lc = LedControl(PIN_EYES_DIN, PIN_EYES_CLK, PIN_EYES_CS, 2);
// Définition pupille, boule d'œil, positions, effets...
// Fonctions : displayEyes(), moveEyes(), blinkEyes(), crossEyes(), roundSpin(), crazySpin(), methEyes(), lazyEye(), glowEyes()...
void setup() {
lc.shutdown(0,false); lc.shutdown(1,false);
lc.setIntensity(0,1); lc.setIntensity(1,1);
lc.clearDisplay(0); lc.clearDisplay(1);
// Test LED, centrage, clignement initial...
randomSeed(analogRead(0));
}
void loop() {
// Mouvement aléatoire des yeux
moveEyes(random(MIN, MAX+1), random(MIN, MAX+1), 50);
delay(random(5,7)*500);
// Clignement aléatoire
if (random(0,5)==0) { delay(500); blinkEyes(); delay(500); }
// Effets périodiques
if (EFFECT_ITERATION>0) { /* sélection et exécution d'un effet */ }
}
ASi Neck avec Trinket
Fait bouger le servomoteur (tête) aléatoirement et fait clignoter une LED.
#define SERVO_PIN 4
#define SERVO_MIN 4
#define SERVO_MAX 26
Adafruit_TiCoServo servo;
void setup() {
#if (F_CPU == 16000000L)
clock_prescale_set(clock_div_1);
#endif
servo.attach(SERVO_PIN);
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, HIGH);
}
uint32_t lastLookTime = 0;
void loop() {
unsigned long t = millis();
if ((t - lastLookTime) > 500) {
if (random(10) == 0) {
servo.write(random(SERVO_MIN, SERVO_MAX));
lastLookTime = t;
}
}
if (random(10) == 0) {
digitalWrite(LED_PIN, LOW);
delay(random(50,250));
digitalWrite(LED_PIN, HIGH);
}
delay(100);
}
Pièces personnalisées et boîtiers
Fichiers STL pour l'impression 3D : pièces de jambe, corps, cuisse, articulation, engrenage servo, plaque de cou, support servo, etc. (voir section CAD d'origine).
Schémas


Processus de fabrication
- Construire un robot Arduino piloté par Raspberry Pi – Guide pas à pas
- Robot DIY inspiré de Wall‑E : Raspberry Pi dans une boîte de CD recyclée
- PiCy : Construisez votre propre petit robot Raspberry Pi
- Robot réveil roulant : Système mobile intelligent piloté par Raspberry Pi et Google Calendar
- Construire un robot Creeper motorisé Minecraft avec Arduino
- Archimède : Le hibou robotique IA à détection d'émotions
- Construire un robot vision par ordinateur piloté par la parole sur Windows 10 IoT Core
- Robot ROS : Navigation pilotée par terminal sur Raspberry Pi
- Simple Pi Robot – Construire un rover autonome 2 roues motrices avec Raspberry Pi