Archivo de la categoría: Impresora 3D

Poniéndolo Expresión al ArduRobot

Bueno, ya era hora de poner una cabeza al ArduRobot. He aprovechado la anterior entrada para realizar una iniciación al control de un LCD con Arduino.

Como bien sabéis la placa que controla el Robot es un Arduino UNO y éste tiene sus salidas casi saturadas, por lo que para el control del LCD he tenido que utilizar otro controlador. Es el Arduino Nano.

Para que el ordenador me reconociese el Arduino Nano, he tenido que instalar unos driver exprofeso para esta placa (puede ser por que el procesador es Chino :)). Los Arduino Nano chinos suelen llevar el chip ch340 en vez el FTDI. En el Fórum de Arduino puedes encontrar más información al respecto

Le he dado muchas vueltas a que expresiones quería que tuviese el robot y al final he decidido que con cinco expresiones para empezar podría ser suficiente:

  • Normal
  • Triste
  • Feliz
  • Enfadado
  • Sorpresa

En el futuro dotaré al robot de más expresiones.

Para dotar de expresión al Robot, he utilizado la posibilidad que me ofrece la librería “Adafruit_GFX.h” de representar imágenes Bitmap. Más abajo podréis ver un ejemplo de un bitmap de una cara de sorpresa.

Con la impresora 3D he realizado una carcasa que utilizo para meter en su interior al Arduino Nano y la pantalla LCD.

Representación 3D de la Cabeza

Circuito Práctico.

Programa Arduino

Ejemplo del Código del PROGMEM CaraSorpresa

Fotos

Visión 3D del ArduRobot

Códigos Fuente

Cabeza_Robot.ino

Vídeo resumen:

Anuncios

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:

 

 

Brazos para ArduRobot

Quería que la próxima entrada fuese con los brazos del ArduRobot en movimiento, pero he recibido dos de los seis servo SG 090 que solicité en mal estado. No es que me costaran mucho (menos de 10 euros) pero es el tiempo que tardan en venir lo que me fastidia.

Como adelanto publicaré el robot con brazos, aunque no hay movimiento hasta que lleguen los servos que he vuelto a pedir.

Fotos

Vista_3_D

Modelado 3D

ArduRobot_Frente_Brazos_Abajo

Vista Frontal Brazos Caídos

ArduRobot_Frente_Brazos_Cruz

Vista Frontal Brazos en Cruz

ArduRobot_Frente_Brazos_Adelate

Vista Frontal Brazos al Frente

ArduRobot_Frente_Brazos_Flamenco

También Puede Bailar Sevillanas

ArduRobot_Perfil_Brazos_Abajo

Vista Perfil Derecho

ArduRobot_Perfil_Trasero_Brazos_Abajo

Vista Trasera Derecha

ArduRobot_Frente_Rodillas

Semi de Rodillas

ArduRobot_Sentado_Brazos_Abajo

Sentadito como un niño Bueno

Video:

Midiendo Sensores

He decidido dotar al ArduRover de tres entradas analógicas para poder medir y representar sensores externo que se conecten a él.

Es una evolución de la anterior entrada. En esta ocasión, doto al programa de un panel de configuración, para que se pueda personalizar las medidas que se realicen.

Configuración

Como podemos ver se puede configurar el nombre del sensor a representar, el valor de aviso(por si queremos que al llegar a un valor dado nos avise), si se representa o no, el valor máximo en la escala y un último valor que ajustará los valores recibidos a una escala real de medición.

Si conectásemos el sensor siguiente, el valor de conversión sería -> 0.4882

lm35.png

Continuamos con la posibilidad de almacenar los valores en una hoja de Excel, para su posterior análisis.

La programación con VB es casi idéntica al realizado en la entrada “Conociendo el Estado de los Sensores” y el posterior “ Exportando a Excel los valores”  con unos pequeños ajustes para parametrizar las medidas.

