Contacts
Enseignant: Jérôme Collin, responsable (local M-4013, poste 5060)
Support technique supplémentaire: Laurent Tremblay (local M-4011, poste 7181)
Chargés de laboratoire: Section 1: Stefan Cotargasanu (Lundi AM)
Raphaël Tremblay (Mercredi PM)
Section 2: Ely Cheikh Abass (Mardi PM)
Manel Keddam (Jeudi AM)
Section 3: Tristan Rioux (Lundi PM)
Charles De Lafontaine (Jeudi PM)
Section 4: Paul Petibon (Mardi AM)
Julien Bourque (Vendredi AM)
Section 5: Sunnee Chevalier (Mercredi AM)
Meriam Ben Rabia (Vendredi PM)
Section 6: Ghali Chraibi (Mardi soir)
Xavier Caron (Jeudi soir)

Fichiers


La conception du robot et la méthode pour le programmer impliquent toute une série de fichiers. Cette section du site web donne les détails sur ces sujets. Rien de ce qui est présenté ici n'est nécessaire directement pour suivre le cours, mais bien des renseignements intéressants s'y trouvent pour ceux et celles qui désire aller plus loin avec leur robot. Les fichiers les plus importants se retrouvent aussi sur un site Github.


Conception du robot


Le robot est d'abord constitué d'un ensemble de pièces électroniques et mécaniques offertes sur le marché. Quelques pièces sont aussi fabriquées sur mesure. C'est le cas de la base du robot fait de plastique PVC de 6mm d'épaisseur. Un dessin en format DXF (format utilisé par Autocad et Qcad) donne les dimensions de la pièce. Les fichiers montrant les vues schématique et topologique (layout) des circuits imprimés du pont en H et de la carte mère pour le logiciel Eagle sont aussi fournis. Les fichiers «Gerber» pour la fabrication des circuits sont inclus également. Tous ces documents techniques sont sous licence GPL.


Modélisation en 3 dimensions du robot


M. Louis-Philippe Bourret a patiemment travaillé avec le logiciel Blender pour modéliser le robot en trois dimensions. Le rendu graphique est très joli. Un premier fichier montre le robot lui-même sans aucun éclairage ni animation alors qu'un second le montre dans le contexte d'une épreuve avec éclairage et animation. Nous remercions M. Bourret de sa collaboration.


Le micrologiciel (firmware) sur la carte mère


Le micrologiciel usbaspPoly est un programme qui doit être chargé sur le microcontrôleur ATMega8 sur la carte mère. Ce code très complexe gère les échanges par port USB avec le PC. Le micrologiciel a été développé par le groupe

Objective Developpement (partie vusb) et par Thomas Fischl (partie USBasp), mais a été modifié par Matthew Khouzam, ancien étudiant en maîtrise à l'École Polytechnique de Montréal en génie informatique. Matthew a écrit un rapport qui accompagne le code. Une lecture du rapport, du code et du document “USB in a nutshell” peut permettre a une personne motivée de comprendre les détails du protocole USB sur la carte mère. Matthew Khouzam est un des plus grands contributeurs au projet de robot en INF1900. Une licence particulière accompagne ce logiciel.


Le chargement du micrologiciel sur une carte mère doit se faire en suivant à la lettre une suite d'opérations précises.


Programmes développés pour le cours


Une fois que la carte mère peut communiquer avec le PC par le port USB, il faut tout de même avoir un programme qui peut aller lire et écrire les données sur ce port. Lorsqu'on programme la carte en utilisant la commande make install”, l'utilitaire de chargement avrdude est appelé par une des règles du Makefile. Ce programme se charge d'ouvrir un canal de communication vers le port USB pour envoyer les données vers la carte. Par contre, lorsqu'on désire rediriger les données émises par RS232 vers le câble USB, il faut utiliser le programme serieViaUSB pour y arriver. Tout comme avrdude, serieViaUSB ouvre un canal de communication vers le port USB pour permettre les échanges de données. Il n'y a aucune licence associée à ce programme.


Le petit programme progmem utilisé surtout pour le travail pratique 9 est en réalité un compilateur écrit avec l'analyseur lexical Lex (plus précisément sa variante GNU appelée Flex) et l'analyseur syntaxique YACC (plus précisément sa variante GNU appelée bison). En bref, ces deux outils sont très utiles pour écrire des compilateurs. La compilation est étudiée en détail dans le cours LOG3210. Le code du programme progmem peut être utilisé librement et n’est distribué sous aucune forme particulière de licence.