Vous êtes ici

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

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.

photo-robot-mange-tout-scotch_web.jpglogoarduino-100px_0.jpgcartons-100px.jpgcarte_arduino_uno_100px.jpghc-sr04_100px.jpg

La recette du Robot Récup'
Quelques morceaux de cartons pour le chassis
et les roues
cartons-100px.jpg
Une carte Arduino Uno carte_arduino_uno_100px.jpg
Un capteur HC-SR04 hc-sr04_100px.jpg
Une led led_100px.jpg
Un servomoteur (ex. SM-S2309S) servo_100px.jpg
Une mini platine mini_platine_100px.jpg
Quelques fils électriques cables_fils_electriques_100px.jpg
Le programme Arduino logoarduino-100px_0.jpg

 

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 :

schema_arduino_215px.jpg  photo-dos-215px.jpg    photo-dessus-215px.jpg

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);
}

-----------------------------------------------------------------------------