Construir un brazo Robot de 5 ejes con Arduino y DynamixShield (18 / 19 paso)

Paso 18: Programa el brazo.

Usted puede encontrar el bosquejo que controla el brazo del robot en el repositorio de github en DynamixShield/apuntes/RobotArm. Voy a explicar brevemente las partes principales del bosquejo.

1. en primer lugar, debe incluir la clase DynamixSerial. Esta clase es lo que usted utilizará para comunicarse con los servos Dynamixel.

#include

2. a continuación tenemos algunas variables para asignar los pines de los sensores de presión y palanca de mando y seguimiento de los movimientos de servo.

#define SERVO_COUNT 5

#define AXIS_COUNT 4

Estas constantes no va a cambiar. Son utilizados para dar nombres

para los pernos utilizan:

const int x1Pin = A0;

const int y1Pin = A1;

const int x2Pin = A2;

const int y2Pin = A3;

const int pressurePin = A11;

Índice de la matriz de AxisPos que controla la apertura y cierre de pinza

const int gripperCloseIdx = 1;

const int gripperOpenIdx = 3;

const int gripperIdx = 4;

int servoPos [SERVO_COUNT];

servoDir int [SERVO_COUNT];

int servoAdd [SERVO_COUNT];

axisID int [AXIS_COUNT];

int axisPos [AXIS_COUNT];

int gripPressure = 0;

3. a continuación declaramos la clase DynamixelSerial. Esta clase asume que está utilizando Serial1 para comunicaciones a los servos Dynamixel. Sin embargo, si pasa en un puerto serial hardware puede reemplazarlo. Esto es por lo que el software puede utilizarse en proyectos personalizados que no usan el DynamixShield.

DynamixelSerial Dynamixel;

4. la siguiente parte más importante es la configuración. Se inicio nuestra conexión en serie de depuración y luego comenzar la clase de DynamixelSerial. Por defecto una tarifa de comunicaciones 1 Mbaud y el pin que utiliza para controlar el medio-duplex del protocolo Dynamixel está basado en el tablero que se utiliza. Así sucesivamente un debido es pin 22, pero en el cero es pin 2. Sin embargo, también tienes la opción de especificar estos parámetros en la llamada al método begin para reemplazar lo que se utiliza para proyectos personalizados.

#ifdef ENABLE_DEBUG

Serial.Begin(57600);

mientras (!. Serie);

Serial.println ("configuración inicial");

#endif

Dynamixel.Begin (); o Dynamixel.begin (1000000, 22);

5. configuración entonces tiene algo de código para restablecer todos los servos a la posición predeterminada para prepararse para el movimiento. También restablece todas las variables a su estado predeterminado.

6. el bucle de procesamiento principal es bastante simple. Solo llama processJoysticks() y luego retrasos de 20 milisegundos.

void loop () {}

processJoysticks();

Delay (20);

}

7. el método de la palanca de mando de proceso tiene un lazo que pasa por cada eje del joystick y lee el valor analógico del joystick.

void processJoysticks() {}

String servoPosReport = "", servoAddReport = "", axisReport = "";

Lectura analógica de valor:

para (int i = 0; i

axisPos [i] = analogRead(axisID[i]);

8. luego escala el valor de la palanca de mando entre 255 y 755 en un valor entre -5 y 5. Si el valor es superior a 1020 entonces significa que estamos presionando hacia abajo en el joystick para cerrar las mordazas de la pinza, así que dejaremos el método de sujeción proceso lidiar con eso.

Si es mayor de 1020, que se presiona el botón.

Si {} (axisPos [i] < 1020)

servoAdd [i] = mapa (axisPos [i], 255, 755, -5, 5);

}

Else {}

servoAdd [i] = 0;

}

9. a continuación añadimos el valor de movimiento a la posición de los servos.

Si ((servoPos [i] + servoAdd[i]) > = 0 & & (servoPos [i] + servoAdd [i] < 1024)) {}

