Manejo de una Mano Robótica desde un Módulo Electrónico Raspberry Pi B+ con Sistema Operativo Raspbian

July 3, 2017 | Autor: W. Velásquez Vargas | Categoría: Robotics, Python, Arduino, Python Programming, Raspberry Pi
Share Embed


Descripción

Manejo de una Mano Robótica desde un Módulo Electrónico Raspberry Pi B+ con Sistema Operativo Raspbian. Byron Narváez R. (1) Andrea Maridueña C. (2) Sistemas Operativos de Red Escuela Superior Politécnica del Litoral Guayaquil, Ecuador [email protected](1) amaridueñ[email protected](2)

Resumen: Este trabajo documenta el desarrollo de hardware y software para el manejo de una mano robótica, completa con 6 grados de libertad con movimiento independiente en cada dedo, desde un módulo electrónico Raspberry pi B+ con un sistema operativo Raspbian y con puertos digitales de entrada y salida. Abstract: This paper is about the development of hardware and software to drive a full robotic hand with 6 free degrees, independent every finger, from a electroni c board Raspberry pi B+ with a Raspbian operating system and input and output digital ports Palabras clave: Mano robótica, Raspberry pi, raspbian, servomotor, arduino, python.

I. INT RODUCCIÓN La interacción entre el software y el hardware para el desarrollo de proyectos basados en robótica, es uno de los mayores pasos cuando se realiza la construcción de ideas, o prototipos, existen muchos sistemas operativos basados en robótica, los cuales se comunican con el hardware principal a través de señales de comunicación serial, demostrando también la importancia y la intervención de los sistemas operativos en Robótica. La construcción de una mano robótica nos permite ver al hardware de un robot más allá de unas simples tarjetas electrónicas, motores, baterías y sensores, ya que podemos visualizar como una idea llevada a lo físico, puede emular muy bien una parte del cuerpo humano, lo que nos permite idealizar la construcción de algo más allá de una parte del cuerpo humano sino del total de el mismo. II HARDWARE Para el desarrollo de este proyecto que incluye tanto la construcción de la mano robótica, el hardware electrónico usado para el funcionamiento de la misma, como también todo el hardware usado para el correcto funcionamiento de nuestra raspberry pi son los siguientes:      

Tubo flexible para conductores eléctricos. Base de acrílico. Piola. Elástico. Cinta Aislante. Silicón.

          

6 servo motores Arduino Uno Rev3. Driver para servos, Torobot. Fuente de 5V. Tarjeta Raspberry Pi B+ Teclado USB Mouse USB Fuente de 5v mínimo 1A Memoria micro SD de 4 GB Cable HDMI Televisor o monitor con entrada HDMI..

A. Construcción de la Mano Robótica. El principal material del hardware de esta mano robótica son los tubos eléctricos flexibles, estos van a emular los dedos del animatronic. Primero se calcó en una cartulina el perfil de una mano para usarla como plantilla. Aquí se marcaron los lugares donde hay articulaciones en los dedos. Luego se procede a recortar el tubo para formar cada dedo. Para las articulaciones, se realiza un corte en V en el tubo para que permita flexionar el material. A un extremo de cada “dedo” se amarra un trozo de piola, éste será el nexo entre el servo motor y el tubo. Todos los dedos se unen con cinta aislante negra desde la base que simula la muñeca de la mano. El otro extremo de piola se amarra a cada servomotor. Los tubos y servo motores se pegan con la silicón a la base de acrílico disponiéndolos de forma ordenada para que no se enreden las piolas. B. Raspberry Pi Raspberry Pi es un ordenador de placa reducida o (placa única) (SBC) de bajo coste desarrollado en Reino Unido por la Fundación Raspberry Pi, con el objetivo de estimular la enseñanza de ciencias de la computación en las escuelas. Es capaz de hacer todo lo que espera de una computadora de escritorio.[2] • navegar por Internet • reproducción de vídeo de alta definición, • hojas de cálculo, procesadores de texto, juegos. El Raspberry Pi es un ordenador de bajo costo, del tamaño de las tarjetas de crédito, se conecta a un monitor de ordenador o un televisor, y utiliza un teclado y un ratón estándar.

