Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Управление манипулятором LittleArm через Android-приложение по Bluetooth

Компоненты и материалы

Название Количество
Набор LittleArm (или 4 сервопривода + рама) 1
Arduino UNO 1
Bluetooth-модуль HC-05 1
Android-смартфон/планшет 1

Приложения и сервисы

О проекте

Ранее LittleArm управлялся только с ПК (Windows/Linux) по USB. Теперь появилось Android-приложение, позволяющее управлять всеми степенями свободы манипулятора по Bluetooth, записывать последовательности команд и воспроизводить их. Код Arduino не изменился — тот же, что и для десктопной версии.

Управление манипулятором LittleArm через Android-приложение по Bluetooth

Код (Arduino)

Скетч принимает по Serial (USB или Bluetooth) целевые углы для базы, плеча, локтя и захвата, а также задержку между кадрами. Сервоприводы двигаются плавно параллельно.

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

Servo baseServo, shoulderServo, elbowServo, gripperServo;
struct JointAngle { int base, shoulder, elbow; };
JointAngle desiredAngle;
int desiredGrip, desiredDelay;
int servoSpeed = 15;
int ready = 0;

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

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'); // подтверждение
    }
  }

  if (ready) {
    int s1=0, s2=0, s3=0, s4=0, done=0;
    while (!done) {
      s1 = servoParallelControl(desiredAngle.base, baseServo, desiredDelay);
      s2 = servoParallelControl(desiredAngle.shoulder, shoulderServo, desiredDelay);
      s3 = servoParallelControl(desiredAngle.elbow, elbowServo, desiredDelay);
      s4 = servoParallelControl(desiredGrip, gripperServo, desiredDelay);
      if (s1 && s2 && s3 && s4) done = 1;
    }
    ready = 0;
  }
}

int servoParallelControl(int target, Servo& sv, int speed) {
  int cur = sv.read();
  if (cur < target - 5) { sv.write(cur + 1); delay(speed); return 0; }
  if (cur > target + 5) { sv.write(cur - 1); delay(speed); return 0; }
  return 1;
}

Схема подключения

Управление манипулятором LittleArm через Android-приложение по Bluetooth

HC-05: VCC → 5V, GND → GND, TX → RX (D0), RX → TX (D1) через делитель напряжения. Сервоприводы: Base → D9, Shoulder → D10, Elbow → D11, Gripper → D6. Питание серв — отдельное 5-6 В / 2А.

Производственный процесс

  1. Универсальный Android-пульт на Arduino, 1Sheeld и ИК-управлении
  2. Умная копилка: управление монетоприёмником на Arduino Nano
  3. Удаленное IoT-управление самодельной манипулятором
  4. Робот-ускользатор на сервоприводе: сборка на Arduino и HC-SR04
  5. Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
  6. Управление Roomba Create 2 через Arduino и Android: пошаговое руководство
  7. Роботизированная рука 6 степеней свободы на Arduino Mega с управлением через Nunchuk
  8. Управление двумя шаговыми двигателями через джойстик на Arduino Nano — простой урок (Visuino)
  9. LittleArm 2C: 3D-печатаемый робот-манипулятор на Arduino для STEM-обучения
  10. ThimbleKrox: управление мышью с пальца на Arduino Micro и MPU-6050