BIOLOID commandé par Arduino : Différence entre versions

De Wiki d'activités IMA
(Définition du sujet (Semaine du 25 janvier))
(Cahier des charges)
Ligne 1 : Ligne 1 :
 
= Cahier des charges =
 
= Cahier des charges =
 
 
=== Encadrant ===
 
=== Encadrant ===
Blaise Conrard
+
<br>Blaise Conrard<br>
 
 
 
Pour le projet, nous avons directement pris rendez-vous avec Blaise Conrard afin de discuter de nos idées.
 
Pour le projet, nous avons directement pris rendez-vous avec Blaise Conrard afin de discuter de nos idées.
 
+
<br><br>
 
=== Présentation du projet ===
 
=== Présentation du projet ===
 
+
<br>
 
Les kits Bioloid sont des kits robotiques programmables qui se basent sur les servomoteurs intelligents Dynamixel. Ces servomoteurs Dynamixel sont reconnus comme les servomoteurs les plus performants pour la robotique personnelle et éducative. Nous avons eu l'opportunité en IMA3 de développer des programmes sur ces robots via le logiciel RoboPlus et son interface type grafcet. Pour ce projet nous avons l'opportunité d'aller plus loin en programmant directement avec une carte Arduino.
 
Les kits Bioloid sont des kits robotiques programmables qui se basent sur les servomoteurs intelligents Dynamixel. Ces servomoteurs Dynamixel sont reconnus comme les servomoteurs les plus performants pour la robotique personnelle et éducative. Nous avons eu l'opportunité en IMA3 de développer des programmes sur ces robots via le logiciel RoboPlus et son interface type grafcet. Pour ce projet nous avons l'opportunité d'aller plus loin en programmant directement avec une carte Arduino.
 
+
<br><br>
 
=== Objectif ===
 
=== Objectif ===
 
+
<br>
 
Le but de notre projet, est de de développer une application permettant à notre robot d'écrire l'heure sur une ardoise magnétique.
 
Le but de notre projet, est de de développer une application permettant à notre robot d'écrire l'heure sur une ardoise magnétique.
 
+
<br><br>
 
=== Description du projet ===
 
=== Description du projet ===
 
+
<br>
Pour mener à bien ce projet, nous avons établi plusieurs contraintes, à savoir :
+
Pour mener à bien ce projet, nous avons établi plusieurs contraintes, à savoir :<br><br>
 
+
- L'heure est écrite de la même façon que les afficheurs 7 segments<br>
- L'heure est écrite de la même façon que les afficheurs 7 segments
+
- Le robot possédera deux bras, l'un pour écrire et l'autre pour effacer<br>
 
+
- Le stylo aimanté sera fixé à un bras, tout comme le levier d'effacement<br><br>
- Le robot possédera deux bras, l'un pour écrire et l'autre pour effacer
+
''Croquis du robot''<br>
 
 
- Le stylo aimanté sera fixé à un bras, tout comme le levier d'effacement
 
  
 
[[Fichier:logo_jo.png|300px]]
 
[[Fichier:logo_jo.png|300px]]
 +
<br>
 +
Nous avons pu également fixer des limites de temps : <br><br>
 +
- Toutes les 60 secondes l'ardoise magnétique s'efface<br>
 +
- Le temps pour nettoyer la surface doit être relativement court, de l'ordre de 2 secondes<br>
 +
- Le robot doit écrire l'heure en moins de 50 secondes<br>
 +
<br><br>
 +
Contraintes électroniques :<br><br>
 +
- Alimenter la carte entre 9-12V<br>
 +
- Utiliser un buffer 3 états afin que la liaison TX/RX ne circule que sur un bus de données vers le servo.<br><br><br>
  
Nous avons pu également fixer des limites de temps :
+
Notre Bioloid, sera donc composés de deux bras commandés par les servos-moteurs AX12, directement programmés par l'Arduino. Dans un premier temps, nous réaliserons des fonctions élémentaires afin de bien comprendre l’interaction entre l'Arduino et les servos, puis nous passerons à la réalisation de l'application.<br><br>
 
 
- Toutes les 60 secondes l'ardoise magnétique s'efface
 
 
 
- Le temps pour nettoyer la surface doit être relativement court, de l'ordre de 2 secondes
 
 
 
- Le robot doit écrire l'heure en moins de 50 secondes
 
 
 
 
 
Contraintes électroniques :
 
 
 
- Alimenter la carte entre 9-12V
 
 
 
- Utiliser un buffer 3 états afin que la liaison TX/RX ne circule que sur un bus de données vers le servo.
 
 
 
Notre Bioloid, sera donc composés de deux bras commandés par les servos-moteurs AX12, directement programmés par l'Arduino. Dans un premier temps, nous réaliserons des fonctions élémentaires afin de bien comprendre l’interaction entre l'Arduino et les servos, puis nous passerons à la réalisation de l'application.
 
  
 
