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) |
INF1900
Projet initial de système embarqué
Projet final
Le système complet
Objectif:
Faire une synthèse de toutes les notions apprises durant le
cours;
Durée:
Un peu moins de quatre semaines;
Travail
préparatoire: Les
laboratoires effectués durant la session;
Documents
à remettre: Voir la
section évaluation plus bas;
Présentation
en classe: fichier
PowerPoint
«En affaires, j'ai appris que l'innovation sans processus, ça ne va nulle part.»
|
|
|
- Louis Garneau, président, Louis Garneau Sport Inc. |
Les épreuves et le suivi
Le
parcours pour le projet est décrit
dans une section séparée. S'il y a des modifications par
rapport à ce qui est précisé ici en cours de projet, elles vous
seront transmises par courriel à toutes les équipes et/ou sur
Discord.
Les capteurs et leur contrôle
Pour effectuer ce projet, le système a besoin de capteurs. Il faudra bien lire ce document de la section matériel du site web pour bien comprendre leur fonctionnement. Des instructions de montage vous aideront aussi à déterminer la meilleure façon de les installer sur le robot. Vous devrez également déterminer la manière de les connecter à la carte mère. La gestion des périphériques internes de l'AVR de même que le choix de procéder par scrutation ou par interruption devront faire l'objet d'une analyse de votre part. Il est fort probable que cette analyse déterminera certaines conventions dans votre code et la manière dont vous entendez répartir le travail à effectuer.
Démarche
La
meilleure manière de débuter est probablement de s'assurer de
pouvoir maîtriser le capteur de distance infrarouge. Une fois cette
étape réalisée, les autres parties du système pourront être
intégrées tranquillement. Il est sage de travailler des parties du
parcours séparément dans un premier temps et d'intégrer ce qui
fonctionne à l'ensemble au fur à mesure en vue de former un
parcours complet à la toute fin. L'intégration ne devrait pas se
faire uniquement à la fin, mais de façon continuelle. On n’oublie
pas les bonnes
pratiques avec Git. Cette façon de procéder est essentielle,
sans quoi, l'intégration du code deviendra chaotique. La qualité
du code est l’autre aspect à ne pas négliger et qui va
assurément aider à l’intégration.
L’orienté objet, la qualité du code et certains patrons de conception
Vos progrès en C++ devraient maintenant vous permettre d’écrire de meilleures classes. On vous demande donc d’en avoir quelques-unes dans votre code pour ce projet final. Il peut rester un peu de code procédural, mais ça ne devrait pas être la tendance dominante.
La majorité de règles de qualité de qualité du code vraiment particulières au cours ont été vues dans les travaux pratiques précédents. On a moins insisté sur celles concernant les classes puisqu’elles ont probablement été enseignées en INF1015. On insiste tout de même sur les plus simples à observer, mais aussi les plus importantes peut-être : 11, 14, 16, 22, 25, 42 et 47.
Ressources supplémentaires
Des
sources de tensions se retrouvent près des tables de parcours de
robot. Ces sources
de tension sont d'un modèle différent de celui disponible à
chacun de vos postes. Ce modèle est cependant plus facile à
utiliser et vous permettra d'économiser un peu vos piles durant la
mise au point de votre robot. Des piles demeurent nécessaires pour
l'épreuve finale. Un local
supplémentaire équipé de postes Linux et d'appareils de
laboratoire peut également être utilisé durant le projet.
Évaluation
Le mercredi 16 avril, avant 18h00, vous devrez remettre:
Le code complet de votre robot sous Git à https://githost.gi.polymtl.ca/git/inf1900-WXYZ/projet/. On y ajoutera les sous-répertoires lib (pour la librairie), app (pour le robot ). Au même niveau que ces deux sous-répertoires, un fichier de type LISEZMOI.txt devrait donner quelques indications utiles au correcteur. Le barème habituel s'appliquera.
Le
jour d’après, le jeudi 17 avril, vous serez évalués à l’Atrium
de Lassonde à partir de 8h30 le matin:
Votre robot devra effectuer les épreuves de parcours. Quelques juges évalueront le comportement de votre robot dans les diverses épreuves. Les critères d'évaluation sont également disponibles. Il vous faut avoir des piles pour faire fonctionner votre robot de façon autonome pour son passage sur la table d’évaluation. Les robots seront programmés par les juges à partir du code placé dans la branche master à l’endroit prévu au temps limite précisé plus haut.
Durant
l’une des dernières périodes de cours de la session, il y aura
une évaluation par les paires de la contribution individuelle au
travail d'équipe semblable à celle effectuée durant la semaine 9.
Note:
Le même jour, après la période d'évaluation, vous devrez remettre
vos capteurs. Enfin, nous remettrons le prix
Philip et Lily Malouf.