|
|
(44 révisions intermédiaires par 2 utilisateurs non affichées) |
Ligne 1 : |
Ligne 1 : |
− | | + | #REDIRECT [[:Catégorie:RobotDuLAB]] |
− | == [[Présentation du projet]] ==
| + | |
− | <br>
| + | |
− | '''Un robot pour apprendre à programmer en classe''' <br>
| + | |
− | <br>
| + | |
− | * Utilisable en écoles primaires, collèges et lycées <br>
| + | |
− | * Toutes les pièces mécaniques sont imprimables (impression 3D – fichiers .stl fournis) <br>
| + | |
− | * Partie électronique basée sur une carte de prototypage « arduino » <br>
| + | |
− | * Libre (copiable, modifiable) et évolutif (de nombreuses options possibles) <br>
| + | |
− | <br>
| + | |
− | RoboduLAB, permet une approche ludique de l’apprentissage du code à l’école primaire, des plots au format lego permettent de personnaliser le robot.<br>
| + | |
− | | + | |
− | [[Fichier:RoboduLAB_avec_lego.jpg|sans_cadre|RoboduLAB avec paques lego et ring 16 LED|600px]]
| + | |
− | <br>
| + | |
− | En collège et en lycée RoboduLAB est un support de thème très riche pour le travail en équipes projets : conception, réalisation, expérimentation. <br>
| + | |
− | <br>
| + | |
− | La programmation se fait par assemblage de blocs (type scratch). Le programme se télécharge directement dans le robot depuis le PC ou la tablette en WIFI.<br>
| + | |
− | <br>
| + | |
− | [[Fichier:S4a.JPG|sans_cadre|Programmation par blocs|600px]]
| + | |
− | <br>
| + | |
− | | + | |
− | == [[Constitution du robot]] ==
| + | |
− | RoboduLAB est constiué d'un chassis, de deux roues montées sur des servomoteurs qui sont commandés par une carte de prototypage arduino.
| + | |
− | Il sera possible de rajouter différentes options au modèle de base :
| + | |
− | * suivi de ligne,
| + | |
− | * module WIFI,
| + | |
− | * détection des vides,
| + | |
− | * sons (MP3),
| + | |
− | * …
| + | |
− | | + | |
− | === [[Chassis]] ===
| + | |
− | | + | |
− | Le chassis est constitué d'un ensemble de pièces imprimables par une une imprimante 3D et une roulette à bille.
| + | |
− | | + | |
− | === [[Électronique]] ===
| + | |
− | | + | |
− | La partie électronique du robot comporte à minima :
| + | |
− | * une carte arduino (UNO),
| + | |
− | * deux servomoteurs à rotation continue,
| + | |
− | * un capteur à ultrasons,
| + | |
− | * une LED RGB (ou un NeoPixel Ring),
| + | |
− | * un boîtier pour les piles (6 piles AA)
| + | |
− | * un interrupteur à glissière.
| + | |
− | | + | |
− | === [[Programmes]] ===
| + | |
− | | + | |
− | Le programme nécessaire pour le fonctionnement du robot peut être :<br>
| + | |
− | - soit écrit directement en C++ et téléchargé dans la carte arduino,<br>
| + | |
− | - soit représenté par des blocs graphiques (type scratch). Il sera alors possible de produire automatiquement le code en C++ qui sera téléchargé dans le robot.
| + | |
− | | + | |
− | ==== [[Code arduino : démonstration du fonctionnement du robot en mode autonome]] ====
| + | |
− | ===== Programme sans NeoPixel Ring =====
| + | |
− | <br />
| + | |
− | | + | |
− | Voici le programme qu'il faut éditer dans l'IDE Arduino, puis compiler et charger dans la carte Arduino
| + | |
− | <br />
| + | |
− | | + | |
− | <syntaxhighlight lang="cpp" enclose="div">
| + | |
− | /*
| + | |
− | Ce programme allume progressivement une LED RGB cathodes communes branchée sur les broches 3,5 et 6
| + | |
− | */
| + | |
− | | + | |
− | int ledR = 3; // broche de la LED Rouge
| + | |
− | int ledG = 5; // broche de la LED Verte
| + | |
− | int ledB = 6; // broche de la LED Bleue
| + | |
− | | + | |
− | int i = 0; // variable de la boucle for
| + | |
− | | + | |
− | void setup() // setup est déroulé une seule fois après la remise à zéro
| + | |
− | {
| + | |
− | pinMode(ledR, OUTPUT); // la broche led (3) est initialisée en sortie
| + | |
− | pinMode(ledG, OUTPUT); // la broche led (5) est initialisée en sortie
| + | |
− | pinMode(ledB, OUTPUT); // la broche led (6) est initialisée en sortie
| + | |
− | }
| + | |
− | void loop() // loop est déroulé indéfiniment
| + | |
− | {
| + | |
− | for (i=0; i<=255;i++) // i varie de 1 à 255
| + | |
− | {
| + | |
− | analogWrite(ledR,i); // génère une impulsion sur la broche de largeur i => la luminosité R augmente
| + | |
− | delay(20); // pause de 20 ms entre chaque pas
| + | |
− | }
| + | |
− | digitalWrite (ledR,LOW);
| + | |
− | for (i=0; i<=255;i++) // i varie de 1 à 255
| + | |
− | {
| + | |
− | analogWrite(ledG,i); // génère une impulsion sur la broche de largeur i => la luminosité G augmente
| + | |
− | delay(20); // pause de 20 ms entre chaque pas
| + | |
− | }
| + | |
− | digitalWrite (ledG,LOW);
| + | |
− | for (i=0; i<=255;i++) // i varie de 1 à 255
| + | |
− | {
| + | |
− | analogWrite(ledB,i); // génère une impulsion sur la broche de largeur i => la luminosité B augmente
| + | |
− | delay(20); // pause de 20 ms entre chaque pas
| + | |
− | }
| + | |
− | digitalWrite (ledB,LOW);
| + | |
− | for (i=0; i<=255;i++) // i varie de 1 à 255
| + | |
− | {
| + | |
− | analogWrite(ledR,i); // génère une impulsion sur la broche de largeur i => la luminosité R augmente
| + | |
− | analogWrite(ledG,i); // génère une impulsion sur la broche de largeur i => la luminosité G augmente
| + | |
− | analogWrite(ledB,i); // génère une impulsion sur la broche de largeur i => la luminosité B augmente
| + | |
− | delay(20); // pause de 20 ms entre chaque pas
| + | |
− | }
| + | |
− | digitalWrite (ledR,LOW);
| + | |
− | digitalWrite (ledG,LOW);
| + | |
− | digitalWrite (ledB,LOW);
| + | |
− | }
| + | |
− | </syntaxhighlight>
| + | |
− | | + | |
− | == [[Téléchargements]] ==
| + | |
− | === [[Documents de présentation]] ===
| + | |
− | === [[Pièces imprimables]] ===
| + | |
− | <br>
| + | |
− | Les pièces imprimables : base, roue, support capteur Ultra-sons et plaque pour support de piles sont téléchargeable sur Thingiverse:
| + | |
− | <br>
| + | |
− | http://www.thingiverse.com/thing:833005
| + | |
− | | + | |
− | === [[Programmes]] ===
| + | |
− | | + | |
− | [[Rajout du capteur de vide]]
| + | |