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

Arduino Roboterarm per Android-App & Bluetooth steuern

Komponenten und Materialien

Bauteil Menge
LittleArm Roboterarm 1
Arduino UNO 1
HC-05 Bluetooth-Modul 1
Android-Gerät 1
LittleArm Full Kit 1

Apps und Online-Dienste

Projektbeschreibung

Der LittleArm wurde traditionell per Desktop-App (Windows/Linux) gesteuert – Kabelverbindung nötig. Jetzt gibt es eine Android-App für kabellose Bluetooth-Steuerung.

Die App steuert alle Freiheitsgrade, kann Befehlsfolgen aufzeichnen und abspielen. Der Arduino-Code bleibt unverändert zur Desktop-Version.

App-Download: LittleArm Android App

Arduino Roboterarm per Android-App & Bluetooth steuern

Arduino-Code

#include <Servo.h>
#include <math.h>
#define PI 3.141

Servo baseServo;
Servo shoulderServo;
Servo elbowServo;
Servo gripperServo;

int command;
struct jointAngle { int base; int shoulder; int elbow; };
int desiredGrip;
int gripperPos;
int desiredDelay;
int servoSpeed = 15;
int ready = 0;
struct jointAngle desiredAngle;

int servoParallelControl(int thePos, Servo theServo, int theSpeed);

void setup() {
  Serial.begin(9600);
  baseServo.attach(9);
  shoulderServo.attach(10);
  elbowServo.attach(11);
  gripperServo.attach(6);
  Serial.setTimeout(50);
  Serial.println("started");
  baseServo.write(90);
  shoulderServo.write(150);
  elbowServo.write(110);
  ready = 0;
}

void loop() {
  if (Serial.available()) {
    ready = 1;
    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
    }
  }

  int status1 = 0, status2 = 0, status3 = 0, status4 = 0;
  int done = 0;
  while (done == 0 && ready == 1) {
    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++; theServo.write(newPos); delay(theSpeed); return 0;
  } else if (newPos > (thePos + 5)) {
    newPos--; theServo.write(newPos); delay(theSpeed); return 0;
  } else return 1;
}

Schaltplan

Arduino Roboterarm per Android-App & Bluetooth steuern

Herstellungsprozess

  1. Universelle Android-Fernbedienung mit Arduino, 1Sheeld & IR-Steuerung
  2. Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
  3. Fernsteuerung eines Roboterarms per IoT: Eigenbau mit Arduino MKR1000
  4. Servogesteuerter Hindernisvermeidungs-Roboter: Bauen mit Arduino & HC-SR04
  5. LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
  6. Roomba Create 2 per Arduino & Android steuern – Schritt-für-Schritt
  7. Arduino-basierter 6-DoF Roboterarm mit Nunchuk-Steuerung
  8. Zwei Schrittmotoren mit Arduino Nano & Joystick steuern – Einfaches Tutorial
  9. LittleArm 2C: Robuster 3D-gedruckter Arduino-Roboterarm für STEM-Bildung
  10. ThimbleKrox: Fingermontierte Maussteuerung mit Arduino Micro & MPU-6050