C. Arduino Es una plataforma de hardware libre, basada en una placa con un microcontrolador y un entorno de desarrollo, diseñada para facilitar el uso de la electrónica en proyectos multidisciplinares. El hardware consiste en una placa con un microcontrolador Atmel AVR y puertos de entrada/salida. Los microcontroladores más usados son el Atmega168, Atmega328, Atmega1280, y Atmega8 por su sencillez y bajo coste que permiten el desarrollo de múltiples diseños. Por otro lado el software consiste en un entorno de desarrollo que implementa el lenguaje de programación Processing/Wiring y el cargador de arranque que es ejecutado en la placa. Se programa en el ordenador para que la placa controle los componentes electrónicos.[1] D. Torobot Este es un controlador de servos de 32 canales diseñado por Torobot Destacado con una CPU de 32 bits, que proporciona una mejor velocidad, precisión y estabilidad. El controlador de servo puede ser fácilmente controlado por cualquier software fácil de usar mediante UART (TTL). . Hay mucha información que se ha encontrado al respecto. Hay, un manual en línea disponible, pero no fue de mucha utilidad para mí. III SOFTWARE Para poder ejecutar este proyecto luego de que todo su hardware haya sido terminado en su totalidad, necesitamos encargarnos de otra parte importante como lo es su software, la instalación del sistema operativo dentro de la tarjeta Raspberry Pi, la configuración del sistema operativo, la programación del código en el lenguaje Python y la programación del código dentro de la tarjeta arduino. El software que usaremos para desarrollar este proyecto son:    

Raspbian 3.18 Arduino IDE 1.0.5-r2 Python 2. IDLE

A. Raspbian Raspbian OS es la distribución por excelencia para la Raspberry Pi. Es la más completa y optimizada de las existentes, por eso cuenta con apoyo oficial. Raspbian OS se basa en la potente distro Debian Wheezy (Debian 7.0) optimizando el código de ésta para la SBC Raspberry Pi. La distribución es ligera para moverse ágilmente en el hardware de la Raspberry Pi, con un entorno de escritorio LXDE y Midori como navegador web predeterminado. Además incluye herramientas de desarrollo muy interesantes, como IDLE para Python, Scratch para programar videojuegos (muy interesante sobre todo si se combina con Arduino), la tienda de aplicaciones denominada Pi Store, etc… B. Arduino IDE El código abierto Arduino Software (IDE) hace que sea fácil de escribir código y subirlo a la tarjeta. Se ejecuta en Windows, Mac OS X y Linux. El entorno está escrito en Java y

basado en el procesamiento y otro software de código abierto. Este software se puede utilizar con cualquier placa Arduino. C. Python 2 Python es un lenguaje maravilloso y poderoso de programación que es fácil de usar (fácil de leer y escribir) y con Raspberry Pi le permite conectar su proyecto hacia el mundo real. La sintaxis de Python es muy limpia, con un énfasis en la lectura y utiliza palabras claves en inglés estándar. Se debe comenzar abriendo el IDLE desde el escritorio. D. IDLE La introducción más fácil de Python es a través de IDLE, un entorno de desarrollo Python. Debe abrir IDLE desde el menú de escritorio o aplicaciones: IDLE le da una REPL (Read-Evaluar-Print-Loop), que es un indicador de que puede introducir comandos de Python. Como es un REPL incluso tienes la salida de los comandos impresos a la pantalla sin necesidad de utilizar la impresión. Tenga en cuenta dos versiones de Python están disponibles: Python 2 y Python 3. Python 3 es la versión más reciente y se recomienda, sin embargo Python 2 está disponible para las aplicaciones heredadas que no soportan Python 3 todavía. IV. DESARROLLO Para el desarrollo de este proyecto se deben cumplir con la ejecución de ciertas etapas antes de poder realizar su funcionamiento, estas etapas deben cumplir un orden ya que cada una dependerá de haber realizado la etapa anterior inmediata, las etapas que tendremos que cumplir son las siguientes:     

Instalación del sistema operativo Raspbian en el módulo Raspberry Pi. Configuración del sistema operativo. Programación del código en Python. Programación del código en Arduino. Conexión del hardware

A. Instalación del sistema operativo Raspbian en el módulo Raspberry Pi. Para poder realizar la instalación de Raspbian en la tarjeta electrónica, debemos primero descargarlo desde la página oficial de Raspberry Pi. Lo siguiente es pasar el sistema operativo hacia una memoria micro SD de mínimo 4GB, en este proyecto hemos usado una memoria de 4Gb, la cual funcionará como disco duro, por lo que debemos contar con alguna aplicación que pueda instalar este sistema operativo dentro de la memoria micro SD de manera que al momento de colocarla en la tarjeta Raspberry pi pueda iniciar de manera booteable. El programa que usamos para poder configurar nuestra memoria micro SD de esta forma es Win32 Disk Imager.

o podemos ejecutar el programa Python 2, en el cual elegimos la opción crear nuevo archivo, en este escribimos nuestro código, y lo guardamos como mano_robotica-py, a continuación se muestra el código en Python.

Figura 1 Sistemas operativos Disponibles en la pagina official de Raspberry Pi.”