servoPos [i] += (servoDir [i] * servoAdd[i]);

}

10. Si hemos tenido movimiento en este eje establecemos la nueva posición del servo.

Si (servoAdd [i]! = 0) {}

Dynamixel.moveSpeed (i + 1, servoPos [i], 150); Delay(10);

}

11. Finalmente, llama processGripper. Que métodos comienza por leer la señal analógica del sensor de presión.

void processGripper (String & servoPosReport, String & servoAddReport) {}

gripPressure = analogRead(pressurePin);

12. empuja hacia abajo en el joystick derecho cierra la girpper, mientras empuja hacia abajo en el joystick izquierdo abre. El método comprueba esto por ver si la posición del eje de la posición de pinza estrecha o abierta es igual a 1023. Este es el valor leído de la palanca de mando cuando está presionando hacia abajo en él. Si es hacia abajo y luego fijamos el servo agregar para ser más o menos 10. De lo contrario, añade cero.

Si (axisPos [gripperCloseIdx] == 1023) {}

Si {} (gripPressure < 850)

servoAdd [gripperIdx] = -10;

}

}

else if (axisPos [gripperOpenIdx] == 1023) {}

servoAdd [gripperIdx] = 10;

}

Else {}

servoAdd [gripperIdx] = 0;

}

13. establecemos la posición del servo mientras permanezca en 0 y 512. La garra no puede mover más.

Si ((servoPos [gripperIdx] + servoAdd[gripperIdx]) > = 0
& & (servoPos [gripperIdx] + servoAdd [gripperIdx] < = 512)) {}

servoPos [gripperIdx] += (servoDir [gripperIdx] * servoAdd[gripperIdx]);

}

14. por último, si agregamos a la posición entonces necesitamos establecer la nueva posición del servo de la pinza.

Si (servoAdd [gripperIdx]! = 0) {}

Dynamixel.moveSpeed (gripperIdx + 1, servoPos [gripperIdx], 150);

}

Y eso es todo. Hay algunas otras cosas en el sketch que no discutir aquí, sino que es principalmente para propósitos de depuración. Usted puede activar la depuración por tenga //#define ENABLE_DEBUG 1 línea en la parte superior. Esto imprimirá lo que está sucediendo como ejecutar el sketch. Utilice el IDE de Arduino para programar el bosquejo en el microcontrolador y permite ejecuta nuestro nuevo brazo robot!

Artículos Relacionados

Brazo robot de 20 € controlada por arduino

Brazo robot de 20 € controlada por arduino

En este intrsuctable voy a mostrarte cómo hacer un brazo robot simple. Los créditos para el brazo del robot va a este chico: allí se puede ver cómo montar el brazo robot, desgraciadamente él utiliza un 25 €, - polulu driver para controlar su robot br
Brazo Robot de 4 ejes DIY

Brazo Robot de 4 ejes DIY

Hice este proyecto principalmente a aprender utilizar servos con arduino. Por supuesto puedo comprar kit de brazo robot como el MeArm y empezar a programar, pero lo que desde el principio te enseñan más. Quería diseñar el brazo simple como sea posibl
Robot de gesto controlado con Arduino

Robot de gesto controlado con Arduino

Este gesto controlado utiliza robot Arduino, acelerómetro ADXL335 y par transmisor/receptor de RF.Dividiremos el robot entero en 3 partes el emisor, el receptor y el robot.Los diferentes gestos que se ha asignado a la dirección de los bot son-Mano pa
Interfaz de BMG160 de Sensor giroscopio de 3 ejes con Arduino Nano

Interfaz de BMG160 de Sensor giroscopio de 3 ejes con Arduino Nano

En el mundo de hoy, más de la mitad de los jóvenes y los niños son aficionada a juegos de azar y todos aquellos que gustan de él, fascinado por los aspectos técnicos del juego sabe la importancia de la detección de movimiento en este dominio. Nos sor
Construir un semi inteligente, bricolaje del barco con Arduino y algunos otros sensores

