Réalisation d'une main robotisé permettant de reproduire les mouvements de bases d'une main.
Me contacterRésultat / démo
Connaissances / compétences acquises
Matériel / compétences requises
CAO
Impression 3D
Assemblage
Fonctionement des capteurs
Réalisation d'une carte electronique
Utilisation arduino
Programmation de la main
Bienvenue, nous sommes heureux de vous accueillir dans cet atelier. Il s’agit de créer une main robotisé qui réalisera différents types de mouvements qu'ils soit simple ou plus complexe. Vous serez guidez tout au long de votre réalisation par des tutoriels. Au travers des différentes étapes de création, vous aborderez successivement des domaines variés tels que la mécanique, l’électronique et la programmation.
Certaines manipulations peuvent être dangereuses notamment avec l’électricité. Vous êtes vivement invités à vous conformer aux règles de sécurité qui vous seront diffusées par les animateurs.
Dans un premier temps vous pouvez aller jeter un coup d'oeuil aux deux tutoriels suivant qui vont vous donner les bases de l'utilistation de Arduino et de son IDE ainsi que de la commande d'un servomteur.
Tutoriel Arduino Tutoriel controle servomoteurVoici ci dessous le schéma réalisé sous Fritzing de la partie commande electronique de la main.
Une fois le modéle validé sur Breadboard(plaque à essaie) il est possible de le reproduire de maniere plus fiable sur plaque pastillée et voici le résultat.
Voici la partie support de la main robotisée.
Ce support est composée de 2 partie, un bloc maintenant les servomoteurs en place et permettant de guider les fils faisant tensions sur les doigts et une seconde piece qui est un trépied.
Voici un code permettant de refaire les actions de la vidéo de demonstration
#include <Servo.h> //on importe la bibliothèque Servo int pinIndex=3; // variable pour stocker le pin pour la commande du servo du pin 3 int pinMajeur=4; // variable pour stocker le pin pour la commande du servo de la pin 4 int pinAnnulaire=5; // variable pour stocker le pin pour la commande du servo de la pin 5 int pinAuriculaire=6; // variable pour stocker le pin pour la commande du servo de la pin 6 Servo Index; // on définit un objet Servo nommé Index Servo Majeur; // on définit un objet Servo nommé Majeur Servo Annulaire; // on définit un objet Servo nommé Annulaire Servo Auriculaire; // on définit un objet Servo nommé Auriculaire void setup() { Index.attach(pinIndex); // on relie l'objet au pin de commande Majeur.attach(pinMajeur); // on relie l'objet au pin de commande Annulaire.attach(pinAnnulaire); // on relie l'objet au pin de commande Auriculaire.attach(pinAuriculaire); // on relie l'objet au pin de commande } void repos() { Index.write(110); // on dit à l'objet de mettre le servo à 110° Majeur.write(110); // on dit à l'objet de mettre le servo à 110° Annulaire.write(0); // on dit à l'objet de mettre le servo à 0° Auriculaire.write(0); // on dit à l'objet de mettre le servo à 0° delay(500); //on ajoute un delay de 1/2 secondes pour laisser au servo le temps de se déplacer } void majeur() { Index.write(0); // on dit à l'objet de mettre le servo à 0° Majeur.write(110); // on dit à l'objet de mettre le servo à 110° Annulaire.write(110); // on dit à l'objet de mettre le servo à 110° Auriculaire.write(110); // on dit à l'objet de mettre le servo à 110° delay(2000); //on ajoute un delay de 2 secondes pour laisser au servo le temps de se déplacer } void metal() { Index.write(110); // on dit à l'objet de mettre le servo à 110° Majeur.write(0); // on dit à l'objet de mettre le servo à 0° Annulaire.write(110); // on dit à l'objet de mettre le servo à 110° Auriculaire.write(0); // on dit à l'objet de mettre le servo à 0° delay(2000); } void all() { repos();//on appel la fonction repos précedemment créée Index.write(0); Majeur.write(0); Annulaire.write(110); Auriculaire.write(110); delay(1000); } void demo() { repos(); Index.write(0); delay(500); repos(); Majeur.write(0); delay(500); repos(); Annulaire.write(110); delay(500); repos(); Auriculaire.write(110); delay(500); } void loop() //on appel toutes les fonctions créés plus haut dans le loop afin que chaque instructions soit executé à la suite à l'infini { repos(); all(); repos(); demo(); repos(); metal(); //repos(); //majeur(); }