- 🎯 Challenge: Develop a low-level, real-time control system for a physical autonomous robot to navigate complex environments without collisions.
- 🛠️ Solution: Programmed a complete embedded architecture in C on a dsPIC33EP microchip. The system manages hardware interrupts, motor PWM with acceleration ramps, and high-speed ADC scanning for distance sensors.
- 📈 Impact: Created a responsive autonomous agent capable of obstacle avoidance and terrain adaptation, demonstrating deep knowledge of registers, timers, and embedded logic.
The system is built on a dsPIC33EP512MU814 16-bit microcontroller, optimized for high-speed processing.
- Sensor Fusion & ADC: The robot monitors 5 Infrared telemeters (GP2Y0A21YK0F). The ADC is configured in 12-bit mode with a custom scanning sequence, ensuring that distance calculations (using a linearized 1/V formula) are updated in a dedicated interrupt to maintain CPU reactivity.
- Motor Drive (PWM): Power is managed via H-bridges. The software implements smooth velocity ramps (acceleration/deceleration) to prevent mechanical slippage and ensure precise steering.
- Binary Mask FSM: Navigation logic uses a Finite State Machine. A 5-bit binary mask is generated from sensor data to identify 32 possible obstacle combinations. This allows for specific reactive behaviors such as "dead-end" detection or "wall following."
- Dual Operation Modes: Hardware buttons (RH1/RH2) allow switching between "Sprint" mode (high speed, wide detection) and "Maze" mode (low speed, narrow detection for tight corridors).
The project is modularized for clarity and hardware abstraction:
main.c: Main OS loop and high-level decision logic.ADC.c: Low-level configuration of the 12-bit ADC and interrupt handling.PWM.c: Motor speed control and ramp management.timer.c: System heartbeat and periodic task scheduling.- ...
- Media: A video demonstration (
elec.mp4) and hardware photos are available in the repository. - Technical Report: A comprehensive PDF report covers the full electronics design and logic flow.
This project was developed at SeaTech Engineering School. All rights reserved. The documentation and report are subject to copyright and intended for educational display only.
- 🎯 Défi : Développer un système de contrôle temps réel bas niveau pour un robot autonome physique capable de naviguer sans collision.
- 🛠️ Solution : Programmation d'une architecture embarquée complète en C sur dsPIC33EP. Le système gère les interruptions matérielles, le PWM moteur avec rampes d'accélération et le scan ADC haute vitesse pour les capteurs de distance.
- 📈 Impact : Création d'un agent autonome réactif capable d'évitement d'obstacles et d'adaptation au terrain, démontrant une maîtrise des registres, des timers et de la logique embarquée.
Le système repose sur un microcontrôleur 16 bits dsPIC33EP512MU814.
- Fusion de capteurs & ADC : Le robot utilise 5 télémètres infrarouges (GP2Y0A21YK0F). L'ADC est configuré en mode 12 bits avec une séquence de scan personnalisée. Les calculs de distance (via une formule linéarisée) sont effectués dans une interruption dédiée pour garantir la réactivité du CPU.
- Pilotage Moteurs (PWM) : La puissance est gérée par des ponts en H. Le logiciel implémente des rampes de vitesse fluides pour éviter les glissements mécaniques et assurer des virages précis.
- FSM à Masque Binaire : La navigation est régie par une Machine à États Finis. Un masque binaire de 5 bits est généré à partir des capteurs pour identifier 32 combinaisons d'obstacles possibles, permettant des comportements spécifiques comme la détection de culs-de-sac.
- Modes de Fonctionnement : Les boutons RH1/RH2 permettent de choisir entre le mode "Sprint" (vitesse élevée, détection large) et le mode "Labyrinthe" (vitesse réduite, détection étroite pour les couloirs).
Le projet est organisé par modules d'abstraction matérielle :
main.c: Boucle principale (OS loop) et logique de décision.ADC.c: Configuration de l'ADC 12 bits et gestion des interruptions.PWM.c: Contrôle des moteurs et gestion des rampes d'accélération.timer.c: Gestion du temps système et des tâches périodiques.- ...
- Médias : Une vidéo de démonstration (
elec.mp4) et des photos du matériel sont disponibles. - Rapport Technique : Un rapport complet en PDF détaille la conception électronique et la logique algorithmique.
Ce projet a été réalisé dans le cadre du cursus ingénieur à SeaTech. Tous droits réservés. Le rapport et la documentation sont protégés par le droit d'auteur.