Cours:SaeEvitementObstacles : Différence entre versions
(→1ère partie (2 semaines à l'iut)) |
(→Ressources) |
||
(26 révisions intermédiaires par 2 utilisateurs non affichées) | |||
Ligne 1 : | Ligne 1 : | ||
{{Cours:EvaluationSaeS4}} | {{Cours:EvaluationSaeS4}} | ||
+ | |||
+ | |||
=Travail à réaliser= | =Travail à réaliser= | ||
Ligne 26 : | Ligne 28 : | ||
**Assemblage matériel : mécanique et électronique | **Assemblage matériel : mécanique et électronique | ||
**Programmation carte traitement mission | **Programmation carte traitement mission | ||
+ | *Schéma synoptique de l'assemblage : [[Media:synoptique_sae_s4_p24.pdf| synoptique]] | ||
=Les différentes fonctions= | =Les différentes fonctions= | ||
Ligne 32 : | Ligne 35 : | ||
*Entrées : | *Entrées : | ||
− | **Choisir parmi 4 fréquences | + | **Choisir parmi 4 fréquences ( 12kHz 20kHz, 28kHz et 36kHz) |
**Choisir parmi 4 couleurs | **Choisir parmi 4 couleurs | ||
**Réseau électrique | **Réseau électrique | ||
Ligne 62 : | Ligne 65 : | ||
**connecteur molex 4 broches (+5v,gnd,tx,rx) | **connecteur molex 4 broches (+5v,gnd,tx,rx) | ||
**un µcontrôleur {{Rouge|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== | ==Eviter les obstacles== | ||
− | + | ||
− | |||
*Entrées : détection obstacle /mesure distance obstacle par plusieurs capteurs | *Entrées : détection obstacle /mesure distance obstacle par plusieurs capteurs | ||
− | **Informations binaires : présence obstacle TOR | + | **Informations binaires : 4 présence obstacle TOR ( lidar [https://www.pololu.com/product/4050 pololu] ) |
− | **Bus I2c : mesures de distances ( VL53L1X | + | **Bus I2c : 3 mesures de distances ( lidar VL53L1X ) |
*Sorties : | *Sorties : | ||
**liaison série | **liaison série | ||
***vitesse 250000 bauds | ***vitesse 250000 bauds | ||
− | *** | + | ***8 bits de données |
− | ***1 octet | + | ***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 : | *Contraintes : | ||
**Choisir le nombre et le positionnement/orientation des capteurs | **Choisir le nombre et le positionnement/orientation des capteurs | ||
**connecteur molex 4 broches (+5v,gnd,tx,rx) | **connecteur molex 4 broches (+5v,gnd,tx,rx) | ||
**un µcontrôleur {{Rouge|atmega328p}} | **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== | ==Centraliser/traiter les informations== | ||
− | + | ||
*Entrées : collecte d'informations/signaux brutes et pré-traitées | *Entrées : collecte d'informations/signaux brutes et pré-traitées | ||
**Alimentation par batterie 12V LiPo | **Alimentation par batterie 12V LiPo | ||
Ligne 98 : | Ligne 129 : | ||
*Sorties : | *Sorties : | ||
**Indicateurs tension batterie : normale, faible, très faible | **Indicateurs tension batterie : normale, faible, très faible | ||
− | **Affichage informations : LCD 2x16( application et/ou développement ) | + | **Affichage informations : LCD 2x16( application et/ou développement ) |
**Liaison série #4 : commande moteurs | **Liaison série #4 : commande moteurs | ||
*** vitesse translation | *** vitesse translation | ||
*** vitesse rotation | *** vitesse rotation | ||
**PWM et TOR : perçage ballon | **PWM et TOR : perçage ballon | ||
− | |||
− | |||
− | |||
− | |||
− | |||
*Contraintes : | *Contraintes : | ||
− | |||
− | |||
**un µcontrôleur {{Rouge|atmega2560}} | **un µcontrôleur {{Rouge|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 | |
− | + | ||
− | + | ||
+ | |||
− | |||
*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