LittleArm 2C: Bouw een Duurzame 3D-geprinte Arduino Robotarm voor STEM Onderwijs
Onderdelen en benodigdheden
| Onderdeel | Aantal |
|---|---|
| Arduino Nano R3 | 1 |
| Servo's (Tower Pro MG996R / MG90S) | 4 |
| Meped Board | 1 |
Benodigde tools
- 3D Printer
Over dit project
De LittleArm 2C is ontworpen als kit voor kinderen, zodat STEM-klassen meer robotica-curriculum kunnen implementeren. Het is robuuster en veel makkelijker te monteren dan eerdere versies.
- Alle delen zijn 3D-printbaar, ontworpen voor een strak, simpel design.
- Hele ontwerp heeft minder dan 15 schroeven.
- Besturing via Windows applicatie (Python) of Bluetooth met Android App.
Volledige assemblage-instructies: hier
3D-print bestanden: hier
Code
LittleArm 2C Arduino Sketch (C/C++)
// LittleArm 2C arduino code
// Seriële besturing van de LittleArm 2C 3D-geprinte robotarm
// Gemaakt door Slant Concepts
#include <Servo.h>
#include <math.h>
#define PI 3.141
Servo baseServo;
Servo shoulderServo;
Servo elbowServo;
Servo gripperServo;
// Globale variabelen
struct jointAngle {
int base;
int shoulder;
int elbow;
};
struct jointAngle desiredAngle;
int desiredGrip;
int gripperPos;
int command;
int desiredDelay;
void setup() {
Serial.begin(9600);
baseServo.attach(5);
shoulderServo.attach(4);
elbowServo.attach(3);
gripperServo.attach(2);
Serial.setTimeout(50);
Serial.println("started");
baseServo.write(90);
shoulderServo.write(100);
elbowServo.write(110);
}
void loop() {
if (Serial.available()) {
// Commando formaat: "base,shoulder,elbow,grip,delay\n"
desiredAngle.base = Serial.parseInt();
desiredAngle.shoulder = Serial.parseInt();
desiredAngle.elbow = Serial.parseInt();
desiredGrip = Serial.parseInt();
desiredDelay = Serial.parseInt();
if (Serial.read() == '\n') {
Serial.flush();
Serial.print('d'); // "done executing"
}
}
int status1 = 0, status2 = 0, status3 = 0, status4 = 0;
int done = 0;
while (done == 0) {
status1 = servoParallelControl(desiredAngle.base, baseServo, desiredDelay);
status2 = servoParallelControl(desiredAngle.shoulder, shoulderServo, desiredDelay);
status3 = servoParallelControl(desiredAngle.elbow, elbowServo, desiredDelay);
status4 = servoParallelControl(desiredGrip, gripperServo, desiredDelay);
if (status1 == 1 && status2 == 1 && status3 == 1 && status4 == 1) {
done = 1;
}
}
}
int servoParallelControl(int thePos, Servo theServo, int theSpeed) {
int startPos = theServo.read();
int newPos = startPos;
if (startPos < (thePos - 5)) {
newPos = newPos + 1;
theServo.write(newPos);
delay(theSpeed);
return 0; // Nog niet aangekomen
} else if (newPos > (thePos + 5)) {
newPos = newPos - 1;
theServo.write(newPos);
delay(theSpeed);
return 0;
} else {
return 1; // Binnen bereik (±5 graden)
}
}
Schema
Alleen 4 verbindingen nodig als je de Meped Board gebruikt waar de LittleArm voor ontworpen is.
Productieproces
- Bouw een Bluetooth-gecontroleerde Raspberry Pi Robot met Audio Feedback
- Bouw een Internet-gecontroleerde Video-streamende Robot met Arduino & Raspberry Pi
- MeArm robotarm V1.0 – Bouw je eigen Arduino- en Raspberry Pi-aangedreven robotarm
- Bouw Een Autonome Lijnvolgende Robot Met Arduino UNO
- Bouw een Functionele, Arduino-aangedreven 3D-geprinte Robotarm – Stap-voor-Stap Handleiding
- Arduino-gebaseerde 6-DoF Robotarm Gestoeerd met Wii Nunchuk
- Bouw een Stemgecontroleerde Robot met Arduino Nano
- Ethernet-gestuurde robotarm: Remote control gemaakt simpel
- PiBot: De Arduino-aangedreven pianorobot voor precisiemuziek
- Haddington Dynamics: De Open-Source, High-Performance Dexter 3D-geprinte Robotarm
- Dual-Arm SCARA Robot: Geavanceerde Montage- & Productieoplossingen