Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

DIY Handgebaren-gestuurde Arduino Robotarm – Stap‑voor‑Stap Bouwhandleiding

Onderdelen en Benodigdheden

OnderdeelAantal
Arduino UNO (robotarm)1
Arduino Nano R3 (handskoen)1
JLCPCB Custom PCB (optioneel)1
Servomotor MG996R6
5V Batterijpakket (bijv. 2200mAh RC)1
PCA9685 16-kanaal Servodriver (I²C)1
HC-05 Bluetooth-module2
A4988 Stappenmotordriver1
NEMA-17 Stappenmotor (basisrotatie)1
Breadboard1
IMU (MPU6050, 6 DoF)1
Flex Sensor1
3D-geprinte robotarm-onderdelen (Thingiverse)1 set
3D-geprinte handskoen/exoskelet (optioneel)1

Benodigde Gereedschappen

  • 3D-printer (voor arm- en handskoen-onderdelen)

Over dit Project

Introductie: Geïnspireerd op films als Pacific Rim en Avatar, bouwen we een industriële robotarm op kleine schaal die wordt bestuurd door menselijke handgebaren. Dit is MARK 1 – de eerste iteratie.

Kenmerken MARK 1

  • 6-as rotatie
  • Draagbaar
  • Besturing via handgebaren (handskoen)
  • Voorprogrammeerbaar voor basis taken
  • Draadloze besturing (Bluetooth)
  • Tilvermogen: 600g (max 1kg)

Overzicht

We bouwen een 6-as robotarm die wordt bestuurd door een robotische handskoen. Natuurlijke gebaren (knijpen, polsrotatie) vertalen naar openen/sluiten van de gripper, rotatie van de arm, etc. De handskoen stuurt via Bluetooth (HC-05) commando's naar de arm.

Onderdelenlijst & 3D-print

Hoe het Werkt

Signaalstroom: Handskoen-sensors (flex, IMU) → Arduino Nano → Bluetooth Master (HC-05) → Bluetooth Slave (HC-05) op arm → Arduino UNO → PCA9685 servodriver → Servomotoren. Voor basissrotatie: Arduino UNO → A4988 → NEMA-17.

Sensoren in handskoen:

  • Flex sensors: Weerstand verandert bij buigen → detecteer vingermovements.
  • Accelerometer (MPU6050): Detecteer pols/arm rotatie (X, Y, Z).

Elke gebaar wordt gemapt op een karakter (bijv. 'f' = gripper dicht, 'F' = gripper open, 'S' = basis links) en via Bluetooth verzonden.

Robotarm Mapping

Een mapping-tabel koppelt ontvangen karakters aan specifieke servo-acties (zie originele artikel). Hoofdletters = tegengestelde richting.

Montage

  1. Robotarm: 3D-print en assembleer volgens Thingiverse-instructies. Gebruik de juiste schroeven/moeren.
  2. Servodriver & Voeding: Sluit PCA9685 aan op Arduino UNO (I²C: SDA A4, SCL A5). Voed servos vanuit externe 5V/2A+ bron (niet van Arduino!).
  3. NEMA-17 voor Basis: De MG996R is te zwak voor basisrotatie. NEMA-17 met A4988 biedt hoge koppel en precisie.
  4. Complete Bedrading: Zie schema voor alle verbindingen inclusief Bluetooth-modules.

Bluetooth Configuratie

ModuleRolInstelling
Handskoen HC-05MasterBaud 4800, AT+ROLE=1, AT+BIND=<slave_adres>
Arm HC-05SlaveBaud 4800, AT+ROLE=0

Programmeren – Robotarm (Arduino UNO)

Gebruikt de HCPCA9685 bibliotheek. Belangrijke code-fragmenten:

#include "HCPCA9685.h"
#define I2CAdd 0x40
HCPCA9685 HCPCA9685(I2CAdd);

