Atelier Bras Robot V1


Réalisation d'un bras avec 5 degrés de libertés

Me contacter

Ce tutoriel sera organisé en 4 thèmes:


Défis

Résultat / Objectif

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 du bras

Vidéo

Atelier bras robot V1

Défi

Introduction

Bienvenue, nous sommes heureux de vous accueillir dans cet atelier. Il s’agit de créer un bras robotisé qui réalisera des mouvements. Pour cela, vous allez endosser le costume de roboticien et vous devrez réaliser l’un des 3 défis proposés. Le métier de roboticien consiste en la création de systèmes robotisés qui effectuent différents types de tâches, il est un spécialiste des systèmes automatisés. Vous serez guidez tout au long de votre réalisation par des tutoriels et par des animateurs. 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.

Présentation des défis

Votre mission si vous l’acceptez sera donc de créer un bras robotisé qui relèvera l’un des défis suivants :

  • Défi n°1: Robot manutentionnaire: Le bras robotisé s’empare d’un cube, le déplace et l’introduit dans un gobelet.
  • Défi n°2: Robot scribe: Le bras robotisé transcrit le sigle UTT sur une feuille de papier avec un marqueur.
  • Défi n°3: Robot danseur: Le bras robotisé exécute une chorégraphie synchronisée sur une musique de votre choix.
Les règles du défi
  • Vous disposez de 4 séances de 3 h soit 12h pour préparer au mieux votre bras robotisé afin qu’il relève le défi choisi.
  • La dernière séance sera consacrée à la démonstration de votre bras robotisé et à la désignation du vainqueur.
  • Vous serez répartis par équipe de 4/5 roboticiens.
  • Vous aurez à votre disposition des étudiants animateurs de l’UTT dont le rôle est de vous aider dans votre mission.
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.

Critères du jury pour les défis

Défi 1 et 2 : rapidité et précision du geste.

Défi 3 : précision et créativité.

Le matériel requis
  • servomoteurs
  • elastique
  • PLA

Electronique


Dans un premier temps vous pouvez aller jeter un coup d'oeuil aux 4 tutoriels suivant qui vont vous donner les bases de l'utilistation de Arduino et de son IDE ainsi que de la commande d'une led, de la commande d'un servomoteur, de la lecture de la valeur d'un potentiometre

Tutoriel Arduino Tutoriel led Tutoriel Potentiometre Tutoriel Servomoteur

Voici le circuit sur beadboard permettant de faire foctionner l'electronique du bras robot

image lancement IDE Arduino

Une fois ce circuit validé nous pouvons réaliser une carte sur plaque pastillée

image lancement IDE Arduino

Mécanique


Voici toute les pieces à imprimer pour réaliser le bras robot

image lancement IDE Arduino image lancement IDE Arduino image lancement IDE Arduino image lancement IDE Arduino image lancement IDE Arduino

Voici un exemple d'accessoir vous permettant de tenir en place un crayon!

image lancement IDE Arduino image lancement IDE Arduino

L'objectif étant de repondre à un défis nous vous proposons de designer votre propre accesoir qui va permettre de répondre à votre problématique. Pour cela vous aurez comme ressource une suite de tutoriel ci dessous vous montrant pa a pas la création de piece avec le logiciel gratuit Freecad.

Bibliotuto

Vous etes maintenant près à créer votre propre accessoir.

Programmation


#include <Servo.h>

const char pinBaseServo = 4; // variable pour stocker le pin pour la commande
const char pinStage1Servo = 8;
const char pinStage2Servo = 7;
const char pinStage3Servo = 6;
const char pinStage4Servo = 5;
const char pinStage5Servo = 9;

Servo BaseServo; // on définit un objet Servo nommé BaseServo
Servo Stage1Servo;
Servo Stage2Servo;
Servo Stage3Servo;
Servo Stage4Servo;
Servo Stage5Servo;

const char PotentiometrepinBaseServo = 0;
const char PotentiometrepinStage1Servo = 1;
const char PotentiometrepinStage2Servo = 2;
const char PotentiometrepinStage3Servo = 3;
const char PotentiometrepinStage4Servo = 4;
const char PotentiometrepinStage5Servo = 5;

int positionBaseServo = 90;
int postionStage1Servo = 30;
int postionStage2Servo = 0;
int postionStage3Servo = 70;
int postionStage4Servo = 90;
int postionStage5Servo = 0;

void setup()
{
  Serial.begin(9600);

  BaseServo.attach(pinBaseServo); // on relie l'objet au pin de commande
  Stage1Servo.attach(pinStage1Servo);
  Stage2Servo.attach(pinStage2Servo);
  Stage3Servo.attach(pinStage3Servo);
  Stage4Servo.attach(pinStage4Servo);
  Stage5Servo.attach(pinStage5Servo);
}


void repos()
{
  Stage4Servo.write(90);
  delay(200);
  Stage3Servo.write(70);
  delay(200);
  Stage2Servo.write(0);
  delay(200);
  Stage1Servo.write(30);
  delay(200);
  BaseServo.write(90);
  delay(200);
}


void loop()
{
  
  BaseServo.write(positionBaseServo);
  Stage1Servo.write(postionStage1Servo);
  Stage2Servo.write(postionStage2Servo);
  Stage3Servo.write(postionStage3Servo);
  Stage4Servo.write(postionStage5Servo);
  Stage5Servo.write(postionStage4Servo);
  delay(20);

  positionBaseServo = analogRead(PotentiometrepinBaseServo);
  postionStage1Servo = analogRead(PotentiometrepinStage1Servo);
  postionStage2Servo = analogRead(PotentiometrepinStage2Servo);
  postionStage3Servo = analogRead(PotentiometrepinStage3Servo);
  postionStage4Servo = analogRead(PotentiometrepinStage4Servo);
  postionStage5Servo = analogRead(PotentiometrepinStage5Servo);

  Serial.println(positionBaseServo);

  positionBaseServo = map(positionBaseServo, 740, 25, 0, 180);
  postionStage1Servo = map(postionStage1Servo, 0, 500, 0, 80);
  postionStage2Servo = map(postionStage2Servo, 0, 640, 0, 180);
  postionStage3Servo = map(postionStage3Servo, 1023, 380, 0, 180);
  postionStage4Servo = map(postionStage4Servo, 8, 70, 0, 180);
  postionStage5Servo = map(postionStage5Servo, 0, 1023, 0, 180);




}

Me contacter!