Bienvenue sur le site de l'équipe Poivron

Ici nous vous informerons des dernières nouvelles concernant l'avancement de nos projets et autres !

Bonne lecture !

Suivez notre évolution par flux RSS logo RSS

Dernières nouvelles

7 janvier 2014

Un petit pas en programmation

Hier, notre très cher oscilloscope a décidé de grésiller, de produire une petite fumée grise et d’émettre une odeur assez particulière. C’est donc à regret que nous avons accepté sa lettre de démission...

Nous avons aussi initialisé notre environnement de développement pour notre PIC 18F4550. Notre objectif était d’établir une liaison série fiable entre le PIC et le Raspberry Pi. Ceci en plusieurs étapes. D’abord, nous espérions recevoir une trame du PIC sur le Raspberry Pi puis dans un second temps arriver à lire une trame du Raspberry sur le PIC.

À notre premier essai le Raspberry Pi ne reçoit aucune donnée. La commande suivante n’affiche rien :

cat /dev/ttyAMA0

Ayant repris un code utilisé l’année précédente pour le PIC, nous accusons le Raspberry Pi. À raison, la liaison est accaparée par le noyau, voir ça par ici.

Après la modification, nous ne recevons toujours rien. Nous regardons du coté du PIC et nous nous apercevons que nous notre horloge est mal configuré ! Il faut toujours commencer par faire clignoter une DEL pour tester l’horloge du microcontrôleur ! Mais nous avons oublié de relier ce PIC à une DEL sur la carte.

Le Raspberry Pi reçoit enfin la trame correctement. Nous utilisons le mode debug du PIC pour vérifier qu’il reçoit correctement les données du Raspberry Pi. Le PIC reçoit ce qu’il émet à deux modification près : les caractères de fin de ligne sont modifiés et la chaine est préfixée par un caractère étrange (généralement 0xF8).

C’est la configuration du port série qui nous renvoie nos entrées, on peut le désactiver avec stty. Pour connaitre la configuration actuelle :

$ stty -F /dev/ttyAMA0 -a
speed 9600 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-parenb -parodd cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke

Vous êtes heureux, vous ouvrez un autre terminal pour lire le manuel et comprendre tout ces paramètres :

man stty

Tous les paramètres echo sont liés au renvoi des chaines en entrée. Les préfixer d’un "-" permet de les annuler. Nous utilisons :

sudo stty -F /dev/ttyAMA0 115200 cs8 -cstopb -onlcr -echo -echoe -echok -opost

Nous supprimons ainsi l’écho intempestif, mais nos trames envoyées avec :

echo -e -n "Ceci est test\x00" > /dev/ttyAMA0

présentent toujours un caractère de trop en début de trame.

Il s’agit d’un bug du Raspberry Pi, rapport n° 148. À chaque ouverture du port série, le Raspberry Pi émet un caractère. Ce caractère peut varier, il n’est pas question de créer une bidouille dans le code du PIC pour le supprimer. La solution consiste à garder ouvert la liaison. En C, un simple fopen ferait l’affaire. En bash, il existe une solution simple qui consiste à ouvrir le port, à l’affecter à un descripteur de fichier (9 dans notre exemple) et à ne pas fermer ce descripteur de fichier :

$ exec 9> /dev/ttyAMA0

Et voila ! Notre liaison Raspberry Pi <=> Pic 18F est fonctionnelle !

Il nous reste un dernier soucis que nous n’avons pas résolu. Nous n’arrivons pas à programmer le PIC lorsque celui-ci est relié au Raspberry Pi. Nous supposons que c’est parce que nous avons relié le RESET du PIC à une broche GPIO du Raspberry Pi. Cette broche à probablement une protection contre les surtensions et nous empêche d’obtenir les 13V requis pour programmer le PIC. Mais ce sera probablement l’objet d’un autre billet.

0 commentaire


17 décembre 2013

Connexion !

Auparavant, nous utilisions un "bootloader [1]" USB. Mais ce système présente certains inconvénients dont celui de nécessiter un vrai programmateur de microcontrôleur pour programmer le bootloader.

Comme nous passons à une nouvelle famille de puce, notre ancien programmateur (soudé à la main) n’est plus compatible. Nous avons donc acheté le matériel nécessaire et prévoyons d’adapter nos codes.

Ce soir, premiers essais avec le Pickit 3 et MplabX. C’est particulièrement frustrant de prendre du temps pour retrouver nos marques, mais nous espérons que ceci sera payant.


Programmation de la carte 2014

Une soirée pour allumer 3 DEL, nous avons vu mieux. Mais nous inaugurons aussi notre nouvelle carte !

1 commentaire


12 décembre 2013

