P36 Robots Mobiles Chorégraphes : Différence entre versions
(→Définitions des fonctions) |
(→Annexes) |
||
(28 révisions intermédiaires par le même utilisateur non affichées) | |||
Ligne 24 : | Ligne 24 : | ||
== Présentation du prototype == | == Présentation du prototype == | ||
− | === Définitions des fonctions === | + | === Définitions des fonctions et solutions === |
− | [[Fichier:Fonction1.png| | + | [[Fichier:Fonction1.png|700px]] |
− | [[Fichier:Fonction2.png| | + | [[Fichier:Fonction2.png|700px]] |
=== Choix technique === | === Choix technique === | ||
Ligne 33 : | Ligne 33 : | ||
'''Moteurs''': Moteur Courant Continue + Motoréducteur commandé par un driver moteur. | '''Moteurs''': Moteur Courant Continue + Motoréducteur commandé par un driver moteur. | ||
− | '''Commandes''':La teensy: elle est plus puissance et plus rapide (90Mhz) qu'une arduino et coûte le même prix. | + | '''Commandes''':La teensy 3.2: elle est plus puissance et plus rapide (90Mhz) qu'une arduino et coûte le même prix. |
'''Communication''':L'ESP8622 est de plus en plus utilisé par la communauté et malgré sa complexité il exite beaucoup de documentations sur internet. De plus elle dispose d'un très bon rapport qualité/prix. | '''Communication''':L'ESP8622 est de plus en plus utilisé par la communauté et malgré sa complexité il exite beaucoup de documentations sur internet. De plus elle dispose d'un très bon rapport qualité/prix. | ||
Ligne 40 : | Ligne 40 : | ||
'''Batterie''':Technologie Lithium Ion, plus difficile à mettre en place (besoin d'un circuit de contrôle pour la charge et la décharge) mais une bien meilleure capacité volumique. | '''Batterie''':Technologie Lithium Ion, plus difficile à mettre en place (besoin d'un circuit de contrôle pour la charge et la décharge) mais une bien meilleure capacité volumique. | ||
+ | |||
+ | '''Capteur obstacle''': 3 Sharp IR placé à l'avant du robot, simple et économique.Plus deux micro-rupteurs actionné avec le bumper en cas de contact. | ||
+ | |||
+ | '''Capteur entrée/sortie''': Capteur à effet hall avec une bande magnétique placé sur la scène. | ||
+ | |||
+ | ===CAO=== | ||
+ | [[Fichier:Sniper1.png|250px]] | ||
+ | [[Fichier:Sniper2.png|250px]] | ||
+ | |||
+ | ===Principe=== | ||
+ | [[Fichier:Principe_sniper.png]] | ||
+ | |||
+ | Comme nous pouvons le voir sur la figure, le robot possède : | ||
+ | * 3 capteurs télémétriques Sharp | ||
+ | * 2 microrupteurs utilisés pour la détection de collision | ||
+ | * 2 encodeurs à quadrature de phase | ||
+ | * 2 moteurs CC + motoréducteurs | ||
+ | * Bande LED néopixels | ||
+ | |||
+ | Les moteurs sont régulés en vitesse en boucle fermée grâce aux encodeurs à quadrature de phases. Ceci offre une résolution de 512 impulsions pour 1 tour de roue. Le robot peut atteindre une vitesse maximum de 57 cm/sec (~2 km/h) et minimum de 5mm/sec. | ||
+ | |||
+ | La commande des moteurs se fait via PWM (Pulse Width Modulation) permettant de modifier la tension moyenne et donc la vitesse. On passe par un driver moteur pour avoir la puissance requise. | ||
+ | |||
+ | Le prototype fonctionne avec un programme d'exploration qui utilise les capteurs sharp pour définir une direction. | ||
+ | [[Fichier:Principe_exploration.png]] | ||
+ | |||
+ | Les capteurs Sharp donnent une valeur entre 0 (pas d’obstacle) et 500 (obstacle < 1cm) [varie avec la luminosité]. Il nous faut maintenant traiter ces données pour en sortir une commande de direction. | ||
+ | |||
+ | Pour cela, nous avons décidé de faire une analogie avec une balance où chaque donnée des capteurs serait un poids sur celle-ci. (cf fig X). En calculant le point d’équilibre, c’est-à-dire le barycentre, on peut en déduire une commande de direction. Cette commande est le contraire du barycentre. Autrement dit, si le barycentre se trouve à droite, il faut tourner à gauche. | ||
+ | |||
+ | L’avantage de cette technique est que le robot peut réaliser des virages plus ou moins serré en fonction de l’environnement. On peut régler ce paramètre en augmentant la variable (imaginaire) de distance qui correspond à la longueur de la balance. | ||
+ | |||
+ | En plus de cela, nous pouvons modifier la couleur et la vitesse du flux de la bande de neopixels via Wifi. | ||
+ | |||
+ | Nous avons donc atteint les objectifs souhaité sur UN prototype, j'y ai aujourd'hui apporté des modifications. | ||
+ | |||
+ | ==Dernière version== | ||
+ | ===CAO=== | ||
+ | [[Fichier:Sniper3.PNG|250px]] | ||
+ | [[Fichier:Sniper4.PNG|300px]] | ||
+ | [[Fichier:Sniper5.PNG|300px]] | ||
+ | |||
+ | ===Liste du matériel=== | ||
+ | {| class="wikitable centre" width="80%" | ||
+ | |- | ||
+ | | align="center" colspan="3" | | ||
+ | Energie | ||
+ | |- | ||
+ | ! scope=col | Nom | ||
+ | ! scope=col | Quantité | ||
+ | ! scope=col | Détail | ||
+ | |- | ||
+ | | width="33%" | | ||
+ | Batterie | ||
+ | | align="center" width="33%" | | ||
+ | 26 | ||
+ | | width="33%" | | ||
+ | LiPo 2600mAh 7.4V | ||
+ | |- | ||
+ | |- | ||
+ | | width="33%" | | ||
+ | Chargeur Batterie | ||
+ | | align="center" width="33%" | | ||
+ | 2 | ||
+ | | width="33%" | | ||
+ | UP100AC QUAD Multi charger | ||
+ | |- | ||
+ | | width="33%" | | ||
+ | Stepdown | ||
+ | | align="center" width="33%" | | ||
+ | 26 | ||
+ | | width="33%" | | ||
+ | Pololu 5V 2.5A | ||
+ | |- | ||
+ | | align="center" colspan="3" | | ||
+ | Motorisation | ||
+ | |- | ||
+ | ! scope=col | Nom | ||
+ | ! scope=col | Quantité | ||
+ | ! scope=col | Détail | ||
+ | |- | ||
+ | | width="33%" | | ||
+ | Contrôle de 2 moteurs | ||
+ | | align="center" width="33%" | | ||
+ | 14 | ||
+ | | width="33%" | | ||
+ | L298N/RB01C025 | ||
+ | |- | ||
+ | |- | ||
+ | | width="33%" | | ||
+ | Moteur | ||
+ | | align="center" width="33%" | | ||
+ | 26 | ||
+ | | width="33%" | | ||
+ | RS003-Enco | ||
+ | |- | ||
+ | |- | ||
+ | | align="center" colspan="3" | | ||
+ | Contrôle | ||
+ | |- | ||
+ | ! scope=col | Nom | ||
+ | ! scope=col | Quantité | ||
+ | ! scope=col | Détail | ||
+ | |- | ||
+ | | width="33%" | | ||
+ | Teensy 3.2 | ||
+ | | align="center" width="33%" | | ||
+ | 13 | ||
+ | | width="33%" | | ||
+ | Contenu 3 | ||
+ | |- | ||
+ | |- | ||
+ | | width="33%" | | ||
+ | Module Wifi | ||
+ | | align="center" width="33%" | | ||
+ | 13 | ||
+ | | width="33%" | | ||
+ | ESP8266 | ||
+ | |- | ||
+ | | align="center" colspan="3" | | ||
+ | Capteur | ||
+ | |- | ||
+ | ! scope=col | Nom | ||
+ | ! scope=col | Quantité | ||
+ | ! scope=col | Détail | ||
+ | |- | ||
+ | | width="33%" | | ||
+ | Sharp IR | ||
+ | | align="center" width="33%" | | ||
+ | 47 | ||
+ | | width="33%" | | ||
+ | GP2D150A | ||
+ | |- | ||
+ | | width="33%" | | ||
+ | Microrupteur | ||
+ | | align="center" width="33%" | | ||
+ | 26 | ||
+ | | width="33%" | | ||
+ | SPS75GCC | ||
+ | |- | ||
+ | | width="33%" | | ||
+ | Capteurs à effet hall | ||
+ | | align="center" width="33%" | | ||
+ | 13 | ||
+ | | width="33%" | | ||
+ | Module Tinkerkit capteur effet Hall Arduino T000070 | ||
+ | |- | ||
+ | | align="center" colspan="3" | | ||
+ | Mécanique | ||
+ | |- | ||
+ | ! scope=col | Nom | ||
+ | ! scope=col | Quantité | ||
+ | ! scope=col | Détail | ||
+ | |- | ||
+ | | width="33%" | | ||
+ | Visserie | ||
+ | | align="center" width="33%" | | ||
+ | 3 | ||
+ | | width="33%" | | ||
+ | à compléter | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | = Annexes = | ||
+ | [[Fichier:RapportAvancementPFE_Letellier_Joshua.pdf]] | ||
+ | |||
+ | [[Fichier:RapportFinalPFE_Letellier.pdf]] |
Version actuelle datée du 21 février 2018 à 11:20
Tuteurs : Rochdi MERZOUKI
Projet de fin d'étude réalisé par Joshua LETELLIER
Sommaire
Présentation générale du projet
Contexte
Ce projet est réalisé dans le cadre des projets de fin d’études de cinquième année à l’école d’ingénieur Polytech Lille en formation IMA (informatique, Microélectronique, Automatique).
En 2016, Polytech Lille a accompagné une association artistique 'P.A.S' dans la réalisation d'un ensemble de robot mobile, servant dans une démonstration artistique, démontrant le chaos généré par les THF (Transactions Hautes Fréquences). Suite à ce stage, un prototype fonctionnel a été réalisé, des modifications ont été apportés et une commande pour 12 robots a été faite.
Objectif
L'objectif de ce PFE est de reproduire 12 robots sur la base du prototype déjà en place en prenant en compte les modifications prévues. Il faut élaborer ensuite une stratégie de coopération en partenariat avec les artistes. Le test de l'ensemble se fera lors d'un évènement artistique en Fév. 2018.
Cahier des charges
Lors du stage le cahier des charges du prototype était le suivant:
- pouvoir effectuer mouvement fluide / saccadé
- rester dans une zone (zone non visible du public)
- recevoir des commandes d’un serveur via wifi
- éviter les autres robots
- émettre de la lumière visible du public
- coût réduit (<300 €)
- mise en route rapide et facile
- autonomie 30 min (minimum)
Pour le PFE, les robots doivent respecter le même cahier des charges
Présentation du prototype
Définitions des fonctions et solutions
Choix technique
Châssis: Un châssis en bois plutôt qu'en plastique car beaucoup plus simple à fabriquer et à modifier. De plus grâce au fabricarium nous pouvons découper nos pièces à la découpe laser.
Moteurs: Moteur Courant Continue + Motoréducteur commandé par un driver moteur.
Commandes:La teensy 3.2: elle est plus puissance et plus rapide (90Mhz) qu'une arduino et coûte le même prix.
Communication:L'ESP8622 est de plus en plus utilisé par la communauté et malgré sa complexité il exite beaucoup de documentations sur internet. De plus elle dispose d'un très bon rapport qualité/prix.
Lumières:Les neopixels sont d'excellent composant et sont beaucoup utlisés en spectacle. Cependant ils consomment beaucoup.
Batterie:Technologie Lithium Ion, plus difficile à mettre en place (besoin d'un circuit de contrôle pour la charge et la décharge) mais une bien meilleure capacité volumique.
Capteur obstacle: 3 Sharp IR placé à l'avant du robot, simple et économique.Plus deux micro-rupteurs actionné avec le bumper en cas de contact.
Capteur entrée/sortie: Capteur à effet hall avec une bande magnétique placé sur la scène.
CAO
Principe
Comme nous pouvons le voir sur la figure, le robot possède :
- 3 capteurs télémétriques Sharp
- 2 microrupteurs utilisés pour la détection de collision
- 2 encodeurs à quadrature de phase
- 2 moteurs CC + motoréducteurs
- Bande LED néopixels
Les moteurs sont régulés en vitesse en boucle fermée grâce aux encodeurs à quadrature de phases. Ceci offre une résolution de 512 impulsions pour 1 tour de roue. Le robot peut atteindre une vitesse maximum de 57 cm/sec (~2 km/h) et minimum de 5mm/sec.
La commande des moteurs se fait via PWM (Pulse Width Modulation) permettant de modifier la tension moyenne et donc la vitesse. On passe par un driver moteur pour avoir la puissance requise.
Le prototype fonctionne avec un programme d'exploration qui utilise les capteurs sharp pour définir une direction.
Les capteurs Sharp donnent une valeur entre 0 (pas d’obstacle) et 500 (obstacle < 1cm) [varie avec la luminosité]. Il nous faut maintenant traiter ces données pour en sortir une commande de direction.
Pour cela, nous avons décidé de faire une analogie avec une balance où chaque donnée des capteurs serait un poids sur celle-ci. (cf fig X). En calculant le point d’équilibre, c’est-à-dire le barycentre, on peut en déduire une commande de direction. Cette commande est le contraire du barycentre. Autrement dit, si le barycentre se trouve à droite, il faut tourner à gauche.
L’avantage de cette technique est que le robot peut réaliser des virages plus ou moins serré en fonction de l’environnement. On peut régler ce paramètre en augmentant la variable (imaginaire) de distance qui correspond à la longueur de la balance.
En plus de cela, nous pouvons modifier la couleur et la vitesse du flux de la bande de neopixels via Wifi.
Nous avons donc atteint les objectifs souhaité sur UN prototype, j'y ai aujourd'hui apporté des modifications.
Dernière version
CAO
Liste du matériel
Energie | ||
Nom | Quantité | Détail |
---|---|---|
Batterie |
26 |
LiPo 2600mAh 7.4V |
Chargeur Batterie |
2 |
UP100AC QUAD Multi charger |
Stepdown |
26 |
Pololu 5V 2.5A |
Motorisation | ||
Nom | Quantité | Détail |
Contrôle de 2 moteurs |
14 |
L298N/RB01C025 |
Moteur |
26 |
RS003-Enco |
Contrôle | ||
Nom | Quantité | Détail |
Teensy 3.2 |
13 |
Contenu 3 |
Module Wifi |
13 |
ESP8266 |
Capteur | ||
Nom | Quantité | Détail |
Sharp IR |
47 |
GP2D150A |
Microrupteur |
26 |
SPS75GCC |
Capteurs à effet hall |
13 |
Module Tinkerkit capteur effet Hall Arduino T000070 |
Mécanique | ||
Nom | Quantité | Détail |
Visserie |
3 |
à compléter |