Una mejora que puede dar muy buen resultado es realizar una media de diez mediciones antes de enviar el valor desde Arduino a la aplicación, con esta minimizamos parte de los errores por ruido.

Esquema Práctico del Sensor LM35:

Medir_Temperaturas_Sensor

Esquema Práctico de las Entradas Analógicas:

Esquema_Practico

Lista de Piezas

Dibujo de la Pieza Nombre Nº Piezas
Hembra Soporte Hembra 1
Macho Soporte Macho 1
Pasamuros Porta Soporte 2

 

Extracto del Programa Arduino:

codigo_Arduino

 

 

Fotos:

Arriba_01

Vista SuperiorArriba_02

Detalle con sensores

frontal_01

Primer plano

VB_01

Visión General del Programa

Configuración

Detalle del Panel de Configuración

Código Fuente  Arduino Completo

Midiendo.ino

Proyecto VB 2015

Sensores de Entrada.zip

Vídeo resumen:

 

 

 

 

 

 

ArduRobot – Equilibrios

Esta entrada es continuación de la anterior (Arduino – Primeros Pasos).

He aumentado la superficie de apoyo, y le he puesto unos zapatos para dar mayor estabilidad.

He creado un cuerpo y en su interior he alojado el paquete de pilar y el “Arduino”; es una versión preliminar para ver la posible configuración final. Cuando sea definitivo publicare las piezas en 3D para poder reproducirlo.

Como se puede observar lleva dos servos laterales que serán utilizados para los brazos y un servo superior que será para la cabeza.

Procedimiento del movimiento 90º Pierna

Procedimiento_Cadera_Tobillos_90

Fotos

Modelado_3D

Modelado 3D

Frontal

ArduRobot de Frente

Perfil_01

ArduRobot de Perfil

Perfil_trasero

Perfil Trasero

Sentado

Sentado

Código Fuente  Arduino Completo

Equilibrios.ino

Vídeo resumen:

 

 

ArduRobot – Primeros Pasos

Voy a comenzar con un nuevo proyecto sin dejar el anterior y de manera simultanea iré publicando entradas de ambos.

Se trata de intentar realizar un humanoide controlado con un “Arduino Duemilanove”.

En un alarde de imaginación le he llamado ArduRobot

Lo primero que haré será diseñar las extremidades inferiores. He decidido que tendrán tres grados de libertad cada una (seis en total).

He utilizado servos pequeños del tipo SG90 para disminuir el consumo total.

Sevo

 El primer reto que me he planteado, es la estabilidad o equilibrio.

Otro reto, es que los movimientos sean progresivos y acompasados, de tal manera que los servos no se mueva secuencialmente el total de su recorrido, sino que sigan una secuencia de mini movimientos que de la sensación que se mueven a la vez.

Procedimiento de movimiento de 2 Servos a la vez

Codigo_Posicion2Servos

Procedimiento del movimiento de Puntillas

Codigo_Posicion_Puntillas

Procedimiento del movimiento de Talones

Codigo_Posicion_Talon

Procedimiento del movimiento de la Posición Reposo

Codigo_Posicion_Reposo

Procedimiento del movimiento sobre el Pie Derecho

Codigo_Posicion_Pie_Derecho

Procedimiento del movimiento sobre el Pie Izquierdo

Codigo_Posicion_Pie_Izquierdo

Procedimiento del movimiento Balancear

Codigo_Posicion_Balancear

Fotos

Piernas_2

Modelado 3D

ArduRobot_Pie_I

Sobre el pie derecho

ArduRobot_Pie_D

Sobre el pie Izquierdo

ArduRobot_Frente_02

De Frente

ArduRobot_Frente

Vista trasera

Código Fuente  Arduino Completo

Primeros_Pasos.ino

Vídeo resumen:

 

ArduRover puede Seguir Líneas

¿Qué pretendo realizar?

Básicamente lo que pretendo realizar es que el Rover sea capaz de desplazarse a lo largo de una línea de un color negro diferente al fondo blanco, para ello he colocado cuatro sensores, de los que en principio solo utilizaré dos.

