Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Programmierbarer 3-Achs-Roboterarm – Lokal & Fernsteuerung per Arduino & Bluetooth

Komponenten und Materialien

Arduino Mega 2560 × 1
SainSmart DIY 3-Achs Palettier-Roboterarm für Arduino UNO/MEGA2560 × 1
MeArm DIY Roboterarm Kit × 1
HC-06 Bluetooth Modul × 1
Adafruit RGB Backlight LCD 16x2 × 1
Android Gerät × 1
Drehpotentiometer 10 kOhm × 4
SparkFun Taster 12mm × 3
LEDs (Rot, Blau, Grün, Gelb) × 4

Apps und Online-Dienste

Projektbeschreibung

Programmierbarer 3-Achs-Roboterarm – Lokal & Fernsteuerung per Arduino & Bluetooth

Ziel dieses Tutorials ist die schrittweise Entwicklung eines Projekts zur Steuerung und Programmierung eines Roboterarms, der die Grundfunktionen eines Industrieroboters simuliert.

Schritt 1: Spezifikationen

Programmierbarer 3-Achs-Roboterarm – Lokal & Fernsteuerung per Arduino & Bluetooth

Der Roboter hat zwei Grundfunktionen:

Hauptmerkmale:

Schritt 2: Das Projekt

Programmierbarer 3-Achs-Roboterarm – Lokal & Fernsteuerung per Arduino & Bluetooth

Das Blockdiagramm zeigt die Stückliste. Arduino MEGA gewählt, um I/O-Port-Sorgen zu vermeiden (UNO würde mit Port-Expander z. B. 74138 Decoder funktionieren).

Erster Prototyp in "Local Mode" programmiert. Bluetooth via HC-06. Android-App "MJRoBot Arduino Robot Arm Control" wurde mit MIT App Inventor 2 entwickelt – kostenlos im Google Play Store.

Schritt 3: Projektentwicklung

Programmierbarer 3-Achs-Roboterarm – Lokal & Fernsteuerung per Arduino & Bluetooth

Roboterarme werden nach Gelenken/ DOF klassifiziert:

Schritt 4: Schaltung

Programmierbarer 3-Achs-Roboterarm – Lokal & Fernsteuerung per Arduino & Bluetooth

Servomotoren treiben die Gelenke an, direkt am Arduino angeschlossen. Für Basis-Drehmoment/Präzision sind Schrittmotoren üblich. Servowahl ist kritisch (billige MG995 oft minderwertig – hier für Testzwecke okay).

Servo-Stromversorgung (5-6V extern) getrennt von Arduino. 470µF Kondensatoren zwischen VCC/GND minimieren Motor-Rauschen. Alle GNDs verbinden!

Bei Servo-Vibrationen: Code-Delays anpassen (Servos brauchen Zeit zum Positionieren). Digital (300Hz) vs. Analog (50Hz) Servos beachten – Standard Servo.h ist für analoge Servos.

Schritt 5: Code-Struktur

Viele Variablen → Definitionen in ArmDefine.h auslagern. Enthält Min/Max/Startwinkel für Servos. Zwei Parameter-Sets für getestete Arme (nur eines verwenden):

// 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
*/

Eigene Parameter finden: Potis auf Mittelstellung, PWM Defaults (Max=255, Min=0, Mid=126). Dann Poti für Poti verstellen und im Serial Monitor/LCD min/max Werte notieren, bei denen Arm sauber arbeitet. Diese Werte in ArmDefine.h eintragen.

Positions-Speicherung in Arrays (max 100 Schritte):

int gripPosition[100];
int basePosition[100];
int shouPosition[100];
int elbwPosition[100];
int positionIndex = 0;

Hinweis: Positionen nicht persistent (EEPROM möglich für Speicherung über Neustart hinaus).

Schritt 6: Programmlogik

Haupt-Loop stark vereinfacht:

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

Code aufgeteilt in 4 Dateien:

  1. MJRoBot_Arm_Robot_Task_Prgm.ino – Setup, Loop, Hauptfunktionen
  2. General_Functions.ino – BT-Lesen, Sound, Entprellung
  3. Arm_Ctrl_and_Display.ino – Poti/Slider-Lesen, Servo-Ansteuerung, Display
  4. ArmDefine.h – Konstanten

Video zeigt 4-DOF MeArm per Android-App ferngesteuert.

Vollständiger Quellcode auf GitHub: https://github.com/Mjrovai/MJRoBot-Programmed-Arm

Schritt 7: Fazit

Programmierbarer 3-Achs-Roboterarm – Lokal & Fernsteuerung per Arduino & Bluetooth

Hoffentlich hilft dieses Projekt beim Einstieg in Elektronik, Robotik und IoT! Mehr Projekte auf MJRoBot.org.

Grüße vom anderen Ende der Welt! Bis zum nächsten Tutorial!

Marcelo

Code-Ausschnitte

Servo-Parameter (ArmDefine.h)

// 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

Positions-Arrays

int gripPosition[100];
int basePosition[100];
int shouPosition[100];
int elbwPosition[100];
int positionIndex = 0;

Haupt-Loop

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

GitHub

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

Schaltplan

Roboterarm Schaltplan: GitHub Link

Herstellungsprozess

  1. Universelle Android-Fernbedienung mit Arduino, 1Sheeld & IR-Steuerung
  2. Wie Industrieroboterarme die Fertigung transformieren: Wesentliche Vorteile erklärt
  3. Roboter-Manipulatoren vs. Roboterarme: Wichtige Unterschiede erklärt
  4. LCD-Animationen & Spiele mit Arduino UNO erstellen
  5. Intelligentes Voltmeter mit Arduino & Smartphone bauen – Einfaches DIY-Projekt
  6. Fernsteuerung eines Roboterarms per IoT: Eigenbau mit Arduino MKR1000
  7. Funktionaler 3D-gedruckter Roboterarm mit Arduino – Schritt-für-Schritt-Anleitung
  8. Arduino-basierter 6-DoF Roboterarm mit Nunchuk-Steuerung
  9. DIY-Voltmeter mit Arduino und Nokia 5110 Display – Schritt-für-Schritt-Anleitung
  10. Intelligenter Arduino-Roboterarm bauen: Einfaches DIY-Tutorial