Meilleures ventes

View All

Facebook Timeline

Bras Robot 6 Axes Arduino - Montage et programmation

Posted On: juin 2, 2020

Categories: ROBOTS

Author: Christian Joseph

Tags: bras robot , bluetooth , servomoteur , shield

Le bras robot 6 axes Arduino est un outil révolutionnaire et qui une fois programmé peut accomplir diverses tâches plus ou moins complexes: saisir et déplacer des objets, laver la vaisselle,  trier et ranger des jouets, apporter une boisson (monté sur un châssis mobile), faire de la cuisine,etc..Et en parlant de cuisine, bienvenue dans notre établissement pour la préparation de notre plat du jour: Le Bras robot 6 axes Arduino.

1.Présentation

Au Menu du jour nous avons un SET de base du bras robot Arduino constitué de:

  • 4 Supports de servos U longs

  • 5 Supports de servos multifonctions

  • 1 Support en L

  • 3 supports de servos type U

  • 1 Pince

  • visserie (généralement il en reste beaucoup à la fin du montage, mais c'est tout à fait normal car le chef en met toujours plus que nécessaire et n'ayez crainte, on vous fait un doggybag à emporter)

  • Et nous mettons en prime notre service technique projet@eagle-robotics.com pour vous aider en cas de besoin.Set Bras robot Arduino

Support servos U long

Support servos multifonctions

Support servo en L

Supports servo type U

Pince bras robot arduino

A ceci nous rajouterons bien volontiers 2 ou 3 câbles d'extension pour servomoteurs et 6 palonniers en métal pour l'assaisonnement.

Câbles extension servos

Palonniers en metal

Il est important de comprendre que tous ces éléments ainsi que les servomoteurs et les cartes de contrôle sont déjà inclus dans notre menu à emporter et en livraison KIT BRAS ROBOT DIY ARDUINO.

2. Choix des servomoteurs

Pour accompagner tout ceci, je vous suggère un Château-Servo MG995 ou un MG996R doté de pignons métalliques et offrant un couple de 15kg/cm et primé par la critique.

Par contre je vous déconseille fortement le S3003 avec ses pignons en plastique et son couple faible (à peine 4kg/cm dit-on!) et qui est une cuvée excellente pour le "modélisme". Nous ne servons pas encore ce type de cuisine, mais nous n'excluons pas la possibilité d'ouvrir un tel établissement ultérieurement. (Nous sommes un établissement respectable tout de même!)

3. Préparation avant montage

