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

Contrôle à Distance d'un Bras Robot 6-DOF Arduino via Interface Web

Composants et Fournitures

Composant Description Qté
Arduino UNO 1
Shield PHPoC WiFi pour Arduino Serveur web + WebSocket embarqué 1
Bras Robot 6 DOF 6 servomoteurs 1

À Propos du Projet

Prérequis recommandés : tutoriels Arduino Moteur, Servomoteur, WiFi.

1. Démonstration

Interface web (HTML5/JS/CSS) contrôle les 6 moteurs du bras :

2. Architecture Système

Client (navigateur) ↔ WebSocket ↔ Arduino (PHPoC Shield) → 6 servos. Alimentation externe pour les 6 moteurs.

3. Flux de Travail

Côté Client (JavaScript)

Événements tactile/souris → coordonnées (x,y) → selon zone :

Envoi angles via WebSocket (format "a1,a2,a3,a4,a5,a6\r\n").

Côté Serveur (Arduino)

Réception angles cibles → mouvement fluide : tous moteurs démarrent/arrêtent ensemble.

Algorithme par moteur :

step_num = max(|angle_cible - angle_actuel| / step_i) sur 6 moteurs
Répéter step_num fois :
  angle_actuel[i] += (angle_cible[i] - angle_actuel[i]) / step_num
  limiter à [min_i, max_i]
  servo[i].write(angle_actuel[i])
  delay(20 ms)

Chaque moteur a son step_i (degrés par pas) pour vitesse adaptée.

4. Calcul Géométrique Inverse (Zone A)

Problème : point C fixe, point D (cible utilisateur) connu, longueurs segments b=CB, a=BA, d=AD. Hypothèse : angles B et A égaux (α).

Résolution :

  1. c = distance CD, δ = atan2(Dy-Cy, Dx-Cx).
  2. Triangle ABE : AE=BE, ∠E = π-2α.
  3. Loi des cosinus dans CDE → équation quadratique en cos(α).
  4. Résoudre → α → β = π-α (angles moteurs 3,4).
  5. Loi des cosinus dans BDC et BDA → γ.
  6. Angles finaux : Moteur2 = δ+γ, Moteur3 = β, Moteur4 = β.

5. Code Source

Deux fichiers :

RobotArmWeb.ino (extrait principal)

#include 
#include 

int angle_init[] = {90, 101, 165, 153, 90, 120};
int angle_offset[] = {0, 11, -15, -27, 0, 137};
int cur_angles[6], dest_angles[6];
int angle_max[] = {180, 180, 160, 120, 180, 137};
int angle_min[] = {0, 0, 0, 20, 0, 75};
int direction[] = {1, 1, 1, 1, 1, -1};
int angleSteps[] = {3, 2, 2, 2, 4, 4};

Servo servo[6];
PhpocServer server(80);
int stepNum = 0;

void setup() {
  Serial.begin(9600);
  Phpoc.begin(PF_LOG_SPI | PF_LOG_NET);
  server.beginWebSocket("remote_arm");
  for (int i=0; i<6; i++) {
    servo[i].attach(2+i);
    servo[i].write(angle_init[i]);
    cur_angles[i] = angle_init[i];
  }
}

void loop() {
  PhpocClient client = server.available();
  if (client) {
    String angleStr = client.readLine();
    if (angleStr) {
      // parse 6 angles séparés par virgules
      // appliquer direction[] et angle_offset[]
      // calculer stepNum = max diff / angleSteps
    }
  }
  if (stepNum > 0) {
    for (int i=0; i<6; i++) {
      int move = (dest_angles[i] - cur_angles[i]) / stepNum;
      cur_angles[i] += move;
      cur_angles[i] = constrain(cur_angles[i], angle_min[i], angle_max[i]);
      servo[i].write(cur_angles[i]);
    }
    stepNum--;
    delay(20);
  }
}

remote_arm.php (points clés)

Schéma

Alimentation externe requise pour les 6 servomoteurs. Voir image de câblage.

Processus de fabrication

  1. Simple Pi Robot – Construire un rover autonome 2 roues motrices avec Raspberry Pi
  2. Centre de contrôle d'alimentation Arduino : N-FET, P-FET, Relais et RTC
  3. Contrôle IoT à Distance d'un Bras Robotique Personnalisé avec Arduino MKR1000
  4. Robot Évitement d'Obstacles Piloté par Servomoteur : Construction avec Arduino et HC-SR04
  5. Créez un robot suiveur de ligne autonome avec Arduino UNO
  6. Contrôleur d'humidificateur DIY avec Arduino et relais – Installation haute tension sécurisée
  7. Arduino UNO & Shield WiFi : Affichage température temps réel sur le Web via série
  8. LittleArm 2C : Bras Robot 3D Imprimé Arduino pour Éducation STEM
  9. Kit de robot de navigation intérieure intelligente pour projets Arduino