Robots mobiles pour Arduino
Sommaire
Cahier des charges
Présentation générale du projet
Contexte
La robotique est un moyen ludique de se rapprocher de matières telles que l'informatique, l'électronique, la mécanique, etc. C'est pourquoi nous avons trouvé intéressant de créer un outil plus attirant pour les nouvelles générations dans leur découverte des nouvelles technologies. Nous avons choisi de concevoir un robot mobile capable de mettre en oeuvre ces matières.
Objectif
Notre objectif au terme de ce projet est de réaliser un robot éducatif, facile à monter et bon marché. Il devra rassembler des éléments permettant de réaliser des expériences amusantes de découvertes de la robotique, l'électronique et l'informatique.
Description du projet
Pour créer notre robot, nos encadrants nous ont conseillé de s'inspirer d'un kit voiture Arduino déjà conçu et disponible à l'école. L'objectif est de créer notre propre kit made in Polytech utilisable par le grand public, même des enfants. Nous voulons donc concevoir un robot capable d'interagir avec son environnement au moyen de capteurs. Il sera commandé à l'aide de différents programmes C qui auront pour intérêt de mettre en valeur une des matières citée plus haut. Nous pouvons diviser notre travail en trois parties principales :
- la conception d'une base mécanique pour un robot 4 roues pilotable par ces moteurs ;
- la création d'une plateforme robotique simple avec électronique de commande et microcontroleur. Nous irons au fabricarium pour découper les pièces nécessaires, en fonction du matériel que l'on souhaite embarquer ;
- l'écriture d'une bibliothèque sur Ardublock, permettant l'utilisation du robot et ces différentes fonctionnalités, pour un extérieur au projet
Plus spécifiquement, notre robot devra embarquer un certain nombre d'éléments pour son utilisation. Tout d'abord, la partie mécanique nous permettra d'asservir les moteurs. Pour cela, il est impératif d'utiliser des réducteurs de vitesse pour contrôler sa rotation. Nos recherches nous orientent vers l'utilisation d'engrenages comme le montre le schéma ci-dessous. Par la suite nous déterminerons la taille des engrenages en fonction du rapport couple d'entrée sur couple de sortie.
Ensuite nous "designerons" une plateforme capable de prendre en charge les moteurs, capteurs et cartes nécessaires à son fonctionnement. Nous essayerons de donner à notre robot quelques capacités d'une voiture automatique. Par exemple, il pourra détecter le niveau de luminosité et décider d'allumer automatiquement les phares. Ou encore, éviter les obstacles grâce à son capteur de distance, et même émettre un son répétitif de prévention des collisions.
Choix techniques
Matériel
- 2 moteurs
- 1 capteur ultrasons
- 1 capteur de température
- 1 capteur de lumière
- Un boitier de 4 piles AA
- 4 résistances de 330 Ω
- 4 transistors
- 4 diodes
- 1 haut parleur
- 2 leds rouges
- 2 leds jaunes
- 1 breadboard
- Un arduino UNO
- 1 kit arduino
Logiciel
- Ardublock
- Arduino IDE (utilisant le langage C)
- AutoCAD pour le design de nos pièces
Utile
- imprimante 3D pour concevoir la base ou des pièces manquantes du robot
Communication
Nous avons eu un premier contact par mail avec nos encadrants Mme Pichonat et Me Boé, qui nous ont expliqué plus en détail les attentes pour ce projet. Ils nous ont aussi donné des pistes sur le matériel à utiliser. Une rencontre est prévue lundi prochain afin de discuter du projet et de sa réalisation.
Après notre rencontre avec nos encadrants, nous avons pu revisiter notre cahier des charges. Nous avons apporter des modifications sur le concept du robot et avons précisé le matériel nécessaire. Mme Pichonat nous a fais une démonstration du logiciel Ardublock, ce qui nous a permis de comprendre quelle genre de bibliothèque serait accessible aux utilisateurs du robot.
Dans les semaines qui suivent, nous définirons les paramètres des composants utilisés, comme par exemple les dimensions des engrenages, la puissance des moteurs, la limite d'utilisation des capteurs, etc, afin de créer un robot peu couteux et pratique.
Déroulement du projet
Réalisation mécanique
La première semaine nous a servi à rassembler les informations récoltées au cours des semaines précédentes afin de cerner les différentes tâches à effectuer.Notamment un tuto pour la réalisation de réducteurs fournis par 2 étudiants en CM5... Nous avons deux grandes étapes à réaliser:
1. Conception du châssis du robot
Notre objectif est de créer une partie basse au niveau de l'axe des roues qui prendra en compte le matériel à embarquer sur le robot. Ainsi qu'une partie haute qui protégera le matériel.
2. Conception des réducteur de vitesse
Nous utiliserons l'imprimante 3D pour la conception des différentes pièces.
Semaine 1
Nous avons pu établir la liste précise de matériel à commander.
Puis nous avons fait les calculs nécessaires pour la réalisation des réducteurs de vitesse, en nous servant du tuto suivant:
Nous avons fait un premier essai de dimensionnement.
Engrenage du MCC:
angle de pression = 20°
dents = 10
module = 0.5
diamètre D(mcc) = 6.02mm
En suivant le tuto, nous avons obtenu les valeurs suivantes pour nos dimètres et nombre de dents des roues:
Z1=20 ; D1=12
Z2=10 ; D2=6
Z3=34 ; D3=20.4
Essai sur logiciel de modélisation mécanique AutoCAD, dans le but de créer les pièces à l'I3D.
Semaine 2
Modélisation des engrenages sur AutoCAD.
Validation de la liste du matériel.
Utilisation du logiciel Arduino IDE. Test avec un programme de commande d'un moteur.
Essai d'impreesion 3D d'une roue dentée. Mais à refaire car dimensionnement des dents a été mal fait. Redimensionnement de tous les engrenages pour correspondre au moteur remis par notre tuteur.
Semaine 3
Au cours de cette semaine, nous avons continué les tests de l'imprimante 3D en imprimant cette fois un double engrenage fait sur FreeCad.
Semaine 4
Après avoir réfléchi à l'aspect esthétique de notre robot, nous avons repensé la forme de nos réducteurs afin qu'il soient protégés par un support qui soit ensuite intégré à la plateforme basse du robot. Nous avons par la suite redimensionné les engrenages avec la mesure des moteurs reçus. Voilà comment nous avons procédé:
Nous avons commencé par modéliser le modèle complet de notre réducteur
En bleu :Le support extérieure avec protection pour le petit moteur CC
En vert : Les engrenages du réducteur
En magenta : Le moteur CC
En gris : Les axes de rotation des engrenages
En jaune : La roue
Les carrés : 50mm x 50mm x 5mm
Les axes de connexion : 4mm rayon x 31mm
Le support du moteur : 8mm rayon externe / 6mm rayon interne x 33mm
Les trous pour les axes des engrenages : 1,7mm rayon x 5mm
Le trou pour la roue : 5,3mm rayon x 5mm
Dimensions des engrenages
Engrenage du moteur :
Module : 0,6 | Dents : 10 | Rayon : 3,01mm | Height : 4mm | Vitesse : 2000 RPM
Engrenage 1 :
Module : 0,6 | Dents : 20 | Rayon : 6mm | Height : 5mm | Vitesse : 1000 RPM | Trou : 1,7mm rayon
Engrenage 2 (collé à 1) :
Module : 0,6 | Dents : 10 | Rayon : 6mm | Height : 5mm | Vitesse : 1000 RPM | Trou : 1,7mm rayon
Engrenage 3 :
Module : 0,6 | Dents : 34 | Rayon : 10,2mm | Height : 5mm | Vitesse : 293,83 RPM = 1 m/s | Trou : 1,7mm rayon
Axe des engrenages 1 et 2 : 1,5mm rayon x 30,5mm height
Axe de l’engrenage 3 : 1,5mm rayon x 35mm height
Dans un tutoriel trouvé sur internet, nous avons découvert un moyen de créer des engrenages plus rapidement à l'aide du logiciel FreeCad. Avec l'option Involute Gear, il suffit de rentrer les paramètres des roues (nombre de dents, angles de pression, module, engrenage externe ou interne) que nous avons déterminé grâce à la datasheet de notre MCC. En effet, pour que des roues s'engrènent parfaitement, il faut qu'elles aient le même module, le même angle de pression. Nous avons dû prendre en main ce nouveau logiciel, mais la création d'engrenage a été grandement facilitée.
Semaine 5
Afin de réaliser un robot le moins coûteux et le plus home-made possible, nous avons décidé de réaliser nous-mêmes les roues. Pour cela, nous avons pensé à des jantes circulaires imprimées en 3D recouvertes de 3 couches de ruban mousse adhésive simple face.
Nous avons aussi réfléchi au design du corps de notre robot. Comme prévu, nous l'avons conçu en deux parties, qui intégreront chacune une partie du matériel à embarquer.
La partie haute portera la breadboard avec les capteurs de position, de température, les leds...
Support : 255mm x 13mm x 10mm
Espace prévu pour la breadboard: 170mm x 70mm x 8mm
Trous circulaires : 5mm rayon
Trous elliptiques : 105mm x 10mm
Tandis que la partie basse portera la batterie et la carte arduino.
Cette semaine, nous avons aussi imprimé des engrenages.
Les engrenages sont mal imprimés. Nous atteignons les limites de précision de l'imprimante 3D du fabricarium. Malheureusement, nous sommes nous-même limitées par le matériel utilisé. L'engrenage 1 correspondant à celui intégré à notre moteur, fixe les dimensions des autres engrenages et donc ne permet pas un redimensionnement assez conséquent. Nous allons donc augmenter très légèrement la taille des engrenages 2,3 et 4 et voir si l'impression est meilleure.
Réalisation élélctronique
Semaine 6
En discutant avec des membres de robotech, qui ont l'habitude de développer des robots mobiles, nous nous sommes rendus compte que pour que nos moteurs puissent tourner dans les deux sens, il nous fallait ajouter un pont en H à l'entrée du moteur.
Principe:
C'est un système d'interrupteurs qui conduiraient le courant dans un sens du moteur puis dans l'autre. Pour que le moteur tourne dans un sens, on ferme les interrupteurs K1 et K4.
Pour qu'il tourne dans le sens inverse, on ferme K2 et K3.
On peut aussi freiner le moteur en fermant les interrupteurs K1 et K2.
Semaine 7
Nous avons monté le pont en H sur une breadboard afin de vérifier son bon fonctionnement. Ce circuit nécessite:
- 2 transistors NPN (BC547)
- 2 transistors PNP (BC557)
- 4 diodes
- 4 résistances (1k)
Nous avons ensuite créé un programme sur ArduinoIDE afin de piloter le moteur depuis notre carte. Après plusieurs essais pour comprendre le fonctionnement du circuit, nous avons réussi à faire tourner notre moteur dans les deux sens. Afin d'alléger notre robot, nous allons créer deux PCB pour nos pont en H.
Concernant les impressions de pièce, nous avons dû faire une pause. La Witbox étant en panne, nous avons essayé de faire quelques impressions sur la petite imprimante, mais cela n'a rien donné.
Semaine 8
Nous avons réalisé notre PCB sur Altium. Nous avons commencé par le schematic.
Les ports 8 et 9 permettent la commande des transistorn PNP (en haut) et NPN (en bas). Le moteur que nous avions choisis au départ n'était pas compatible avec notre configuration. En effet, son empreinte réservait une place sur la carte qui nous était inutile. Nous avons donc importé notre propre bibliothèque Altium conçue au début du projet.
Semaine 9
Nous avons ensuite réalisé le PCB en prenant en compte que les cartes devaient être les plus petites possibles. Après routage, nous obtenons ceci:
Puis nous avons routé et testé la première carte.
Nous sommes donc passé à la deuxième carte.
Pendant ce temps,l'impression des pièces nous a permis de monter le robot.
Photos du montage:
Réducteurs et roue protégée par 3 couches de scotch noir
Robot complet
Semaine 10
Nous allons maintenant créer un programme de commande des moteurs. Les deux fonctions ci-dessous permettent la rotation en avant et en arrière des roues.
La consigne en vitesse "150" permet de donner une vitesse au moteur de 360rpm.
Nous avons pu commencer à faire quelques tests. On constate que les moteurs ont du mal à démarrer et les roues tournent à une trop grande vitesse.
Semaine 11
Nous intégrons maintenant un capteur de distance à ultrason à notre robot. Nous avons d'abord étudié son fonctionnement. Le capteur HC-SR04 possède 4 pins à brancher comme ceci.
Il nécessite une alimentation de 5V. Sur le programme, le Trig est configuré en sortie tandis que l' Echo est configuré en entrée. Le principe est le suivant. Pour déclencher une mesure, on envoie une impulsion d'au moins 10 us sur le Tri, qui provoque une série d'impulsions ultrasoniques. Puis on attend le signal réfléchi qui est reçu par l'entrée ECHO.Il envoie un signal "high" dont la durée est proportionnelle à la distance mesurée.
C'est après que nous avons créer le programme permettant de repérer des obstacles à 20 cm du robot.
Le programme commande un allumage des LEDS rouges arrières lors de la détection d'obstacles.
Au cours de cette semaine nous avons aussi tenté de trouver une solution aux problèmes décelés lors des tests. Les roues du robot s'arrêtent lorsqu'on le pose sur support. Cela est principalement dû au manque d'efficacité du réducteur. La suite d'engrenages, très instables les uns par rapport aux autres, produit une résistance supplémentaire. Nous tentons d'augmenter le couple du moteur.
Semaine 12
La dernière semaine nous a permis de nous préparer pour la soutenance afin de montrer quelques tests fonctionnel et une démonstration. Nous avons essayé de régler les différents problèmes.
Les difficultés rencontrées
La conception du robot passait par une réalisation mécanique. Ainsi, nous avons dû modéliser l'ensemble de nos pièces sur un logiciel adapté (plusieurs même) ce qui était une grande première pour nous. Il nous a aussi fallut faire des recherches sur la conception des réducteurs de vitesse pour nos moteurs. Plusieurs tests ont été nécessaires avant de trouver les bonnes dimensions. L'utilisation de l'imprimante 3D était aussi une première. Quelques ratés au début nous ont permis d'éviter les erreurs par la suite et les heures d'impression pour rien. D'autres difficultés se sont ajoutées par la suite.
- Witbox souvent en passe
- Recherche d'axes pour le support de réducteur en prenant en compte les contraintes de taille
- Conception de la carte a été plus longue que prévue
- Défaillance du deuxième pont en H
Sources de documentation
Tuto rédusteur fournit par des élèves de Méca: Fichier:Tuto reducteur.pdf
Datasheet du capteur de distance à ultrasons: http://www.electroschematics.com/wp-content/uploads/2013/07/HCSR04-datasheet-version-1.pdf
Datasheet du moteur: https://www.arduino.cc/documents/datasheets/DCmotor.PDF
Dimensionnement des moteurs: http://ancrobot.free.fr/fiches/pdf/index%283%29.pdf
Création d'un PCB d'Alexandre Boé: Fichier:2014 Altium conception v2.pdf
Rendu
Rapport de projet:Fichier:Rapport robot mobile arduino.pdf