Archivo de la categoría: Servo

ArduBrazo IX

Desarrollo del Programa con Java

Recordar que el programa de Arduino se basaba en los siguiente:

  • Capturo por el puerto serie una cadena de caracteres
  • Separo en cinco tramos la cadena
  • Convierto la cadena en valor numérico
  • Los envío a servo para su posicionamiento. El posicionamiento lo realiza de manera progresiva para dar más suavidad al mismo.

En el programa de Arduino actualizado, en vez de cinco tramos hay seis. El sexto dato es la velocidad

También envío un “Final de Posición Brazo”, para definir cuando Arduino ha terminado de posicionar el brazo

Recordar que el programa de Java solo tenía que mandar una cadena reconocible por el puerto serie (en este caso será el COM25) hasta el arduino.

El programa de Java se basaba en tres clases:

  • BrazoRobot.java, que es la encargada del interface grafico y de gestión principal del programa
  • Configurar.java, que es la encargada del interface grafico de la configuración del brazo robot
  • ComunicacionBrazoRobot.java, que es la encargada de realizar las funcionalidades de los anteriores.

El hilo del programa es muy fácil. Prescindiendo del interface gráfico, lo que realiza es abrir un puerto de comunicación serie y enviar una cadena de los valores de cada servo separados por ponto y coma, más la velocidad.

Ahora he implementado tres clases más:

  • Inicio.java, que invoca las clases Servicios, GestiónFicheros y ComunicacionBrazoRobot.
  • GestionFicheros.java, que se encarga de gestionar todo lo relativo a la grabación de ficheros
  • Servicios.java, que se encarga de realizar labores de comprobación.

He realizado una pantalla de configuración donde se puede definir los parámetros de funcionamiento de cada servo, velocidad y puerto de comunicación. Estos valores se almacenan y se guardan para cada vez que se ejecuta el programa los recupera.

He preparado el programa para poder gestionar una secuencia de movimientos almacenados en un fichero.

En el futuro tendrá la funcionalidad de realizar un programa de recorridos con espera de un estímulo externo.

Ahora solo abre y guarda recorridos. Añadiendo más filas somos capaces de ampliar el recorrido.

Como el programa está en fase de desarrollo en el código hay muchos puntos de control, disculpar la basura.

Como en la versión anterior voy a poner el código, aunque no está limpio y terminado. No es que sea muy profesional, pero dado que este blog está realizado con fines didácticos, lo pongo a vuestra disposición.

Programa Arduino:

 

Extracto de parte del Programa en Java:

Abrir Fichero de Recorrido

Guardar Fichero de Recorrido

Cargar la tabla con los datos del fichero

Aumentar una fila

 

 

Foto:

Pantalla Principal

Pantalla tras la carga de un archivo

Pantalla de Configuración

Código Fuente  Arduino Completo

ArduBrazo_02-ino

Código Fuente Java

ArduBrazo.zip

Vídeo resumen:

ArduBrazo VIII

Pinza

En esta entrada construiremos una pinza. Con ello terminaremos por ahora las partes mecánicas del proyecto. En el futuro crearemos algún otro utensilio que se pueda encajar en el brazo.

Estas piezas al igual que las anteriores se ha realizado con el programa “FreeCad” y la he impreso con la impresora 3D “BQ Prusa i3 Hephestos”. He utilizado el programa para cargar los objetos, crear el archivo de laminado con el programa Cura, y tras grabarlo en una SD lo imprimirá la impresora.

En la base de la pinza he creado un alojamiento para insertar en el futuro un led de iluminación.

Lista de Piezas

Dibujo de la Pieza Nombre Nº Piezas
Base de la Pinza 1
Garra Izquierda 1
Garra Derecha 1

Aquí podéis descargar el modelo 3D para imprimirlo.

Fotos

Conjunto Vistas FreeCad

Detalle Pinza

Vista Pinza

Vista Pinza

Vista Pinza

Detalla Brazo – Pinza

Conjunto Brazo

Conjunto Brazo

Detalle Pinza

Vista Alámbrica

Estoy siguiendo con el desarrollo del programa en Java que gestiona los movimientos del Brazo, pero estoy tardando un poco más de lo esperado. Espero que para la siguiente entrada sea posible enseñarlo.

Hasta la próxima entrada

ArduBrazo VII

Muñeca-Pinza

Con la construcción de esta pieza llegamos a la pinza, solo nos faltaría para completar el Brazo Robot la pinza.

Esta pieza al igual que las anteriores se ha realizado con el programa “FreeCad” y la he impreso con la impresora 3D “BQ Prusa i3 Hephestos”. He utilizado el programa para cargar los objetos, crear el archivo de laminado con el programa Cura, y tras grabarlo en una SD lo imprimirá la impresora.

He creado una unión en hexagonal para insertar los utensilios de trabajo del Brazo Robot, como pueden ser una pinza, un laser, una ventosa, etc

 

Lista de Piezas

Dibujo de la Pieza Nombre Nº Piezas
Muñeca-Pinza 1