El funcionamiento básicamente consta de tres ordenes y son las siguientes:

BD14866_ Los dos sensores están sobre la línea, avanzamos

BD14866_ El sensor de la derecha ha salido de la línea, giramos hacia la izquierda

BD14866_ El sensor de la izquierda ha salido de la línea, giramos hacia la derecha

BD14866_ Los dos sensores están fuera de la línea, sigue con lo que estabas realizando.

Teoria_Sigue_lineas

Para ampliar información – pulsa aquí

Lista de Piezas

Dibujo de la Pieza Nombre Nº Piezas
Soporte_CNY70 Soporte CNY70 1
Porta_Soperte_CNY70 Porta Soporte 2

 

Bloque Sigue Líneas

Metodo_SigueLineas

Esquema Parcial Teórico:

Circuito_ArduRover_Sigue_Lineas

Esquema Práctico Simplificado:

Extracto_Placa_1_ArduRover_XI

Extracto del Programa Arduino:

Codigo_ArduroverXI

Fotos:

Frontal

Frontal

Detalle_DelanteroSC_1939

Detalle Frontal

Panza

Panza

Detalle_Panza

Detalle Panza

Código fuente Completo

ArduRover_Sigue_Lineas.ino

APP de Proyecto:

ArduRover_XI.apk

Ficha del Proyecto:

ArduRover_XI_Sigue_Linea_Ficha_39

Vídeo resumen:

 

Controlar el Brazo Robot con Android

Controlar el Brazo Robótico con la App diseñada.

Como continuación a la entrada anterior he seguido diseñando partes del brazo robot que quiero para el ArduRover, he introducido un grado más de libertad y he diseñado la interfaz que lo controla.

La primera dificultad que me he encontrado es la alimentación con la suficiente energía para abastecer a los cuatro servos. La solución aunque no muy buena, es utilizar un 7806 cuya alimentación proviene directamente de las baterías del ArduRover y a través de el alimentar los servos.

Las características del 7806 son muy parecidas a las del ya utilizado 7805, pero con tensión de salida 6 voltios. Al aumentar la tensión el requerimiento de intensidad es menor y si disponemos de un buen refrigerador(en mi caso no lo he puesto aunque es necesario)solucionaremos el problema.

Lista de Piezas

Dibujo de la Pieza Nombre Nº Piezas
Base Muñeca 1
Muñeca 1
Lateral Brazo 4
Repy 1.1 Head 2
Repy 1.1 Body 2

Transmisión de datos entre Android y Arduino:

cuadro

En principio y de manera muy resumida el funcionamiento de la transmisión de los datos de la posición que definimos en el programa desde la Tablet al ArduRover es el siguiente:

  • Definimos la posición de cada servo
  • Memorizamos dichas posiciones en unas variables
  • Transmitimos una “F” y a continuación una cadena separada con el carácter “;” con todas las variables anteriores por Bluetooth
  • Arduino recibe la cadena, la separa y asigna a cada servo la posición futura
  • Mediante el procedimiento “posicionServo” los servos recorren desde la posición actual hasta la futura. Con esto los movimientos son más suaves

Los procedimientos “recibirCadenaServo”, “valorServos” y “posicionar” podrían haberse juntado, pero por claridad los he separado

He incluido la posibilidad de memorizar cuatro posiciones del brazo robot para dar mayor funcionalidad a la interfaz

Bloques de Memorizar posición

MemoriaServo

Bloques de Grabar la Posición de los Servos

GrabarPosicion

Bloques de Transmisión de la posición de los servos al Arduino

EnviarPosicion

Esquema Teórico:

 Brazo_Android_Esquema_electrico

Esquema Práctico:

Placa_1_ArduRover_6_bb_Fin

Extracto del Programa Arduino:

Extracto_de_Codigo

Fotos:

Pantalla_01

