Precisie joystick-controller voor MeArm-robot – Coördinaten opnemen & afspelen met Arduino Uno
Onderdelen en benodigdheden
| Arduino UNO | 1 |
| Analoog joystick (Generiek) | 2 |
| Weerstand 10k ohm | 2 |
| Weerstand 680 ohm | 1 |
| 5 mm LED: Rood | 1 |
| Micro servo SG90 | 4 |
Apps en online diensten
- Arduino IDE
Over dit project
Arduino Uno joystick-controller voor robotarm (MeArm®) met opname van coördinaten. Laat toe om opgenomen coördinaten één keer af te spelen bij druk op knop, of herhaaldelijk. Gebruikt Arduino Uno basisbord zonder extra borden. Vereist USB-verbinding (2A) of 6V / 2A voeding. Getest met vier SG90-servos.
Druk op knop op joystick1 om opname van coördinaten te starten. Druk opnieuw op knop op joystick1 om opname te stoppen.
Druk op knop op joystick2 om afspelen van opgenomen coördinaten te starten. Druk opnieuw op knop op joystick2 om afspelen te stoppen. Houd knop op joystick2 ingedrukt om automatisch in cyclus af te spelen.
Memo: We hebben ook een eenvoudigere versie van deze software gemaakt die geen extra weerstanden en LED-diode vereist: MeArm Robot - Recording of Coordinates (Minimalized Version).
Als je een MeArm-joystickbord hebt, is er een versie voor jou: MeArm 1.6.1 Robot Joystick Board Recording Movements (IR).
Code
Arduino Joystick-controller voor MeArm® robot met opname van coördinaten (versie 1.3.1)
/* meArm analog joysticks versie 1.3.1 - UtilStudio.com Dec 2018
Gebruikt twee analoge joysticks en vier servos.
In versie 1.3 was opname van coördinaten verbeterd. Enkele bugs verwijderd.
...
*/
#include <Servo.h>
bool repeatePlaying = false;
int delayBetweenCycles = 2000;
int basePin = 11;
int shoulderPin = 10;
int elbowPin = 9;
int gripperPin = 6;
int xdirPin = 0;
int ydirPin = 1;
int zdirPin = 3;
int gdirPin = 2;
int pinRecord = PD2;
int pinPlay = PD3;
int pinLedRecord = PD4;
bool useInternalPullUpResistors = false;
const int buffSize = 512;
int startBase = 90, startShoulder = 90, startElbow = 90, startGripper = 0;
int posBase = 90, posShoulder = 90, posElbow = 90, posGripper = 0;
int lastBase = 90, lastShoulder = 90, lastElbow = 90, lastGripper = 90;
int minBase = 0, maxBase = 150;
int minShoulder = 0, maxShoulder = 150;
int minElbow = 0, maxElbow = 150;
int minGripper = 0, maxGripper = 150;
const int countServo = 4;
int buff[buffSize];
int buffAdd[countServo];
int recPos = 0, playPos = 0;
int buttonRecord = HIGH, buttonPlay = HIGH;
int buttonRecordLast = LOW, buttonPlayLast = LOW;
bool record = false, play = false, debug = false;
String command = "Manual";
int printPos = 0;
int buttonPlayDelay = 20, buttonPlayCount = 0;
bool ledLight = false;
Servo servoBase, servoShoulder, servoElbow, servoGripper;
void setup() {
Serial.begin(9600);
if (useInternalPullUpResistors) {
pinMode(pinRecord, INPUT_PULLUP);
pinMode(pinPlay, INPUT_PULLUP);
} else {
pinMode(pinRecord, INPUT);
pinMode(pinPlay, INPUT);
}
pinMode(xdirPin, INPUT);
pinMode(ydirPin, INPUT);
pinMode(zdirPin, INPUT);
pinMode(gdirPin, INPUT);
pinMode(pinLedRecord, OUTPUT);
servoBase.attach(basePin);
servoShoulder.attach(shoulderPin);
servoElbow.attach(elbowPin);
servoGripper.attach(gripperPin);
StartPosition();
digitalWrite(pinLedRecord, HIGH);
delay(1000);
digitalWrite(pinLedRecord, LOW);
}
void loop() {
// ... (volledige code zoals in origineel)
}
Schema's
Joystick-controller voor MeArm® robot met opname van coördinaten - schematisch diagram
Testbord met alleen twee servos aangesloten. Zie schematisch diagram om 4 servomotoren aan te sluiten.
Productieproces
- DIY Arduino USB Gaming Controller – Bouw Je Eigen High-Performance Gamepad
- MeArm robotarm V1.0 – Bouw je eigen Arduino- en Raspberry Pi-aangedreven robotarm
- Een oude RC-auto ombouwen tot joystick-gestuurd voertuig met Arduino
- Bouw Een Autonome Lijnvolgende Robot Met Arduino UNO
- Bouw een eenvoudige rekenmachine met Arduino UNO – Makkelijk project
- Bouw een Stemgecontroleerde Robot met Arduino Nano
- Een draagbaar Persistence-of-Vision-display bouwen met Arduino UNO en ATtiny85
- Bouw een Aangepaste Arduino Joystick Stuurwiel voor Gaming
- Arduino DMX-512 Tester Controller – Complete Onderdelenkit voor Betrouwbare Verlichtingsbesturing
- Slimme temperatuurbewaking met Arduino en Bluetooth op smartphone
- Slim Indoor Navigatie Robot Kit voor Arduino Projecten