IMA4 2018/2019 P3 : Différence entre versions

De Wiki de Projets IMA
(Semaine 4, 5 et 6)
(Semaine 2 et 3)
Ligne 126 : Ligne 126 :
 
| AcY = 4624   
 
| AcY = 4624   
 
| AcZ = -14732   
 
| AcZ = -14732   
| RotX = 15.49   
+
| Tmp = 20.34
| RotY = 17.43
+
| GyX = 15.49   
| RotZ = 0.01  
+
| GyY = 17.43
 +
| GyZ = 0.01  
 
|}
 
|}
  

Version du 26 octobre 2018 à 13:10


Présentation générale

Description

Le projet consiste à construire un petit robot en s'appuyant sur les projets déjà réalisés sur ce thème et à réguler ses déplacements afin d'avoir des trajectoires sans erreur par rapport à la consigne. De plus, le projet aura pour ambition la réalisation d'un robot pouvant se relever d'une position d'attente et de rester en équilibre en position "debout". Cette partie s’appuiera sur des recherches faites sur le sujet dans un article concernant les robots à bascule sous arduino. La commande se fera tout d'abord à l'aide d'une télécommande infra rouge dans un premier temps puis si le temps le permet à l'aide d'un module bluetooth et d'une application.

Objectifs

Les objectifs vont être :

  • d'améliorer la conception des circuits existants déjà sur le sujet.
  • réaliser la commande à l'aide d'une télécommande infrarouge puis à l'aide d'une application android si le temps le permet.
  • Régulation :
    • régulation des roues afin de suivre la consigne sans erreur ni oscillation.
    • régulation du bras balancier afin de conserver le robot proche de son point d'équilibre instable (position debout).

Préparation du projet

Cahier des charges

1) Actions

Le robot doit pouvoir assurer les commandes suivantes :

  • faire une marche avant rectiligne
  • faire une marche arrière rectiligne
  • réaliser des virages d'un angle donné
  • rester en équilibre lors de la durée du fonctionnement

2) Environnement

  • le sol doit être lisse
  • le sol doit avoir une inclinaison maximale de 1%
  • l'environnement doit être sans vent

3) Alimentation

L'alimentation se fera à l'aide d'une pile reliée à un interrupteur

Choix techniques : matériel et logiciel

Matériel :

  • 1*Gyroscope et accéléromètre MPU6050 [1]
  • 2*Roue [2]
  • 2*Capteur de souris optique
  • 1*ATMEGA328PU [3]
  • 1*Contrôleur moteur [4]
  • 1*Régulateur de tension [5]
  • 13*Condensateur 100nF [6]
  • 2*Condensateur 10uF [7]
  • 1*Condensateur 2.2nF [8]
  • 1*Condensateur 10nF [9]
  • 2*Condensateur 22pF [10]
  • 1*Rectifier Diode [11]
  • 2*Servomoteur [12]
  • 1*FA238 [13]
  • 1*émetteur infrarouge [14]
  • 2*Résistance 1kΩ [15]
  • 8*Résistance 220Ω [16]
  • 1*Résistance 330Ω [17]
  • 3*Résistance 10kΩ [18]
  • 1*Résistance 1MΩ [19]
  • 1*Résistance 470Ω [20]
  • 1*Interrupteur [21]
  • 1*Interface USB [22]
  • 1*Quartz [23]
  • 3*Récepteur infrarouge [24]
  • 3*Pile 9V [25]

