Moustaches
[[Image:|thumb|
]]
VoLAB
Assocation VoRoBoTics
Date : 23/01/2016
Auteur : Lecorsier
Relecteur :
Thème : Domotique
Projet : Robot détecteur d'obstacles, programmation Arduino et ArduBlock
Problématique
J'ai repris le RobotPilot développé et vendu par A4, concepteur et fabricant de matériel pédagogique.
Je décris mon expérience sur ce robot avec la technologie PICAXE sur le blog La Technologie au Collège dans le message Automatismes et robotique.
Dans ce document sont abordés :
Les cartes Arduino Mega 2560 et adafruit motor shield
Les branchements des capteurs et actionneurs
Les moteurs CC et les branchements
La programmation à l'aide d'ArduBlock, plugin (module d'extension) du logiciel Arduino de :
La commande « Tant que ...» (while)
La boucle «Si» (if)
Sous programme
Matériel
La maquette proposée n'est qu'un support et le travail peut très bien être transféré sur un autre projet.
Cartes
La carte Arduino Mega 2560 est une carte à microcontrôleur basée sur un ATmega2560 (fiche technique).
[[Image:]]La carte afruit motor shield est une carte d'extension de commande de moteurs
[[Image:]]
Logiciel
Le logiciel Arduino installé (voir : http://www.arduino.cc/)
Ardublock est un plugin qui s’ajoute à l’ide d’arduino. (Programmation graphique), à placer dans C:\Users\nom_du_compte\Documents\Arduino\Tools\ArduBlockTool\Tool
La librairie adafruit motor shield (même si elle apparaît dans Ardublock), à placer dans C:\Users\nom_du_compte\Documents\Arduino\libraries
Information (Attention au câblage présenté plus tard)
Microrupteur (fin de course) normalement ouvert
Actionneurs
Deux moteurs D21mm - Arbre 2mm de 1,5 à 4,5V : Caractéristiques sous 3 V : - 10 500 tr/mn à vide, 250 mA, Couple : 11 g.cm
Préparation
Câblage des microrupteurs
Une résistance de rappel («pull-up» ou «pull-down») permet de fixer une entrée numérique à un état HIGH (haut ou 1) ou LOW (bas ou 0).
Attention car j'ai câblé les capteurs "pull-up". Faites bien attention et choisissez plutôt le câblage en "pull-up" afin d'être en sécurité si un court circuit vous arrive (la résistance se trouve toujours entre le VCC et le GND) et de ne pas griller l'alimentation.
Avec la résistance de rappel "pull-down", l'entrée numérique est à l'état LOW lorsque le micro-rupteur ou le bouton poussoir sont ouverts (relâchés).
Avec la résistance de rappel "pull-up", l'entrée numérique est à l'état HIGH lorsque le micro-rupteur ou le bouton poussoir sont ouverts (relâchés).
Cette information est importante car votre programme ne fonctionnera pas si vous mélangez les câblages comme j'ai pu le faire et perdre un temps important pour trouver l'erreur.
Montage de la carte Arduino Mega 2560 et la carte d'extension adafruit motor shield
J'utilise une batterie Litium 7,4V afin d'alimenter l'Arduino et les deux moteurs par l'alimentation extérieur en par un convertisseur de tension 5V.
Repérage des branchements
1) Capteurs
AVG : Avant Gauche : pin 25
AVD : Avant Droit : pin 24
ARG : Arrière Gauche : pin 23
ARD : Arrière Droit : pin 22
2) Moteurs
Moteur droit : M2
Moteur gauche : M1
3) Protection de la carte
Pont de diode afin d'éviter les retours de courant sur la carte lors de l'arrêt brutal des moteurs ou de l’inversion de rotation.
Schéma structurel :
La manipulation des ports à l'aide des registres de port
La carte Arduino Mega est basée sur un microcontrôleur AVR Atmel.
Pour contrôler l'état des capteurs, j'utilise les registres de port qui permet de ne pas utiliser les fonctions « digitalRead » et « digitalWrite » pour chaque capteur.
Les registres de port permettent une manipulation de bas-niveau (çà d au niveau du matériel lui-même) et plus rapide des broches d'entrée/sortie du microcontrôleur de la carte Arduino Atmega2560 :
Le registre (un octet) DDR détermine le sens d'utilisation des broches numériques en tant qu'ENTREE ou SORTIE.
le registre PORT contrôle le niveau HAUT ou BAS des broches numériques en SORTIE (et l'activation du PULLUP pour les broches en ENTREE).
le registre PIN reflète l'état des broches configurée en ENTREE.
Correspondance du registre et des actions attendues
Ce tableau permet de programmer le robot. Les actions attendues peuvent bien sur être modifiées.
Capteur :
AVG : Avant GaucheAVD : Avant Droit
ARG : Arrière GaucheARD : Arrière Droit
Moteur droit : M2
Moteur gauche : M1
Programme ArduBlock
Chargement du fichier créé avec Ardublock
1) Ouvrir le logiciel Arduino
2) Dans le menu outil, lancer le plugin Ardublock.
3) Ouvrir le fichier « [./programmation%20robot.abp programmation robot] »
Description du programme
1) Initialisation (setup)
Contacts pull-up : capteur relâché, entrée en valeur 1.
DDRA : Fixe pins 1 en sortie, 0 en entrée (11110000)
Pin 22, 23, 24, 25 fixées en entrée.
Fichier:Init.PNGPin 26, 27, 28, 29 fixées en sortie (forcées pour éviter les perturbations)
2) Contrôle de l'état des capteurs
La variable « capteur » prend la valeur décimale de l'état des contacts au moment « t ».