Construir un semi inteligente, bricolaje del barco con Arduino y algunos otros sensores

esto de base para la construcción de un barco de la botella de agua, con algunas adiciones para la evitación del obstáculo y guiada por la luz de control. Utilizar Arduino como un microcontrolador, un sensor de ultrasonidos en el frente, unos simples
Construir una gato basura caja del ventilador con Arduino

Construir una gato basura caja del ventilador con Arduino

una caja de litera de gato de refugio es una gran manera de hacer su apartamento parezca una residencia para adultos en lugar de las señoras de gato loco. ¿Una camada oculta de la caja en un armario, debajo de un fregadero, o construido en algunos ot
Brazo de robot de 3 ejes casera construida Arduino Uno

Brazo de robot de 3 ejes casera construida Arduino Uno

Hola chicos,Este es un brazo de robot de 3 ejes con tarjeta de arduino uno, he encontrado nada que pueda usar como un brazo usé plástico gobernantes montados con pegamento. No tengo suficientes pines en la tarjeta de arduino para poner un motor de C.
Cómo hacer brazo robot basado en Adunio de una impresora 3D y iphone 6s en una camara PTZ

Cómo hacer brazo robot basado en Adunio de una impresora 3D y iphone 6s en una camara PTZ

Después de día y trabajo de noche, finalmente hicimos Dobot una impresora 3D de alta precisión del brazo! Es diferente de la tradicional impresora 3D Delta y XYZ. Puede ser el primer brazo robótico escritorio que puede utilizarse para la impresión 3D
La realización de un cardán sin cepillo bricolaje con Arduino

La realización de un cardán sin cepillo bricolaje con Arduino

Esta es una historia de mi tercer proyecto con gyro barato y Arduino.Después de los anteriores dos proyectos, Péndulo invertido fácil y caligrafía 3D, he pensado de hacer Cámara de cardán con Arduino. Luego tenía las tres políticas para el proyecto.E
Construir un Laser de corte y soldadura con brazo Robot Dobot

Construir un Laser de corte y soldadura con brazo Robot Dobot

En este proyecto instructable, construimos un laser de corte y soldadura con brazo Dobot. La alta precisión Dobot brazo de robot se compone de marco 6061 y fabricada con CNC. Su precisión de maquinaria es de 0,02 mm y precisión de la repetición es 0,
Control de ArmLinkLibrary-master brazo Robot con brazo Link Software

Control de ArmLinkLibrary-master brazo Robot con brazo Link Software

¿Quieres ser cool como Simone Giertz pero ArmLinkSerial n ' t sabe dónde empezar?El brazo InterbotiX enlace de Software proporciona una interfaz simple para GlobalArm.h -compatible con brazos de Robot. Con este software se puede controlar el brazo de
Brazo robot con Servo motores

Brazo robot con Servo motores

parte de mi investigación de doctorado en Universidad de Nueva York-Poly consiste en predecir el consumo de energía en sistemas robóticos, así que necesitaba un sistema robótico para trabajar con una plataforma de investigación para validar los resul
Brazo robot con pinza de café

Brazo robot con pinza de café

mi idea para este proyecto provino del video de abajo. Después de verlo tuve que construir mi propia versión.Mi versión no funciona casi tan bien. Está atado por dinero en efectivo en el momento decidido ver qué puedo construir con las probabilidades
Cómo construir obstáculos evitando Robot para principiantes con Arduino Tutorial

Cómo construir obstáculos evitando Robot para principiantes con Arduino Tutorial

Este Tutorial es para cualquier persona para empezar con arduino. Vamos construir un obstáculo evitando el robot que utiliza un sensor de ultrasonidos HC SR-04 para detectar objetos y 2 servos de continua (360 grados) conectados a una fuente de bater