Liste des tâches à effectuer

  • Lister le matériel
  • faire les différents circuits imprimés du robot
  • traiter les données du gyroscope
  • traiter les données du capteur de souris laser
  • réaliser un premier prototype avec la régulation en position
  • mettre en place la commande par télécommande infrarouge
  • réaliser le montage avec le bras à bascule
  • équilibrer le robot
  • faire une application android et la connexion bluetooth (penser à l'intégrer au système)

Calendrier prévisionnel

Diagramme de Gantt

Réalisation du Projet

Feuille d'heures

Tâche Heures S1 Heures S2 Heures S3 Heures S4 Heures S5 Heures S6 Heures S7 Heures S8 Heures S9 Heures S10 Total
Analyse du projet 12

Semaine 1

Régulation

Contrairement à la régulation des roues afin de conserver le robot en équilibre comme on peut le voir ici, il va nous falloir utiliser un bras afin d'avoir deux types de régulation indépendantes :

    • une pour les roues : la position
    • la seconde pour un bras transversale : l'équilibre

La première des choses à effectuer va être la régulation de la position. On utilisera un bras et une roue folle afin d'avoir un appui temporaire. Par la suite, on pourra installer un bras transversal et sa régulation par la suite en pensant la construction du châssis en fonction ou bien ajouter la régulation directement sur les roues afin de simplifier le montage.


Les capteurs utilisés seront :

  • Deux capteurs de type souris optique placé sous le robot pour contrôler la position
  • Un gyroscope GY71 MPU5060 6 axes afin de réguler l'équilibre du robot

Semaine 2 et 3

Orientation et polarité des axes

La semaine deux m'a permis de confirmer mes choix de capteurs pour le robot qui seront les suivants :

  • un gyroscope MPU6050 qui permet d'obtenir des informations en accélération linéaire et en vitesse de rotation pour le robot. Ce capteur est très souvent bruité, il faudra donc réaliser un filtrage du bruit avant de pouvoir analyser les données envoyées par un bus I2C compatible avec arduino. Ces données sont envoyées de la manière suivante :
AcX = 117 AcY = 4624 AcZ = -14732 Tmp = 20.34 GyX = 15.49 GyY = 17.43 GyZ = 0.01
Identification des pins de la souris
  • Ce capteur pouvant être plus ou moins bruité, il nous faut un autre capteur pour s'assurer de la fiabilité des résultats fournis par les capteurs. Nous allons donc ajouter deux capteurs de souris optique usb qui vont nous permettre de connaitre la position de notre robot en fonction de deux axes. Cette méthode est assez répandu du fait de sa précision et de sa mise en oeuvre peut coûteuse. Afin de faciliter le traitement des données et éviter les mauvaises surprises, nous allons prendre 2 souris identiques.

L'idéal serait de prendre des souris avec des connecteurs ps2 car fonctionnent mieux sous arduino mais les seules souris optiques disponibles étaient avec connectique usb. Le D+ et le D- renvoient les mêmes états inversés afin d'avoir une comparaison et d'éliminer le bruit qui pourrait gêner la communication.

Pour la commande du robot, nous utiliserons une petite manette infrarouge programmable qui devra réaliser les fonctions suivantes :

    • Un bouton pour accélérer par palier
    • Un bouton pour décélérer par palier
    • Un bouton ON/OFF
    • Un bouton pour tourner à gauche
    • Un bouton pour tourner à droite

Après réflexion, la partie "pendule inversé" se réalisera par contrôle direct sur les roues couplé à la commande déjà existante sur la position du robot. Cela afin d'éviter d'ajouter des parties en plus au robot en cours de réalisation

Il m'a fallu ensuite me décider sur le dimensionnement des composants à prendre pour la réalisation du circuit. En m'appuyant sur les anciens projets réalisés sur ce robot ainsi que la datasheet des composants que j'ai pris qui différent des anciens projets ( régulateur de tension, gyroscope et capteur optique), j'ai sélectionné le matériel nécessaire pour la réalisation du robot. Le matériel sélectionné est similaire au projet de be ima et au stage d'une étudiante de l'an passé si ce n'est le régulateur de tension 5V qui admet un courant supérieur en entrée. En effet, les deux servomoteurs acceptent de recevoir 2*3A donc j'ai décidé de prendre un régulateur 5V 6A afin d'optimiser la puissance reçue par les moteurs.

Semaine 4, 5 et 6

Schéma de fonctionnement

Les semaines suivantes concernent la création du PCB. J'ai tout d'abords fais l'erreur de réaliser un schéma sous draw.io ce qui m'a fait perdre du temps sur le début de la semaine puis je suis passé directement sur altium afin de réaliser le schéma de mon circuit. La stratégie adoptée ici est de reprendre les footprints déjà existants sur internet afin de simplifier la tâche puis de vérifier que les données simulées sous Altium correspondent bien à nos composants. Ce qui a été fait sur la carte :

  • MPU6050
  • Alimentation
  • Driver
  • Clock
  • Reset

Il manque :

  • Des headers
  • Préparer les récepteurs infrarouges
  • Interface usb
  • connecteur usb
  • régulateur de tension 5V-->3.3V
  • Souris

Semaine 7

Pour la semaine de vacances il est prévu que je fasse les choses suivantes :

  • Chassis
  • PCB fini
  • Analyse des données reçues par les souris
  • Expliciter le wiki sur les choix faits pour la carte

Références

Documents Rendus