Cours:SaeEvitementObstacles : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
(Balise émettrice - signaler la position de la destination)
(balise de test IR)
 
(48 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
  
 
{{Cours:EvaluationSaeS4}}
 
{{Cours:EvaluationSaeS4}}
 +
 +
  
 
=Travail à réaliser=
 
=Travail à réaliser=
  
==1ère partie (2 semaines à l'iut)==
+
==1ère partie (2 semaines)==
 +
*travail individuel
 +
**travail à réaliser pour fin de la 2ème semaine
 +
**évaluation à la fin de la 2ème semaine (schéma/routage)
 +
**sélection de la meilleure carte pour fabrication
 +
***finalisation des pcbs pour le {{Rouge|jeudi 3/04 matin}}
 +
*cartes :
 +
**balise émettrice
 +
***choix de la fréquence
 +
**balise de réglage
 +
***à l'opposé du terrain
 +
***permet de régler l'élévation de la balise émettrice
 +
***affiche le niveau de puissance
 +
**carte réceptrice IR (filtre)
 +
**carte filtrage (se plug sur la carte réceptrice IR)
 +
***on change de carte pour changer la fréquence
 +
**carte µc
 +
***connectique pour e/s
 +
***driver moteurs
 +
***fourni alim symétrique
 +
**banc test pour la carte filtre
 +
**banc test pour la carte réceptrice complète
 +
 
 +
==2ème partie (xx jours)==
 +
 
 
*Travail individuel
 
*Travail individuel
*Création d'une fonction :
+
*montage des cartes
** Réalisation d'un prototype ( plaque lab, plaque pastillée, fils volants avec carte µ type arduino ...)
+
*vérification du fonctionnement
***qui comporte un µcontrôleur
+
*réalisation programme : fonction à réaliser selon cdc
***qui respecte un cahier des charges listant les e/s
+
 
***finalisation du programme pour le {{Rouge|vendredi 19/04}}
+
==3ème partie (xx jours)==
**Réalisation d'une version "propre" sur KiCad
 
***finalisation des pcbs pour le {{Rouge|mercredi 17/04}}
 
*Création d'un banc de test
 
**à finaliser pour le {{Rouge|lundi 13/05}}
 
**qui permettra de valider :
 
***les cartes utilisées ( ex : lidar, capteur de ligne ...)
 
***simulera les entrées et vérifiera les valeurs des sorties
 
**qui donnera des pistes pour réparer
 
  
==2ème partie (1 semaine à l'iut)==
+
*travail en binôme ?
 +
*programmation d'un robot
  
*Travail en binôme
+
=a deplacer=
*Réalisation d'un robot répondant au cahier des charges de la coupe de robotique GEII pour les BUT2
+
Schéma synoptique de l'assemblage : [[Media:synoptique_sae_s4_p24.pdf| synoptique]]
**Assemblage matériel : mécanique et électronique
 
**Programmation carte traitement mission
 
  
 
=Les différentes fonctions=
 
=Les différentes fonctions=
 +
 +
==banc de test lidar==
 +
 +
*doit permettre de vérifier le fonctionnement des capteurs LIDAR pololu série IRS16a
 +
*utilisation d'un oscillo pour mesurer la pwm si besoin : librairie pyvisa
 +
*pilotage d'un axe linéaire :
 +
**moteur pas à pas : shield arduino avec driver A4988
 +
**capteur tor fin de course
 +
*affiche sur un écran :
 +
**le bon fonctionnement
 +
**a configuration du capteur : tor/mli distance
 +
 +
*étapes successives
 +
**faire bouger l'axe
 +
**déplacer l'axe à la position souhaitée
 +
**piloter la position depuis un programme python
 +
**utiliser l'oscilloscope pour observer la sortie du lidar
 +
 +
*deadline : vendredi 4 avril
  
 
==Balise émettrice - signaler la position de la destination==
 
==Balise émettrice - signaler la position de la destination==
Ligne 47 : Ligne 83 :
 
**utilisera un µcontrôleur {{Rouge|attiny2313}}
 
**utilisera un µcontrôleur {{Rouge|attiny2313}}
  
==Balise réceptrice - Repérer la destination par IR et magnétomètre==
+
*deadline : jeudi 3 avril
 +
 
 +
==carte réceptrice ==
 
*Entrées :
 
*Entrées :
 
**Lumière infrarouge
 
**Lumière infrarouge
 
***Photodiode : [https://fr.farnell.com/osram-opto-semiconductors/sfh-2500-fa-z/photodiode-900nm-broches-radiales/dp/2981711?ost=2981711 SFH 2500 FA-Z]
 
***Photodiode : [https://fr.farnell.com/osram-opto-semiconductors/sfh-2500-fa-z/photodiode-900nm-broches-radiales/dp/2981711?ost=2981711 SFH 2500 FA-Z]
**Entrée analogique réglable (potentiomètre)
 
**IMU 9 axes mpu9250
 
 
*Sorties :
 
*Sorties :
**Liaison série
+
**Liaison i2c
***vitesse 250000 bauds
 
***9 bits de données
 
***1 octet envoyé : nombre signé
 
***valeur envoyée : angle de rotation pour être dans l'axe de la balise
 
 
*Contraintes :
 
*Contraintes :
**connecteur molex 4 broches (+5v,gnd,tx,rx)
+
**connecteur molex 6 broches (nc,-5v,+5v,gnd,sda,scl)
**un µcontrôleur {{Rouge|atmega328p}}
+
**un ADC {{Rouge|mcp3221}}
**le récepteur IR ne devra être sensible qu'à la fréquence sélectionnée par la balise
+
**carte filtre à plugger
**il faudra pouvoir régler la fréquence sur 10kHz 20kHz, 30kHz ou 40kHz
 
  
==Eviter les obstacles==
+
La tension mesurée par l'ADC correspondra à l'amplitude du signal infrarouge reçu
  
*Entrées : détection obstacle /mesure distance obstacle par plusieurs capteurs
 
**Informations binaires : 4 présence obstacle TOR ( lidar [https://www.pololu.com/product/4050 pololu] )
 
**Bus I2c : 3 mesures de distances ( lidar VL53L1X )
 
*Sorties :
 
**liaison série
 
***vitesse 250000 bauds
 
***8 bits de données
 
***trames de 7 octets avec dans l'ordre
 
****1 octet pour début de trame : {{Rouge|$}}
 
****1 octet capteurs tor (4 bits de poids faible)
 
****3 octets lidar : distance en cm (valeur max 255 !)
 
****1 octet pour fin de trame : {{Rouge|*}}
 
*Contraintes :
 
**Choisir le nombre et le positionnement/orientation des capteurs
 
**connecteur molex 4 broches (+5v,gnd,tx,rx)
 
**un µcontrôleur {{Rouge|atmega328p}}
 
  
==Commander les moteurs==
+
==carte filtre==
*Entrées :  
+
*Entrée : tension image de l'intensité lumineuse infrarouge
**Alimentation 12V : puissance pour moteurs ( cartes cytron md13s)
+
*Sortie : sortie du filtre passe-bande
**Informations binaires :
+
*2 potars qui permettront de régler indépendamment et précisément :
***Pulsation roues motrices ( 2x2 capteurs réflectifs - vcnt2020 ou autre )
+
**la fréquence de coupure
**Liaison série #1 : ordre vitesse de croisière en translation et rotation
+
**le gain
***vitesse 250000 bauds
+
*On fabriquera un lot de carte filtre pour chaque fréquence d'émission
***8 bits de données
+
 
***4 octets reçus
+
*deadline : jeudi 3 avril
****1 octet de début de trame : $
+
 
****1 octet valeur de wr ( entre -100 et 100)
+
==carte principale==
****1 octet valeur de Vt ( entre -100 et 100)
+
 
****1 octet de fin de trame : *
+
*connecteur pour la pi pico
*Sorties :
+
*fournira une alimentation +5V/-5V à partir d'une batterie LiFePo 4 éléments
**Commande moteur : rampe d'accélération jusque vitesse de croisière
+
*1 connecteur 6 broches pour les cartes réceptrices IR
***PWM Moteurs gauche et droite
+
*2 ponts en H VNH7070
***Directions Moteurs gauche et drotie
+
*5 connecteurs pour lidar Pololu
**Liaison série #1 : mesure/calcul position par odométrie
+
*2 connecteurs pour capteur de ligne QRE1113
**liaison série
+
*1 connecteur pour caméra Pixy
 +
*1 connecteur pour carte mpu9250
 +
*1 connecteur pour un interrupteur marche/arrêt
 +
 
 +
 
 +
*deadline jeudi 3 avril
 +
 
 +
==carte perçage ballon==
 +
 
 +
*esclave i2c
 +
*devra
 +
**percer la ballon
 +
**générer une musique
 +
**faire de la lumière
 +
 
 +
 
 +
==carte IHM (1 seule personne)==
 +
 
 +
*entrée i2c
 +
 
 +
==banc de test carte filtre==
 +
 
 +
*utilisation pyvisa
 +
*1 gbf + 1 oscillo
 +
*permettra de régler la fréquence de coupure
 +
*générer un rapport de test avec
 +
**fréquence de coupure
 +
**gain
 +
**bande passante à 3dB
 +
**facteur de qualité
 +
**tracer le diagramme de bode
 +
 
 +
==banc de test carte réceptrice IR==
 +
 
 +
*on positionne la carte filtre
 +
*un gbf permet de générer une lumière infrarouge à la fréquence voulue
 +
*1 oscillo permet de mesurer la tension en entrée de l'ADC
 +
*on devra régler le potar de gain pour avoir le niveau tension attendu en entrée de l'ADC (permet d'équilibrer les 3 récepteurs)
 +
*un µcontroleur permettra d'identifier l'@ de l'ADC et de vérifier son bon fonctionnement
 +
 
 +
==supervision de la batterie==
 +
*on utilise un µcontroleur attiny841
 +
*devra mesurer la tension de chaque élément de la batterie
 +
*permettra de mesurer l'énergie restante dans la batterie
 +
*1 bouton permettra de réinitialiser manuellement le comptage d'énergie lorsque la batterie est pleine
 +
*1 MOS permettra d'utiliser ou non la batterie
 +
*3 leds couleurs WS2812B permettront d'afficher le niveau d'énergie restant
  
*Contraintes :
 
**connecteur molex 4 broches (+5v,gnd,tx,rx)
 
**un µcontrôleur {{Rouge|atTiny841}}
 
  
==Centraliser/traiter les informations==
+
==balise de test IR (1 personne)==
  
*Entrées : collecte d'informations/signaux brutes et pré-traitées
+
*utilisera 5 cartes réceptrices IR
**Alimentation par batterie 12V LiPo
+
*permettra de vérifier que la balise émettrice fonctionne et qu'elle est bien positionnée
**Informations binaires :
+
*les leds WS2812B afficheront l'amplitude du signal IR reçu
*** Lancement de la mission du robot ( fils à tirer )
+
*vous utiliserez un attiny841
*** Détection ligne blanche au sol ( capteur CNY70 ou module QR1113 )
 
**Liaison série #1 : carte balise réceptrice - repérage destination
 
***indication direction destination/balise émettrice ( à gauche, à droite, en face - TOR ou proportionnelle ) 
 
**Liaison série #2 : carte détection obstacle
 
*** Indication présence obstacle ( TOR et/ou distance )
 
*** Indication de position/direction de l'obstacle
 
**Liaison série #3 : Module XBEE ( téléversement programme sans fils )
 
**Liaison série #4 : carte commande moteurs  Retour position
 
***Position robot par odométrie, le cas échéant
 
**Bus I2c : informations balise Emettrice en lumière visible via caméra Pixy
 
*Sorties :
 
**Indicateurs tension batterie : normale, faible, très faible
 
**Affichage informations : LCD 2x16( application et/ou développement )
 
**Liaison série #4 : commande moteurs
 
*** vitesse translation
 
*** vitesse rotation
 
**PWM et TOR : perçage ballon
 
*Contraintes :
 
**un µcontrôleur {{Rouge|atmega2560}}
 
  
 
=Ressources=
 
=Ressources=
 +
 +
*vérifier la "programmabilité" du µcontroleur :
 +
**dans un terminal
 +
**avrdude -c usbasp -p nomDuMicro
 +
**ex : avrdude -c usbasp -p t2313
 +
**ex : avrdude -c usbasp -p m328p
 +
 +
*modification des fusibles pour choisir fréquence d'horloge:
 +
**pour les atmega328p, dans le logiciel graver le bootloader
 +
**pour les attiny (utiliser '''arduino v1''' !! ) :
 +
***installer attinycore : https://github.com/SpenceKonde/ATTinyCore/blob/v2.0.0-devThis-is-the-head-submit-PRs-against-this/Installation.md
 +
***choisir le bon microcontroleur et la bonne source d'horloge
 +
***graver la séquence d'initialisation
 +
**pour les atmega2560, attention il faut modifier les fusibles par rapport au bootloader arduino :
 +
***dans un terminal
 +
***avrdude -v -patmega2560 -cusbasp -e -Ulock:w:0x3F:m -Uefuse:w:0xFD:m -Uhfuse:w:0xD9:m -Ulfuse:w:0xFF:m
 +
 +
 +
 +
 
*http://raphael.candelier.fr/?blog=XL_320
 
*http://raphael.candelier.fr/?blog=XL_320

Version actuelle datée du 13 mars 2025 à 16:30

Modalités d'évaluation

1 soutenance

  • Vendredi 17/05 matin
    • 20 minutes de présentation
    • 10 minutes de questions
  • Présentation(introduction) de chaque "partie" en anglais

1 dossier

  • Analyse fonctionnelle
  • Nomenclature
  • Chiffrage
  • Etude détaillée de chaque fonction
  • Schémas électriques/algorithmes/simulations/courbes caractéristiques/fonctions de transfert ...

Démonstration(s)

  • Démonstration du fonctionnement le 12/05 à 12h
  • Participation au festival de robotique à Cachan

Note de résultat - Evaluation travaux de SAE

  • Groupe : accomplissement du projet
  • Individuelle : en fonction de
    • Difficulté technique
    • Quantité de travail
    • Qualité de la réalisation
    • Investissement : évalué chaque jour

Réalisation d'une vidéo

Vidéo à réaliser pour le concours EEA :

https://clubeea.com/concours-mon-projet-en-5-minutes/


Travail à réaliser

1ère partie (2 semaines)

  • travail individuel
    • travail à réaliser pour fin de la 2ème semaine
    • évaluation à la fin de la 2ème semaine (schéma/routage)
    • sélection de la meilleure carte pour fabrication
      • finalisation des pcbs pour le jeudi 3/04 matin
  • cartes :
    • balise émettrice
      • choix de la fréquence
    • balise de réglage
      • à l'opposé du terrain
      • permet de régler l'élévation de la balise émettrice
      • affiche le niveau de puissance
    • carte réceptrice IR (filtre)
    • carte filtrage (se plug sur la carte réceptrice IR)
      • on change de carte pour changer la fréquence
    • carte µc
      • connectique pour e/s
      • driver moteurs
      • fourni alim symétrique
    • banc test pour la carte filtre
    • banc test pour la carte réceptrice complète

2ème partie (xx jours)

  • Travail individuel
  • montage des cartes
  • vérification du fonctionnement
  • réalisation programme : fonction à réaliser selon cdc

3ème partie (xx jours)

  • travail en binôme ?
  • programmation d'un robot

a deplacer

Schéma synoptique de l'assemblage : synoptique

Les différentes fonctions

banc de test lidar

  • doit permettre de vérifier le fonctionnement des capteurs LIDAR pololu série IRS16a
  • utilisation d'un oscillo pour mesurer la pwm si besoin : librairie pyvisa
  • pilotage d'un axe linéaire :
    • moteur pas à pas : shield arduino avec driver A4988
    • capteur tor fin de course
  • affiche sur un écran :
    • le bon fonctionnement
    • a configuration du capteur : tor/mli distance
  • étapes successives
    • faire bouger l'axe
    • déplacer l'axe à la position souhaitée
    • piloter la position depuis un programme python
    • utiliser l'oscilloscope pour observer la sortie du lidar
  • deadline : vendredi 4 avril

Balise émettrice - signaler la position de la destination

  • Entrées :
    • Choisir parmi 4 fréquences ( 12kHz 20kHz, 28kHz et 36kHz)
    • Choisir parmi 4 couleurs
    • Réseau électrique
  • Sorties :
    • Générer une lumière infrarouge
      • Leds infrarouge : SFH 4045N
      • Visible sur tout le terrain
      • Signal pulsé
    • Générer une lumière visible
      • dont la couleur sera adaptée à la caméra Pixy
      • visible au minimum à 3m
  • Contraintes :
    • dimensions maximales de la balise : cube de 20cm
    • utilisera un µcontrôleur attiny2313
  • deadline : jeudi 3 avril

carte réceptrice

  • Entrées :
  • Sorties :
    • Liaison i2c
  • Contraintes :
    • connecteur molex 6 broches (nc,-5v,+5v,gnd,sda,scl)
    • un ADC mcp3221
    • carte filtre à plugger

La tension mesurée par l'ADC correspondra à l'amplitude du signal infrarouge reçu


carte filtre

  • Entrée : tension image de l'intensité lumineuse infrarouge
  • Sortie : sortie du filtre passe-bande
  • 2 potars qui permettront de régler indépendamment et précisément :
    • la fréquence de coupure
    • le gain
  • On fabriquera un lot de carte filtre pour chaque fréquence d'émission
  • deadline : jeudi 3 avril

carte principale

  • connecteur pour la pi pico
  • fournira une alimentation +5V/-5V à partir d'une batterie LiFePo 4 éléments
  • 1 connecteur 6 broches pour les cartes réceptrices IR
  • 2 ponts en H VNH7070
  • 5 connecteurs pour lidar Pololu
  • 2 connecteurs pour capteur de ligne QRE1113
  • 1 connecteur pour caméra Pixy
  • 1 connecteur pour carte mpu9250
  • 1 connecteur pour un interrupteur marche/arrêt


  • deadline jeudi 3 avril

carte perçage ballon

  • esclave i2c
  • devra
    • percer la ballon
    • générer une musique
    • faire de la lumière


carte IHM (1 seule personne)

  • entrée i2c

banc de test carte filtre

  • utilisation pyvisa
  • 1 gbf + 1 oscillo
  • permettra de régler la fréquence de coupure
  • générer un rapport de test avec
    • fréquence de coupure
    • gain
    • bande passante à 3dB
    • facteur de qualité
    • tracer le diagramme de bode

banc de test carte réceptrice IR

  • on positionne la carte filtre
  • un gbf permet de générer une lumière infrarouge à la fréquence voulue
  • 1 oscillo permet de mesurer la tension en entrée de l'ADC
  • on devra régler le potar de gain pour avoir le niveau tension attendu en entrée de l'ADC (permet d'équilibrer les 3 récepteurs)
  • un µcontroleur permettra d'identifier l'@ de l'ADC et de vérifier son bon fonctionnement

supervision de la batterie

  • on utilise un µcontroleur attiny841
  • devra mesurer la tension de chaque élément de la batterie
  • permettra de mesurer l'énergie restante dans la batterie
  • 1 bouton permettra de réinitialiser manuellement le comptage d'énergie lorsque la batterie est pleine
  • 1 MOS permettra d'utiliser ou non la batterie
  • 3 leds couleurs WS2812B permettront d'afficher le niveau d'énergie restant


balise de test IR (1 personne)

  • utilisera 5 cartes réceptrices IR
  • permettra de vérifier que la balise émettrice fonctionne et qu'elle est bien positionnée
  • les leds WS2812B afficheront l'amplitude du signal IR reçu
  • vous utiliserez un attiny841

Ressources

  • vérifier la "programmabilité" du µcontroleur :
    • dans un terminal
    • avrdude -c usbasp -p nomDuMicro
    • ex : avrdude -c usbasp -p t2313
    • ex : avrdude -c usbasp -p m328p
  • modification des fusibles pour choisir fréquence d'horloge: