RoboduLAB : Différence entre versions

De Wiki L.A.B
Aller à : navigation, rechercher
(Programmes)
(Code arduino : démonstration du fonctionnement du robot en mode autonome)
Ligne 50 : Ligne 50 :
  
 
==== [[Code arduino : démonstration du fonctionnement du robot en mode autonome]] ====
 
==== [[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]] ==
 
== [[Téléchargements]] ==

Version du 9 août 2016 à 13:32

Présentation du projet


Un robot pour apprendre à programmer en classe

  • Utilisable en écoles primaires, collèges et lycées
  • Toutes les pièces mécaniques sont imprimables (impression 3D – fichiers .stl fournis)
  • Partie électronique basée sur une carte de prototypage « arduino »
  • Libre (copiable, modifiable) et évolutif (de nombreuses options possibles)


RoboduLAB, permet une approche ludique de l’apprentissage du code à l’école primaire, des plots au format lego permettent de personnaliser le robot.

RoboduLAB avec paques lego et ring 16 LED
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.

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.

600px

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 :
- soit écrit directement en C++ et téléchargé dans la carte arduino,
- 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


Voici le programme qu'il faut éditer dans l'IDE Arduino, puis compiler et charger dans la carte Arduino

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

Téléchargements

Documents de présentation

Pièces imprimables


Les pièces imprimables : base, roue, support capteur Ultra-sons et plaque pour support de piles sont téléchargeable sur Thingiverse:
http://www.thingiverse.com/thing:833005

Programmes

Rajout du capteur de vide