I2L 2024 Groupe3

De wiki-se.plil.fr
Aller à la navigation Aller à la recherche

Proposition de système

Création d'un sonar 180 degrés qui écrit des données rudimentaires sur un écran LCD et qui, lorsqu'on connecte le microcontrôleur au PC, envoi en temps réel les données au PC et génère un affichage style sonar.

On a 2 programmes :

  • 1 programme qui tourne dans le microcontrôleur, il est autonome, fait tourner a l'aide d'un servo-moteur le sonar (capteur style sonar) et affiche des informationss rudimentaires sur les obstacles repérés (e.g. l'obstacle le plus proche) ;
  • 1 programme qui tourne sur le PC connecté au microcontrôleur. Il récupère les données en temps réel envoyées par le microcontrôleur et affiche graphiquement le résultat ;
  • 2 LED de couleur (vert et rouge), la LED verte clignote toute les 3 secondes quand le système embarqué est autonome et la LED rouge, éteinte par défaut, double clignote quand un obstacle est détecté.

A prévoir un bouton "autonomous_system" sur le microcontroleur, qui, lorsque celui-ci est branché au PC, n'envoie pas les données au PC.

Contre-proposition

OK pour la proposition.

Pour la gestion de l'écran vous pouvez vous inspirer du code des groupes 3 et 4 I2L en 2023/2024.

Vous utiliserez la classe USB "vendeur spécifique" avec des points d'accès propres à votre application. Plus exactement vous prévoierez un point d'accès sortant pour spécifier l'angle du servo-moteur et un point d'accès entrant pour récupérer la distance mesurée.

Pour l'application sur PC vous utiliserez la bibliothèque C libusb-1.0.

Il faut aussi penser à un système pour assembler le servo-moteur et le sonar. Si vous avez accès à une imprimante 3D suivez ce lien [1].

Proposition définitive

Le projet consiste en la création d’un sonar à balayage 180° capable de détecter des obstacles et d’afficher les données recueillies de deux façons complémentaires :

  • Un premier programme est embarqué dans le microcontrôleur. Il pilote un capteur à ultrasons monté sur un servomoteur afin de balayer un angle de 180°. Ce programme fonctionne de manière autonome et affiche des informations rudimentaires sur un écran LCD, comme la distance de l'obstacle le plus proche détecté.
  • Un second programme, exécuté sur un ordinateur connecté au microcontrôleur, reçoit en temps réel les données envoyées par celui-ci via USB. Il se charge de les représenter graphiquement sous forme d’un affichage de type sonar 180°, facilitant la visualisation des obstacles détectés dans l’environnement.

Répartition du travail

La répartition des tâches au sein du groupe s’est organisée de la manière suivante :

  • Thomas a pris en charge la gestion de l’écran LCD ainsi que le contrôle du servomoteur.
  • Adrien s’est occupé de l’architecture générale du code et du pilotage du sonar.
  • Mathieu a travaillé sur l’intégration de LUFA (USB), une tâche complexe ayant nécessité plusieurs ajustements.

Par ailleurs, de nombreuses sessions de pair programming ont été menées, notamment lors de l’apparition de problèmes liés à la LUFA.

Carte

Schéma initial

Carte routée

Schéma de la carte
vue de la carte

Composants

  • ATmega32u4 : disponible
  • quartz GND24 : disponible
  • buzzer : disponible
  • perle ferrite MH2029-300Y : commandée
  • chargeur MAX1811 : disponible
  • potentiomètre : disponible
  • connecteur femelle 16 contacts : commandé
  • écran LCD 2 lignes : commandé
  • boutons : disponibles
  • sonar HC-SR4 : disponible
  • servo-moteur 270° : disponible

Carte au 23/02/2025

Première réalisation

Non encore réalisé :

  • ajouter la perle de ferrite ;
  • ajouter les connecteurs J5, J6, J7 et J9 pour la charge ;
  • ajouter le condensateur de 2,2uF pour la charge ;
  • ajouter R8 et le potentiomètre pour l'écran LCD ;
  • ajouter le buzzer ;
  • ajouter M1 et J3 pour le servo-moteur et le sonar.
  • remplacer une led rouge par une led verte.

Carte au 27/02/2025

Poursuite de la réalisation

Non encore réalisé :

  • ajouter la perle de ferrite ;
  • remplacer une led rouge par une led verte.

Carte au 07/03/2025

Une erreur a été introduite au moment du routage de la carte : la ligne de commande du serveur a été mise sur PF6 qui ne peut pas être commandée en PWM par un compteur. Du coup, des fils sont soudés à la place du buzzer pour commander le servo avec PB7.

Montage

Code

Le code proposé en bas de page montre que l'écran LCD, le servo-moteur et le sonar fonctionnent. Il reste à tester la LED verte qui a remplacé la seconde LED rouge.

Lancement

Pour exécuter le programme sur la carte, il faut tout d’abord le compiler et le téléverser. Voici les étapes à suivre dans le terminal :


make clean   # Nettoie les fichiers de compilation précédents

make         # Compile le programme

reset        # Réinitialise la carte (via bouton physique sur la carte)

make upload  # Téléverse le programme sur la carte


Une fois ces commandes exécutées, la carte est prête à faire fonctionner le programme.

Démonstrations






Voici une vidéo qui présente le fonctionnement du sonar, ainsi que le rôle du moteur et de l’écran LCD.

Rendus

Projet KiCAD : Fichier:I2L-2024-Carte-G3.zip

Programmes :