B. Configuración del sistema operativo. Al momento en el que el sistema operativo inicia nos muestra una pantalla en al cual tenemos ocho opciones de configuración del mismo. De las cuales solo procedemos a configurar dos de ellas que son las que necesitamos para el desarrollo de este proyecto. La primera opción que configuramos es el cambio de usuario y contraseña de ingreso, y la segunda opción de configuración es la de opciones de internacionalización donde configuramos el idioma tanto del sistema como del teclado. Luego de haber realizado esta configuración procedemos a escribir el comando startx para poder ingresar en el modo grafico del sistema.

Import serial Arduino=serial.Serial(‘/dev/ttyAMA0’,9600,timeout= 1) ser.open() print("Starting!") while True: comando = raw_input('Introduce un comando: ') arduino.write(comando) arduino.close( ) #FINALIZA LA COMUNICACIÓN Como en nuestro código usamos comunicación serial mediante el puerto UART de nuestra GPIO de la tarjeta Raspberry Pi, necesitamos instalar el paquete que nos permite poder realizar esta comunicación, por lo tanto escribimos en nuestra terminal de consola el comando: sudo apt-get install python-serial. D. Programación del código en Arduino Nuestro código en Arduino se basa en dos etapas importantes que son: la recepción de los datos seriales desde la tarjeta Raspberry Pi hacia el Arduino, y el envío de otros datos seriales desde la tarjeta Arduino hacia el controlador de los servomotores los cuales dependerán de los datos que reciban desde la Raspberry Pi, los cuales son validados en nuestro código. E. Conexión del hardware La conexión del hardware está muy ligada al código que programamos tanto en nuestra tarjeta raspberry pi como en la tarjeta arduino. Para la comunicación serial que realizamos entre la Raspberry Pi y la tarjeta Arduino necesitamos de un convertidor de niveles de voltaje el cual se lo utiliza debido a que los niveles de voltaje TTL de la tarjeta Raspberry Pi son menores a los niveles de voltaje TTL de la tarjeta Arduino UNO, de 3.3v y 5v respectivamente.

Figura 2

Ventana de Configuración.

Figura 4 esquemático de la comunicación entre tarjetas.

Figura 3 Modo gráfico de este sistema operativo

C. Programación del código en Python Para realizar la programación en el lenguaje Python dentro de la raspberry Pi debemos ejecutar IDLE, esto lo hacemos desde la terminal de consola de raspbian, con el comando “sudo IDLE”,

Figura 5 esquemático usando el convertidor de noveles de voltaje.

V. FUNCIONAMIENTO La mano robótica funciona de la siguiente manera: 1. Abrir el código desde Python y lo mandamos a correr. 2.

Escribimos la letra o número que deseamos que nuestra mano robótica realice.

3.

Esta letra o número es enviado como dato serial al Arduino Uno por la conexión desde el GPIO, la cual es analizada y luego selecciona la posición de cada servo. Un paquete de datos con todas estas posiciones es enviada a la tarjeta Torobot.

4.

La tarjeta Torobot es la encargada de suministrar la potencia necesaria a los servos de la mano. La Torobot es capaz de controlar 32 servo motores a la vez y se comunica de forma serial con el Arduino Uno.

VI. RESULTADOS Al finalizar el funcionamiento de nuestro proyecto podemos observar que nuestra mano robótica puede realizar con mucha facilidad el movimiento de todos los dedos, emulando de gran manera la simbología de los números del 1 al 5 como también las letras del alfabeto dactilológico en el lenguaje de señas. En las figuras 3 y 4 se puede observar la posición de los dedos luego de enviar los comandos desde Python para las letras W, V.

Figura 1 Representación de la letra "W" y “V”

VII. CONCLUSIONES  Podemos concluir que Raspberry pi en cualquiera de sus modelos es una buena herramienta para la interacción con prototipos robóticos, su mayor ventaja es su dimensión.  Al igual que un computador normal puede trabajar con diversos sistemas operativos en su mayoría Linux, siendo el más usado Raspbian, el cual como pudimos ver es de fácil manejo.  Su banco de pines GPIO es lo que le da ese enlace perfecto con diferentes módulos de programación como arduino, puentes H para motores, incluso diferentes microcontroladores, conectar sensores o elementos indicadores como leds.

A GRADECIMIENT OS Es de mucha importancia para nosotros resaltar en este proyecto la importancia que tuvo la colaboración del club de Robótica de la ESPOL, ROBOTA, al facilitarnos el uso de ciertos elementos electrónicos, para el desarrollo de este proyecto. Agradeciendo a su presidente Edgar Vela. También debemos resaltar la colaboración de nuestro profesor el Ingeniero Washington Velásquez Vargas al haber aceptado este tema dentro de los proyectos a exponer al final de este término académico. REFERENCIAS [1] https://es.wikipedia.org/wiki/Arduino [2] https://www.raspberrypi.org/help/what -is-a-raspberry-pi/

Lihat lebih banyak...

Comentarios

Copyright © 2017 DATOSPDF Inc.