Main robotisée

De VoWiki
Aller à la navigation Aller à la recherche

AccueilNos Projets

Page d'accueil Gilles

Main robotisée
Main ouverte gilles.jpg

VoLAB

Volab.JPG

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 MSPhysics 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'un module bluetooth HC-05, une tablette sous Android et une interface créée sous App Inventor.

Vous retrouverez une partie déjà développée dans l'étude du Bras manipulateur

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.


Brasgillesbluetooth.jpg


Logiciels utilisés pour le développement

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.

Main fusion gilles.jpg

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/)

Ouvrir le fichier code source clic droit "Enregistrer la cible du lien sous ...". En dossier caché, vous trouverez ".git" créé en utilisant le logiciel de gestion de version Git

Vous trouverez la documentation générée avec Doxigen à cette adresse doc_hand_separe_main5

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 Brasgillesbranchementbluetooth.jpg

Repérage des branchements

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


Main robot gilles.jpeg

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);

Test d'ouverture et de fermeture des servomoteurs

Ce programme permet de tester la main robotisée afin de déterminer les valeurs de positions d'ouverture et de fermeture de chaque doigt. A l'aide du moniteur d'Arduino, il faut entrer le numéro du servomoteur, la valeur de fermeture et la valeur d'ouverture. Le but est de définir chaque valeur adaptée pour chaque servomoteur.

Ouvrir le fichier code source clic droit "Enregistrer la cible du lien sous ...". En dossier caché, vous trouverez ".git" créé en utilisant le logiciel de gestion de version Git

Vous trouverez la documentation générée avec Doxigen à cette adresse documentation du test

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 dans le tableau :

Fichier:.JPG


#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)
Commander 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.

Prog num robot gilles.JPG


Chaque fonction est créée au début du programme. (exemple pour la fonction "pouce")

Fonction1 pouce gilles.JPG

Main Robot

Main logo robot gilles.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

Pilotage main gilles.png

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


Calculatrice main gilles.png

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 !!!

Recherche de solutions techniques pour les collègues de technologie

Webographie

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

Tutoriel Sketchup #1: Comment utiliser sketchup et Sketchyphysics pour faire de la simulation??

Applications et logiciels

Fusion 360
App Inventor
CamStudio
Movie Maker
Logiciel Arduino
Doxigen
Le logiciel de gestion de version Git
TortoiseGit

Licence

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

CC88x31.jpg Paternité '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 pas une obligation.

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 28km au nord-ouest de Paris dans l'agglomération de Cergy Pontoise.

Il est animé par l'association VoRoBoTics.

Site internet www.vorobotics.com


AccueilNos Projets