Download Capítulo 3. Hardware y software utilizado (archivo pdf, 713 kb)

Document related concepts
no text concepts found
Transcript
Capitulo III. Hardware y software utilizado. •
Kit LEGO Mindstorms NXT. El Kit consta de una serie de piezas de plástico que se ensamblan entre si, sensores; como lo son de tacto, de sonido, de ultrasonido, de luz y servo motores; un ladrillo con un microprocesador que nos permite procesar información por medio de una interfaz (firmware) y un software llamado NXT­G desarrollado por LabView y LEGO Mindstorms que nos permite desarrollar programas de manera sencilla.
Figura 3.1. Imagen del ambiente de programación llamado NXT­G.
Este kit de LEGO nos permite diseñar, crear y programar nuestros propios robots, desarrollando nuestra imaginación y habilidades de programación. Este kit se puede conectar de dos diferentes, una es por vía bluetooth y la otra por USB. El kit también se puede programar con diferentes lenguajes de programación como lo son java utilizando LeJOS y C utilizando NXC.
Figura 3.2. Kit LEGO Mindstorm NXT and Alpha Rex.
•
Sphinx­4 Esta aplicación es la encargada del reconocimiento de la voz, la decodifica y la trasforma en texto. Para esto se requiere de una gramática que nos permita decirle a la computadora como es que el usuario va a hablar, esto le permite tener menos errores al momento de decodificar la voz y pasarla a texto. Para pasarla a texto primero la decodifica y la compara con la gramática que nosotros predefinimos con anterioridad y la que mas se asemeje es la que nos muestra como resultado. Esta aplicación nos permite reconocer la voz con el lenguaje de programación java y nos regresa una cadena de caracteres (String) como resultado.
•
Icommand 5 de LeJOS [WEB 07]
Es un paquete de Java para controlar el ladrillo de NXT sobre una conexión de Bluetooth. Utiliza el firmware estándar de LEGO NXT para recibir comandos del código de Java desde una computadora. Esta herramienta tiene un API que nos permite ver como programar el robot para que realicen lo que nosotros programemos.
Figura 3.3. Logotipo leJOS.
•
RXTX [WEB 08]
En la página oficial de rxtx se define como: “RXTX es un lib nativo que proporciona la comunicación serial y paralela para la caja de herramientas del desarrollo de Java (JDK)”. Es una librería de java que nos permite conectarnos por medio del bluetooth con el ladrillo del NXT, para poder mandarle instrucciones al robot, todo esto en tiempo real y así el robot ejecutarlas en el momento que se le envíen.
•
IDE Eclipse [Web 09]
En la página oficial de eclipse se define como: “Un IDE para todo y para nada en particular” es un armazón el cual puedes alojar diferentes lenguajes de programación. Es el IDE que me permitió integrar todo mi sistema. Eclipse nos permite ingresar nuevos accesorios (plugins) para personalizarlo a nuestras necesidades de una manera sencilla, además de que es un IDE gratuito.
Figura 3.4. Logotipo de eclipse
•
LDraw Desarrollado por James Jessiman. Es un sistema que permite dibujar las construcciones LEGO utilizando un sistema de basado en archivos *.CAD. Es un programa basado en DOS, por lo cual se necesita instalar también una aplicación que maneje un ambiente grafico en 3d Como lo pueden ser, MLCAD o LeoCAD.
•
MLCad (Mike's LEGO CAD)
Es un sistema basado en CAD de gran alcance diseñado específicamente para crear instrucciones de LEGO, de sus propios modelos y creaciones de LEGO. MLCad lee y escribe los archivos compatibles de LDraw, pero en un ambiente basado en ventanas extensas. El programa ayuda a crear las instrucciones, que demuestran gradualmente cómo construir el modelo.
•
Lpub
Es una aplicación que nos permite generar de manera automática las instrucciones paso a paso de la construcción de tu propio modelo de LEGO. LPub nos ayuda a generar de manera automática nuestra propia página de html con las instrucciones de nuestro propio modelo de LEGO. Aparte de generar las instrucciones de tu modelo LEGO, Lpub con la ayuda de Pov­Ray le da una perspectiva más realista a las imágenes de LEGO y así obtenemos una página web con las instrucciones del robot con imágenes de excelente calidad.
[WEB 10]
3.1. Instalación Eclipse. [WEB 08]
En este sistema lo primero que hice fue descargar el IDE eclipse de la página oficial de eclipse que es http://www.eclipse.org/; Como mencione anteriormente el IDE eclipse me sirvió para programar e integrar todo mi sistema. La instalación de eclipse es muy sencilla, después de obtener el archivo zip de la pagina oficial, basta con descomprimirlo el archivo en la carpeta que uno desee y ejecutar el archivo eclipse.exe, cuando se activa por primera vez debes de definir una carpeta en la cual vas a alojar todos tus proyectos de eclipse.
3.2. Instalación de Sphinx 4 en Eclipse. [WEB 06]
Seguido de la instalación de eclipse instale la aplicación llamada Sphinx 4 con la cual realice mi modulo de reconocimiento de voz. Para esto existe un tutorial en la página oficial de Sphinx 4 que nos ayuda con la configuración básica de sphinx 4 y el IDE Eclipse. La página es: http://cmusphinx.sourceforge.net/sphinx4/doc/Eclipse.html. Y la aplicación se baja desde un servidor CVS. Este tutorial te lleva paso a paso para instalar la aplicación de una manera adecuada. Después de terminar el tutorial y de instalas Sphinx 4 empecé a desarrollar mi modulo de reconocimiento de voz este modulo consta básicamente de un archivo java en el cual se genera toda la estructura básica de el reconocedor. El segundo es un *.config.xml en el cual configuramos todas las características principales de cómo se va a reconocer la voz. El tercero un archivo en el cual definimos la gramática a utilizar en nuestro reconocedor de voz. El cuarto es un archivo en el cual se configura la herramienta Ant, el archivo se llama buil.xml. Y por ultimo se define un archivo con extensión *.Manifest en el cual agregamos la clase main y las librerías que vamos a utilizar del Sphinx 4. 3.3. Instalación de Icommand y RXTX en Eclipse.
Después de tener nuestro reconocedor de voz instalado en eclipse el paso siguiente es instalar el icommand y el rxtx a nuestro IDE. Para esto lo primero que debemos hacer es descargar el Icommand­0.5..zip que se encuentra en la página oficial de leJOS que es: http://lejos.sourceforge.net/. Después de descargar el Icommand debemos descargar el rxtx­2.1­7­bins­r2.zip de la página oficial del rxtx que es: http://www.rxtx.org/. Estas herramientas me ayudaron tanto a programar mi robot en java así como a conectarlo por vía bluetooth. Después de descargar las dos herramientas debemos descomprimir los archivos en carpetas separadas. Después de esto debemos de agregar las herramientas a nuestro proyecto de Sphinx que generamos en nuestro IDE. Para esto al proyecto de Sphinx le damos propiedades, cuando nos aparezcan las propiedades de nuestro proyecto nos vamos a Java Bluid Path, después de esto nos vamos a la pestaña de “Libraries” y le damos un clic a la parte que dice “Add External JARs”, después de esto debemos agregar los archivos icommando.jar y el archivo RXTXcomm.jar.
Después de agregar el archivo RXTXcomm.jar, debemos de extender las propiedades de este jar y en la parte de “Native Library Location” debemos agregar la carpeta siguiente …/rxtx­2.1­7­bins­r2/
Windows/i368­mingw32 que es donde se encuentran los DLL necesarios para ejecutar dicha herramienta.
Figura 3.5. Configuración del RXTX.
Después de esto debemos de agregar estos mismos DLL a la carpeta donde tenemos instalado el JDK de java …\jre1.5.0_10\bin, para que al momento de ejecutar esta herramienta el compilador de java los encontré de manera rápida.
Figura 3.6. Archivos DLL de RXTX.
En la figura 3.5 podemos ver como se debe configurar la librería de el RXTX en la parte de Native library location, debemos de poner la carpeta en la cual están los DLL’s que se necesitan para ejecutar esta herramienta.
Por ultimo debemos de configurar nuestra computadora con nuestro robot. Lo primero es activar nuestro bluetooth de la computadora. Después de esto activar nuestro bluetooth del ladrillo del NXT (nuestro robot). En las opciones de bluetooth de la computadora debemos anexar al robot, esto siguiendo las instrucciones del asesor de conexión del bluetooth. Nos va a pedir una clave la cual por defecto en el NXT es “1234”; esto para poder tener acceso al robot y viceversa. Al finalizar la configuración con nuestra computadora lo que nos resta es observar en que puerto esta configurado el ladrillo del NXT. Esto lo podemos ver en:
1. Inicio  Panel de control  Sistema, Seguimos hacia la pestaña de .
2. Hardware  Administrador de Dispositivos  extendemos el apartado que dice “Puertos (COM & LPT)”; y es aquí donde nos fijamos en la parte que dice “Serie estándar sobre el vinculo bluetooth (COM #)”.
3. Debemos seleccionar el COM más pequeño ya que al momento de ingresarlo te genera dos puertos.
Figura 3.7. Configuración puerto Bluetooth.
4. por ultimo y para poder conectarnos con nuestro kit, debemos de poner el COM port en la configuración del archivo llamado “icommand.properties”; este archivo debe estar ubicado en la carpeta de donde tenemos nuestro proyecto.
Figura 3.8. Configuración del Archivo Icommand.properties.
3.4. Ventajas de usar estas herramientas en el sistema.
Una de las ventajas más importantes del porque usar estas herramientas junto con el IDE eclipse es que todas las herramientas son desarrolladas con el lenguaje de programación java, entonces ya no tenemos problemas con la compatibilidad, esto a la hora de integrar todo el sistema. 3.5. Problemas que pueden surgir al utilizar el sistema. 1. Uno de los problemas con el sistema al momento de hacer las pruebas, fue que al ejecutar cualquier ejemplo del reconocedor de voz (Sphinx 4), nos marcaba que la maquina virtual de java tenia memoria insuficiente.
2. Cuando intentamos conectar al robot con el rxtx si no lo tenemos bien configurado en el bluetooth nos genera una colisión con los puertos de enlace esto utilizando el rxtx y el icommand.
3. Cuando mandamos una instrucción al robot no valida o al momento de trasmitir el comando existe un error de conexión el robot no responde y se queda como paralizado.
3.6. Solución de problemas con el sistema.
1. Para solucionar este problema con la Maquina Virtual de Java, debemos de agregar un argumento al momento de compilar que nos permita extender la memoria de Java Virtual Machina (JVM) que es “­Xmx[256]m”; lo que se encuentra encerrado entre corchetes es la cantidad de memoria que uno desea asignarle a la maquina virtual de java, lo que le dice este argumente a la maquina virtual es que extienda la memoria a 256. Nota: cuando nosotros ponemos el argumento de JVM sin corchetes.
2. Para solucionar este problema debemos de reconfigurar el bluetooth de nuestro sistema operativo para poder conectarnos de nuevo con el ladrillo del NXT. Esto pasa porque el robot lo tenemos apagado cuando trabajamos con nuestra computadora. Y la maquina pierde ciertos vínculos de la conexión y debemos de reconfigurarlo. En dado caso que se cambien los puertos los debemos modificar en el archivo “icommand.properties”. para tenerlo siempre actualizado.
3. Para resolver este problema debemos de apagar nuestro ladrillo de NXT y después de esto encenderlo nuevamente, esto pasa mayormente cuando hacemos pruebas con nuestro software.