Pantalla Principal

Pantalla_05

Pantalla de control del Brazo Robot

Brazo_Plegado

Vista con el Brazo Plegado

Brazo_Extendido

Vista con el Brazo Extendido

Detalle

Detalle de conexión

Código fuente

ArduRover_Brazo_Robot.ino

APP de Proyecto:

ArduRover_X.apk

Ficha del Proyecto:

ArduRover_X_Ficha_38 

Vídeo resumen:

 

Brazo Robot

Realización de un brazo Robótico.

Como continuación a la entrada anterior he seguido diseñando partes del brazo robot que quiero para el ArduRover. Como os comenté, las piezas las he diseñado con el programa “FreeCad” y las he impreso con la impresora 3D “BQ Prusa i3 Hephestos”.

De la web de “Juan González Gómez” he utilizado los “Módulos Y1” nuevos y basándome en ellos he desarrollado las nuevas piezas.

He utilizado un programa para cargar los objetos y crear el archivo que tras grabarlo en una SD lo imprimira la impresora.

Cura_Brazo_Robot

Lista de Piezas

Dibujo de la Pieza Nombre Nº Piezas
Base Muñeca 1
Muñeca 1
Lateral Brazo 2
Repy 1.1 Head 1
Repy 1.1 Body 1

Faltaría la articulación del hombre que en un futuro deberé decidirlo.

Esquema Teórico:

 Brazo_Esquema_electrico

Esquema Práctico:

Servos_Brazo_Robot_bb

Programa Arduino:

Codigo

Fotos:

ArduRover_Brazo_Robot_Vista_Lateral

Vista Lateral

ArduRover_Brazo_Robot_Vista_Latera2l

Otra vista Lateral

ArduRover_Brazo_Robot_Detalle_01

Detalle codo

ArduRover_Brazo_Robot_Detalle_03

Detalle brazo

ArduRover_Brazo_Robot_Detalle_02

Detalle Muñeca

ArduRover_Brazo_Robot_Vista_Superior

Vista Superior

ArduRover_Brazo_Robot

Vista 360 grados

Código fuente

 ArduRover_Brazo_Robot.ino

Ficha del Proyecto:

 ArduRover_X_Ficha_37

Vídeo resumen:

Pinza de Agarre

Realización de una Pinza para un brazo Robótico.

Una de las pretensiones que al principio propuse para el ArduRover, era que tuviese un brazo robotizado, pues bien, me he puesto manos a la obra y después de ver muchos modelos, me he decidido por una variación de uno que vi en “thingiverse“; esta web tiene a disposición de los usuarios un montón de objetos en 3D (os la recomiendo).

Las piezas las he  diseñado con el programa “FreeCad” y las he impreso con la impresora 3D “BQ Prusa i3 Hephestos”.

He utilizado un programa para cargar los objetos y crear el archivo que tras grabarlo en una SD lo imprimira la impresora.

Impresion_3D

 Lista de Piezas

Dibujo de la Pieza Nombre Nº Piezas
Base Base 1
Engranaje01 Engranaje 1 1
Engranaje02 Engranaje 2 1
Garra Garra 3
Union_Pieza
Unión entre Piezas 3
Suplemento01
Suplemento 1 1
Suplemento02 Suplemento 2 1

Como podéis ver, esto solo es la pinza, en el futuro deberé pensar cuantos grados de libertad quiero dar al brazo robotizado y diseñarlo.

Esquema Teórico:

Control_Pinza_Esquema

Esquema Práctico:

 

Control_Pinza_bb

Programa Arduino:

Pinza_Robot_Codigo

Fotos:

DSC_1772

Perceptiva

DSC_1770

Vista de Frente

 

DSC_1768

Vista Lateral

 

DSC_1765Vista Trasera

DSC_1764

Vista Superior

Código fuente

Control_Pinza.ino

Ficha del Proyecto:

ArduRover_X_Ficha_36

Vídeo resumen: