Atelier Main Robot


Réalisation d'une main robotisé permettant de reproduire les mouvements de bases d'une main.

Me contacter

Ce tutoriel sera organisé en 4 thèmes:


Objectif

Résultat / démo

Connaissances / compétences acquises

Matériel / compétences requises

Mécanique

CAO

Impression 3D

Assemblage

Electronique

Fonctionement des capteurs

Réalisation d'une carte electronique

Programmation

Utilisation arduino

Programmation de la main

Vidéo

Atelier main robot

Objectifs

Introduction

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.

Attention

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.

Le matériel requis
  • Carte arduino nano
  • servomoteurs
  • bloc d'alimentation 5v
  • bobine de PLA
  • main robot

Electronique


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 servomoteur

Voici ci dessous le schéma réalisé sous Fritzing de la partie commande electronique de la main.

image schéma main robot Fritzing

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.

image lancement IDE Arduino image lancement IDE Arduino

Mécanique


Voici la partie support de la main robotisée.

image lancement IDE Arduino

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.

image lancement IDE Arduino image lancement IDE Arduino

Programmation


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

Me contacter!