Phase 2 - Câblage et programmation du LittleBot - 4 x 1h30
Prérequis participant :
Participant- Travail sur ordinateur
- Manipulation avec la souris (clic droit, clic gauche, sélection,...)
- Manipulation du clavier
- Notions d'électricité
- Notions de programmation par bloc (scratch)
Prérequis Animateur
Compétences Animateur :techniques
Compétences techniques :
- 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ériels nécessaires
logiciel, électronique, mécanique, outils, matériaux, code...
- 12 PCs (1 par participant)
- Windows ou Linux
- Connexion et navigateur internet (Firefox)
- Session invité ou nominative
- Logiciel Arduino IDE pré-installé
- Composants éléctroniques
- Carte Arduino Nano (x12)
- Shield (extension Arduino Nano) (x12)
- Capteur Ultrasons HRC-SR04 (x12)
- Servo-Moteur DM-S0090D (x24)
- Câble Dupont (x48 - 4/participants)
- Programmes du LittleBot et des composants
Préparation :
Matériel par participant sur un poste PC en début de séance :
Documentation / Tutoriels :
- Tutoriel animateur Arduino IDE-
création d'une activité - Tutoriel élève Arduino IDE-
modélisation d'une pièce - Tutoriel Arduino Nano
- Tutoriel Capteur Ultrason
- Tutoriel Servo moteur
DéExemple de déroulement pédagogique
Exemple indicatif de déroulé par séance
Déroulé effectué en 2023-2024 au club robotique de l'IUT de Haguenau (1H30/séance, collégiens 6ème-3ème) :
- Séance 1 : Câblage et programmation d'une LED sur ? Arduino IDE ou MBlock ?
- Séance 2 : Principe physique, Câblage et programmation d'un câbleur ultrason
- Séance 3 : Principe physique, câblage, et programmation d'un servomoteur
- Séance 4 : Câblage complet du LittleBot
- Séance 5 : Programmation du LittleBot
Exemple de déroulé pour la séance 1
Déroulement pédagogique complet
Le câblage
Pour le 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é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érieur de votre Shield.
- Nous allons a 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âbles de nos servo sont tous reliés à un raccord. Celui ci ne peut être 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âblage est terminé.
Passons maintenant à la programmation.
Le programme
Ici nous décomposerons notre programme pour bien l'écrire.
Tout d'abord, nous 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éclarons sur quelles pins sont branchés 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é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é"
delayMicroseconds(10); //Pendant 10 Microsecondes
digitalWrite(trigPin, LOW); //Puis nous le retournons en position "0"
duration = pulseIn(echoPin, HIGH); // Nous déclarons notre variable "duration" qui est la durée du trajet du son.
distance = (duration*0.034) / 2; // Nous déclarons notre variables "distance" par la duréé multiplié par la vitesse du son le tout divisé par 2.
if (distance < 20) { // Nos déplacement commence ici, "Si la distance est 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ê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émontage :
- Rangement en fin de séance
- Débrancher et ranger les composants
- Chaque participant vérifie la boite du voisin (check-list)
- Remettre ordinateur dans l'état initial
- Programme de la prochaine séance