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,
sésé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 nénécessaires
logiciel, éélectronique, mémé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)
CâCâble Dupont (x48 - 4/participants)
ProgrammeProgrammes du LittleBot et des composants
PréPréparation :
MatéMatériel par participant sur un poste PC en dédébut de séséance :
Documentation / Tutoriels :
- Tutoriel animateur Arduino IDE-
crécréation d'uneactivitéactivité - Tutoriel
élèélève Arduino IDE-modémodélisation d'unepièpièce - Tutoriel Arduino Nano
- Tutoriel Capteur Ultrason
- Tutoriel Servo moteur
DéDéroulement de la séséance
Pour commencer notre robot, nous allons tout d'abord apprendre comment et qu'es
Le câcâblage
Pour le câcâblage et la programmation du LittleBot, il nous faut :
- Un Arduino Nano (ou
ééquivalant) - Un Sensor Shield
- Un capteur
àà ultrason (HC-SR04) - 2 Servomoteur / Moteur (DM-S0090D)
Le branchement ce préprésente comme ceci :
- 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. - 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 câcâ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 câcâblage est terminéterminé.
Passons maintenant àà la programmation.
Le programme
Ici nous dédécomposerons notre programme pour bien l'éécrire.
Tout d'abord, nous dédéclarons la librairie et les servo que nous utiliserons :
#include <Servo.h>
#define trigPin 6
#define echoPin 7
Servo servo1;
Servo servo2;
Puis nous dédéclarons sur quelles pins sont branchébranchés nônô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 dédé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 dédéclarons notre variable "duration" qui est la durédurée du trajet du son.
distance = (duration*0.034) / 2; // Nous dédé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 dédé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 / DéDémontage :
- Rangement en fin de
séséanceDéDébrancher et ranger les composants- Chaque participant
vévérifie la boite du voisin (check-list) - Remettre ordinateur dans l'
éétat initial
- Programme de la prochaine
séséance