Cours:SaeEvitementObstacles : Différence entre versions
(→se diriger vers la cible par IR et magnétomètre) |
(→Ressources) |
||
(47 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 à l'iut)== | ||
− | * | + | *Travail individuel |
− | * | + | *Création d'une fonction : |
− | **qui comporte un µcontrôleur | + | ** Réalisation d'un prototype ( plaque lab, plaque pastillée, fils volants avec carte µ type arduino ...) |
− | **qui respecte un cahier des charges listant les e/s | + | ***qui comporte un µcontrôleur |
− | **finalisation | + | ***qui respecte un cahier des charges listant les e/s |
− | **finalisation | + | ***finalisation du programme pour le {{Rouge|vendredi 19/04}} |
− | * | + | **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}} | **à finaliser pour le {{Rouge|lundi 13/05}} | ||
**qui permettra de valider : | **qui permettra de valider : | ||
Ligne 20 : | Ligne 24 : | ||
==2ème partie (1 semaine à l'iut)== | ==2ème partie (1 semaine à l'iut)== | ||
− | * | + | *Travail en binôme |
− | * | + | *Réalisation d'un robot répondant au cahier des charges de la coupe de robotique GEII pour les BUT2 |
+ | **Assemblage matériel : mécanique et électronique | ||
+ | **Programmation carte traitement mission | ||
+ | *Schéma synoptique de l'assemblage : [[Media:synoptique_sae_s4_p24.pdf| synoptique]] | ||
− | = | + | =Les différentes fonctions= |
− | == | + | ==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 : [https://fr.farnell.com/osram-opto-semiconductors/sfh-4045n/emetteur-infrarouge-950-nm-cms/dp/2981752 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 | ***dont la couleur sera adaptée à la caméra Pixy | ||
***visible au minimum à 3m | ***visible au minimum à 3m | ||
− | * | + | *Contraintes : |
− | **dimensions de la balise | + | **dimensions maximales de la balise : cube de 20cm |
**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== |
− | * | + | *Entrées : |
− | ** | + | **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] |
− | ** | + | **Entrée analogique réglable (potentiomètre) |
**IMU 9 axes mpu9250 | **IMU 9 axes mpu9250 | ||
− | * | + | *Sorties : |
− | ** | + | **Liaison série |
***vitesse 250000 bauds | ***vitesse 250000 bauds | ||
***9 bits de données | ***9 bits de données | ||
***1 octet envoyé : nombre signé | ***1 octet envoyé : nombre signé | ||
***valeur envoyée : angle de rotation pour être dans l'axe de la balise | ***valeur envoyée : angle de rotation pour être dans l'axe de la balise | ||
− | * | + | *Contraintes : |
**connecteur molex 4 broches (+5v,gnd,tx,rx) | **connecteur molex 4 broches (+5v,gnd,tx,rx) | ||
− | **un µcontrôleur atmega328p | + | **un µcontrôleur {{Rouge|atmega328p}} |
+ | **le récepteur IR ne devra être sensible qu'à la fréquence sélectionnée par la balise | ||
+ | **il faudra pouvoir régler la fréquence sur 12kHz, 20kHz, 28kHz ou 36kHz | ||
+ | |||
+ | ==Eviter les obstacles== | ||
+ | |||
+ | *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 6 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== | ||
+ | *Entrées : | ||
+ | **Alimentation 12V : puissance pour moteurs ( cartes cytron md13s) | ||
+ | **Informations binaires : | ||
+ | ***Pulsation roues motrices ( 2x2 capteurs réflectifs - vcnt2020 ou autre ) | ||
+ | **Liaison série #1 : ordre vitesse de croisière en translation et rotation | ||
+ | ***vitesse 250000 bauds | ||
+ | ***8 bits de données | ||
+ | ***4 octets reçus | ||
+ | ****1 octet de début de trame : $ | ||
+ | ****1 octet valeur de wr ( entre -100 et 100) | ||
+ | ****1 octet valeur de Vt ( entre -100 et 100) | ||
+ | ****1 octet de fin de trame : * | ||
+ | *Sorties : | ||
+ | **Commande moteur : rampe d'accélération jusque vitesse de croisière | ||
+ | ***PWM Moteurs gauche et droite | ||
+ | ***Directions Moteurs gauche et drotie | ||
+ | **Liaison série #1 : mesure/calcul position par odométrie | ||
+ | **liaison série | ||
− | + | *Contraintes : | |
+ | **connecteur molex 4 broches (+5v,gnd,tx,rx) | ||
+ | **un µcontrôleur {{Rouge|atTiny841}} | ||
− | == | + | ==Centraliser/traiter les informations== |
− | + | *Entrées : collecte d'informations/signaux brutes et pré-traitées | |
+ | **Alimentation par batterie 12V LiPo | ||
+ | **Informations binaires : | ||
+ | *** Lancement de la mission du robot ( fils à tirer ) | ||
+ | *** 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 14 mai 2024 à 14:21
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 à l'iut)
- Travail individuel
- Création d'une fonction :
- Réalisation d'un prototype ( plaque lab, plaque pastillée, fils volants avec carte µ type arduino ...)
- qui comporte un µcontrôleur
- qui respecte un cahier des charges listant les e/s
- finalisation du programme pour le vendredi 19/04
- Réalisation d'une version "propre" sur KiCad
- finalisation des pcbs pour le mercredi 17/04
- Réalisation d'un prototype ( plaque lab, plaque pastillée, fils volants avec carte µ type arduino ...)
- Création d'un banc de test
- à finaliser pour le 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
- Réalisation d'un robot répondant au cahier des charges de la coupe de robotique GEII pour les BUT2
- Assemblage matériel : mécanique et électronique
- Programmation carte traitement mission
- Schéma synoptique de l'assemblage : synoptique
Les différentes fonctions
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
- Générer une lumière infrarouge
- Contraintes :
- dimensions maximales de la balise : cube de 20cm
- utilisera un µcontrôleur attiny2313
Balise réceptrice - Repérer la destination par IR et magnétomètre
- Entrées :
- Lumière infrarouge
- Photodiode : SFH 2500 FA-Z
- Entrée analogique réglable (potentiomètre)
- IMU 9 axes mpu9250
- Lumière infrarouge
- Sorties :
- Liaison série
- 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
- Liaison série
- Contraintes :
- connecteur molex 4 broches (+5v,gnd,tx,rx)
- un µcontrôleur atmega328p
- le récepteur IR ne devra être sensible qu'à la fréquence sélectionnée par la balise
- il faudra pouvoir régler la fréquence sur 12kHz, 20kHz, 28kHz ou 36kHz
Eviter les obstacles
- Entrées : détection obstacle /mesure distance obstacle par plusieurs capteurs
- Informations binaires : 4 présence obstacle TOR ( lidar pololu )
- Bus I2c : 3 mesures de distances ( lidar VL53L1X )
- Sorties :
- liaison série
- vitesse 250000 bauds
- 8 bits de données
- trames de 6 octets avec dans l'ordre
- 1 octet pour début de trame : $
- 1 octet capteurs tor (4 bits de poids faible)
- 3 octets lidar : distance en cm (valeur max 255 !)
- 1 octet pour fin de trame : *
- liaison série
- Contraintes :
- Choisir le nombre et le positionnement/orientation des capteurs
- connecteur molex 4 broches (+5v,gnd,tx,rx)
- un µcontrôleur atmega328p
Commander les moteurs
- Entrées :
- Alimentation 12V : puissance pour moteurs ( cartes cytron md13s)
- Informations binaires :
- Pulsation roues motrices ( 2x2 capteurs réflectifs - vcnt2020 ou autre )
- Liaison série #1 : ordre vitesse de croisière en translation et rotation
- vitesse 250000 bauds
- 8 bits de données
- 4 octets reçus
- 1 octet de début de trame : $
- 1 octet valeur de wr ( entre -100 et 100)
- 1 octet valeur de Vt ( entre -100 et 100)
- 1 octet de fin de trame : *
- Sorties :
- Commande moteur : rampe d'accélération jusque vitesse de croisière
- PWM Moteurs gauche et droite
- Directions Moteurs gauche et drotie
- Liaison série #1 : mesure/calcul position par odométrie
- liaison série
- Commande moteur : rampe d'accélération jusque vitesse de croisière
- Contraintes :
- connecteur molex 4 broches (+5v,gnd,tx,rx)
- un µcontrôleur atTiny841
Centraliser/traiter les informations
- Entrées : collecte d'informations/signaux brutes et pré-traitées
- Alimentation par batterie 12V LiPo
- Informations binaires :
- Lancement de la mission du robot ( fils à tirer )
- 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 atmega2560
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