// Parkeerposities, incrementen, min/max per servo
const int servo_joint_L_parking_pos = 60;
int servo_joint_L_pos_increment = 20;
int servo_joint_L_parking_pos_i = servo_joint_L_parking_pos;
int servo_joint_L_min_pos = 10;
int servo_joint_L_max_pos = 180;

void setup() {
  Serial.begin(4800); // Bluetooth baudrate
  HCPCA9685.Init(SERVO_MODE);
  // Initialiseer alle servos op parkeerpositie
}

void loop() {
  if (Serial.available() > 0) {
    char state = Serial.read();
    // Voorbeeld: basisrotatie links
    if (state == 'S') { baseRotateLeft(); delay(5); }
    // Gripper open/dicht
    if (state == 'f') { // dicht
      if (servo_joint_3_parking_pos_i < servo_joint_3_max_pos) {
        HCPCA9685.Servo(4, servo_joint_3_parking_pos_i);
        servo_joint_3_parking_pos_i += servo_joint_3_pos_increment;
      }
    }
    // ... overige cases voor elke servo
  }
}

void baseRotateLeft() {
  digitalWrite(stepPin, LOW);
  delayMicroseconds(stepDelay);
}

Let op: Hard stops voorkomen overschrijding van max hoek (bescherming tandwielen).

Programmeren – Handskoen (Arduino Nano)


// Sensor pinnen
int pinkie_Data = A1;
int finger_Data = A2;
int thumb_Data = A3;
const int MPU1 = 0x68, MPU2 = 0x69; // I²C adressen MPU6050

int response_time = 1000;
bool calibrated = false;
int thumb_high, thumb_low, finger_high, finger_low, pinkie_high, pinkie_low;

void loop() {
  // Lees flex sensors
  int pinkie = analogRead(pinkie_Data);
  int finger = analogRead(finger_Data);
  int thumb = analogRead(thumb_Data);

  // Lees IMU's
  GetMpuValue1(MPU1);
  GetMpuValue2(MPU2);

  // Eerst calibreren (bij reset)
  if (!calibrated) {
    delay(1000);
    thumb_high = thumb * 1.15; thumb_low = thumb * 0.90;
    finger_high = finger * 1.03; finger_low = finger * 0.80;
    pinkie_high = pinkie * 1.06; pinkie_low = pinkie * 0.80;
    calibrated = true;
  }

  // Gesture detectie & verzenden
  if (finger >= finger_high) { Serial.print("F"); delay(response_time); } // open
  if (finger <= finger_low)  { Serial.print("f"); delay(response_time); } // dicht
  // ... vergelijkbaar voor pinkie, thumb, IMU-gebaren
}

Resultaat & Volgende Stappen

De arm kan objecten oppakken en verplaatsen. Precisie kan verbeterd worden door code-optimalisatie en betere calibratie. De code is open source op GitHub – bijdragen zijn welkom!

Volgende stappen (MARK 2): Verbeterde mechanica, krachtmeting, autonom navigatie, meer sensoren.

CAD-bestanden (Thingiverse)

Productieproces

  1. Bouw een Bluetooth-gecontroleerde Raspberry Pi Robot met Audio Feedback
  2. Bouw je eigen DIY huiswerk-schrijfmachine thuis
  3. Bouw een Android-bestuurd extern voertuig met Raspberry Pi Motor Shield
  4. Servo-gestuurde obstakelvermijdende robot: Bouw met Arduino & HC-SR04
  5. Bouw Een Autonome Lijnvolgende Robot Met Arduino UNO
  6. Arduino-gebaseerde 6-DoF Robotarm Gestoeerd met Wii Nunchuk
  7. Bouw een Stemgecontroleerde Robot met Arduino Nano
  8. Ethernet-gestuurde robotarm: Remote control gemaakt simpel
  9. MobBob: Bouw Je Eigen Arduino Robot, Naadloos Bestuurd via Android Smartphone
  10. PiBot: De Arduino-aangedreven pianorobot voor precisiemuziek
  11. Slim Indoor Navigatie Robot Kit voor Arduino Projecten