Nous avons choisi de programmer à l'aide de l'IDE Arduino en C++ afin d'utiliser les éléments de la programmation objet, ceci dans le but d'utiliser les notions étendues du langage au sujet des instances, classes et fonctions.
 
Nous avons choisi de programmer à l'aide de l'IDE Arduino en C++ afin d'utiliser les éléments de la programmation objet, ceci dans le but d'utiliser les notions étendues du langage au sujet des instances, classes et fonctions.

Version du 11 février 2016 à 15:23

Cahier des charges

Encadrant


Blaise Conrard
Pour le projet, nous avons directement pris rendez-vous avec Blaise Conrard afin de discuter de nos idées.

Présentation du projet


Les kits Bioloid sont des kits robotiques programmables qui se basent sur les servomoteurs intelligents Dynamixel. Ces servomoteurs Dynamixel sont reconnus comme les servomoteurs les plus performants pour la robotique personnelle et éducative. Nous avons eu l'opportunité en IMA3 de développer des programmes sur ces robots via le logiciel RoboPlus et son interface type grafcet. Pour ce projet nous avons l'opportunité d'aller plus loin en programmant directement avec une carte Arduino.

Objectif


Le but de notre projet, est de de développer une application permettant à notre robot d'écrire l'heure sur une ardoise magnétique.

Description du projet


Pour mener à bien ce projet, nous avons établi plusieurs contraintes, à savoir :

- L'heure est écrite de la même façon que les afficheurs 7 segments
- Le robot possédera deux bras, l'un pour écrire et l'autre pour effacer
- Le stylo aimanté sera fixé à un bras, tout comme le levier d'effacement

Croquis du robot

Logo jo.png
Nous avons pu également fixer des limites de temps :

- Toutes les 60 secondes l'ardoise magnétique s'efface
- Le temps pour nettoyer la surface doit être relativement court, de l'ordre de 2 secondes
- Le robot doit écrire l'heure en moins de 50 secondes


Contraintes électroniques :

- Alimenter la carte entre 9-12V
- Utiliser un buffer 3 états afin que la liaison TX/RX ne circule que sur un bus de données vers le servo.


Notre Bioloid, sera donc composés de deux bras commandés par les servos-moteurs AX12, directement programmés par l'Arduino. Dans un premier temps, nous réaliserons des fonctions élémentaires afin de bien comprendre l’interaction entre l'Arduino et les servos, puis nous passerons à la réalisation de l'application.

Nous avons choisi de programmer à l'aide de l'IDE Arduino en C++ afin d'utiliser les éléments de la programmation objet, ceci dans le but d'utiliser les notions étendues du langage au sujet des instances, classes et fonctions.

Matériel nécessaire

Matériel A commander Commentaires
Carte Arduino 0
Servos-moteurs AX12 0
Non inverting buffer 74HC126 2 Fournisseur : [1]
Résistance 50 Ohms 0
Résistance 10kOhms 0
Ardoise magnétique 1 Ardoise nécessaire pour l'application finale
Transfo 220V / 9V 0 Alim Arduino

Avancement du projet

Définition du sujet (Semaine du 25 janvier)

Pour répondre à la problématique énoncé dans le cahier des charges, nous devrons définir une méthode de programmation intuitive pour commander les servos-moteurs en temps réel. Pour cela, nous programmerons directement l'arduino qui contrôlera les servos-moteurs.

Arduino uno ax12.jpg

Les différentes étapes du projet seront :

1) Adapter électriquement l'arduino aux servos-moteurs (alimentation,commande...)
2) Construire une bibliothèque qui définit les adresses du servos-moteurs
3) Créer des fonctions pour commander les moteurs de façon logique
4) Incorporer une gestion du temps
5) Réfléchir à l'application finale (fonctions, contraintes ...)
6) Réaliser cette application

Partie électronique

Pour ce projet, nous devons remplacer le CM5 par une carte arduino, ceci afin d'avoir des possibilités de programmation étendue.

Avant de passer à la partie programmation, il est nécessaire d'étudier les caractéristiques électroniques du CM5.


Texte alternatif


Après avoir étudié ces caractéristiques nous avons remarqué que l'on pourrait directement passer par les ports RX et TX de l'arduino pour le contrôle des servos-moteurs, il suffirait juste d'ajouter un composant 74HC126D pour les contrôles alternatifs de TX et RX.

Enfin, pour ce qui concerne l'alimentation, nous avons remarqué en lisant les caractéristiques de l'AX12 qu'il était nécessaire d'avoir environ 9V pour une alimentation correcte. Nous avons donc conclu qu'il serait nécessaire d'utiliser un transformateur 9V pour alimenter l'arduino, celui-ci pourra ainsi délivrer 9V par l'intermédiaire du pin VIN.

Après étude des caractéristiques du buffer 74HC126, et par soucis de matériel, nous avons choisi de remplacer ce composant par un buffer non inverseur SN74LS241N. Nous avons réalisé les branchements entre l'arduino et les servos via ce composant en nous aidant de la datasheet du CM5. De cette façon, il sera possible de se substituer du CM5 et de commander directement les servos via l'arduino.