Testez 5 fois !

Lorsque j’étais au club robotique de mon école, nos robots ne marchaient pas. Lorsque par hasard, l’un de nos essais marchait nous considérions cela comme suffisant et nous espérions avoir de la chance lors de l’homologation. Nous avons vécu de nombreux échecs formateurs puis, avec Poivron Robotique, j’ai essayé de faire des robots qui marchent.

Mais qu’est-ce qu’un robot qui marchent ? Il est toujours possible de se retrouver dans un cas où une défaillance imprévisible bloque le robot. Nous ne cherchons pas non plus à réaliser un robot parfait. Il est clair que les tests unitaires des actionneurs doivent marcher à tout les coups. Mais lorsqu’on en vient à tester la stratégie complète, de nombreux facteurs interviennent tels que l’éclairage du terrain, la position exacte de départ du robot ou les perturbations dans les ultrasons. De notre côté, nous tenons à nous assurer que notre robot fonctionne parfaitement au moins une fois sur deux.

La probabilité qu’une action, qui marche une fois sur deux, fonctionne 5 fois de suite avec succès est de 3%. Si nous faisons marcher notre robot 5 fois de suite avec succès, nous avons alors 97% de chance qu’il fonctionne plus d’une fois sur deux.

Bref, tant que vous n’arrivez pas à faire fonctionner votre truc avec succès 5 fois de suite, remettez-vous à l’ouvrage !

Mots clés : Essais

0 commentaire


12 novembre 2013

Carte électronique 2014

Nous venons de recevoir notre carte électronique ! Nous attendons encore nos composants, mais ceux-ci ne devraient pas tarder à arriver.

Pour nous, c’est le grand luxe, 4 couches, vernis épargne et sérigraphie sur le dessus !


Carte électronique 2014 nue

La carte est composée de deux microcontrôleurs PIC, l’un s’occupe des moteurs et des codeurs, l’autre du Reste. La carte est censé gérer :

  • 2 moteurs avec codeurs
  • 2 moteurs en PWM
  • 2 moteurs en tout ou rien
  • 8 servomoteurs
  • 2 capteurs IR
  • 2 capteurs ultrason
  • 1 connecteur I2C
  • 1 connecteur SPI
  • 1 connexion avec un Raspberry Pi
  • 1 tirette
  • 1 interrupteur "couleur"

Mots clés : Électronique

0 commentaire


2 novembre 2013

De retour ! Probablement...

D’un point de vue robotique, notre année précédente ne s’est pas très bien passé. Nous savions que nous n’aurions pas énormément de temps. Nous sommes partis sur un gros robot pour lequel nous n’avons jamais fini la conception mécanique.

En parallèle, nous soutenions une équipe pour les Trophées de la Robotique (ou Eurobot Junior). Comme le grand robot semblait au point mort, nous avons repris cette petite base roulante avec l’intention de faire un robot le plus économique possible. Si vous nous avez suivi, vous avez vu que notre robot roulait droit. Nous avons refait notre carte électronique (après avoir bousillé la première) et avons continué nos essais. Rouler droit n’est pas suffisant, il faut être capable de tourner et ça c’est une autre histoire.

Nous n’avons pas réussi à maitriser la vitesse de nos petits moteurs. La différence de tension entre "Je ne tourne pas" et "Je tourne très vite" était trop faible pour avoir quelque chose de fiable avec notre batterie. Notre robot était instable lors des rotations et finissait par se coucher sur le flan.

Depuis l’été est passé, nous avons déménagé. Nous avons de la place pour notre atelier et pour installer un terrain. Au cours des 3 années où nous sommes allés à la coupe en tant que Poivron (de 2010 à 2012) nous avons exploré ce que nous pouvions faire avec une caméra et un gyroscope.

Cette année, nous gardons nos acquis mais nous changeons de stratégie. Adieu le tricycle, nous utiliserons deux roues motrices avec des codeurs montés sur les moteurs. Le gyroscope sera encore là et si nous avons le temps nous utiliserons la caméra. Mécaniquement, nous laissons de côté nos baguettes de bois pour la base roulante et partons sur une planche de bois ou semelle d’alu.

Pour l’instant, nous avons consacré notre temps à concevoir notre carte électronique pour gérer les codeurs. Au lieu de rajouter une cinquième et énorme carte sur le robot, nous avons rapatrié la plupart des fonctions sur notre carte principale.

Donc côté stratégie, nous n’avons rien défini. mais vous serez probablement bientôt informés de nos choix.

0 commentaire

page précédente 1 ... 8 9 10 11 12 13 14 15 16 ... 29

Copyright "POIVRON" 2011-2021, tous droits réservés
Administration du site