projets:acheves:coupe2017

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
projets:acheves:coupe2017 [2017/05/29 08:43] hackensprojets:acheves:coupe2017 [2022/05/05 07:40] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-Coupe de robotique 2017+Coupe de Robotique 2017
 ======================= =======================
  
Ligne 20: Ligne 20:
  
 {{ :projets:acheves:ensemble.png?432 |}} {{ :projets:acheves:ensemble.png?432 |}}
 +
 +[[https://youtu.be/8Q8-2TaKp28]]
  
 Mission : récupérer les cylindres de diamètre 63mm et hauteur 100mm. Mission : récupérer les cylindres de diamètre 63mm et hauteur 100mm.
Ligne 131: Ligne 133:
   * Une fois ./raspi lancé, ./gui ouvre une FIFO pour afficher en temps réel la position du robot, et affiche l'output de ./raspi dans une petite console. Il y a également un bouton abort sur l'écran.   * Une fois ./raspi lancé, ./gui ouvre une FIFO pour afficher en temps réel la position du robot, et affiche l'output de ./raspi dans une petite console. Il y a également un bouton abort sur l'écran.
  
 +==== Arduino de contrôle des servos ====
 +
 +Une Arduino nano est branchée sur le raspi avec un cable usb court. Cette arduino est branchée à une carte contrôlant les servos, et une carte contrôlant les capteurs. Le raspberry envoie des instructions en serial à l'arduino, et est également capable de la reflasher. L'arduino répond également en serial à la raspi. Certaines commandes permettent d'actionner plusieurs servos en séquence (par exemple actionner un servo jusqu'à ce qu'un capteur se déclencheà.
 +
 +Cette arduino est également responsable de lancer la fusée au bout de 90 secondes. Pour cela, nous avons implémenté une fonction delay2 et modifié toutes les boucles bloquantes pour vérifier un timer. On aurait peut-être dû utiliser un timer interrupt mais on ne savait pas comment faire et il n'y avait pas internet dans le hall des expos.
  
 +==== FPGA/Arduino de contrôle des steppers ====
  
 +Voir le howto sur le papilio duo. En gros c'est une carte avec un fpga d'un côté, et un arduino de l'autre, qui partage une dizaine de ports.
  
 +L'arduino est branché en serial sur la raspi, qui lui envoie des ordres synchrones ou asynchrones. L'arduino envoie ensuite via un registre à décalage les ordres au fpga, qui les exécute (essentiellement les ordres consistent à générer une suite d'impulsions pour les steppers, en effectuant une rampe d'accélération et de décélération pour effectuer une distance fixe).
  
 +Dans l'état actuel, le robot peut uniquement avancer en ligne droite ou tourner sur place.
  
 +On a eu plein de problèmes parce que le registre à décalage se... décalait. Prévoir un code correcteur d'erreurs robuste au décalage ? Ou alors vérifier les timings du FPGA (le diviseur en un tick d'horloge c'est très limite)
  
 +Le fpga est également responsable de vérifier l'état du radar avec une bascule de schmitt, et de se mettre en pause s'il voit un obstacle. Ça aurait été mieux de faire une petite rampe de décélération quand on voit un obstacle pour éviter de glisser.
  
 +Bref avec tout ça on est assez précis, et on peut aller assez vite.
  
 +===== Alimentation =====
  
 +TODO
  • projets/acheves/coupe2017.1496047390.txt.gz
  • Dernière modification : 2022/05/05 07:40
  • (modification externe)