Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

Controle Braço Robótico Arduino via App Android Dedicado

Componentes e Materiais

Aplicativos e Serviços

Sobre o Projeto

O LittleArm era tradicionalmente controlado por um aplicativo desktop gratuito (Windows/Linux), exigindo conexão por cabo ao computador. Agora, com o app Android dedicado, você pode controlar o Arduino sem fio via Bluetooth.

O app permite controlar todos os graus de liberdade (DOF) do LittleArm, além de gravar sequências de comandos e reproduzi-las. O código do Arduino não muda em relação ao código tradicional dos pacotes de software.

O app LittleArm pode ser baixado na página do projeto.

Código do Arduino

#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("iniciado");
  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'); // confirmação de comando concluído
    }
  }

  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 = newPos + 1;
    theServo.write(newPos);
    delay(theSpeed);
    return 0;
  } else if (newPos > (thePos + 5)) {
    newPos = newPos - 1;
    theServo.write(newPos);
    delay(theSpeed);
    return 0;
  } else {
    return 1;
  }
}

Esquemáticos

Diagrama de conexões do LittleArm com Arduino UNO e módulo HC-05 disponível na documentação.

Processo de manufatura

  1. Controle Remoto Universal Android com Arduino, 1Sheeld e IR
  2. Mealheiro Inteligente: Controlar Aceitador de Moedas com Arduino Nano
  3. Controle IoT Remoto de Braço Robótico Personalizado
  4. Robô Desviador de Obstáculos com Servo: Construa com Arduino e HC-SR04
  5. Controlar um LED via Bluetooth com Arduino – Guia DIY Simples
  6. Controlar Roomba Create 2 com Arduino e Android: Guia Passo a Passo
  7. Braço Robótico 6 GDL Controlado por Nunchuk com Arduino Mega
  8. Controle Dois Motores de Passo com Arduino Nano e Joystick – Tutorial Simples
  9. LittleArm 2C: Braço Robótico Arduino 3D-Printado Durável para Educação STEM
  10. ThimbleKrox: Controle de Mouse Dedo-Montado com Arduino Micro e MPU-6050