Este brazo robótico en miniatura reproduce el comportamiento de un brazo robótico industrial. Con 3 grados de libertad y una pinza. Puede funcionar de dos maneras, o bien a través de su mando o bien a través de programación de movimientos. El Kit incluye 3 laminas de MDF precortadas a laser, 4 miniservos, tarjeta controladora, manual de ensamblado, software de manejo y tornilleria. Esta basado en el popular MeArm. Es compatible con Arduino o cualquier tarjeta de desarrollo o microcontrolador con salidas digitales o de PWM. Es un proyecto tecnológico escolar para hacer que hasta los más pequeños aprendan a construir su propio brazo robótico. Es económico, divertido de armar y una gran herramienta educativa.
- Chasis para armar el brazo.
- Listo para cualquier plataforma de control.
- Totalmente cortado a laser.
- Diseñado para optimizar la fuerza de los miniservos.
- Listo para que instales tus miniservos.
- Pintalo del color que mas te guste!
- Se arma fácilmente.
- Manual de ensamblado1
- Manual de ensamblado2
Un servomotor, también llamado servo, es un dispositivo similar a un motor de corriente continua que tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación, y mantenerse estable en dicha posición.
Antes de comenzar a montar tu Brazo robotico, sigue estos pasos:
Descarga e instala el programa Arduino IDE ingresando a https://www.arduino.cc/en/Main/Software. Se encuentra disponible para Windows, Mac OS y Linux.
Calibrado
Calibrado
Al conectar los servomotores se deben cumplir las siguientes reglas de colores:
Rojo = Rojo (Alimentación de 5V, obtenidos desde una fuente externa, no del microcontrolador)
Amarillo = Naranja (Señal PWM, proveniente desde el microcontrolador)
Negro = Café (Tierra GND, las tierras del microcontrolador y la fuente externa de 5V deben estar
conectadas)
Para que los servomotores estén correctamente alineados al momento de el ensamblaje, éstos
deben tener un giro inicial de 90°, a excepción del servo de la garra cuyo giro inicial debe ser
de 25°. Esta calibración puede ser realizada a mano (atornillando la hélice al servo y rotando
manualmente los servomotores) o mediante código para una mayor precisión (recomendado).
El código de calibración utilizando los pines digitales del Arduino [Conexión Directa] es el
siguiente:
Servo base, left, right, claw; // 4 objetos servo
void setup()
{
Serial.begin(9600);
base.attach(11); // servo base, pin Arduino
left.attach(10); // servo izquierdo, pin 4 Arduino
right.attach(9); // servo derecho, pin 5 Arduino
claw.attach(6); // servo garra, pin 6 Arduino
}
void loop()
{
base.write(90); // servo base, rotado 90° inicialmente
left.write(90); // servo izquierdo, rotado 90° inicialmente
right.write(90); // servo derecho, rotado 90° inicialmente
claw.write(25); // servo garra, rotado 25° inicialmente
delay(300); // una actualización constante puede dañar los servos
}
3. Toma las placa arduino UNO y la miniprotoboard, incluidas en el kit brazo robotico.
4. Coloca la placa la miniboard sobre la placa arduino UNO, haciendo coincidir los pines de contacto con el cableado de la miniprotoboard como se muestra en la imagen
5. Conecta la placa arduino UNO al ordenador, utilizando el cable USB incluido en el kit Brazo robotico.
6. Carga en la placa arduino UNO el programa que has copiado en Arduino IDE, de la siguiente manera:
a. Configura Arduino IDE para que trabaje con la placa arduino UNO: abre la pestaña “Herramientas”, selecciona “Placa: Arduino/Genuino Uno” y elige la opción “Arduino/Genuino UNO”.
b. Configura el puerto de trabajo de tu placa arduino UNO: ve a la pestaña “Herramientas”, haz click en la opción “Puerto” y selecciona el puerto COM en el que esté conectada la placa.
Nota: si tienes dudas sobre el puerto en el que está conectada la placa, conéctala y desconéctala, y comprueba en el menú cuál es el puerto que aparece (al conectarla) y desaparece (al desconectarla).
c. Haz clic en la flecha horizontal denominada “Subir” situada en la esquina superior izquierda del programa.
d. Aguarda a que el programa se cargue y aparezca el mensaje “Subido”.
7. Continúa realizando el montaje del Brazo Robotico hasta llegar al apartado de “Calibración del Servomotor” de cada uno de los 4 servomotores. Una vez allí, conecta cada servomotor al puerto de la protoboard que corresponda, como se indica en la tabla a continuación. Asegúrate de que la placa sensor esté correctamente conectada a la placa arduino UNO.
Nota: Recuerda que para calibrar los servomotores debes conectar el cable USB del ordenador a la placa arduino UNO, para suministrar de energía a todo el sistema.
El servo de la base se conecta al pin digital 11
El servo del lado izquierdo se conecta al pin digital 10
El servo del lado derecho se conecta al pin digital 9
El servo de la pinza se conecta al pin digital 6
El servo del lado derecho se conecta al pin digital 9
El servo de la pinza se conecta al pin digital 6
*** Recuerda la posición de los conectores, compruébalo con la siguiente imagen.
8. El servomotor conectado se situará en la posición indicada como “Tope de movimiento”.
9. Sitúa la pieza que va montada en el eje del servomotor de la forma indicada en el manual. Sigue las imágenes a continuación para situar la pieza de forma correcta.
Descargue el software para controlar, programar y construir su robot.
Software Arduino
Necesitaremos tener el software Arduino instalado en el PC y tener el puerto USB de los microcontroladores conectado a un puerto USB de la computadora a través de un cable para transferir el código de muestra al Arduino. Si aún no tiene el software Arduino puede descargarlo. A continuación tenemos el código fuente de Arduino. Puede copiar y pegar esto en el IDE de Arduino y guardarlo con un nombre significativo. Pulse el botón de flecha de carga para transferir al microcontrolador.
Ejemplo código 1
/*
Control de brazo robótico con servomotores
*/
#include <Servo.h>
// Declaración de servos
Servo servoBase; // Servo en la base (Pin 11)
Servo servoIzq; // Servo izquierdo (Pin 10)
Servo servoDer; // Servo derecho (Pin 9)
Servo servoPinza; // Servo de la garra/pinza (Pin 6)
// Función para mover suavemente un servo
void moverServo(Servo &servo, int desde, int hasta, int delayMs = 25) {
int paso = (desde < hasta) ? 1 : -1;
for (int angulo = desde; angulo != hasta; angulo += paso) {
servo.write(angulo);
delay(delayMs);
}
servo.write(hasta); // Asegura llegar exactamente al ángulo final
}
// Configuración inicial
void setup() {
servoBase.attach(11);
servoIzq.attach(10);
servoDer.attach(9);
servoPinza.attach(6);
}
// Bucle principal
void loop() {
// 1. Mover brazo izquierdo
servoIzq.write(110);
delay(1000);
// 2. Abrir pinza (30° a 100°)
moverServo(servoPinza, 30, 100);
delay(1000);
// 3. Subir brazo derecho (110° a 70°)
moverServo(servoDer, 110, 70);
delay(1000);
// 4. Girar base (120° a 50°)
moverServo(servoBase, 120, 50);
delay(1000);
// 5. Bajar brazo derecho (70° a 110°)
moverServo(servoDer, 70, 110);
delay(1000);
// 6. Cerrar pinza (100° a 30°)
moverServo(servoPinza, 100, 30);
delay(1000);
// 7. Subir brazo derecho nuevamente
moverServo(servoDer, 110, 70);
delay(1000);
// 8. Regresar base a posición inicial (50° a 120°)
moverServo(servoBase, 50, 120);
delay(1000);
// 9. Bajar brazo derecho (70° a 110°)
moverServo(servoDer, 70, 110);
delay(1000);
}
Ejemplo código 2
#include <Servo.h>
// Declaramos los 4 servos
Servo baseServo;
Servo shoulderServo;
Servo elbowServo;
Servo gripperServo;
// Pines a los que están conectados los servos
const int basePin = 3;
const int shoulderPin = 5;
const int elbowPin = 6;
const int gripperPin = 9;
// Posiciones actuales
int posBase = 90;
int posShoulder = 90;
int posElbow = 90;
int posGripper = 0;
// Función para mover suavemente un servo
void smoothMove(Servo &servo, int ¤tPos, int targetPos, int stepDelay = 10) {
if (currentPos == targetPos) return;
int step = (targetPos > currentPos) ? 1 : -1;
for (int pos = currentPos; pos != targetPos; pos += step) {
servo.write(pos);
delay(stepDelay);
}
currentPos = targetPos;
}
// Movimiento compuesto
void moveArm(int base, int shoulder, int elbow, int gripper) {
// Mueve todos los servos suavemente a la vez
while (posBase != base || posShoulder != shoulder || posElbow != elbow || posGripper != gripper) {
if (posBase != base) {
posBase += (base > posBase) ? 1 : -1;
baseServo.write(posBase);
}
if (posShoulder != shoulder) {
posShoulder += (shoulder > posShoulder) ? 1 : -1;
shoulderServo.write(posShoulder);
}
if (posElbow != elbow) {
posElbow += (elbow > posElbow) ? 1 : -1;
elbowServo.write(posElbow);
}
if (posGripper != gripper) {
posGripper += (gripper > posGripper) ? 1 : -1;
gripperServo.write(posGripper);
}
delay(10); // control de suavidad
}
}
void setup() {
baseServo.attach(basePin);
shoulderServo.attach(shoulderPin);
elbowServo.attach(elbowPin);
gripperServo.attach(gripperPin);
// Posición inicial
moveArm(90, 90, 90, 0);
delay(1000);
}
void loop() {
// Abrir pinza y bajar brazo
moveArm(90, 120, 60, 0);
delay(500);
// Cerrar pinza
moveArm(90, 120, 60, 45);
delay(500);
// Levantar brazo
moveArm(90, 60, 120, 45);
delay(500);
// Girar base
moveArm(150, 60, 120, 45);
delay(500);
// Soltar objeto
moveArm(150, 60, 120, 0);
delay(500);
// Volver a posición inicial
moveArm(90, 90, 90, 0);
delay(1000);
}
Contáctenos directamente o por mercadolibre:
contactomediatk@gmail.com
Cel: 3107964779
Bogotá. Colombia
También puede comprar por mercadolibre, Colombia:
o copiar y pegar en la barra de direcciones:
https://listado.mercadolibre.com.co/_CustId_168078870?item_id=MCO452143344&category_id=MCO1910&seller_id=168078870&client=recoview-selleritems&recos_listing=true
https://eshops.mercadolibre.com.co/mediatk
También puede comprar por mercadolibre, Colombia:
o copiar y pegar en la barra de direcciones:
https://listado.mercadolibre.com.co/_CustId_168078870?item_id=MCO452143344&category_id=MCO1910&seller_id=168078870&client=recoview-selleritems&recos_listing=true
https://eshops.mercadolibre.com.co/mediatk
me sale el error del puerto ya intente con otro pc y no funciona
ResponderEliminarYa fue corregido, gracias
Eliminarmuy buena información, gracias por el código de 4 servos.
ResponderEliminarA la orden
ResponderEliminarpor que mi brazo tiembla =(
ResponderEliminarpor pendejo
Eliminartiene frio
EliminarEl brazo tiembla y hace movimientos que no le indico... ¿A qué se deberá? ayuuudaaaaa porfavor xc
ResponderEliminarTiene parkinson, llevalo al medico.
Eliminartengo un problema en la compilacion con el segundo codigo ayuda por favor este es el error ((exit status 1
ResponderEliminar'xServo' was not declared in this scope))
Muy bien
ResponderEliminarBuenas tardes, no tengo entendido como conseguir el chasis del brazo, no se cuales son las medidas tampoco, ayuda por favor
ResponderEliminar