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: Kais Fallouh (Lundi AM)
Romain Lebbadi-Breteau (Mercredi PM)
Section 2: Tristan Rioux (Mardi PM)
Gaëtan Florio (Jeudi AM)
Section 3: Luciano Garin-Iriarte (Lundi PM)
Ely-Cheikh Abass (Jeudi PM)
Section 4: Dorine Dantrun (Mardi AM)
Meriam Ben Rabia (Vendredi AM)
Section 5: Amélie Simard (Mercredi AM)
Abdul-Wahab Chaarani (Vendredi PM)
Section 6: Marc-Antoine Manningham (Mardi soir)
Laurent Bourgon (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.