Cours:SaeRobotique

De troyesGEII
Aller à : navigation, rechercher

Corrections enseignants

Evaluations

2ème évaluation

La 2ème évaluation portera sur :

  • l'assemblage de votre robot :
    • aspect mécanique (propulseur principalement)
    • aspect électrique
      • cartes fabriquées
      • câblage
  • la "fusion" de l'étude de la 1ère semaine avec un robot qui devra
    • au strict minimum
      • se déplacer(suivre) vers une balle pendant un certain temps
      • ensuite se tourner vers le terrain adverse
      • avancer en direction du terrain adverse jusqu'à la ligne du milieu
      • s'arrêter sur la ligne du milieu
    • pour obtenir la note maximum
      • attendre l'appui sur un bouton pour que le robot démarre
      • chercher une balle
      • se déplacer(suivre) vers la balle
      • attraper la balle
      • s'orienter vers le terrain adverse
      • propulser la balle dans le terrain adverse
      • avancer jusqu'à la ligne centrale
      • s'arrêter


Robot "joueur de tennis"

Tâches matérielles (8 jours)

  • 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)

  1. Localiser balle avec caméra Pixy
  2. Attraper balle (détection opto)
  3. Renvoyer balle dans le camp adverse en s’orientant avec magnétomètre
  4. 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

  • Rapport final :
    • À envoyer au format pdf par mail avant le 27 juin 23h59
    • Description du problème posé en introduction
    • Diagramme de Gantt
    • diagramme algorithme général
    • stratégie de résolution et description de chaque tâche :
    • Chiffrage incluant le matériel ainsi que les ressources humaines.
    • Évolution possible
    • Conclusion

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


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 (dont règlement concours)

Composants Kicad

  • Résistances :
    • symbole R
    • boitier suivant la valeur : 1206(CMS)/Axial DIN0309 (traversant)
  • Condensateur
    • symbole C
    • boitier suivant la valeur 1206(CMS)
  • Arduino Nano
    • symbole Arduino_Nano_v2.x
    • modèle 3d
      • télécharger et décompresser : Media:Arduino_nano.STEP.zip
      • dans les propriétés de la carte (éditeur de pcb), onglet modèle 3d
        • ajouter le fichier téléchargé
        • rotation X -90
        • rotation Z 90
        • décalage Z 2,5mm

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