Side Quest Project
ROBOT FRENDLY
De Jonge | Intitulé du cours | 14/11/2024
Motivation
J’aimerai améliorer mes compétence dans le langage de programmation
C, C++ , Python, VHDL.
Cahier de charge
Cahier des Charges : Conception d'un Système Embarqué pour la
Gestion et le Contrôle d'un Robot Autonome
Objectif du Projet
Le projet vise à concevoir et programmer un robot autonome capable de
se déplacer de manière indépendante et de prendre des décisions basées
sur son environnement. Ce projet permettra d'améliorer les compétences
en VHDL, C, C++, et Python.
Spécifications Techniques
1. Composantes Matérielles :
o FPGA pour le traitement des signaux et l'implémentation des
capteurs.
o Microcontrôleur pour le contrôle des actions et la gestion
des interfaces.
o Capteurs de distance, capteurs de ligne et autres capteurs
nécessaires.
o Interfaces de communication entre le FPGA et le
microcontrôleur (SPI, I2C, UART).
2. Langages de Programmation :
o VHDL : Pour la conception et l'implémentation des modules
de traitement des signaux sur le FPGA.
o C : Pour la programmation bas niveau du microcontrôleur et
l'écriture des drivers.
o C++ : Pour l'implémentation d'algorithmes complexes de
planification de trajectoire et de prise de décision.
o Python : Pour le développement d'une interface utilisateur
graphique (GUI) et l'analyse des données.
Phases du Projet
PAGE 1
1. Planification et Spécifications :
o Définir les objectifs fonctionnels du robot autonome.
o Établir les spécifications techniques détaillées.
o Sélectionner les composants matériels nécessaires (FPGA,
microcontrôleurs, capteurs).
2. Conception Matérielle :
o Concevoir et implémenter les modules de capteurs et de
traitement des signaux en VHDL.
o Tester les modules de manière individuelle avant
l'intégration.
3. Développement Logiciel :
o Développer des drivers en C pour interfacer les capteurs et
actionneurs avec le microcontrôleur.
o Implémenter des algorithmes de contrôle en C.
o Utiliser C++ pour développer des algorithmes avancés de
planification de trajectoire et de prise de décision.
o Créer une interface utilisateur en Python pour le contrôle et
la surveillance du robot.
4. Intégration et Tests :
o Intégrer tous les composants matériels et logiciels.
o Effectuer des tests unitaires pour chaque composant.
o Réaliser des tests d'intégration pour vérifier le bon
fonctionnement du système global.
o Ajuster et optimiser les algorithmes en fonction des résultats
des tests.
5. Documentation et Présentation :
o Documenter le projet, incluant les spécifications techniques,
le code source, et les résultats des tests.
o Préparer une présentation détaillée ou un rapport de projet.
Délivrables
Modules VHDL pour les capteurs et le traitement des signaux.
Drivers en C pour les interfaces matérielles.
PAGE 2
Algorithmes en C++ pour la gestion avancée des trajectoires et
des décisions.
Interface utilisateur en Python pour le contrôle et la surveillance.
Documentation complète du projet.
Rapport final avec les résultats des tests et les conclusions.
Contraintes
Respect des normes et standards en matière de conception de
systèmes embarqués.
Utilisation optimale des ressources matérielles et logicielles.
Respect des délais impartis pour chaque phase du projet.
Évaluation
Le projet sera évalué sur la base des critères suivants :
Fonctionnalité et performance du robot autonome.
Qualité et efficacité des algorithmes implémentés.
Intégration harmonieuse des différentes composantes matérielles
et logicielles.
Qualité de la documentation et de la présentation finale.
Définir les objectifs fonctionnels du robot
autonome
1. Le robot doit être capable de se mouvoir et suivre un tracé de
ligne.
2. Le robot doit savoir s’arrêter avant une collision.
3. Le robot doit afficher la température.
4. Le robot doit pouvoir être contrôler à distance.
*Objectifs annexes
5. Le robot doit avoir un flux vidéo.
6. Le robot doit contenir au moins un IA entrainée.
Établir les spécifications techniques détaillées
1. Le robot doit avoir une autonomie d’au moins 20 minutes en
fonctionnement normal.
2. Le robot doit avoir une tension maximale de 30V.
PAGE 3
3. Le robot doit avoir un bouton d’arrêt d’urgence accessible en tout
temps.
4. L’UI doit être visible sur un écran déporté.
Sélectionner les composants matériels nécessaires
(FPGA, microcontrôleurs, capteurs)
FPGA :
MICROCONTROLEUR : STM32.
CAPTEURS : Ultrason, Suivi de ligne, Température LM35DZ.
ACTIONEURS : 4 Moteurs DC, 1 moteur pas à pas et 1 servo-
moteur.
MICRO-ORDINATEUR : Raspberry pi 0.
Déporté : mon pc sous Windows.
Développement Logiciel
FPGA :
MICROCONTROLEUR :
Pour le STM32 il faudra faire en langage C:
un fichier : « driver_stepbystep »
un fichier : « driver_dcmotor »
un fichier : « driver_stepper »
un fichier : « sensor_receiver» (qui récupère les données de
température/distance du FPGA en SPI).
un fichier : « sensor_line »
Pour le STM32 il faudra faire en langage C++:
un fichier : « communication_uart »
un fichier : « dynamique_mouvement »
ORDINATEUR EMBARQUÉ :
Pour le Raspberry pi 0 il faudra faire en langage python :
Un fichier : « communication_uart »
PAGE 4
Un fichier : « page_web »
Un fichier : « commande_manette »
PAGE 5