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)

Introduction au robot et à sa programmation


Le cours INF1900 est un projet intégrateur qui vise à mettre en pratique des notions acquises dans d'autres cours de première année en génie informatique et en génie logiciel. Ce projet consiste à programmer un robot qui est, en réalité, un petit mobile pouvant suivre des parcours variés selon ce que ses capteurs détectent dans son environnement immédiat.




Le robot


Un robot possédant deux roues motrices et deux roues libres représente une application de base de la robotique. Généralement, un tel robot suit un parcours plus ou moins complexe déterminé par une ligne noire tracée sur un grande table, une source de lumière ou de son, ou encore par de petits murs qui forment un labyrinthe par exemple.


La figure montre un schéma simplifié du profil du robot. Il est formé d'une base à laquelle se greffe les composantes principales à l'aide de vis et de bagues d'espacement (spacers) représentées en noir.







Programmation

La programmation demeure l'aspect le plus important du projet étant donné que le cours s'adresse à des étudiants en génie informatique et en génie logiciel. Le robot sera programmé en C et C++. Du code assembleur pourra également être inclus au besoin. La lecture et l'écriture sur des ports analogiques et numériques, le contrôle du comparateur PWM et des minuteries (timers) et l'adressage d'une mémoire seront les principales notions introduites. Il faudra donc appliquer certains principes de fonctionnement des microprocesseurs et des systèmes numériques. Une boucle infinie effectuera continuellement une lecture des capteurs pour réajuster la vitesse et la direction des moteurs et ainsi créer un système en boucle fermée. De plus, des notions de mathématiques pourront éventuellement être nécessaire pour résoudre certains problèmes de calculs de trajectoires et de distances.


Pour ce qui est des outils de programmation des microcontrôleurs Atmel AVR, il y a un ensemble GCC, Binutils, AVRLibC (pour la compilation), et AVRDude (pour le chargement sur la carte mère). La programmation par port USB simplifie grandement le chargement des programmes sur le robot. Des notions de C/C++, de même que des méthodes de génie logiciel, seront constamment utilisées pour arriver à un bon guidage du robot.