En este tutorial veremos como hacer un brazo robótico 3D, con motores paso paso 28byj-48, un servo motor y piezas impresas en 3D. Se incluye el circuito impreso, el código fuente, el diagrama eléctrico, el código fuente y mucha información en mi sitio web.
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas
Código Fuente
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
#include <AccelStepper.h> #include <Servo.h> Servo servoMotor1; // Definiciones de pines del motor(primer motor) #define motorPin2 2 #define motorPin3 3 #define motorPin4 4 #define motorPin5 5 // Definiciones de pines del motor(segundo motor) #define motorPin6 6 #define motorPin7 7 #define motorPin8 8 #define motorPin9 9 // Definiciones de pines del motor(tercer motor) #define motorPin10 10 #define motorPin11 11 #define motorPin12 12 #define motorPin13 13 // Definir el tipo de interfaz AccelStepper; Motor de 4 hilos en modo de medio paso: #define MotorInterfaceType1 8 #define MotorInterfaceType2 8 #define MotorInterfaceType3 8 // Inicializa con la secuencia de pin IN1-IN3-IN2-IN4 para usar la biblioteca AccelStepper con el motor paso a paso 28BYJ-48: AccelStepper stepper1 = AccelStepper(MotorInterfaceType1, motorPin2, motorPin3, motorPin4, motorPin5); AccelStepper stepper2 = AccelStepper(MotorInterfaceType2, motorPin6, motorPin7, motorPin8, motorPin9); AccelStepper stepper3 = AccelStepper(MotorInterfaceType3, motorPin10, motorPin11, motorPin12, motorPin13); String cadena; void setup() { // Establece los pasos máximos por segundo: stepper1.setMaxSpeed(1000); stepper2.setMaxSpeed(1000); stepper3.setMaxSpeed(1000); Serial.begin(9600);// setea la velocidad del puerto serial según la velocidad del módulo bluetooth bluetooth servoMotor1.attach(A0);//Pin para el control del servo } void loop() { //Función para lecturas de los caracteres enviados por el puerto serial datosSeriales(); //---------------------- if (cadena == "mot1a") {//compara el valor de la cadena obetinada stepper1.setSpeed(-200); // Acciona el motor con velocidad constante como lo establece setSpeed () stepper1.runSpeed(); } //--------------------- if (cadena == "mot1b") {//compara el valor de la cadena obetinada stepper1.setSpeed(200); // Acciona el motor con velocidad constante como lo establece setSpeed () stepper1.runSpeed();; } //------------------------- if (cadena == "mot2a") {//compara el valor de la cadena obetinada stepper2.setSpeed(-200); // Acciona el motor con velocidad constante como lo establece setSpeed () stepper2.runSpeed(); } //------------------------- if (cadena == "mot2b") {//compara el valor de la cadena obetinada stepper2.setSpeed(200); // Acciona el motor con velocidad constante como lo establece setSpeed () stepper2.runSpeed();; } //------------------------- if (cadena == "mot3a") {//compara el valor de la cadena obetinada stepper3.setSpeed(-200); // Acciona el motor con velocidad constante como lo establece setSpeed () stepper3.runSpeed(); } //------------------------ if (cadena == "mot3b") {//compara el valor de la cadena obetinada stepper3.setSpeed(200); // Acciona el motor con velocidad constante como lo establece setSpeed () stepper3.runSpeed(); } //Control de la pinza if (cadena == "abrir") {//Posición del servo para abrir la pinza servoMotor1.write(180); } if (cadena == "cerrar") {//Posición del servo para cerrar la pinza servoMotor1.write(110); } } //------------------------ void datosSeriales(){ //lectrura de los caracteres en el termina serial(si estan disponibles) if (Serial.available()) { cadena = String(""); while (Serial.available()) { cadena = cadena + char(Serial.read()); delay(1); } } } |
Aplicación
Descargar aplicación y archivo fuente –> robot_bluetooth_uln2003
Circuito
Materiales del proyecto
Arduino Uno
Características
- Microcontrolador: ATmega328
- Voltaje Operativo: 5v
- Voltaje de Entrada (Recomendado): 7 – 12 v
- Pines de Entradas/Salidas Digital: 14 (De las cuales 6 son salidas PWM)
- Pines de Entradas Análogas: 6
- Memoria Flash: 32 KB (ATmega328) de los cuales 0,5 KB es usado por Bootloader.
- SRAM: 2 KB (ATmega328)
- EEPROM: 1 KB (ATmega328)
- Velocidad del Reloj: 16 MHZ.
Motor paso a paso 28BYJ-48
Los parámetros de este motor paso a paso son:
- Modelo: 28BYJ-48 – 5V
- Tensión nominal: 5V (o 12 V, valor indicado en la parte trasera).
- Cantidad de fases: 4.
- Reductor de velocidad: 1/64
- Ángulo de paso: 5,625° / 64
- Frecuencia: 100Hz
- Resistencia en CC: 50Ω ±7 % (25° C)
- Frecuencia con tracción: > 600Hz
- Frecuencia sin tracción: > 1000Hz
- Torque con tracción: >34,3mN.m (120Hz)
- Torque en autoposicionamiento: >34,3mN.m
- Torque con fricción: 600-1200 gf.cm
- Arrastre en torque: 300 gf.cm
- Resistencia de aislación > 10MΩ (500V)
- Aislación eléctrica: 600VAC/1mA/1s
- Grado de aislación: A
- Aumento de temperatura: < 40K (120Hz)
- Ruido: < 35dB (120Hz, sin carga, 10cm)
ULN2003APG
Especificaciones principales:
- 500 mA de corriente de colector nominal (de salida única)
- 50 V de salida (hay una versión que soporta 100 V de salida)
- Incluye diodos de retorno de salida
- Entradas compatibles con TTL y 5-V CMOS lógica
Características de Servo SG90 Tower Pro
- Dimensiones (L x W xH) = 22.0 x 11.5 x 27 mm (0.86 x 0.45 x 1.0 pulgadas)
- Peso: 9 gramos
- Peso con cable y conector: 10.6 gramos
- Torque a 4.8 volts: 16.7 oz/in o 1.2 kg/cm
- Voltaje de operación: 4.0 a 7.2 volts
- Velocidad de giro a 4.8 volts: 0.12 seg / 60 º
- Conector universal para la mayoría de los receptores de radio control
- Compatible con tarjetas como Arduino y microcontroladores que funcionan a 5 volts.
Pinout
Naranja–> Señal
Rojo–> Positivo
Marrón–> Negativo
Módulo bluetooth HC-05
- Funciona como dispositivo maestro y esclavo bluetooth
- Configurable mediante comandos AT
- Bluetooth V2.0+EDR
- Frecuencia de operación: 2.4 GHz Banda ISM
- Modulación: GFSK (Gaussian Frequency Shift Keying)
- Potencia de transmisión: <=4dBm, Class 2
- Sensibilidad: <=-84dBm @ 0.1% BER
- Seguridad: Autenticación y encriptación
- Perfiles Bluetooth: Puerto serie bluetooth.
- Distancia de hasta 10 metros en condiciones óptimas
- Voltaje de Operación: 3.6 VDC a 6 VDC
- Consumo Corriente: 30 mA a 50mA
- Chip: BC417143
- Versión o firmware: 3.0-20170609
- Baudios por defecto: 38400
- Baudios soportados: 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200.
- Interfaz: Serial TTL
- Antena: Integrada en el PCB
- Seguridad: Autenticación y encriptación (Contraseña por defecto: 0000 o 1234)
- Temperatura de trabajo (Max): 75°C
- Temperatura de trabajo (Min): -20°C
- Dimensiones: 4.4 x 1.6 x 0.7 cm
LED (opcionales)
Pines (opcionales)
Jumper
PCB
Descargar archivo Gerber –> CONTROLADOR DE MOTOR PASO A PASO
PCBWay es una empresa especializada en la producción de placas de circuito impreso de alta calidad. Hacer un pedido es muy simple: simplemente indique las características principales de nuestro PCB para obtener una estimación del costo y luego cargue los archivos gerber del proyecto para continuar con el pedido. El costo es muy bajo: asciende a solo $ 5 por 5x PCB de doble capa de hasta 100×100 mm de tamaño.
Una vez que se obtiene la placa de circuito impreso, la calidad de la construcción se nota de inmediato, lo que le da al proyecto un agradable toque profesional
En este link puedes descargar los archivos 3D para este proyecto
https://www.thingiverse.com/thing:970881
O puedes descargarlos desde aquí Stepper_robot_arm
⭐️ SUSCRIBETE: https://www.youtube.com/user/carlosvolt?sub_confirmation=1 (No olvides activar la 🔔)
👉Canal secundario: https://www.youtube.com/channel/UCjES9aB4g1F3IQbAk2nWCZg
👉Instagram: https://www.instagram.com/carlosvolt_tutoriales/
👉Tik Tok: https://www.tiktok.com/@carlosvolt
👉Fanpage: https://www.facebook.com/rogerbitfanpage/
👉Facebook: https://www.facebook.com/groups/RogerBit
👉Twitter: https://twitter.com/rogerbit_
👉Donaciones por paypal https://goo.gl/824Dnm o donacion@rogerbit.com
👉Sitio Web: https://www.rogerbit.com
SUSCRIBETE A NUESTROS BOLETINES, RECIBE EN TU CORREO LAS NOTICIAS MÁS DESTACADAS, SÓLO INGRESANDO TU CORREO ELECTRÓNICO
[wysija_form id=”1″]
VIDEO RECOMENDADO
Hola buenas tardes, estoy montando el brazo robotico y los motores paso a paso no se mueven porque la aplicacion la hice yo y creo que tenga algun error puedes pasarmela porfavor!! :)
El link de descarga de la aplicacion y el codigo fuente no funciona, podrian repararlo?