Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Kit Bras Robotique 3 Axes Programmable – Contrôle Local & Bluetooth avec Arduino

Composants et Fournitures

ComposantQuantitéNotes
Arduino Mega 25601
SainSmart Bras Robot 3 Axes pour Arduino UNO/MEGA25601
Kit MeArm DIY Bras Robotique1
Module Bluetooth HC-061
Afficheur LCD RGB 16x2 Adafruit1
Appareil Android1
Potentiomètre rotatif 10Kohm4
Bouton poussoir 12mm SparkFun3
LEDs (ROUGE, BLEU, VERT, JAUNE)4

Applications et Services

À propos du projet

Kit Bras Robotique 3 Axes Programmable – Contrôle Local & Bluetooth avec Arduino

Ce tutoriel développe pas à pas un projet de contrôle et programmation d'un bras robotique, simulant les fonctions de base d'un robot industriel.

Étape 1 : Spécifications

Kit Bras Robotique 3 Axes Programmable – Contrôle Local & Bluetooth avec Arduino

Deux fonctions de base :

Caractéristiques principales :

Étape 2 : Le Projet

Kit Bras Robotique 3 Axes Programmable – Contrôle Local & Bluetooth avec Arduino

Le diagramme montre la nomenclature complète. Choix de l'Arduino MEGA pour éviter les limitations de ports I/O (UNO possible avec extension type décodeur 74138).

Premier prototype programmé en "mode local".

Réseau Bluetooth : module HC-06.

App Android pour "mode distant" développée avec MIT App Inventor 2, plateforme puissante pour apps Android. Disponible gratuitement sur Google Play : MJRoBot Arduino Robot Arm Control.

Vidéo démonstration programmation à distance disponible.

Étape 3 : Développement du Projet

Kit Bras Robotique 3 Axes Programmable – Contrôle Local & Bluetooth avec Arduino
Kit Bras Robotique 3 Axes Programmable – Contrôle Local & Bluetooth avec Arduino

Classification des bras selon nombre d'articulations / DOF :

Étape 4 : Le Circuit

Kit Bras Robotique 3 Axes Programmable – Contrôle Local & Bluetooth avec Arduino

Servomoteurs pilotant les articulations, connectés directement à l'Arduino. Moteurs pas-à-pas parfois utilisés à la base pour couple/précision supérieurs. Choix des servos crucial (servos chinois bon marché type MG995 souvent médiocres – ceux fournis avec mon SainSmart 3DOF). Alimentation servos séparée de l'Arduino (5-6V externe, vérifier datasheet). Condensateurs 470µF entre VCC/GND recommandés pour filtrer bruit moteurs DC. Masse commune impérative.

