Robot mangeur Arduino Nano : Guide de construction pas à pas
Composants nécessaires
- 1 × Arduino Nano R3
- 1 × Capteur ultrasons HC-SR04
- 1 × Servomoteur SG90 (micro-servo)
- 1 × Breadboard demi-taille
- Fils de connexion (jumper wires)
- Carton, colle chaude, ciseaux (pour le corps du robot)
Outils
- Pistolet à colle chaude
- Arduino IDE (ou Arduino Web Editor)
Origine du projet
Inspiré par la demande de sa fille : un robot qui ouvre la bouche pour "manger" de la nourriture. Réalisé avec des matériaux de récupération (carton) pour un coût minimal et un temps de construction très court.
Construction du corps (carton)
- Découpez les pièces du corps (tête, corps, mâchoire mobile) dans du carton.
- Assemblez à la colle chaude.
- Percez les trous pour les yeux (esthétique) et la bouche (mâchoire mobile).
- Fixez le servomoteur SG90 à l'intérieur de la tête, avec son bras actionnant la mâchoire inférieure.
- Placez le capteur HC-SR04 dans les "yeux" ou au-dessus de la bouche pour détecter la nourriture approchante.
- Insérez l'Arduino Nano et le breadboard dans le corps, câblez selon le schéma.
- Alimentez via USB (power bank ou ordinateur).
Câblage
- HC-SR04 : VCC → 5V, GND → GND, Trig → D3, Echo → D2
- SG90 : Signal → D9, VCC → 5V, GND → GND
Code Arduino
/* Robot mangeur en carton
* Auteur: GoldScrew
* Email: goldscrewdiy@gmail.com
* Détecte nourriture (distance <= 5cm) via HC-SR04, ouvre/ferme la bouche via SG90
*/
#include
#define SERVO_PIN 9
const int trig = 3;
const int echo = 2;
Servo mouthServo;
void setup() {
Serial.begin(9600);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
mouthServo.attach(SERVO_PIN);
mouthServo.write(90); // bouche fermée (position neutre)
}
void loop() {
unsigned long duration;
int distance;
// Envoi impulsion 10µs sur Trig
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);
// Mesure largeur impulsion Echo
duration = pulseIn(echo, HIGH);
distance = int(duration / 2 / 29.412); // conversion en cm
if (distance <= 5) {
Serial.println("Distance <= 5 cm : nourriture detectee");
mouthServo.write(0); // ouvre la bouche
delay(1200); // temps de "mastication"
} else {
Serial.println("Distance > 5 cm : attente");
mouthServo.write(90); // ferme la bouche
}
delay(200);
}
Fonctionnement
Lorsque l'on approche un objet (morceau de nourriture, main) à moins de 5 cm du capteur, le robot ouvre la bouche (servo à 0°), attend 1,2s, puis referme (servo à 90°). Si l'objet s'éloigne, la bouche reste fermée. Le seuil de 5cm et les angles du servo sont ajustables selon la mécanique.
Améliorations possibles
- Ajouter un deuxième servo pour bouger la tête ou les bras.
- Utiliser un capteur de couleur (TCS3200) pour "reconnaître" la nourriture.
- Ajouter des effets sonores (buzzer) lors de la détection.
- Remplacer le carton par une impression 3D pour plus de robustesse.
- Alimentation par batterie LiPo + chargeur TP4056 pour autonomie.
Schéma de câblage
Voir l'image dans la section "Schematics" du projet original.
Processus de fabrication
- Construire un jeu gyroscopique temps réel avec Arduino Nano et capteur MPU-6050
- Unopad : contrôleur MIDI Arduino fluide pour Ableton Live
- Robot Évitement d'Obstacles Piloté par Servomoteur : Construction avec Arduino et HC-SR04
- Capteur d'obstacle IR simple avec Arduino — LED IR + Photodiode
- Contrôler 2 moteurs pas-à-pas avec Arduino Nano et joystick – Tutoriel Visuino
- PiBot : Robot pianiste Arduino pour performance musicale de précision
- Compteur Geiger Portable avec Arduino Nano : Construction Pas à Pas
- Générer des Sons Musicaux avec Arduino : Guide Pas à Pas
- Porte automatique Arduino avec capteur ultrasons HC-SR04