Retour sur l'atelier Robot Récup' Mange-tout

Retrouvez ci-dessous la recette de fabrication du Robot Récup' Mange-tout réalisé au cours de l'atelier MédiaLab du 16 avril 2022.
Au cours de cette séance, les enfants présents ont pu fabriquer à base de matériaux de récupération et d'électronique ce robot qui détecte un objet en approche, allume une led et ouvre sa bouche. Une excellente occasion de s'initier au montage électronique et à la programmation sur carte Arduino.
Merci à Gabriel, Inès, Noé, Octave et Solal pour leur participation.
Le résultat en vidéo en cliquant ici.
La recette du Robot Récup' | |
---|---|
Quelques morceaux de cartons pour le chassis et les roues |
![]() |
Une carte Arduino Uno | ![]() |
Un capteur HC-SR04 | ![]() |
Une led | ![]() |
Un servomoteur (ex. SM-S2309S) | ![]() |
Une mini platine | ![]() |
Quelques fils électriques | ![]() |
Le programme Arduino | ![]() |
Le schéma de montage (à titre indicatif, à vous de choisir le numéro de chaque connecteur sur la carte), les photos du robot, vues du dos et du dessus, et le code à copier :
Le code à copier -----------------------------------------------------------------------------
#include <Servo.h>
#define SERVO_PIN 9 // Set pin 9 for servo
#define avertisseur 13 //Led
// HC-SR04 ultrasonic sensor
const int trig = 5; // trig of HC-SR04
const int echo = 4; // echo of HC-SR04
// Servo
Servo mouthServo;
void setup()
{
// Serial connection with baudrate 960
Serial.begin(9600);
// Send signal with TRIG
pinMode(trig, OUTPUT);
// Receive signal with ECHO
pinMode(echo, INPUT);
// Mouth Server
mouthServo.attach(SERVO_PIN);
mouthServo.write(50);
//On défini la led comme une sortie
pinMode(avertisseur, OUTPUT);
}
void loop()
{
/* Duration */
unsigned long duration;
int distance; //Distance
/* Send signal from TRIG pin */
digitalWrite(trig, 0); //Stop trig pin
delayMicroseconds(2); //Delay 2 micro seconds
digitalWrite(trig, 1); //Send signal from TRIG pin
delayMicroseconds(10); //Delay 10 micro seconds
digitalWrite(trig, 0); //Stop trig pin
/* Measure HIGH pulse width at ECHO pin */
duration = pulseIn(echo, HIGH);
//Calculate distance
distance = int(duration/2/29.412);
if(distance <= 8)
{
//Print distance
Serial.println("Je sens une bonne odeur :-) ! Donne-moi à manger !!!");
digitalWrite(avertisseur,HIGH);
// Start open mouth
mouthServo.write(0);
// Delay
delay(3000);
}
else {
//Print distance
Serial.println("Je ne sens rien :-( Ils sont où les bonbons !");
// Close the mouth
mouthServo.write(90);
digitalWrite(avertisseur,LOW);
}
// Delay
delay(500);
}
-----------------------------------------------------------------------------