Robots mobiles pour Arduino

De Wiki d'activités IMA


Vidéo HD


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.

Voiture.jpg

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.

Reduc.jpeg

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:

Fichier:Tuto reducteur.pdf

Nous avons fait un premier essai de dimensionnement.

Esq.png

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.

Engrenage.jpg

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.

Engrenage1.JPG
Program motor.JPG

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.

Double engrenage.jpg

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

Reduc1.JPG
Redu.png

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







Dimensions du support
Reduc3.JPG

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


















Eng1.png
Eng2.png


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.

P1.png
P2.png






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.

Eng.JPG

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 éélactronique

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. PontH.png
Pour qu'il tourne dans le sens inverse, on ferme K2 et K3. PontH1.png
On peut aussi freiner le moteur en fermant les interrupteurs K1 et K2. PontH2.png

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.

Sch.JPG


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:

Affo pcb.JPG

Puis nous avons routé et testé la première carte.

Test carte.JPG

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:

Montage1.png

Réducteurs et roue protégée par 3 couches de scotch noir

Montage2.png

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.

Cod1.png

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.

Capt u.png

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.

Capt u2.png


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.

Cod2.png

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