Si servos vibrent : ajuster les delay() dans le code (laisser temps d'atteindre position). Vérifier servos analogiques (50Hz) vs numériques (300Hz) – bibliothèque standard Servo.h prévue pour analogiques, modifiable pour numériques.

Étape 5 : Le Code

Projet pas complexe mais nombreuses variables. Fichier de définition centralisé :

ArmDefine.h

Définit angles min/max/initiaux des servos. Deux jeux de paramètres pour les bras testés (un seul à utiliser) :

// MeArm 4-DOF
#define minGrip 15
#define minBase 0
#define minShou 60
#define minElbw 60
#define maxGrip 45
#define maxBase 170
#define maxShou 180
#define maxElbw 150
#define midGrip 30
#define midBase 87
#define midShou 138
#define midElbw 100

/* SS 3-DOF
#define minGrip 75
#define minBase 5
#define minShou 5
#define minElbw 0
#define maxGrip 125
#define maxBase 150
#define maxShou 155
#define maxElbw 0
#define midGrip 100
#define midBase 90
#define midShou 90
#define midElbw 0 */

Chaque bras a ses paramètres. Méthode recommandée : potentiomètres au milieu, mapping PWM par défaut (Max=255, Min=0, Mid=126), puis varier chaque pot et noter les valeurs min/max de fonctionnement correct sur Moniteur Série ou LCD. Remplacer mes valeurs dans ArmDefine.h.

Pour "enregistrer" les coordonnées (pas) : tableaux de données :

int gripPosition[100];
int basePosition[100];
int shouPosition[100];
int elbwPosition[100];
int positionIndex = 0;  // index pour tableaux positions enregistrées

Note : positions non conservées après exécution (index remis à zéro). Alternative : stocker en EEPROM pour programmes persistants/multiples.

Étape 6 : Logique Programme

Boucle principale (Loop) simple :

void loop() {
  checkBTcmd();
  defineLocalRemote();
  execTaskCmd = digitalRead(execTaskPin);
  if (execTaskCmd == HIGH || command == "runon") {
    RunProgram();
  } else {
    recArmPosition();
  }
  command = "";
}

Organisation code en 4 fichiers :

  1. MJRoBot_Arm_Robot_Task_Prgm.ino : Setup, Loop, fonctions principales décrites ci-dessus
  2. General_Functions.ino : checkBTcmd(), générateur son beep(pin, freq, ms), anti-rebond debounce(pin)
  3. Arm_Ctrl_and_Display.ino : lecture pots readPotenciometers(), lecture sliders Android readSliders(), pilotage servos armPosition(grip, base, shoulder, elbow), affichage LCD/Moniteur Série, alarmes
  4. ArmDefine.h : définitions constantes (voir Étape 5)

Important : Arduino à 16MHz lit les boutons des centaines de fois/seconde → anti-rebond indispensable sur bouton d'enregistrement.

Vidéo démo : bras 4DOF MeArm programmé à distance via app Android.

Code source complet sur GitHub : https://github.com/Mjrovai/MJRoBot-Programmed-Arm

Étape 7 : Conclusion

Kit Bras Robotique 3 Axes Programmable – Contrôle Local & Bluetooth avec Arduino

J'espère que ce projet aidera d'autres à explorer l'électronique, la robotique et l'IoT ! Plus de projets sur mon blog : MJRoBot.org

Saludos du bout du monde ! À bientôt pour le prochain tutoriel !

Merci, Marcelo

Code

Extrait 1 : Définitions bras (Arduino)

// MeArm 4-DOF
#define minGrip 15
#define minBase 0
#define minShou 60
#define minElbw 60
#define maxGrip 45
#define maxBase 170
#define maxShou 180
#define maxElbw 150
#define midGrip 30
#define midBase 87
#define midShou 138
#define midElbw 100

/* SS 3-DOF
#define minGrip 75
#define minBase 5
#define minShou 5
#define minElbw 0
#define maxGrip 125
#define maxBase 150
#define maxShou 155
#define maxElbw 0
#define midGrip 100
#define midBase 90
#define midShou 90
#define midElbw 0 */

Extrait 2 : Tableaux positions (Arduino)

int gripPosition[100];
int basePosition[100];
int shouPosition[100];
int elbwPosition[100];
int positionIndex = 0;  // Index pour tableaux positions tâches enregistrées

Extrait 3 : Boucle principale (Arduino)

void loop() {
  checkBTcmd();
  defineLocalRemote();
  execTaskCmd = digitalRead(execTaskPin);
  if (execTaskCmd == HIGH || command == "runon") {
    RunProgram();
  } else {
    recArmPosition();
  }
  command = "";
}

GitHub

https://github.com/Mjrovai/MJRoBot-Programmed-Arm

Schémas

Bras Robotique

Schéma sur GitHub

Processus de fabrication

  1. Construire une télécommande Android universelle avec Arduino, 1Sheeld et contrôle IR
  2. Comment les bras robotiques industriels transforment la fabrication : avantages clés
  3. Manipulateurs robotiques vs bras robotiques : différences clés expliquées
  4. Créer des animations et jeux sur LCD avec Arduino UNO
  5. Construire un Voltmètre Intelligent avec Arduino et Smartphone – Projet DIY Facile
  6. Contrôle IoT à Distance d'un Bras Robotique Personnalisé avec Arduino MKR1000
  7. Construire un bras robotique 3D fonctionnel piloté par Arduino – Guide pas à pas
  8. Bras robotique 6 DoF piloté par Nunchuk Wii – Kit Arduino Mega
  9. Construire un voltmètre DIY avec Arduino et écran Nokia 5110