Différences entre les versions de « Main robotisée »

De VoWiki
Aller à la navigation Aller à la recherche
Ligne 70 : Ligne 70 :


<div style="margin-left:0cm;margin-right:0cm;">[http://eskimon.fr/2498-arduino-annexes-g-utiliser-module-bluetooth-hc-05 Le m][http://eskimon.fr/2498-arduino-annexes-g-utiliser-module-bluetooth-hc-05 odule bluetooth HC-05], permet de communiquer entre une tablette et la carte Uno.</div>
<div style="margin-left:0cm;margin-right:0cm;">[http://eskimon.fr/2498-arduino-annexes-g-utiliser-module-bluetooth-hc-05 Le m][http://eskimon.fr/2498-arduino-annexes-g-utiliser-module-bluetooth-hc-05 odule bluetooth HC-05], permet de communiquer entre une tablette et la carte Uno.</div>
[[Image:.jpg]]





Version du 18 mars 2018 à 15:44


AccueilNos Projets

Main ouverte gilles.jpg


Main robotisée



Volab.JPG

]]

VoLAB

Assocation VoRoBoTics

Date : 17/03/2018
Auteur : Gilles Lecorsier
Relecteur :
Thème : Robotique
Projet : Main robotisée, programmation Arduino

Problématique

Suite au visionnage d’un tutoriel Sketchup : Comment utiliser sketchup et Sketchyphysics pour faire de la simulation ?, j’aurai aimé utiliser la simulation du doigt pour prothèse de main robotisée. Malheuresement, je n’ai pas pu obtenir le fichier correspondant.
Je me suis lancé dans la modélisation de la dite main sous Fusion 360. (Voir la vidéo)
Pour l’instant, la main est directement commandée par l'ordinateur et le logiciel Arduino. Je suis en train de développé une deuxième version de la main communiquant en bluetooth à l'aide d'unmodule bluetooth HC-05, une tablette sous Android et une interface créée sous App Inventor.


Dans ce document sont abordés :

La programmation à l'aide du logiciel Arduino :

Servomoteur

Communication Bluetooth

App Inventor permet de créer des applications Android.


Matériel

Cartes

La carte Arduino Uno[1]est une carte à microcontrôleur basée sur l'ATmega328 (voir la fiche technique).

Carte uno.JPG

La carte contrôleur PWM/servo 16 canaux. Adafruit 16-Channel 12-bit PWM / Servo Driver conduira jusqu'à 16 servos sur I2C avec seulement 2 broches. Le contrôleur PWM intégré pilotera les 16 canaux simultanément sans aucune charge supplémentaire de traitement Arduino.

Brasgilles16pwm.jpg


Le module bluetooth HC-05, permet de communiquer entre une tablette et la carte Uno.


Fichier:.jpg


Logiciels

Modélisation

Pour la modélisation de la main, j’ai utilisé le logiciel Fusion 360 qui m’a permis de simuler les différents déplacement des doigts. (Voir la vidéo).

Cette vidéo est créée avec le logiciel CamStudio qui m’a permis de réaliser des captures de vidéos et ensuite de faire un montage rapide à l’aide de Movie Maker qui suffit largement pour ces petits montages.

[[Image:]]A partir de la modélisation, les différents fichiers sont exportés en STL afin d’être utilisés pour imprimer les pièces en 3D. Le dossier « main_fichier3d.zip » est en téléchargement.

Programmation

Le logiciel Arduino installé (voir : http://www.arduino.cc/)

La librairie Adafruit_PWMServoDriver à placer dans C:\Users\nom_du_compte\Documents\Arduino\libraries

APP INVENTOR est un environnement de développement intégré permettant la création d'applications destinées à des systèmes équipés de plate-forme Androïd.

Actionneurs

5 Servo moteurs 9g, 4,8 à 6V.

Préparation

Câblage des cartes Uno, du contrôleur PWM/servo 16 canaux et module bluetooth HC-05

Cablage2cartes.JPG

[[Image:]]Repérage des branchements

#define SERVOPOUCE 1
#define SERVOINDEX 2
#define SERVOMAJEUR 3
#define SERVOANNULAIRE 4
#define SERVOAURICULAIRE 5

Programmation

Programmation des servomoteurs

La librairie externe utilisée pour les servomoteurs

#include <Adafruit_PWMServoDriver.h>


Vérifier en premier la plage de rotation des moteurs

#define SERVOMIN 150
#define SERVOMAX 600


Pour travailler en degrés

Par exemple le contrôle du Servomoteur SERVOPOUCE
Transformation de degré (0 à 180) en pulse (SERVOMIN à SERVOMAX)
valPouce1 = POS_INIT_POUCE;
pulseLen = map(valPouce1, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(SERVOPOUCE, 0, pulseLen);

Scénario

- Initialisation du système

La main se trouve en position ouverte.
La position de chaque servomoteur est définie en degrés comme suit :
#define POS_INIT_POUCE 50 // valeur initiale pouce ouvert
#define POS_INIT_INDEX 50
#define POS_INIT_MAJEUR 50
#define POS_INIT_ANNULAIRE 50
#define POS_INIT_AURICULAIRE 50
- Programmes :
Bibliothèque externes utilisées :
#include <Adafruit_PWMServoDriver.h> (pour servomoteur)
#include <SoftwareSerial.h> (pour l'utilisation du moniteur série du logiciel Arduino)
#include <Wire.h> (pour le bluetooth)
Fichier:Prog num.JPGCommander chaque servomoteur par l’intermédiaire du moniteur série pour aller. Il suffit d’envoyer un chiffre entre 1 et 5 et la main oriente les doigts afin de l’afficher.


Chaque fonction est créée au début du programme.


Main Robot

Fichier:Main.png

Main Robot est une application développée avec App Inventor pour être installée sur ma tablette Android.

Pour le moment, elle n’est pas encore opérationnelle mais l’interface de communication prend forme.

Un premier écran pour piloter directement les doigts

[[Image:]]

Un deuxième écran pour faire compter la main et orienter les doigts afin de présenter le résultats du calcul.


[[Image:|top]]La programmation des blocs afin d’envoyer les informations n’est pas encore réalisée. Un peu d’indulgence et d’ttente s’il vous plait !!!

Licence

Ce document est mise à disposition selon les termes de la Licence Creative Commons Attribution 4.0 International.

[[Image:]]Parternité 'by' :L'œuvre peut être librement utilisée, à la condition de l'attribuer à l'auteur en citant son nom.


Note aux auteurs de documents du VoLAB, Vous avez la possibilité de changer de licence. Mais ce serait bien de rester libre et ouvert. Encore une fois ceci est une recommandation et non une obligation.

Bibliographie

Webographie

http://fr.wikipedia.org/wiki/Licence_Creative_Commons


Applications et logiciels

Fusion 360
App Inventor
CamStudio
Movie Maker
Logiciel Arduino


Rédaction en langue française

Partant du constat de terrain qu'une énorme masse d'information concernant les sujets qui nous intéressent comme entre autres l'impression 3D n'étaient disponibles que dans la langue de Shakespeare et que de nombreuses personnes dans notre entourage ne maîtrisaient pas la dite langue et soucieux de diffuser encore plus l'information, nous avons pris le parti, au VoLAB, de rédiger nos documents de préférence en langue française.

VoLAB

Un mot sur le VoLAB. VoLAB est un fablab implanté à environ 30km au nord-ouest de Paris dans la commune de Vauréal dans l'agglomération de Cergy Pontoise. Il est animé par l'association VoRoBoTics.
Site internet www.vorobotics.com