Avant de commencer, il est important de préparer une carte Arduino et 3 câbles pour la calibration des Servomoteurs.Arduino UNONous allons utiliser un petit programme arduino qui va permet de faire 3 choses:

  • Tester le bon fonctionnement du servomoteur

  • Faire le mapping du servomoteur (pas d'inquiétude, nous y reviendrons sur ce terme au moment de la programmation du bras robot!)

  • Mettre le servo sur son positionnement de départ

Il peut arriver en effet qu'un servomoteur arrive défectueux, et cela est plus suceptible d'arriver plus à nous qu'à vous, voire jamais à vous puisque nous prenons toujours soin de les tester avant de les expédier. (vous en avez de la chance quand même!). mais au cas où il proviendrai d'un autre fournisseur que nous, je vous donne ce petit programme sympa que j'ai baptisé "poteservo" quand le servo fonctionne bien, et  "pasdeservo" quand rien ne fonctionne comme prévu.

/*

  • Programme: PoteServo/PasdeServo
  • Auteur: Christian Joseph
  • Date: 13/03/2016
  • www.eagle-robotics.com

*/

#include  "Servo.h" 

Servo srv1, srv2;

void setup(){

srv1.attach(4); //Pour la position de départ du servomoteur

srv2.attach(5);//Pour tester et calibrer le servomoteur

}

void loop(){

srv1.write(90);

srv2.write(90);

delay(1000); //attente 1s

srv2.write(120);

delay(1000); //attente 1s

}

Servomoteur

Arduino UNO

Fil marron

GND

Fil rouge

5V

Fil orange

Broche 4 ou 5

  • Pour tester ou faire le mapping du servomoteur, il faut relier le fil orange à la broche 5 et ainsi le servomoteur se déplace de 90°<->120°. Le servomoteur ayant un angle maximal de rotation 180°, on peut faire varier sa rotation entre 0 et 180. Certains servos comme le DS3218 peuvent aller jusqu'à 270°.

  • Pour mettre le servomoteur  à sa position de départ, il faut connecter le fil orange à la broche 4, ainsi le servomoteur reste à la position 90°. On utilisera cette fonction lors du montage du bras robot arduino.

Pour l'instant, vous devez seulement tester si votre servomoteur fonctionne correctement, même si il provient de chez nous, et même si nous sommes sûrs qu'il fonctionne bien si tel est le cas .(non je n'ai pas les chevilles qui enfle en plus d'être modeste!).

4.Dégustation (Montage)

Phase 1: Une cuillérée pour papa!

Phase1-1 Bras robot 6 axes

Phase2-1 Bras robot 6 axes

Phase1-3 Bras robot 6 axes

Phase2: Une cuillérée pour maman!

Phase2-1 Bras robot 6 axes

Phase2-2 Bras robot 6 axes

Phase 3: Une cuillérée pour papi!

Phase 3-1 Bras robot arduino

Phase 3-2 Bras robot arduino

Phase 4: Une cuillérée pour mamie!

Phase 4 Bras robot Arduino

Phase 5: Une cuillérée pour tonton Albert!

Phase5 Bras robot

Phase 5-2 Bras robot arduino

Phase 5-3 Bras robot Aruino

Phase 6: Une cuillérée pour tantine Gertrude!

Phase6-1 Montage bras robot arduino

Le Servomoteur est une connecté sur la broche 4 pour le positionnement de départ à 90°.

Phase6-2 Montage bras robot arduino

Phase6-2-2 Montage Bras robot Arduino

Comme vous pouvez le voir, j'ai mis une annotation en bleu et une en jaune représentant la position et le déplacement de notre servomoteur. En effet selon le Servomoteur (et non selon le modèle), vous pouvez bien avoir un MG995 qui tourne vers le haut lorsque vous lui dites d'aller vers 180° et vers le bas lorsque vous lui dites d'aller vers 0° (Annotations en bleues). A l'inverse, vous pouvez aussi avoir  un MG995 qui tourne vers le haut lorsque vous lui dites d'aller vers 0° et vers le bas lorsque vous lui dites d'aller vers 180° (Annotations en jaune). Tout dépend du fabricant, et c'est la raison pour laquelle dans le programme que nous verront plus loin il sera important de réaliser le mapping de chaque servomoteur du robot, afin d'éviter par exemple que le bras robot aille à droite si vous voulez qu'il aille à gauche par exemple, ou qu'il descende au lieu de monter.

Phase6-3 Montage Bras robot arduino

Phase6-3 Montage bras robot Arduino

Phase 7: Une cuillérée pour cousine Octavia!

Phase7-1 Montage bras robot Arduino

Phase7-2 Montage du bras robot Arduino

Phase7-3 Montage bras robot Arduino

Phase7-4 Montage du bras robot Arduino

Phase7-5 Montage du bras robot Arduino

Phase 8: Une cuillérée pour cousin Pierrick!

Phase8-1 Montage Bras robot Arduino

Phase8-2 Montage Bras robot Arduino

Phase8-3 Montage Bras robot Arduino

Phase8-4 Montage Bras robot Arduino

Phase 9: Une cuillérée pour le neveu Alain !

On positionne le 2ème servomoteur à 90° après avoir installé dessus le palonnier en métal.

Phase9-1 Montage Bras robot Arduino

Phase9-2 Montage Bras robot Arduino

Phase9-3 Montage Bras robot Arduino

Phase9-4 Montage Bras robot Arduino

Phase 9: Une cuillérée pour la nièce Alicia !

Phase10-1 Montage Bras robot Arduino

Phase10-1 Montage Bras robot Arduino

Phase 11: Une cuillérée pour le PSG !

Phase11-1 Montage Bras robot Arduino

Phase11-2 Montage Bras robot Arduino

Phase11-3 Montage Bras robot Arduino

Phase 12: Une cuillérée pour le RACING 92 !

Phase12-1 Montage Bras robot Arduino

Phase12-2 Montage Bras robot Arduino

Phase 13: Une cuillérée pour l'équipe de FRANCE !

Phase13-1 Montage Bras robot Arduino

Phase13-2 Montage Bras robot Arduino

Phase 14: Une cuillérée pour ceux qui aiment le Rap !

On positionne le 3ème servomoteur à 90° après avoir installé dessus le palonnier en métal.

Phase14-1 Montage Bras robot Arduino

Phase14-2 Montage Bras robot Arduino

Attention! Pour éviter tout dérapage, dans cette photo j'ai juste bougé le Bras vers le Haut après avoir positionné à 90° et monté le Servomoteur.

Phase14-3 Montage Bras robot Arduino

Phase14-4 Montage Bras robot Arduino

Phase 15: Une cuillérée pour ceux qui aiment le Métal!

Phase15-1 Montage Bras Robot Arduino

Phase15-2 Montage Bras Robot Arduino

Phase15-1 Montage Bras Robot Arduino

Phase 16: Une cuillérée pour ceux qui aiment le Jazz!

Phase16-1 Montage Bras robot Arduino

Phase16-2 Montage Bras robot Arduino

Phase16-3 Montage Bras robot Arduino

Phase 17: Une cuillérée pour ceux qui aiment le Reggaeton !

On Positionne les 4ème et 5ème Servomoteur.

Phase17-1 Montage Bras robot Arduino

Phase17-2 Montage Bras robot Arduino

Phase17-3 Montage Bras robot Arduino

Phase 18: Une cuillérée pour ceux qui aiment la musique Classique !

On Installe la pince sur le palonnier du 5ème servomoteur. Il ne faut pas oublier de fixer le palonnier au servomoteur (avec la vis pour servomoteur), avant de fixer la pince. 

Phase18-1 Montage Bras robot Arduino

Phase18-2 Montage Bras robot Arduino

Phase18-3 Montage Bras robot Arduino

Phase 19: Une cuillérée pour ceux qui aiment la Tecktonic! (Pas Moi!)

On installe le 6ème servomoteur

Phase19-1 Montage Bras robot Arduino

Phase19-2 Montage Bras robot Arduino

Phase19-3 Montage Bras robot Arduino

Phase19-4 Montage Bras robot Arduino

Phase 20 : Une cuillérée pour celui qui a fait le Tuto! (Là c'est Moi!)

Pour la position de départ de la pince, on peut choisir une position à 90° avec la pince ouverte, ou fermée. Pour la suite du programme, j'ai choisi de le mettre en position fermée à 90°.

Phase20-1 Montage Bras robot Arduino

Phase20-2 Montage Bras robot Arduino

Phase20-3 Montage Bras robot Arduino

Phase 21 : Une cuillérée pour celui qui lit le Tuto! (Là c'est Toi!)

Phase21-1 Montage Bras robot Arduino

Fin du plat principal...Maintenant place au dessert! (PROGRAMMATION)

Mais avant de vous présenter la carte des desserts, je vais vous parler tout d'abord du Mapping.

5.LE MAPPING C'EST QUOI? (Excellente question mon cher Watson!)

Pour comprendre en quoi consiste le mapping, on va prendre en exemple le mouvement du bras par rapport à l'avant-bras.Grâce à votre coude, votre bras peut effectuer une rotation entre 0 et 180° par rapport à votre avant-bras. Et en principe au delà de 180° ça fait "Crac". C'est la limite de mouvement et votre robot peut aussi rencontrer de part sa conception des contraintes mécaniques qui imposeront aussi une limite de mouvement. Rassurez-vous, c'est bien le cas du bras robot 6 axes arduino.

Exemple Bras - Montage bras robot

D'autre part, dans l'exemple photo, lorsque vous pliez le bras sur l'avant bras vous allez vers un angle de 0°, et plus vous tendez le bras, vous allez vers 180°.Si on remplace le coude par un servomoteur, pour ouvrir et tendre le bras, il faut aller vers 180°(srv1.write(180);), et pour fermer le bras il faut aller vers 0° (srv1.write(0);).

Un autre servomoteur de même marque et modèle aurait fait l'inverse par exemple pour ouvrir et tendre le bras, il faut aller vers 0°(srv1.write(0);), et pour fermer le bras il faut aller vers 180° (srv1.write(180);). Il s'agit donc là du Mapping de direction.

De ce fait la Mapping consiste à définir les éléments de  direction de chaque partie du robot (gauche, droite, haut, bas), ainsi que les limites de mouvements.

MAPPING DU BRAS ROBOT 6 AXES ARDUINO:

Mapping Bras robot 6 axes Arduino

A - MAPPING DE DIRECTION

Branchez votre servomoteur à la broche 5 de la carte Arduino (Fil orange) et connectez votre carte au PC via le câble USB.

Le servomoteur va se déplacer de 90° qui est notre valeur de départ vers la valeur 120°.

Element du bras qui se déplace de haut en bas: Bras, Avant Bras, Poignet, Pince.

Si l'élément du bras va vers le haut, puis revient à 90°, alors on sait que pour aller vers le haut, il faut aller vers 180°, et pour le bas il faut aller vers 0°.Mais si l'élément du bras va vers le bas, puis revient à 90°, alors on sait que pour aller vers le bas, il faut aller vers 180°, et pour le haut il faut aller vers 0°.

Element du bras qui se déplace de gauche à droite: Base, Main.


Si l'élément du bras va vers la droite, puis revient à 90°, alors on sait que pour aller vers la droite, il faut aller vers 180°, et pour la gauche il faut aller vers 0°.
Mais si l'élément du bras va vers la gauche, puis revient à 90°, alors on sait que pour aller vers la gauche, il faut aller vers 180°, et pour la droite il faut aller vers 0°.

B. Limites de mouvements

Ne sont pas soumis à des limites de mouvements: BASE et MAIN. Ces éléments peuvent aller librement de 0 à 180°, voir plus (servomoteur DS3218).

Peuvent être soumis à des limites de mouvements:BRAS, AVANT BRAS, et POIGNET. Ces éléments peuvent être soumis à des limites de mouvements et se gêner ou pas selon leur mouvements respectifs. A vous de voir quelles limites leur imposer.

Obligatoirement soumis à des limites de mouvements: PINCE. Cet élément de par sa conception n'offre que très peu de liberté de mouvement, de l'ordre de 40 à 50° max au lieu de 180° comme la Base par exemple.

Pour connaître les limites de mouvement de votre bras robot 6 axes, il faut ressortir encore notre vieux copain "PoteServo". Toujours connecté sur la Broche 5 de la carte Arduino, il faut modifier les valeurs min et max liées à notre variable servomoteur "srv2", et ainsi déterminer les butées hautes et basses, ou droites et gauches. les valeurs sont comprises entre 0 et 180.

Une fois la valeur modifiée, il faut charger le programme dans la carte Arduino et observer le mouvement du servomoteur. recommencer autant de fois que nécéssaire jusqu'à trouver les bonnes limites pour le bras robot.

Par exemple pour la pince, nous connaissons déjà la valeur de la butée quand la pince est fermée, puisque nous l'avons initialisée ainsi lors du montage, et c'est 90°. Supposons que pour ouvrir la pince, il faille aller vers 0°. Dans ce cas nous allons faire varier le servomoteur entre 90° et 0° en enlevant 10° à chaque fois . 1ere fois: 90°<->80°, puis 90°<->70°, puis 90°<->60°, etc... jusqu'à trouver la valeur à applique au servomoteur à laquelle l'ouverture de la pince sera à son maximum. on aura ainsi atteint l'autre butée. 

Valeur mapping bras robot 6 axes

BIEN, ET MAINTENANT LE DESSERT!

6.PRESENTATION DE LA CARTE

Bien choisir sa carte de programmation et de gestion du bras robot est très important, mais rassurez-vous, nous ne travaillons que avec les meilleurs ingrédients dans notre établissement. J'ai choisi de travailler à partir d'une carte Arduino UNO, et vous pouvez choisir celle qui vous convient: Arduino Nano, Mega, Pro micro, Pro Mini,etc...

Mais il est important que votre carte soit bien accompagnée de la meilleure carte Shield Arduino. Voici donc notre carte des shields que nous vous recommandons.

Choix des shields pour bras robot 6 axes

Bien que présents sur notre site, les shields V5 pour arduino UNO et V1 pour Arduino Mega ne sont pas adaptés lorsqu'il s'agit de gérer plus de 2 servomoteurs à la fois, et si on essaye, généralement on fini par griller notre carte Arduino et même le Shield. Paix aux cartes que j'ai grillé! Amen

Du coup je vous conseille évidement en 1 la carte shield Eagle Robotics du fait qu'elle est conçue spécialement pour gérer jusquà 12 servomoteurs simultanément...et sans griller quoi que ce soit.

Ensuite vous pouvez aussi utiliser les shields servomoteurs I2C 2 et 3 qui sont aussi de très bonnes shields, mais à la diiférence que leur programmation est plus complexe que celle de la shield Eagle Robotics. Et c'est ce que nous allons voir de suite sans plus tarder!

A. Programme compatible SHIELD EAGLE ROBOTICS 

avec ce programme, le bras robot se pilote avec un smartphone doté du Bluetooth.

Nous avons dévellopé et mis en ligne une application sur le play store google: Robotic arm Bluetooth Arduino. Et ce qui est super c'est que notre shield dispose d'un port dédié pour implanter directement un module Bluetooth HC05, HC06, ou HC08, ce qui fait un gain place et de temps par rapport aux autres shields où vous aurez besoin de raccorder votre module bluetooth par des câbles. Il dispose aussi d'un port pour un module à ultrasons et un port pour un accéléromètre gyroscope boussole. Mais nous n'en avons pas besoin ici. Autrement il existe aussi un tutoriel concernant ce module.

Bras robot Arduino bluetooth

Robot bluetooth azduino

/*Projet: Bluetooth Robotic Arm
* Auteur: Christian Joseph
* Date: 17/02/2017
* www.eagle-robotics.com
*/

#include "Servo.h" 
#include  "SoftwareSerial.h"


SoftwareSerial BT(2, 3); // RX, TX
Servo sv1, sv2, sv3, sv4, sv5, sv6; // Servomoteurs
int a, b, c, d, e, f; //Variables de gestion des servomoteurs
int BluetoothData; // Variable de reception donné bluetooth

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

sv1.attach(4); //Base
sv2.attach(5); //Bras
sv3.attach(6); //Avant Bras
sv4.attach(7); //Poignet
sv5.attach(8); //Main
sv6.attach(9); //Pince
a = 90;
b = 90;
c = 90;
d = 90;
e = 90;
f = 90;
Serial.println("Robotic Arm ANDROID Init...");
sv1.write(a);
sv2.write(b);
sv3.write(c);
sv4.write(d);
sv5.write(e);
sv6.write(f);
delay(100);
}
void loop() {
if (BT.available()) { // Si donnée Bluetooth reçue...
BluetoothData = BT.read();
Serial.println(BluetoothData);

if (BluetoothData == 'A') { //Rotation Base vers la droite

while(BluetoothData != 'S'){

BluetoothData = BT.read();
if (a > 0){
a = a - 10;
sv1.write(a);
}

}
}
if (BluetoothData == 'B') { //Rotation Base vers la gauche

while(BluetoothData != 'S'){

BluetoothData = BT.read();

if (a < 180){
a = a + 10;
sv1.write(a);
}

}
}

if (BluetoothData == 'C') { // Rotation du bras vers le Bas

while(BluetoothData != 'S'){

BluetoothData = BT.read();
if (b < 160){
b = b + 10;
sv2.write(b);
}

}
}
if (BluetoothData == 'D') { //Rotation du bras vers le Haut

while(BluetoothData != 'S'){

BluetoothData = BT.read();

if (b > 20){
b = b - 10;
sv2.write(b);
}

}
}

if (BluetoothData == 'E') { //Rotation de l'avant bras vers le Bas

while(BluetoothData != 'S'){

BluetoothData = BT.read();

if (c < 180){
c = c + 10;
sv3.write(c);
}

}
}
if (BluetoothData == 'F') { //Rotation de l'avant bras vers le Haut

while(BluetoothData != 'S'){

BluetoothData = BT.read();

if (c > 0){
c = c - 10;
sv3.write(c);
}

}
}

if (BluetoothData == 'G') { //Rotation du poignet vers le Bas

while(BluetoothData != 'S'){

BluetoothData = BT.read();

if (d < 180){
d = d + 10;
sv4.write(d);
}

}
}
if (BluetoothData == 'H') { // Rotation du poignet vers le Haut

while(BluetoothData != 'S'){

BluetoothData = BT.read();

if (d > 0){
d = d - 10;
sv4.write(d);
}

}
}

if (BluetoothData == 'I) { //Rotation de la main vers la droite

while(BluetoothData != 'S'){

BluetoothData = BT.read();

if (e < 180){
e = e + 10;
sv5.write(e);
}

}
}
if (BluetoothData == 'J') { // Rotation de la main vers la gauche

while(BluetoothData != 'S'){

BluetoothData = BT.read();

if (e > 0){
e = e - 10;
sv5.write(e);
}

}
}

if (BluetoothData == 'K') { //Fermeture de la Pince

while(BluetoothData != 'S'){

BluetoothData = BT.read();

if (f < 140){
f = f + 10;
sv6.write(f);
}

}
}
if (BluetoothData == 'L') { // Ouverture de la Pince

while(BluetoothData != 'S'){

BluetoothData = BT.read();

if (f > 90){
f = f - 10;
sv6.write(f);
}

 }
}
}
delay(100);
}

B. Programme compatible Shields I2C

Bras robot arduino i2c

Shield i2c bras robot

#include  "Wire.h"
#include  "Adafruit_PWMServoDriver.h"
#include   "SoftwareSerial.h"
Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver( 0x40 );
#define SERVOMIN 150 // La longueur d'impulsion 'minimale' (valeur du compteur, max 4096)
#define SERVOMAX 600 // La longueur d'impulsion 'maximale' (valeur du compteur, max 4096)

SoftwareSerial BT(2, 3);
uint8_t servo0 = 0;
uint8_t servo1 = 1;
uint8_t servo2 = 2;
uint8_t servo3 = 3;
uint8_t servo4 = 4;
uint8_t servo5 = 5;
int pulseLen;
int a, b, c, d, e, f;
int BluetoothData;
int speed_arm;


void setup() {
BT.begin(9600);
pwm.begin();
pwm.setPWMFreq(60);
pulseLen = map( 90, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo0, 0, pulseLen); //BASE
delay(200);
pwm.setPWM(servo1, 0, pulseLen); //BRAS
delay(200);
pwm.setPWM(servo2, 0, pulseLen); //AVANT BRAS
delay(200);
pwm.setPWM(servo3, 0, pulseLen); //MAIN
delay(200);
pwm.setPWM(servo4, 0, pulseLen); //POIGNET
delay(200);
pulseLen = map( 50, 0, 180, SERVOMIN, SERVOMAX );
delay(200);
pwm.setPWM(servo5, 0, pulseLen); //PINCE
delay(200);
a = 90;
b = 90;
c = 90;
d = 90;
e = 90;
f = 70;
speed_arm = 150;
}
void loop() {
if (BT.available()) {
BluetoothData = BT.read();
if (BluetoothData == 'A') {
while(BluetoothData != 'S'){
BluetoothData = (BT.read());
if (a > 0){
a = a - 10;
pulseLen = map( a, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo0, 0, pulseLen);
delay(speed_arm);
}
}
}
if (BluetoothData == 'B') {
while(BluetoothData != 'S'){
BluetoothData = (BT.read());
if (a < 180){
a = a + 10;
pulseLen = map( a, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo0, 0, pulseLen);
delay(speed_arm);
}
}
}
if (BluetoothData == 'C') { //UP
while(BluetoothData != 'S'){
BluetoothData = (BT.read());
if (b < 130){
b = b + 10;
pulseLen = map( b, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo1, 0, pulseLen);
delay(speed_arm);
}
}
}
if (BluetoothData == 'D') { //DOWN
while(BluetoothData != 'S'){
BluetoothData = (BT.read());
if (b > 80){
b = b - 10;
pulseLen = map( b, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo1, 0, pulseLen);
delay(speed_arm);
}
}
}
if (BluetoothData == 'F') { //UP
while(BluetoothData != 'S'){
BluetoothData = (BT.read());
if (c < 90){
c = c + 10;
pulseLen = map( c, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo2, 0, pulseLen);
delay(speed_arm);
}
}
}
if (BluetoothData == 'E') { //DOWN
while(BluetoothData != 'S'){
BluetoothData = (BT.read());
if (c > 40){
c = c - 10;
pulseLen = map( c, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo2, 0, pulseLen);
delay(speed_arm);
}
}
}
if (BluetoothData == 'G') {
while(BluetoothData != 'S'){
BluetoothData = (BT.read());
if (d < 100){
d = d + 10;
pulseLen = map( d, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo3, 0, pulseLen);
delay(speed_arm);
}
}
}
if (BluetoothData == 'H') {
while(BluetoothData != 'S'){
BluetoothData = (BT.read());
if (d > 0){
d = d - 10;
pulseLen = map( d, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo3, 0, pulseLen);
delay(speed_arm);
}
}
}
if (BluetoothData == 'I') {
while(BluetoothData != 'S'){
BluetoothData = (BT.read());
if (e < 160){
e = e + 10;
pulseLen = map( e, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo4, 0, pulseLen);
delay(speed_arm);
}
}
}
if (BluetoothData == 'J') {
while(BluetoothData != 'S'){
BluetoothData = (BT.read());
if (e > 0){
e = e - 10;
pulseLen = map( e, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo4, 0, pulseLen);
delay(speed_arm);
}
}
}
if (BluetoothData == 'K') {
while(BluetoothData != 'S'){
BluetoothData = (BT.read());
if (f < 80){
f = f + 10;
pulseLen = map( f, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo5, 0, pulseLen);
delay(speed_arm);
}
}
}
if (BluetoothData == 'L') {
while(BluetoothData != 'S'){
BluetoothData = (BT.read());
if (f > 0){
f = f - 10;
pulseLen = map( f, 0, 180, SERVOMIN, SERVOMAX );
pwm.setPWM(servo5, 0, pulseLen);
delay(speed_arm);
}
}
}
}
delay(100);
}

Comme vous pouvez le constater, le programme est plus complexe que celui du Shield Eagle Robotics, et de plus il faut ajouter des fils en plus pour connecterle bluetooth, et concernant le shield numéro 3, il faut aussi ajouter des fils pour le connecter en I2C à votre carte Arduino. Bref vous l'aurez compris, le Shield Eagle Robotics vous permettra une mise en oeuvre facile et rapide pour commander votre bras robot, et vous aurez même la possibilité de réaliser ceci:

Bras robot arduino bluetooth-duo

Et si vous avez envie de customiser votre bras robot:

Bras robot Arduino custom

A suivre dans un futur tutoriel...et pour finir

Visserie bras robot

...Nous tenons à vous remercier pour votre visite et nous vous offrons un bon de réduction de 25% avec le code EAGLE25 lors de votre prochaine visite dans notre établissement.