Cours:SaeRobotique : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Répéter une action régulièrement)
 
(52 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
https://www.youtube.com/watch?v=xH8EIqh-2_Y
 
  
 
[[Cours:SaeRobotique correction|{{Vert|<big><big>Corrections enseignants</big></big>}}]]
 
[[Cours:SaeRobotique correction|{{Vert|<big><big>Corrections enseignants</big></big>}}]]
  
=Organisation=
 
  
*Fonctionnement en trinôme sur 12 jours
+
[[Cours:SaeRobotiqueSuiviLigne]]
*{{Rouge|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
 
  
=Tâches élémentaires (4 jours)=
 
  
 +
[[Cours:SaeRobotiqueTennis]]
  
* Trois tâches principales (déplacements) : un étudiant sur chaque tâche
 
** aller vers la balle (caméra Pixy)
 
** détecter les lignes (suivre petites lignes, s’arrêter sur ligne centrale) : capteurs de ligne => carte à faire (prototypage puis shield)
 
** s’orienter : magnétomètre (MPU9250)
 
  
* À faire globalement : câblage robot, sécurité
 
  
==Livrable==
 
* 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 des quatre jours :
 
** traversée la plus rapide en ligne droite (avec magnéto)
 
** aller vers la balle le plus rapidement possible
 
** suivre ligne et stop ligne centrale le plus rapidement possible
 
  
=Robot "joueur de tennis"=
 
  
 +
==Composants Kicad==
  
==Tâches matérielles (8 jours)==
+
*Résistances :
 
+
**symbole R
 
+
**boitier suivant la valeur : 1206(CMS)/Axial DIN0309 (traversant)
 
+
*Condensateur
* 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
+
**symbole C
* système perçage ballon
+
**boitier suivant la valeur 1206(CMS)
* système démarrage avec ficelle à tirer
+
*Arduino Nano
* système détection murs : choix du capteur distance avec liste donnée (ultrason, lidar ou infrarouge)
+
**symbole Arduino_Nano_v2.x
* fabrication shield pour Arduino Uno
+
**modèle 3d
 
+
***télécharger et décompresser : [[Media:Arduino_nano.STEP.zip]]
== Tâches logicielles==
+
***dans les propriétés de la carte (éditeur de pcb), onglet modèle 3d
(1 étudiant sur chaque étape)
+
****ajouter le fichier téléchargé
# Localiser balle avec caméra Pixy
+
****rotation X -90
# Attraper balle (détection opto)
+
****rotation Z 90
# Renvoyer balle dans le camp adverse en s’orientant avec magnétomètre
+
****décalage Z 2,5mm
# 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.
 
 
 
=Ressources=
 
 
 
==structure du programme==
 
 
 
Vous pourrez utiliser la structure de programme suivante :
 
 
 
<source lang=cpp>
 
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;
 
}
 
</source>
 
 
 
==Programmation : comment faire==
 
 
 
===Exécuter une action une seule fois :===
 
<source lang=cpp>
 
bool dejaFait=false;
 
 
 
if (dejaFait==false)
 
{
 
  executerMonAction();
 
  dejaFait=true;
 
}
 
</source>
 
 
 
 
 
===Répéter une action régulièrement===
 
<source lang=cpp>
 
void loop()
 
{
 
  static uint32 triggerTime=millis();
 
  uint32_t currentTime=millis();
 
 
 
  if (currentTime>=triggerTime)
 
  {
 
      faireMonAction();
 
      triggerTime += 500; // prochaine exécution dans 500ms
 
  }
 
}
 
</source>
 
 
 
==Composants/cartes==
 
*divers
 
**Commutateur d'arrêt d'urgence https://fr.farnell.com/idec/yw1b-v4e01r/commut-bp-e-stop-spst-nc-10a-120v/dp/2833849?ost=2833849
 
**Régulateur ajustable 1,25 à 30 Vcc https://www.gotronic.fr/art-regulateur-ajustable-1-25-a-30-vcc-gt134-26094.htm
 
*driver de moteur
 
**https://www.cytron.io/p-13amp-6v-30v-dc-motor-driver
 
*capteurs de distance/contact
 
**HC-SR04  cf fiche technique sur la page : https://www.gotronic.fr/art-module-de-detection-us-hc-sr04-20912.htm
 
**VL53L1X
 
***https://www.robotshop.com/eu/fr/platine-deploiement-capteur-distance-tof-regulateur-tension-vl53l1x.html
 
***https://github.com/pololu/vl53l1x-arduino
 
**Mini Microrupteur - SPDT https://www.robotshop.com/eu/fr/mini-microrupteur-spdt-levier-rouleau.html
 
**CNY70
 
***http://pierrecaulet.free.fr/Stage_BEN_02-20020/_%20Stage_02_2020_Seance-04/Detection_IR/index_IR.html
 
***http://electro.patgue.com/Ressources_isi2/Robot%20ISI2%20Etude%20du%20capteur.pdf
 
**GP2Yxxxx https://www.gotronic.fr/art-capteur-de-mesure-sharp-gp2y0a41sk0f-18338.htm
 
**lidar tfmini-s
 
***https://www.robotshop.com/eu/fr/module-micro-lidar-tfmini-s-benewake-i2c-12m.html
 
***https://www.arduino.cc/reference/en/libraries/tfmpi2c/
 
**lidar Lite 3
 
***https://www.robotshop.com/eu/fr/capteur-distance-laser-haute-performance-lidar-lite-3-llv3hp.html
 
***https://github.com/RobotShop/LIDARLite_v3_Arduino_Library
 
*caméra
 
**pixyv2
 
***https://pixycam.com/pixy2/
 
***[[Cours:TPS_2103_tp_pixy|TP caméra pixy]]
 
*IMU
 
**Explications du principe du capteur mpu9250 : https://learn.sparkfun.com/tutorials/mpu-9250-hookup-guide/all
 
**Bibliothèque à utiliser : dans le gestionnaire de bibliothèque => ''by hideakitai'' (v 0.4.8) ou https://github.com/hideakitai/MPU9250
 
**Étapes :
 
***Réaliser la calibration et noter les valeurs affichées,
 
***les entrer dans votre programme (fonctions setMagBias() et setMagScale()
 
***Pour réaliser une mesure :
 
**** attendre que la fonction mpu.available() renvoie ''true''
 
**** appel de la fonction update_mag()
 
**** puis appel des fonctions getMagX() et getMagY() pour récupérer les composantes x et y. L'angle vers le nord magnétique est obtenu avec l'inverse de la tangente (attention au signe)
 
*Robot Arrex :
 
** [[Cours:RobotArrex]] (section documents)
 
** avec shield moteur
 
 
 
==liens==
 
 
 
*[[Media:Coupe_GEII_-_Règlement_-_2020.pdf| règlement de la coupe de robotique]]
 
  
 
==Composants eagle==
 
==Composants eagle==

Version actuelle datée du 13 mai 2024 à 10:25

Corrections enseignants


Cours:SaeRobotiqueSuiviLigne


Cours:SaeRobotiqueTennis



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