Aquí podéis descargar el modelo 3D para imprimirlo.

Fotos

Conjunto Vista FreeCad

Pieza Vista Unión con Pinza

Pieza Vista Lateral

Pieza Vista Trasera

Otras Vista

Vista Alambre

Foto 01

Foto 02

Foto detalle

En la próxima entrada desarrollaré un poco más el programa para que tenga memoria de los ajustes de configuración.

 

 

ArduBrazo VI

Moviendo el Brazo con Java

Una vez que he conseguido el movimiento de los servos con ayuda del monitor serie del IDE del programa de Arduino, vamos a sustituirlo por un programa realizado en java que nos dará un interface más agradable y con mayot funcionalidad.

Recordar que el programa de Arduino se basaba en los siguiente:

  • Capturo por el puerto serie una cadena de caracteres
  • Separo en cinco tramos la cadena
  • Convierto la cadena en valor numérico
  • Los envío a servo para su posicionamiento. El posicionamiento lo realiza de manera progresiva para dar más suavidad al mismo.

El programa de Java solo tiene que mandar una cadena reconocible por el puerto serie (en este caso será el COM25) hasta el arduino y lo que antes se realizaba de manera manual a través del teclado ahora lo realiza el programa Java.

El programa de Java se basa en tres clases:

  • BrazoRobot.java, que es la encargada del interface grafico y de gestión principal del programa
  • Configurar.java, que es la encargada del interface grafico de la configuración del brazo robot
  • ComunicacionBrazoRobot.java, que es la encargada de realizar las funcionalidades de los anteriores.

Bueno, espero que me disculpéis si no he sido muy purista con la denominación anterior pero quiero que se entienda por todo el público y sacrifico exactitud en la terminología y denominación por claridad.

He utilizado la “Librería PanamaHitek” para realizar la comunicación con Arduino. En este enlace les dejo el acceso a la página donde explican los pasos que hay que realizar par instalarlo sin problemas. Yo he seguido los pasos y no he tenido problemas (pincha aquí).

El hilo del programa es muy fácil. Prescindiendo del interface gráfico, lo que realiza es abrir un puerto de comunicación serie y enviar una cadena de los valores de cada servo separados por ponto y coma. Si necesitáis aclaración de algún punto en concreto, no dudéis en solicitármelo.

Como es un programa en fase de prueba, tengo algunas botones para comprobar algunas funcionalidades intermedias. En el futura irá evolucionando hacia una versión más refinada.

He realizado una pantalla de configuración donde en el futuro se podrá configurar y almacenar la configuración de los parámetros de funcionamiento de cada servo y del puerto de comunicación.

Ya que la versión del programa está muy en los comienzos no había pensado dejar el programa en el blog, pero al final he decidido que aunque no es una versión ni estable ni definitiva, sería bueno que pudieseis experimentar desde el principio.

 

Esquema Práctico Simplificado:

Al esquema le he puesto un servo más

Extracto del Programa Arduino:

Recibir Cadena

Separar y Convertir en Enteros

Posicionar Servos

Extracto del Programa en Java:

Abrir el Puerto de Comunicación Serie (en este caso COM25):

Enviar los Datos a Arduino

Cerrar el Puerto de Comunicación Serie

Rutina de Espera

 

Foto:

 

 

 

Código Fuente  Arduino Completo

ArduBrazo_01.ino

Código Fuente Java

Ardubrazo.zip

Vídeo resumen:

ArduBrazo V

Brazo-Muñeca

Con la construcción de esta pieza llegamos a la muñeca, solo nos faltaría una pequeña pieza que realizaría el juego de la muñeca y la pinza.

Esta pieza al igual que las anteriores se ha realizado con el programa “FreeCad” y la he impreso con la impresora 3D “BQ Prusa i3 Hephestos”. He utilizado el programa para cargar los objetos, crear el archivo de laminado con el programa Cura, y tras grabarlo en una SD lo imprimirá la impresora.

Lista de Piezas

Dibujo de la Pieza Nombre Nº Piezas
Brazo-Muñeca 1

Aquí podéis descargar el modelo 3D para imprimirlo.

Fotos

Vista FreeCad Delantera

Vista FreeCad Posterior

Conjunto Vistas FreeCad

Vista 3D FreeCad

Vista Pieza 01

Vista Pieza 02

Vista Pieza 03

Perspectiva 01
Perspectiva 02
Perspectiva 03
Perspectiva 04

 

 

 

ArduBrazo IV

Programando el Arduino

Bueno ya es hora de poner los servos y ver que tal funciona la parte del brazo construido hasta ahora.

He elegido un Arduino Mega, no por que necesitaba muchos recursos, sino por que era el que tenía libre, el resto los tenía ocupados con otros proyectos. Así que si tenéis un arduino Uno o Leonardo, también os vale.

He preferido realizar la programación para los cinco servos y así ya la tengo para los restos de grados de libertad que aún no están disponibles.

