Bouw een Precieze PC-bestuurde Robotarm met Arduino Nano & Tower Pro MG996R Servo's
Componenten en benodigdheden
| Arduino Nano R3 | × | 1 |
| Servo's (Tower Pro MG996R) | × | 4 |
Apps en online services
- Microsoft Visual Studio 2015 - voor de C# Windows Automation-applicatie
- Arduino IDE - voor programmeren van de Arduino
Over dit project
Deze robotarm is geïnspireerd op moderne productietechnologieën en hun cruciale rol in fabricage: tillen, monteren, lassen, snijden en magazijntoepassingen. De arm is gebaseerd op een ontwerp van fortzeroas (2016), maar in plaats van handmatige bediening is er een volledige automatiseringsapplicatie ontwikkeld in C# Windows Forms die lijkt op industriële automatiseringsoftware.
Stap 1: Materiaal
De hoofdstructuur is gemaakt van MDF-hout: 2 mm dik voor de armen en 4 mm voor de basis. Blauwdrukken zijn beschikbaar voor download; deze worden uitgeprint, op het hout geplakt en uitgezaagd. Gaten worden geboord met een draai gereedschap (rotary tool).
Stap 2: Schilderen en Styling
Voor een realistisch uiterlijk zijn de blauwdrukken gebruikt als basis voor decals en geometrische patronen, ontworpen in Photoshop en met witlijm op het hout aangebracht.
Stap 3: Frame Montage
De montage is eenvoudig dankzij de voorbereide ontwerpen. Servo's worden met schroeven bevestigd. De linker- en rechterkant worden met dikke houten stokken en superlijm verbonden (in plaats van lange schroeven) om gewicht te besparen.
Stap 4: Grijper (Klemmechanisme)
Twee metalen staven worden met een tang gebogen. Een gat van 3 mm wordt in een 3 mm dik houten stuk geboord en met superlijm bevestigd.
Stap 5: Basis Maken
De basis is 4 mm MDF, ongeveer 17×10 cm, uitgezaagd met een tafelzaag. Een gat voor de basisservo (9g) wordt geboord. Om wrijving te verminderen wordt een kartonnen cilinder (2,5 cm hoog, 10 cm diameter) gebruikt tussen basis en servo-as.
Stap 6: Electronica
Bij meer dan twee servo's is een externe voeding noodzakelijk. Hier worden 3 micro-servo's (9g) en 1 grote servo gebruikt. De eerste test was virtueel op Tinkercad. De voeding bestaat uit 4× AA-batterijen (1,5V = 6V totaal). Na een breadboard-test is een eenvoudige uitbreidingsdock voor de Arduino Nano gemaakt.
Stap 7: Arduino Code
Twee codebestanden: Task.ino en RobotArm.ino. De code ondersteunt handmatige besturing via seriële commando's (toetsenbord), vaste posities (Pakken, Neerleggen, Home), en een Playback() functie voor geautomatiseerde reeksen die vanuit de C#-applicatie worden gestuurd in formaat servoId:hoek&servoId:hoek.
Stap 8: Automatiseringsapplicatie (C# Windows Forms)
De applicatie biedt drie hoofdmodi:
- Bewegingsbesturing (Handmatig): Trackbars en toetsenbord voor Base (links/rechts), Schouder (omhoog/omlaag), Elleboog (W/S), Grijper (Open/Dicht).
- Bewegingsopname: Posities opslaan met "Rec. Position" (toets R). De applicatie detecteert welke servo bewogen is en slaat de hoek op. "Start Auto mood" speelt de reeks af.
- Monitoring: Grafische weergave van elke stap + datatabel met exacte hoeken en tijden.
Dit maakt het mogelijk om taken te programmeren net als in industriële automatisering.
Stap 9: Updates (augustus 2018)
Een nieuwe versie gelaserct uit 3 mm MDF met een aangepaste joystick voor verbeterde bediening.
Code
Task.ino
int delayT = 350;
void Home() {
MyServo0.write(valGripper); delay(15);
MyServo.write(valBase); delay(30);
MyServo2.write(valShoulder); delay(30);
MyServo3.write(valElbow); delay(delayT);
}
void Pick() { /* vaste pak-positie */ }
void Drop() { /* vaste neerleg-positie */ }
void Playback() {
char* command = strtok(ByteReceived, "&");
while (command != 0) {
char* separator = strchr(command, ':');
if (separator != 0) {
*separator = 0;
int servoId = atoi(command);
++separator;
int angle = atoi(separator);
if (servoId == 1) { MyServo.write(angle); delay(delayT); }
else if (servoId == 2) { MyServo2.write(angle); delay(delayT); }
else if (servoId == 3) { MyServo3.write(angle); delay(delayT); }
}
command = strtok(0, "&");
}
}
RobotArm.ino
#include <Servo.h>
Servo MyServo, MyServo2, MyServo3, MyServo0;
char ByteReceived;
int valGripper = 30, valBase = 70, valShoulder = 25, valElbow = 150;
void setup() {
Serial.begin(9600);
MyServo0.attach(12); MyServo.attach(11); MyServo2.attach(13); MyServo3.attach(10);
Home(); delay(300);
}
void loop() {
// Seriële output van huidige posities
while (Serial.available() > 0) {
ByteReceived = Serial.read();
switch (ByteReceived) {
case 'l': case 'r': /* Base links/rechts */ break;
case 'u': case 'd': /* Elleboog omhoog/omlaag */ break;
case 'w': case 's': /* Schouder omhoog/omlaag */ break;
case 'o': case 'c': /* Grijper open/dicht */ break;
case 'q': Pick(); Drop(); Home(); break; // Snelle demo
case 'h': Home(); break; // Noodstop
default: Pick(); Playback(); Home(); break; // Automatische modus
}
}
}
Aangepaste onderdelen en behuizingen
f98t2axin238k2n_khGWAEIqdl.skp (SketchUp bestand)
Schema's
Schakelschema beschikbaar als afbeelding.
Productieproces
- Externe IoT-besturing van een zelfgebouwde robotarm
- Bouw een Functionele, Arduino-aangedreven 3D-geprinte Robotarm – Stap-voor-Stap Handleiding
- Arduino-gebaseerde 6-DoF Robotarm Gestoeerd met Wii Nunchuk
- Ethernet-gestuurde robotarm: Remote control gemaakt simpel
- Industriële robotarmen: De productierevolutie aan het drijven
- SCARA Robotmarkt Groeit naar $14,78 miljard in 2026, Drijft Automatiseringsgroei
- Hoe Robotarmen Gemaakt Worden: Ontwerp en Functie
- Hoe Industriële Robotarmen De Productie Transformeren: Belangrijkste Voordelen
- Industriële Robotarmen: Productie-efficiëntie en Waarde van de Arbeidskracht Verhogen
- Hydraulische Robotarmen in de Productie: Complete Expert Gids
- Makerarm: De All-in-One Desktop Robotarm voor Makers