Différences
Ci-dessous, les différences entre deux révisions de la page.
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/28 21:50] – hackens | projets:acheves:coupe2017 [2022/05/05 07:40] (Version actuelle) – modification externe 127.0.0.1 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | Coupe de robotique | + | Coupe de Robotique |
======================= | ======================= | ||
Ligne 14: | Ligne 14: | ||
Tous les fichiers (blender, circuits, code du GUI et des robots) sont sur [[https:// | Tous les fichiers (blender, circuits, code du GUI et des robots) sont sur [[https:// | ||
- | Petit robot | + | ====== |
- | ----------- | + | |
- | ====== Structure ====== | + | |
+ | ===== Structure ===== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | [[https:// | ||
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 25: | Ligne 29: | ||
Support en MDF, deux plaques de MDF 6mm horizontales quasi-identiques séparées de 10cm, et plaques de MDF 3mm verticales comme support. | Support en MDF, deux plaques de MDF 6mm horizontales quasi-identiques séparées de 10cm, et plaques de MDF 3mm verticales comme support. | ||
- | ====== Fonctions | + | Coque faire de panneaux transparents, |
+ | ===== Fonctions ===== | ||
La partie antérieure du couloir inférieur (niveau sol) est entourée par une chenille d'un côté, et une pushbar sur ressorts de l' | La partie antérieure du couloir inférieur (niveau sol) est entourée par une chenille d'un côté, et une pushbar sur ressorts de l' | ||
Ligne 31: | Ligne 36: | ||
La partie postérieure du couloir inférieur est entourée par une plaque de MDF 3mm d'un côté, et d'un ascenseur de l' | La partie postérieure du couloir inférieur est entourée par une plaque de MDF 3mm d'un côté, et d'un ascenseur de l' | ||
- | ====== Actionneurs | + | ===== Actionneurs ===== |
Tous les actionneurs se situent à l' | Tous les actionneurs se situent à l' | ||
- | ===== Pince avant ===== | + | ==== Pince avant ==== |
{{ : | {{ : | ||
Ligne 44: | Ligne 49: | ||
- | ===== Chenille de préhension des cylindres | + | ==== Chenille de préhension des cylindres ==== |
{{ : | {{ : | ||
Ligne 52: | Ligne 57: | ||
Pour garder le couloir à cylindres libre de tout obstacle, on a dû déporter l' | Pour garder le couloir à cylindres libre de tout obstacle, on a dû déporter l' | ||
- | ===== Ascenseur à cylindres | + | ==== Ascenseur à cylindres ==== |
{{ : | {{ : | ||
Ligne 62: | Ligne 67: | ||
Un microrupteur détecte la position haute de l' | Un microrupteur détecte la position haute de l' | ||
- | ===== Goupille de maintien des cylindres en hauteur | + | ==== Goupille de maintien des cylindres en hauteur ==== |
{{ : | {{ : | ||
Ligne 74: | Ligne 79: | ||
Problème : les servos consomment en permanence une fois verrouillés. Solution : faire en sorte que les bras des servos se bloquent dans les coins de la pièce une fois verrouillés. | Problème : les servos consomment en permanence une fois verrouillés. Solution : faire en sorte que les bras des servos se bloquent dans les coins de la pièce une fois verrouillés. | ||
- | ===== Base mobile | + | ==== Base mobile ==== |
{{ : | {{ : | ||
Ligne 82: | Ligne 87: | ||
Les supports de fixation avaient l'air un peu fragiles, et les roues avaient tendance à pencher un peu parfois, mais ça a tenu jusqu' | Les supports de fixation avaient l'air un peu fragiles, et les roues avaient tendance à pencher un peu parfois, mais ça a tenu jusqu' | ||
- | On a aussi placé deux billes folles sous le robot. Malheureusement le design permettait très peu de possibilités, | + | On a aussi placé deux billes folles sous le robot (non représentées ici). Malheureusement le design permettait très peu de possibilités, |
+ | |||
+ | ==== Système de lancement de l'" | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Magnifique pièces imprimées en 3D, qui a bien marché à tous les coups même si on a eu un peu peur de la solidité de l'axe du servo. Propulsion à l'aide d' | ||
+ | |||
+ | |||
+ | ===== Capteurs ===== | ||
+ | |||
+ | ==== Barrières IR pour localiser les cylindres ==== | ||
+ | |||
+ | Une à l' | ||
+ | |||
+ | ==== Microrupteur de bout de course de en haut de l' | ||
+ | |||
+ | On a collé un petit microrupteur, | ||
+ | |||
+ | ==== Microrupteur " | ||
+ | |||
+ | Un bout de fil de fer plié en " | ||
+ | |||
+ | ==== Radar de proximité ==== | ||
+ | |||
+ | On a utilisé un radar avec des pins VCC, GND, TRIG, ECHO, qu'on a branché directement au FPGA. C'est beaucoup plus pratique que l' | ||
+ | |||
+ | ===== Contrôle ===== | ||
+ | |||
+ | On a utilisé plusieurs systèmes pour contrôler le petit robot | ||
+ | |||
+ | ==== Raspberry pi 3.0 ==== | ||
+ | |||
+ | C'est génial parce que ça se connecte au wifi, on peut se ssh dessus, on peut lancer/ | ||
+ | |||
+ | Il ne faut juste pas oublier de prendre le routeur de la cave, ou de lui apprendre à se connecter au wifi d'un portable, sinon c'est compliqué le jour J. Même si on prend le routeur, c'est pratique qu'il se connecte au wifi d'un portable, pour s'y connecter sur les tables de test. | ||
+ | |||
+ | On a également fixé un petit écran tactile directement sur le rpi, ça a pris un peu de temps pour coder un GUI correct (en SDL) mais c'est bien pratique pour debugger (on l' | ||
+ | |||
+ | Architecture : | ||
+ | * Le programme qui contrôle le robot en match (./raspi) est indépendant, | ||
+ | * ./raspi donne son log en output. On a utilisé un flux custom qui affiche l' | ||
+ | * ./raspi essaye de se connecter avec un FIFO unix au GUI, et s'il y arrive, il envoie sa position à chaque fois qu' | ||
+ | * ./gui est lancé automatiquement au démarrage de la raspi, et s' | ||
+ | * Une fois ./raspi lancé, ./gui ouvre une FIFO pour afficher en temps réel la position du robot, et affiche l' | ||
+ | |||
+ | ==== 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' | ||
+ | |||
+ | 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/ | ||
+ | |||
+ | 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' | ||
+ | |||
+ | L' | ||
+ | |||
+ | Dans l' | ||
+ | |||
+ | On a eu plein de problèmes parce que le registre à décalage se... décalait. Prévoir un code correcteur d' | ||
+ | |||
+ | Le fpga est également responsable de vérifier l' | ||
+ | Bref avec tout ça on est assez précis, et on peut aller assez vite. | ||
+ | ===== Alimentation ===== | ||
+ | TODO |