Paul Herrera Bucheli Universidad Internacional del Ecuador Robótica I
Informe de Proyecto Tema: Brazo antropomórfico con Visión Artificial Objetivos:
Construir un brazo Antropomórfico
Controlar el brazo mediante cinemática inversa
Realizar una interfaz de control mediante un micro controlador
Implementar la visión artificial mediante una cámara web
Usar el brazo para que logre jugar Ajedrez
Desarrollo: Interfaz La interfaz es lo que c omunicara el software de la computadora con el hardware del brazo. La interfaz será capaz de controlar los servomotores usados en los brazos y recopilar información de sensores externos que se podrían usar. Para la interfaz usaremos un Arduino Uno, Arduino es una placa de desarrollo basada en el micro controlador atmega 328, el mismo viene co n un software de programación el mismo que no tiene costo. Arduino proporciona el software y los diagramas de hardware por lo cual es de código abierto.
Paul Herrera Bucheli Universidad Internacional del Ecuador Robótica I Especificaciones Técnicas
Arduino Uno
Microcontroller
ATmega328
Operating Voltage
5V
Input Voltage (recommended)
7-12V
Input Voltage (limits)
6-20V
Digital I/O Pins
14 (of which 6 provide PWM output)
Analog Input Pins
6
DC Current per I/O Pin
40 mA
DC Current for 3.3V Pin
50 mA
Flash Memory
32 KB (ATmega328) of which 0.5 KB used by bootloader
SRAM
2 KB (ATmega328)
EEPROM
1 KB (ATmega328)
Clock Speed
16 MHz
Dimensionamiento del Micro controlador
Control servo motores o
El Arduino Uno tiene 6 salidas de PWM de las cuales todas pueden ser usadas para controlar un servomotor independientemente.
Conectividad o
La placa de desarrollo cuenta con un conector USB e internamente posee un conversor de USB a TTL con esto generamos un puerto serial en la c omputadora.
o
La mayoría de software de control tiene librerías para la conexión serial con dispositivos externos
o
El software LABVIEW que utilizaremos para el reconocimiento de imágenes y para el envió de las coordenadas al Arduino tiene un toolkit el cual nos permite una conexión directa y bidireccional. Esta conexión tiene una máxima velocidad de 115200 baudios lo cual cumple nuestros requisitos para el proyecto.
Paul Herrera Bucheli Universidad Internacional del Ecuador Robótica I
Servomotores Un servomotor es conocido también como servo es un aparato muy parecido a un motor DC, el servo tiene la capacidad de ubicarse en cualquier posición dentro de su rango de operación y mantenerse estable en dicha posición. Esto lo hace gracias a un sistema de control, que trae de manera interna que consta de un potenciómetro y una tarjeta de comparación. Los servomotores tienen la capacidad de ser controlados en posición y veloc idad. Los servos se utilizan frecuentemente en sistemas de radio control y en robótica por ejemplo un brazo robótico, cada servo sería un grado de libertad, también se lo puede aplicar a sistemas automatizados, por ejemplo en máquinas de control preciso y rápido. Es posible modificar un servomotor para obtener un motor DC con esto pierdes la capacidad de control pero conservas la fuerza y la velocidad que caracteriza a los servomotores. Generalmente los servos traen tres cables por lo cual son muy sencillos de usar, dos cables para la alimentación y un tercero para el control donde puedes aplicar PWM (Modulación del ancho del pulso) para que logres un posicionamiento preciso y rápido, por ejemplo puedes usar Arduino.
Control del Servo Motor Para controlar el servomotor se varía el ancho de pulso de una señal cuadrada que se aplica al pin de control del servomotor. En el siguiente cuadro podemos ver las posiciones claves y el tiempo de los anchos de pulso de un servomotor estándar. La frecuencia de la onda cuadrada puede variar de 1000 hz a 333 hz, generalmente se usa como estándar una frecuencia de 500 hz para el control de los servo motores.
Paul Herrera Bucheli Universidad Internacional del Ecuador Robótica I Especificaciones Técnicas Servomotor MG996R :Peso- 55.0g Dimensiones :40.7*19.7*42.9mm Torque 9.4kg/cm(4.8V),11kg/cm(6V) Velocidad de Operación 0.17sec/60degree(4.8v), 0.14sec/60degree(6v) Voltaje de Operación 4.8-7.2V Rango de Temperatura 0°C_ 55°C Ancho de Banda 5us
Software de Reconocimiento de imágenes LABVIEW LABVIEW es una plataforma y entorno de desarrollo para diseñar sistemas, con un lenguaje de programación visual gráfico. Recomendado para sistemas hardware y software de pruebas, control y diseño, simulado o real y embebido, pues acelera la productividad. El lenguaje que usa se llama lenguaje G, donde la G simboliza que es lenguaje Gráfico. Usaremos LABVIEW debido a sus 2 módulos que nos ofrece para el desarrollo de nuestro proyecto los cuales son:
Paul Herrera Bucheli Universidad Internacional del Ecuador Robótica I NI Vision Development
El Módulo NI Vision Development está diseñado para desarrollar aplicaciones de visión artificial y procesamiento de imágenes usando el entorno de desarrollo gráfico de NI LabVIEW para Windows y sistemas en tiempo real y C, C++, C# y Visual Basic .NET para sistemas Windows. Junto con la extensa biblioteca de funciones de visión artificial y procesamiento de imágenes, este módulo incluye el NI Vision Assistant, un entorno interactivo para generación de prototipos de aplicaciones de inspección que pueden generar código listo para ejecutar en cualquiera de los lenguajes soportados.
NI LabVIEW Interface for Arduino Toolkit El NI LabVIEW Interface for Arduino Toolkit ayuda a establecer interfaz fácilmente con el micro controlador Arduino usando LabVIEW. Con este juego de herramientas y LabVIEW podemos usar a nuestro Arduino como una placa de entradas y salidas para el software LabVIEW y con esto podemos interactiar fácilmente con nuestro robot desde la com putadora.
Desarrollo de Software Interfaz Manual
Paul Herrera Bucheli Universidad Internacional del Ecuador Robótica I Mediante esta interfaz podemos controlar manualmente los ángulos de los 5 servos de Nuestros Robots también podemos seleccionar en que puerto serial está conectado el Arduino en caso de que tengamos más que un puerto serial o dispositivos conectados en el computador. También disponemos de un control para seleccionar el tipo de conexión la cual puede ser USB/Se rial, Xbee o por Bluetooth. Se Dispone de un botón de Stop de emergencia que detiene el brazo totalmente en la posición instantánea. De los 4 Servos solo controlamos los ángulos debidos a que estos nos dan la posición final del brazo. Y para el servo de la pinza solo tenemos dos posiciones cerrado y abierto
Diagrama de Bloques LABVIEW Este Diagrama de bloques es para el funcionamiento exclusivo manual de los servomotores y la interfaz mediante arduino.
Paul Herrera Bucheli Universidad Internacional del Ecuador Robótica I Aquí básicamente esta la configuración de la interfaz con Arduino la cual se realiza mediante un recurso visa de labview. Aquí tenemos que configurar que placa de Arduino estamos utilizando, velocidad de conexión, tipo de conexión. Después de esto podemos iniciar la conexión mediante e l comando init. Después debemos configurar el número de servos que utilizaremos en nuestra aplicación. También debemos configurar todos los pines de los servos como salidas. Y después de esto podemos escribir los ángulos que deseamos en nuestros servos mediante la función servowrite. Siempre a final de la ejecución del programa se debe cerrar el recurso visa y el arduino.