El programa de Arduino se basa en los siguiente:

  • Capturo por el puerto serie una cadena de caracteres
  • Separo en cinco tramos la cadena
  • Convierto la cadena en valor numérico
  • Los envío a servo para su posicionamiento. El posicionamiento lo realiza de manera progresiva para dar más suavidad al mismo.

Ahora utilizo el monitor serie del IDE del programa del Arduino para el envío de la cadena, pero en el futuro, lo realizaré con un programa realizado en Java.

Esquema Práctico Simplificado:

 

Extracto del Programa Arduino:

Recibir Cadena

Separar y Convertir en Enteros

Posicionar Servos

Foto:

Código Fuente  Arduino Completo

ArduBrazo_01.ino

Vídeo resumen:

ArduBrazo III

Tercer Grado de Libertad

La realización de esta pieza al igual que las anteriores se ha realizado con el programa “FreeCad” y la he impreso con la impresora 3D “BQ Prusa i3 Hephestos”. He utilizado el programa para cargar los objetos, crear el archivo de laminado con el programa Cura, y tras grabarlo en una SD lo imprimirá la impresora.

Lista de Piezas

Dibujo de la Pieza Nombre Nº Piezas
 

Tercer Grado

 

1

Aquí podéis descargar el modelo 3D para imprimirlo.

Fotos

Vista FreeCad Delantera

Vista FreeCad Posterior

Vista Conjunto FreeCad

Vista 3D FreeCad

ArduBrazo_3ª_01

Composición Delantera

ArduBrazo_3ª_02

Composición Trasera

ArduBrazo II

Segundo Grado de Libertad

La realización de esta pieza al igual que la anterior se ha realizado con el programa “FreeCad” y la he impreso con la impresora 3D “BQ Prusa i3 Hephestos”. He utilizado el programa para cargar los objetos, crear el archivo de laminado con el programa Cura, y tras grabarlo en una SD lo imprimirá la impresora.

Lista de Piezas

Dibujo de la Pieza Nombre Nº Piezas
 

 

Segundo Grado

 

 

1

Aquí podéis descargar el modelo 3D para imprimirlo.

Fotos

Vista 01

Vista 02

Vista 03

Vista 04

Vista de Conjunto

Vista 3D

Vistas en FreeCad

 

ArduBrazo I

ArduBrazo – Primer Grado de Libertad

Empiezo un nuevo proyecto, la realización de un Brazo Robot. Tendrá cuatro grados de libertad más una pinza o mano.

Realizaré las piezas con una impresora 3D y dejaré los archivos para que podáis utilizarlos.

Los servos que voy a utilizar son de dos tipos:

Del tipo SG90:

  • Dimensiones:                23 X 12.2 X 29 (mm)
  • Tensión de Trabajo:      4V a 6V
  • Velocidad:                     3 sg / 60 grados
  • Temperatura:                 0 ºC a -55 ºC
  • Velocidad de Trabajo:   3 sg/ 60 grados
  • Peso:                              9 gr
  • Torque:                          1.6kg/cm

Del tipo MG996R:

  • Dimensiones:                 40 X 19 X 43 (mm)
  • Tensión de Trabajo:       8V a 7.2V
  • Temperatura:                 0 ºC a -55 ºC
  • Velocidad de Trabajo:    17seg / 60 grados (4.8V sin carga) /  0.13seg / 60 grados (6.0V sin carga)
  • Peso:                               67 gr
  • Torque:                          13 kg-cm (180.5 oz-in) a 4.8V  / 15 kg-cm (208.3 oz-in) a 6V
  • Tipo de engranaje:         Todos los engranajes metálicos

Realización de las piezas en 3D.

Después de ver muchos modelos en la web y en “thingiverse“(esta web tiene a disposición de los usuarios un montón de objetos en 3D – Os la recomiendo), me he decidido por realizar las piezas y el diseño con el programa “FreeCad” y las he impreso con la impresora 3D “BQ Prusa i3 Hephestos”. He utilizado el programa para cargar los objetos, crear el archivo de laminado con el programa Cura, y tras grabarlo en una SD lo imprimirá la impresora.

 

Lista de Piezas

Dibujo de la Pieza Nombre Nº Piezas
 

 

Primer Grado

 

 

1

Aquí podéis descargar el modelo 3D para imprimirlo.

Fotos


Base del brazo robot. Primer Eje de Libertad

Vista Superior

Vista Inferior

Modelado 3D

 

Movimiento de Brazos

He tardado un poco en publicar esta entrada pero por problemas de recepción de los servos y el periodo vacacional no ha sido posible antes.

Por fin el ArduRobot ya mueve los brazos pero al hacerlo tiene problemas de estabilidad, por lo que he tenido que ponerle unos zapatos un poco más grandes y el problema se ha solucionado.

Como la calidad de los servos es la que es, he diseñado una rutina para mover los brazos que realiza el movimiento en diez submovimientos, con lo que mejora la respuesta y los servos sufren meno.

Rutina de Movimientos de los brazos.

Rutina_SubMovimientos

 

Fotos

Frente

Frontal

Perfil

Perfil

DSC_2193

Zapatos Nuevos

Video: