Skip to main content

Phase 2 - Câblage et programmation du LittleBot - 4 x 1h30

PréPrérequis participant :

  • Travail sur ordinateur
  • Manipulation avec la souris (clic droit, clic gauche, lection,...)
  • Manipulation du clavier
  • Notions d'électricité
  • Notions de programmation par bloc (scratch)

CompéCompétences Animateur :

CompéCompétences techniques et soft skills :

  • Pratique du logiciel Arduino IDE, connaissance en programmation C++
  • Gestion des drivers sous Windows ou Expérience avec Ubuntu / Linux Mint
  • Circuits et branchements électrique

Soft skills :

  • Animation
  • Gestion de la Motivation et de l'attention

MatéMatériels cessaires

logiciel, éélectronique, canique, outils, matématériaux, code...

  • 12 PCs (1 par participant)
    • Windows ou Linux
    • Connexion et navigateur internet (Firefox)
    • Session invitéinvité ou nominative
    • Logiciel Arduino IDE prépré-installéinstallé
  • Composants élééléctroniques
    • Carte Arduino Nano (x12)
    • Shield (extension Arduino Nano) (x12)
    • Capteur Ultrasons HRC-SR04 (x12)
    • Servo-Moteur DM-S0090D (x24)
    • ble Dupont (x48 - 4/participants)
  • ProgrammeProgrammes du LittleBot et des composants 

PréPréparation :

MatéMatériel par participant sur un poste PC en but de ance :

  • PC alluméallumé
  • Codes d'accèaccès session Windows/Linux
  • CréCréation d'une activitéactivité avec le tutoriel animateur Arduino IDE
  • Temps de prépréparation : 5min

Documentation / Tutoriels :

roulement de la ance

  • Consignes : SécuritéSécurité, préprécautions matématériel :
    • Travail individuel

Pour commencer notre robot, nous allons tout d'abord apprendre comment et qu'es

  • Phases et thodes d’d’animation
    1. Mise en contexte de la ance précéprécédante(10min)
    2. Tutoriel Arduino IDE (15min)
    3. PréPrésentation de la phase de programmation (5min)
    4. PréPrésentation du cahier des charges pour la programmation 
      1. Contraintes sur les alimentations (5v ou 3.3v)
      2. Quelles pins sont àà utiliser pour les capteurs ultrasons ?
      3. Comment brancher un servo-moteur ?
      4. Contrainte du sens de rotation des servo-moteurs 
      5. Rendre le changement de sens du robot aléaléatoire 

Le blage

Pour le blage et la programmation du LittleBot, il nous faut :

Le branchement ce préprésente comme ceci :

Branchement littlebot.png


  1. Tout d'abord nous branchons l'Arduino Nano sur notre Sensor Shield. Attention, il y a un sens. Le port de charge doit êêtre sur l'extéextérieur de votre Shield.
  2. Nous allons a préprésent brancher notre capteur àà ultrason :
  • VCC sur une pin 5V.
  • Trig sur la pin 6.
  • Echo sur la pin 7.
  • GND sur une pin GND

3. Nous allons brancher nos Servomoteur, les bles de nos servo sont tous reliéreliés àà un raccord. Celui ci ne peut êêtre branchébranché que dans un seul sens. Nou brancherons donc un servo sur la pin 10 et un servo sur la pin 11.

  • Le fil marron sur la pin G
  • Le fil rouge sur la pin V
  • Le fil orange sur la pin S

Ainsi le servo qui est sur la pin 10 sera notre roue droite et le Servo sur la pin 11 sera notre roue gauche.  

Votre blage est terminéterminé

Passons maintenant àà la programmation. 

Le programme

Ici nous composerons notre programme pour bien l'éécrire. 

Tout d'abord, nous clarons la librairie et les servo que nous utiliserons :

#include <Servo.h>
#define trigPin 6
#define echoPin 7
Servo servo1;
Servo servo2;

Puis nous clarons sur quelles pins sont branchébranchés tre capteur et nos servo :

void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
servo1.attach(11); 
servo2.attach(10);
}

Rentrons dans le vive du sujet :

void loop() {
long duration, distance;     // Nous clarons notre variable que nous retrouverons plus tard
digitalWrite(trigPin, LOW);   //Ici notre capteur àà ultrason est en "position 0"
delayMicroseconds(2);         // Pendant 2 Microsecondes
digitalWrite(trigPin, HIGH);  //Ici notre capteur àà ultrason est "activéactivé"
delayMicroseconds(10);        //Pendant 10 Microsecondes
digitalWrite(trigPin, LOW);   //Puis nous le retournons en position "0"
duration = pulseIn(echoPin, HIGH);  // Nous clarons notre variable "duration" qui est la durédurée du trajet du son.
distance = (duration*0.034) / 2;     // Nous clarons notre variables "distance" par la durééduréé multipliémultiplié par la vitesse du son le tout divisédivisé par 2.
if (distance < 20) {                // Nos placement commence ici, "Si la distance est inféinférieur àà 20cm alors..."
  servo1.writeMicroseconds(1000);//Servo Gauche tourne àà l'envers
  servo2.writeMicroseconds(2000);//Servo Droit tourne àà l'envers
  delay (2000);// pendant 2 sec
  servo1.writeMicroseconds(1000);//Servo Gauche tourne àà l'envers
  servo2.writeMicroseconds(1500);//ArrêArrêt du Servo Droit
  delay (2000);// pendant 2 sec
}

else {                             //Sinon...
 servo1.writeMicroseconds(2000);//Servo Gauche tourne
 servo2.writeMicroseconds(1000);//Servo Droit tourne
  delay (2000);// pendant 2 sec
}
}

Puis nous assemblons le tout, voici àà quoi cela devrait ressembler :

#include <Servo.h>
#define trigPin 6
#define echoPin 7
Servo servo1;
Servo servo2;

void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
servo1.attach(11); 
servo2.attach(10);
}


void loop() {
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration*0.034) / 2;
if (distance < 20) {
  servo1.writeMicroseconds(1000);
  servo2.writeMicroseconds(2000);
  delay (2000);
  servo1.writeMicroseconds(1000);
  servo2.writeMicroseconds(1500);
  delay (2000);
}

else {
 servo1.writeMicroseconds(2000);
 servo2.writeMicroseconds(1000);
  delay (2000);
}
}

      

Conclusion / Rangement / montage :

  • Rangement en fin de ance
    • brancher et ranger les composants
    • Chaque participant rifie la boite du voisin (check-list)
    • Remettre ordinateur dans l'éétat initial
  • Programme de la prochaine ance