Ici nous vous informerons des dernières nouvelles concernant l'avancement de nos projets et autres !
Bonne lecture !
17 janvier 2022
Nous nous servons d’Inkscape pour réaliser grossièrement des parties de notre robot. Ceci nous permet de visualiser les mouvements des actionneurs mais aussi la faisabilité de l’actionneur. Nous détectons ainsi que le servomoteur ne peut pas se mettre dans un sens car il se retrouve sur le passage d’une poutre de notre robot.
Pour concevoir l’actionneur de la statuette, nous nous sommes aidés de ce dessin :
D’un coup d’œil,nous voyons à quel hauteur doit être fixé le "crochet" de la statuette et l’actionneur sur le robot.
Partant de cette idée, nous greffons dessus l’actionneur qui fera tomber les échantillons.
Une fois ce second actionneur terminé, nous lui rajoutons un "grip" découpé dans une chambre à air qui avait eu le mauvais goût de nous laisser tomber récemment.
Nous avons aussi peigné notre robot. Le travail n’est pas fini mais les câbles des servomoteurs sont attachés et laissent apparaître la carte électronique. Merci les petits colliers "Colson". Blanc transparent, ils ne se remarquent pas - trop - sur le bois. Saurez-vous les voir ?
Pas de gros soucis au niveau de la programmation, mais nous nous contentons que d’un code réduit, permettant de valider le fonctionnement de ces deux actionneurs.
La vidéo est disponible en 720p ici (mp4 - 20 Mo)
16 décembre 2021
Voici le résultat du travail du week-end dernier : un peu de mécanique et un peu de programmation.
La dépose de la réplique a été accélérée et mérite encore un peu d’affinage.
Pour pousser les carrés de fouille, le robot doit longer le bord du terrain. Notre capteur infrarouge rempli pour l’instant parfaitement son rôle. Notre mécanique, sommaire et élégante, semble fonctionnelle. Nous avions un doute quant à la force nécessaire pour faire basculer le carré. Nos essais ont validé le système !
Voici le poussoir rentré :
Et voici le poussoir sorti :
Et pour finir une petite vidéo :
La vidéo est disponible en 720p ici (mp4 - 50 Mo)
6 décembre 2021
Principalement les capteurs infrarouge. Comme capteurs de détection de l’opposant, nous utilisons des SFR04, un devant, un derrière, qui nous ont fidèlement servis durant des années.
Cette année, nous allons vouloir longer la bordure et nous savons que notre odométrie n’est pas précise au millimètre après plusieurs déplacements. Nous installons donc des capteurs Sharp de type GP2Y0A41Y2 sur les côtés de notre robot.
Après avoir testé les capteurs sur notre petite carte de développement, nous rallongeons les câbles et les raccordons sur la carte du robot.
Nous adaptons le code de la carte pour renvoyer les valeurs des capteurs infrarouge à l’interface de supervision puis adaptons le code de l’interface de supervision.
Ça marche bien... pour le capteur branché en IR_1. IR_2 refuse de donner des valeurs cohérentes. Les mesures de tension sont 10 fois plus faibles qu’attendues. Est-ce que la broche du PIC est grillée ?
Non ! Après une heure de recherche, il s’avère que le problème était logiciel. Le code des servomoteurs tentait de piloter un servomoteur branché sur IR_2. Ceci car nous avions eu un soucis avec U3, le régulateur de tension 7805 des servomoteurs 1, 2 et 3. Nous avions réaffecté IR_2 (dont nous ne nous servions pas) à Servo3. Le prix à payer pour réutiliser une carte et un code vieux de 5 ans...
(Pour visualiser ça, utilisez le plan interactif de notre carte.)
Après réaffectation des broches comme initialement prévu, les valeurs retournées sont parfaitement cohérentes.
Un dernier doute m’habite, ces capteurs ne riquent-ils pas d’être aveuglés par l’éclairage de la Coupe ?
Mots clés : Électronique, Programmation, Eurobot 2022, Photo
28 novembre 2021
Voilà nous sommes fin novembre et nous avons le plaisir de réaliser nos premiers points !
Ce samedi a été consacré à l’achat de planches pour la table et ses bordures. Bien que nous ayons de quoi faire une table complète, nous n’avons fait qu’une demi table primitive, composée de deux planches légèrement bombées...
Ce soir, nous avons passé un peu de temps à initier le code pour la stratégie 2022, puis dessiné nos deux premières trajectoires. Nous mettons le plan du règlement à l’échelle 1mm : 1 px, dessinons les trajectoires et recopions les coordonnées des points des courbes de Bézier dans notre code.
C’est fait à la Rache, les contacteurs pour s’assurer que le robot est en position ne sont pas utilisés mais ça marche, au mois 3 fois sur 4 !
La vidéo est disponible en 720p ici (Ogg - 10 Mo)
22 novembre 2021
Quand j’ai choisi de re-participer à Eurobot, nous étions à quelques jours des finales. Alors j’ai choisi de re-travailler sur notre robot précédent. Deux points me chagrinaient, le premier étant les capacités de supervision du robot.
Ce qu’on peut faire avec une liaison série, un peu de python et de Qt.
Chaque année, le réglage des positions des servomoteurs se fait en entrant une valeur au hasard, compilant le code et testant. Il faut une petite quinzaine d’itérations pour affiner chaque position. Alors qu’il suffit de pas grand chose pour lier une commande de la liaison série à la commande d’un servomoteur.
Donc voilà, nous définissons une trame simple, qui permet de forcer la position d’une servomoteur. La trame est la suivante :
"Sxpppp"
Sur l’interface graphique, 6 boutons, 3 pour avancer d’un petit pas, d’un pas moyen ou d’un grand pas, 3 pour reculer. Ces boutons sont un peu rigides, alors je rajoute un curseur horizontal (QSlider) qui permet d’atteindre une position approximative très rapidement. Enfin, un champ texte affiche la position actuelle.
Un dernier bouton permet de récupérer la position actuelle de tous les servomoteurs.
Vient ensuite le problème du robot, très fréquent, du "mais qu’est-ce qu’il lui a pris de faire ça ?". Vous avez généralement le choix, pour comprendre ce qu’il se passe.
Soit vous banchez un débogueur sur votre robot, mais chez nous, ça ne marche pas génial. Les broches de debug sont utilisées pour autre chose, le débogueur Microchip n’aime pas trop les interruptions et rapidement, nous n’arrivons même pas à reproduire le bug avec le débogueur branché (alors que sans, c’était 100% reproductible).
Soit vous émettez un signal en fonction des états de votre programme (comme allumer une LED). C’est une solution simple, qui a le mérite de bien marcher dans des cas simples.
Avec la surveillance, le robot émet sur la liaison série toute une série de valeurs correspondant aux états du robot (position, orientation, distances des obstacles, etc...) à intervalles réguliers. Comme le robot émet un entête descriptif de ce qu’il va envoyer, nous pouvons modifier l’ordre des valeurs, en enlever ou en rajouter sans toucher au code de la supervision.
L’interface n’est pas très soignée, mais nous avons quand même deux panneaux.
Le premier affiche les valeurs actuelles :
Le second un graphique pour la valeur sélectionnée. Généralement en fonction du temps, mais afficher la position Y en fonction de la position X est tellement parlant que nous ne nous en sommes pas privé :
Enfin, toujours pour aider au debug, nous renvoyons sur la liaison série ce qui transite sur la liaison I2C. Soyons clair, ce ne serait pas adapté à de gros débit de communication. Mais dans notre cas ça marche !
Analyser à chaud, c’est bien. Pouvoir reprendre les logs précédents pour revoir un détail qui nous aurait échapper, c’est mieux. Chaque acquisition est enregistrée et peut être rechargée.
Le programme est développé en Python, avec PyCharm. PyCharm est puissant mais parfois un peu lent à lancer. Alors lorsque nous avons voulu lancer notre programme sans ouvrir PyCharm, nous avons rencontré deux erreurs :
$ python Supervision.py
...
SyntaxError: invalid syntax
Sous Debian, notre Python est Python 2.7. Essayons avec Python3 :
$ python3 Supervision.py
...
ModuleNotFoundError: No module named 'PyQt5'
Et pourtant, ça marche avec PyCharm.
Le secret réside dans les environnement virtuels. PyCharm utilise venv.
$ source venv/bin/activate
Et là, un simple :
$ python3 Supervision.py
lance l’application.
Pour quitter l’environnement virtuel, utilisez la commande suivante :
$ desactivate
Plus de détail sur les environnements virtuels pour le Python, je vous conseille cet article de Linuxfr.
Mots clés : Programmation, Eurobot 2022
page précédente 1 ... 10 11 12 13 14 15 16 17 18 ... 37 page suivante