Cours:SaeRobotique : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
Ligne 13 : Ligne 13 :
 
**doit indiquer le travail à réaliser le jour même
 
**doit indiquer le travail à réaliser le jour même
  
= Semaine 1 : tâches élémentaires=
+
= Séquence 1 : tâches élémentaires=
  
 
* Tâches de suivi de ligne (un étudiant sur chaque tâche) :
 
* Tâches de suivi de ligne (un étudiant sur chaque tâche) :
Ligne 24 : Ligne 24 :
 
* À faire globalement : câblage robot, sécurité
 
* À faire globalement : câblage robot, sécurité
  
==Livrable==
+
==Livrable 1==
 
* faire des recherches pour rendre un dossier (pour le lundi qui suit) expliquant : le pont en H, schéma sécurité et chaque partie (a, b, c)
 
* faire des recherches pour rendre un dossier (pour le lundi qui suit) expliquant : le pont en H, schéma sécurité et chaque partie (a, b, c)
 
* mini-concours à la fin (le jeudi 8 matin).
 
* mini-concours à la fin (le jeudi 8 matin).
  
=Robot "joueur de tennis"=
+
= Séquence 2 : réalisation shield =
  
 +
==Livrable 2==
  
==Tâches matérielles (8 jours)==
+
= Séquence 3 : Fusion et Programmation globale=
 
 
 
 
 
 
* mat pour tenir ballon : on donne un tube (32) à couper (prévoir boite à onglet et scie) avec la base et les étudiants doivent fabriquer le support ballon
 
* système perçage ballon
 
* système démarrage avec ficelle à tirer
 
* système détection murs : choix du capteur distance avec liste donnée (ultrason, lidar ou infrarouge)
 
* fabrication shield pour Arduino Uno
 
 
 
== Tâches logicielles==
 
(1 étudiant sur chaque étape)
 
# Localiser balle avec caméra Pixy
 
# Attraper balle (détection opto)
 
# Renvoyer balle dans le camp adverse en s’orientant avec magnétomètre
 
# Recommencer
 
Codage des tâches en explicitant la structure du programme
 
 
 
* Ajouter transmission sans fil pour supervision/débogage (Xbee ou HF) : affichage sur terminal pc de l’étape en cours (et éventuellement état de variables)
 
 
 
== Livrable ==
 
 
 
* À la fin du premier jour :
 
** donner une organisation (en tâches, qui fait quoi)
 
* Rapport final :
 
** '''À envoyer au format pdf par mail avant le jeudi 9 juin 12h'''
 
** Diagramme de Gantt
 
** diagramme algorithme général
 
** stratégie de résolution de chaque tâche
 
** Mini-concours à la fin pour sélectionner le meilleur robot (évaluation des capacités du robot, par étudiant en fonction de l'organisation prévue).
 
** Chiffrage incluant le matériel ainsi que les ressources humaines.
 
  
 +
==Livrable 3 ==
  
 
= Concours robotique Cachan =
 
= Concours robotique Cachan =

Version du 22 mai 2023 à 10:15

https://www.youtube.com/watch?v=xH8EIqh-2_Y

Corrections enseignants

Organisation

  • Fonctionnement en trinôme sur 12 jours
    • 9h-12h
    • 13h30-16h30
  • Compte rendu écrit quotidien individuel
    • sera contrôlé chaque matin
    • doit indiquer les tâches réalisées la veille
    • doit indiquer le travail à réaliser le jour même

Séquence 1 : tâches élémentaires

  • Tâches de suivi de ligne (un étudiant sur chaque tâche) :
    • suivi avec caméra Pixy
    • suivi avec capteurs photorélectifs (nombre de capteurs à choisir)
    • suivi avec Lidar, en suivant un mur sur le côté
  • s'arrêter à la fin du parcours
  • À faire globalement : câblage robot, sécurité

Livrable 1

  • faire des recherches pour rendre un dossier (pour le lundi qui suit) expliquant : le pont en H, schéma sécurité et chaque partie (a, b, c)
  • mini-concours à la fin (le jeudi 8 matin).

Séquence 2 : réalisation shield

Livrable 2

Séquence 3 : Fusion et Programmation globale

Livrable 3

Concours robotique Cachan

Ressources

structure du programme

Vous pourrez utiliser la structure de programme suivante :

enum state {etapeInit,etapeChercheBalle,etapeDeplacementVersBalle};

state etapeSuivante=etapeInit;
state etapeActive=etapeInit;


void setup() {

}

void loop() {

  // lecture des capteurs

  switch (etapeActive)
  {
    case etapeInit:

            // si ... etapeSuivante=
            break;
    case etapeChercheBalle:

            // si ... etapeSuivante=
            break;
    case etapeDeplacementVersBalle:

            // si ... etapeSuivante=
            break;
  }

  // on modifie l'étape active pour la prochaine boucle
  etapeActive=etapeSuivante;
}

Programmation : comment faire

Exécuter une action une seule fois :

void loop()
{
   static bool dejaFait=false;
   if (dejaFait==false)
   {
      executerMonAction();
      dejaFait=true;
   }
}

Répéter une action régulièrement

void loop()
{
   static uint32_t triggerTime=millis();
   uint32_t currentTime=millis();

   if (currentTime>=triggerTime)
   {
       faireMonAction();
       triggerTime += 500; // prochaine exécution dans 500ms
   }
}
void loop()
{
   static uint32_t triggerTime=0;
   uint32_t currentTime=millis();

  switch (etapeActive)
  {
    ....
    case etapeX:
            if ( qqch)
            {
               etapeSuivante=etapeY;
               triggerTime=currentTime;
            }
            break;
    case etapeY:
            if ( currentTime >= (triggerTime + duree ) )
            {
               etapeSuivante=etapeZ;
            }
            break;
    case etapeZ:
            ...
            break;
  }
  etapeActive=etapeSuivante;
}

Affichage provisoire pour deboggage

#define debug   // mode debug
//ou
#undef debug // mode sans debug

void loop()
{
   #ifdef debug
       Serial.println("juste si debug");
   #endif
}

Composants/cartes

liens

Composants eagle

Type Composant/Boitier Librairie Eagle Référence eagle
Résistance CMS : 1206 rcl R-EU_R1206
Photocoupleur CNY70 CNY70 CNY70
Led 5mm ou 3mm led LED5MM ou LED3MM
Connecteur barrette femelle sécable con-lstb MA06-1
Connecteur grove carte driver moteur ... Connector TWIG-4P-2.0