PRESENTA: Gonzales Canul Fredy, Pech Balam Diego, Cetina Nahuat Guillermo, Garcia Moreno Andres, Moo Cauich Rafael, Damian Garrido Ku. ASESOR: JOSE LUIS ASUNCION KU UC
Instituto Tecnolgico Superior de Calkini en el Estado de Campeche Av. Ah Canul S/N por carretera federal S/Colonia, Calkini, Campeche, C.P 24900 Club de robtica ITESCAM, Ingeniera en Mecatrnica IMPACTO TECNOLGICO 3911@itescam.edu.mx
2 NDICE DE CONTENIDO A.1 Introduccin....... P. 3 A.2 Objetivos........................ P. 5 A.2.1 Objetivo General....... P. 5 A.2.2 Objetivos Especficos............... P. 6 A.6 Justificaciones........ P. 9 A.7 Impacto Tecnolgico...... P. 10 A.8 Impacto Econmico... P. 11
DESARROLLO DISEO ELECTRNICO.... P. 13 3.1 Diseo del Sistema iDroid.... P. 14 3.2 Robot Mvil...... P. 15 3.2.1 Mecnica del Robot..... P. 16 3.2.2 Sensores del Robot... P. 18 3.2.3 Controlador Principal. P. 19 3.2.4 Interfaz de Comunicacin... P. 19 3.2.5 Software del Robot.. P. 20 3.3 Plataforma de Programacin.. P. 23 3.4 Aplicacin Android.. P. 23 Conclusiones y Recomendaciones..... P. 24 Referencias BibliogrficasP. 24
3 INTRODUCCIN Considerando los adelantos de la ciencia y la tecnologa en un mundo actual donde existen grandes cambios e innovaciones en la industria, podemos abordar un tema muy interesante como lo es la robtica, que, a pesar de ser una ciencia relativamente nueva, ha sido un motor que ha impulsado el avance de la tecnologa. Es un tema de inters el cual, trata sobre el diseo de mquinas capaces de desempear tareas que para el ser humano son muy difciles y hasta peligrosas de efectuar. Para desarrollar el mbito de la robtica tambin estn involucradas otras ramas de la tecnologa que ayudan al desarrollo de la robtica como lo son: la electrnica, la fsica, la informtica, la mecnica, entre otras. En nuestros das, podemos observar que la tecnologa ha avanzado de una forma increble que hasta es posible crear vida artificial reduciendo as muchas tareas que para el ser humano, serian difciles de efectuar o al menos, se tardara mucho en realizarlas, as como son las actividades repetitivas. Pero la principal funcin de estas mquinas es remplazar la mano de obra del hombre en aquellos trabajos en los que las condiciones no son las adecuadas. Por ello, es interesante el hecho de que el hombre se ha dado a la tarea de construir mquinas capaces de imitar a algunas partes del cuerpo humano. La aplicacin de esta tecnologa se da mucho a conocer en el mbito de la industria que est caracterizada por grandes innovaciones, adelantos y avances tecnolgicos. Estas mquinas que estamos considerando son conocidas como robots, pero para comprender mejor Qu es un robot? Se podra definir como una mquina de componentes mecnicos y electrnicos que se puede programar para que realice diversas funciones y que tiene caractersticas similares a las de un ser humano. Cuando hablamos de caractersticas semejantes a las del ser humano, nos referimos a movimiento de brazos, caminar, mover objetos y otros hasta hablar. Existen cuatro ramas bsicas para la robtica actual: industrial, experimental, mdica y de servicios. Uno de los importantes centros de desarrollo para la robtica experimental y educativa en Mxico, es el Instituto Tecnolgico y de Estudios Superiores de Monterrey; en el Campus Estado de Mxico, est la unidad de postgrado de robtica encabezada por el Dr. Ricardo Sain, quien lleva la direccin de un grupo de estudiantes de doctorado con los cuales han desarrollado nuevas tcnicas y metodologas en el diseo de algoritmos para visin por computadora e inteligencia artificial. El alumno Moiss Alencaster miembro del grupo doctoral explica la situacin de investigacin e
4 investigadores enfocado a la robtica en Mxico: No hay muchos investigadores famosos que hagan robtica en Mxico, sern unos 20 o 30 en todo el pas, pero la mayora son muy tericos. Aunque si hay muchos estudiantes que participan en concursos o que les gusta armar robots. Los proyectos generados en Mxico para la robtica cubren las reas mdicas y binicas, con institutos enfocados a estas como la Universidad Nacional Autnoma de Mxico y el Instituto Politcnico Nacional. Para el rea de robtica experimental y educativa los ms sobresalientes son el Instituto Tecnolgico y de Estudios Superiores de Monterrey, y el Instituto Tecnolgico Autnomo de Mxico. En si la mayora de las instituciones educativas pblicas y privadas que cuenten en su retcula con algn rubro de mecatrnica o automatizacin y control, abarcan los temas para la robtica industrial y de servicios. En la pennsula de Yucatn las instituciones que abarcan la robtica como campo de estudio son: Instituto Tecnolgico de Mrida, Universidad Autnoma de Yucatn, Universidad Modelo, Universidad Tecnolgica Metropolitana, Universidad del Mayab, UVM, Instituto Tecnolgico de Motul, por mencionar algunos. Las reas de estudio de estas instituciones son la robtica experimental, educativa, y de servicios. En los ltimos 10 aos se han empezado a crear lneas de investigacin para la robtica mdica, pero un retraso en el uso de nuevas tecnologas a frenado y alentado el proceso de crecimiento para la binica en esta regin. La enseanza de la robtica como tal en nuestro pas est enfocada a explicar los fundamentos tericos de un robot o agente autnomo, o semiautnomo. Sin importar las estructuras electrnicas, siempre se le ha dado prioridad a conocer y entender el campo generalizado de los robots como plataforma cognoscitiva de la condiciones de operacin y aplicacin de los agentes y no como puente de vinculacin a las nuevas tendencias tecnolgicas, y el desarrollo y uso de las mismas. Una herramienta educativa que ha favorecido al acercamiento y la aceptacin del pblico acadmico es la robtica pedaggica. La robtica pedaggica se define como una disciplina cuyo objetivo principal es formular y generar ambientes de aprendizaje sobre las actividades del estudiante. Una de las principales autoras del tema es la M.C. Mnica Mara Snchez Colorado, quien obtuvo su maestra desarrollando este tema en la universidad de los Andes en el 2003, ella cita que algunos autores consideran que la
5 robtica pedaggica viene y se basa de la informtica educativa, donde se esperaba disear un modelo que impulse el uso de los robots como modelo de enseanza en las aulas escolares. En la pennsula de Yucatn, la robtica pedaggica aplicada radica en los concursos de mini robtica locales, donde participan todos los alumnos de licenciaturas (ingeniera) de las instituciones pblicas y privadas anteriormente mencionadas, adems de alumnos de educacin media superior, que llevan en su escuela algn mdulo de programacin e informtica. Los concursos de mini robtica sientan las bases para el anlisis y estudio de las metodologas de diseo e implementacin y elementos cognoscitivos en la produccin del robot. En la Experiencia del Instituto Tecnolgico de Mrida, se han realizado 9 concursos de minirobtica en los ltimos 8 aos, aunque la institucin no cuenta en la tira de retculas con la materia de robtica, en las clases diseo digital I y II, Microcontroladores y Microprocesadores , se ha fomentado a los alumnos a disear sus robots para competir entre ellos mismos, y los ganadores de este evento pueden participar en los concursos locales y nacionales representando al Instituto Tecnolgico de Mrida. Debido a la alta participacin por el inters que genera en el alumno la idea de construir su propio robot, se ha implementado el concurso en semestres ms bajos, con alumnos que an no han completado el perfil medio para el diseo de un agente autnomo; esto con el objetivo de fomentar el estudio autodidacta basado en la experiencia del uso de nuevas tendencias tecnolgicas. OBJETIVOS a) OBJETIVO GENERAL
Disear una plataforma robtica para facilitar el acceso a las tecnologas de vanguardia para reducir el retraso tecnolgico que se experimenta en las instituciones de educacin superior.
b) OBJETIVOS ESPECFICOS
Diseo y construccin de un robot mvil verstil y econmico. Diseo de un entorno de software para la programacin del robot mvil mediante la PC Diseo de interfaces para conexin con Smartphone. Diseo de un entorno de software para la programacin del robot mvil mediante Tablets Android. Proporcionar un buen material educativo en base a ejemplos y manuales que sean
6 una excelente herramienta de trabajo para los nuevos modelos de enseanza
c) JUSTIFICACIN El fin del proyecto es proporcionar una herramienta de aprendizaje para apoyar a los modelos de educacin ya existentes utilizando la robtica como pretexto para adquirir el conocimiento implementado una plataforma robtica basada en dispositivos mviles, lo que nos permitir el fcil acceso a una gran variedad de tecnologa a un costo reducido, permitiendo poder hacer interactivo y lograr el inters por parte del usuario. Se provee un problema estndar en donde una amplia gama de tecnologas pueden integrarse y examinarse, as como utilizarse en proyectos educativos. La creacin del equipo iDroid en el Instituto Tecnolgico de Mrida, genera la posibilidad de investigar y estudiar nuevas tecnolgicas en mercados competitivos, en otras escuelas y universidades; de relacionar grupos de trabajo y colaboracin en equipo, ya sea entre los propios departamentos del instituto o en conjunto con otras instituciones. Las instituciones en Mxico estn plenamente conscientes de que el despertar vocaciones para la ciencia y tecnologa a temprana edad es tarea primordial para el futuro desarrollo competitivo del pas. Esto debido a que son comparativamente pocos los estudiantes de educacin media superior que optan por estudiar una carrera relacionada a la ciencia y tecnologa. Y los estudiantes de educacin superior experimentan un rechazo a la integracin de las nuevas tendencias tecnolgicas fundamentado en el temor de la complejidad de su uso. La justificacin del proyecto iDroid es una iniciativa de investigacin y educacin. Con el fin de utilizar nuevas tecnologas. El Smartphone facilita el acceso a las nuevas tecnologas tales como Bluetooth, NFC, acceso a internet, sensores, etc.; ya que lo hace ms econmico y reduce el tiempo para su implementacin utilizando la robtica como medio para aprender estas nuevas tecnologas. Se ha demostrado que el uso de estos sistemas permite desarrollar habilidades o reafirmar conocimientos de una manera ms interesante, creativa y que permite a los alumnos construir su propio conocimiento, y desarrollar muchas habilidades y actitudes que de otra forma sera muy difcil inculcarles.
d) IMPACTO TECNOLGICO Apoyo a los modelos educativos para los alumnos de educacin superior en electrnica para la utilizacin de la robtica pedaggica, haciendo uso de los agentes autnomos como mecanismos didcticos para poder cubrir el campo terico y aplicado del marco conceptual del proyecto y acercar a las nuevas generaciones de estudiantes a las tecnologas de innovacin, atacando el retraso tecnolgico y cientfico que se presenta por el rechazo al uso de estas tecnologas y coadyuvar al desarrollo de habilidades tempranas de futuros investigadores.
e) IMPACTO ECONMICO Reduccin en los costos en la
7 adquisicin de tecnologa ya que el Smartphone integra la mayora de las nuevas tecnologas y permite la variedad ajustando el precio segn el usuario y los componentes utilizados en el robot son comunes y econmicos, los estudiantes ya no tendrn que gastar en costosas tarjetas de evaluacin para tecnologas como Wi-Fi o sensores como cmaras y GPS. El proyecto se puede implementar como un producto comercial que abarca desde los kits de robots para diferentes pblicos, venta de mdulos de expansin para futuras tecnologas as como la venta de aplicaciones mviles.
8 DESARROLLO DISEO ELECTRNICO
En el captulo se explicar a detalle el diseo de iDroid-Robodactic, el cual consta de tres etapas que son: la plataforma de programacin, el robot mvil y la aplicacin android, as como de que est compuesto y las caractersticas de los componentes utilizados en el proyecto 3.1 Diseo del Sistema iDroid c
Fig. 5 Sistema iDroid [5]
El sistema iDroid consta fundamentalmente de tres componentes: Un robot mvil, Una plataforma de programacin diseada para computadoras con Windows y tablets con Android y una aplicacin para Smartphone Android. El robot est diseado para ser una herramienta educativa e interactiva ya que ofrece al usuario la interaccin con componentes electrnicos, mecnicos y de software muy utilizados hoy en da como es el caso de los microcontroladores, servomotores, mdulos bluetooth, sensores infrarrojos, etc. De la misma forma permite la integracin de dispositivos Android para ampliar sus funcionalidades y de esta manera ofrecer al usuario tecnologas de vanguardia integradas en el dispositivo tales como NFC, Wi-Fi, GSM, Procesadores ARM, Cmaras, Multimedia, GPS, etc.
Fig. 6 Robot iDroid
La plataforma de programacin permite programar el robot por medio de mquinas de estado o cdigo PLATAFORMA DE PROGRAMACION APLICACIN ANDROID ROBOT MOVIL
9 para que el usuario final tenga la posibilidad de generar un algoritmo til y en corto tiempo. La finalidad de la plataforma de programacin es proporcionar al usuario una herramienta sencilla e interactiva para la realizacin de diversas tareas mediante la programacin de agentes autnomos sin tener conocimientos profundos de robtica, programacin y de tecnologas actuales de vanguardia. La necesidad de crear este tipo de herramientas es fundamental ya que es necesario acercar el uso de la tecnologa al mundo en general y, para ello, es necesario generar plataformas cada vez ms sencillas que puedan ser utilizadas por cualquier persona sin importar su edad, nacionalidad o lenguaje.
Fig. 7 Plataforma de Programacin iDroid Studio
La aplicacin mvil para Smartphones Android permite utilizar el dispositivo como un accesorio del robot o como cerebro del robot. En el modo accesorio es dispositivo android es utilizado para controlar el robot a distancia, leer el estado de los sensores y desplegar informacin, el control a distancia se realiza a travs de una conexin bluetooth y se le ordena al robot por medio de la pantalla touch, comandos de voz o acelermetro y de esta manera controlar los movimientos y los actuadores as como los gestos del robot y sonidos. Para el despliegue de informacin se muestran grficos y mensajes de voz sobre el estado de los sensores y que permite su calibracin. En el modo cerebro el robot acta como una mascota es decir por medio de la funcionalidad multimedia con las imgenes y sonidos el robot muestra una personalidad y responde a gestos hechos en la pantalla del dispositivo o a travs de los sensores del telfono. En este modo estn integrados 4 programas a modo de demostracin
10 que convierten al robot en un luchador de sumo, seguidor de lnea, esquiador de obstculos o de laberinto que son tareas comunes en los concursos de robtica.
Fig. 8 Aplicacin iDroid A continuacin se detalla el diseo, construccin y pruebas de cada componente del sistema. 3.2 Robot Mvil IDroid es un Robot-Smartphone basado en una interfaz Bluetooth, es un medio didctico para el desarrollo de aplicaciones mviles, utiliza el telfono como accesorio o como cerebro, aprovechando la potencia de los procesadores de un telfono inteligente y Sensores, es accesible, expandible, ya que aumenta la funcionalidad del robot, es econmico y de fcil construccin. Entre sus caractersticas principales destacan las siguientes:
Estructura: Locomocin diferencial utiliza dos motorreductores Base para Smartphone Sensores Principales: 2 sensores medidores de distancia por infrarrojos de 10 a 80 cm 5 sensores de reflexin infrarrojos para detectar lneas Sensores Secundarios: Sensor de Proximidad con alcance dependiendo el dispositivo Android Acelermetro de 3 ejes Magnetmetro Cmara GPS Actuadores: Brazo robtico de 2 grados de libertad Pinza y Hombro Conectividad: Bluetooth con alcance de 100 metros Wi-Fi GSM USB Expansin: A travs de mdulos con bus 12C Energa: 6 pilas AA recargables de Ni-Cd que proporcionan 2000 ma Funcionalidades: Firmware reprogramable a travs de USB y Bluetooth Sntesis de Voz en Espaol
11 Reconocimiento de Voz Multimedia Escaneo de cdigos de barras y QR Envo y Recepcin de mensajes de Texto 3.2.1 Mecnica del Robot El chasis est construido con PVC espumado mejor conocido como Sintra es un material liviano, resistente, termoformable, autoextinguible, no absorbe la humedad, se puede cortar, aserrar, pintar, perforar, etc. La Sintra est disponible en modo de pliegos de diferentes tamaos y colores, se utiliz un cter y cola loca para cortar las piezas y unirlas para formar la estructura.
Fig. 9 Sintra utilizado para la estructura mecnica [6] El chasis consta de 3 partes: la base, el actuador y la base para Smartphone los patrones de corte se disearon en power point, la base principal consiste en dos octgonos soportados por 4 postes de plsticos y tornillos de 2 pulgadas.
Fig. 10 Patrones de corte utilizados La configuracin usada para la traccin del robot se conoce como diferencial ya que utiliza dos motores que variando su velocidad y sentido de giro se conseguir una trayectoria, Se utilizaron dos motorreductorres de plstico con una relacin de 1:80 que proporciona 100 rpm a un torque de 2 kgcm. Se utilizaron dos rodamientos de plstico y un TrackBall para la estabilidad del robot. En la parte inferior de la Base se han montado los motorreductores, las pilas y sensores de lnea.
Fig. 11 Parte inferior de la base principal
12 El actuador es un brazo robtico de dos grados de libertad siendo pinza y hombro, para la pinza se utiliz un microservo con torque de 2 kgcm y para el hombro un servo estndar de 5 kgcm. La pinza se ha diseado para su facil construccion ya que no utiliza ningun engrane o mecanismo complejo el movimiento se da por el movimiento de un tornillo que obliga a mover la pinza.
Fig. 12 Brazo robtico 3.2.2 Sensores del Robot iDroid posee 2 sensores de proximidad GP2Y0A21YK0F de la marca Sharp que miden la distancia a la que se encuentra un objeto en un rango de 10 a 80 cm, estos sensores entregan una tensin analgica dependiendo de la distancia, funcionan con un voltaje de alimentacin de 4.5 a 5.5 v y un consumo tpico de 30 mA, estos sensores son utilizados para detectar obstculos.
Fig. 13 Sensor de proximidad GP2Y0A21YK0F [7]
Los sensores de proximidad no necesitan algn circuito adicional para funcionar, iDroid posee tambin 5 sensores de reflexin infrarrojos QRD114 para detectar lneas los cuales entregan una tensin analoga de 0 a 5 volts dependiendo de la cantidad de luz reflejada. Esta etapa cuenta con su propio microcontrolador para procesar los datos de los sensores, se utiliz el microcontrolador PIC16F690 ya que posee un bus I2C para conectarse al controlador principal. En la figura siguiente se muestra la simulacin en Proteus de la conexin de los sensores al PIC16F690, en el cual se conectaron los 5 sensores QRD114 y un conector de cuatro para la conexin principal de la siguiente manera:
Nmero de Pata Utilizada Nombre de la Pata Utilizada Componente Conectado 1 VDD 3 RA0/AN0 Q4 12 DT J 1/3 13 SDA J 1/4 16 RC0/AN4 Q5 17 RA2/AN2 Q3 18 RA1/AN1 Q2 19 RA0/AN0 Q1 20 VSS Tabla 2. Conexin del PIC16F690
13
Fig. 14 Diagrama esquemtico de la tarjeta de sensores de lnea
El acelermetro, el magnetmetro, cmara y GPS son accesibles por medio del dispositivo android. El acelermetro proporciona 3 valores correspondientes a la aceleracin medida en los ejes X, Y y Z, el magnetmetro mide la intensidad de campo magntico en los ejes X,Y y Z por lo que en el robot se usa tanto para orientacin como para detectar metales, la cmara tiene una resolucin de 3 Mpx en el dispositivo usado y el GPS proporciona las coordenadas de Latitud y Longitud y la informacin de los satlites.
Fig. 15 Montaje de los sensores en el chasis 3.2.3 Controlador Principal La tarjeta controladora principal est diseada para la implementacin rpida de prototipos ya que su firmware puede ser actualizado desde una conexin USB o Bluetooth y la distribucin de los componentes electrnicos facilita la conexin de hardware extra, est basada en el microcontrolador PIC18F2550, esta se divide en dos partes una es el control y la otra es un circuito para conectar los actuadores los sensores y la interfaz de comunicacin.
Para la eleccin del microcontrolador a utilizar en el proyecto se tom en cuenta, que ha sido utilizado en tarjetas de desarrollo muy utilizadas hoy en da como el caso de la plataforma pingino, por lo cual el diseo de la tarjeta lo hace un hardware de propsito general es decir se puede retirar del robot y ser utilizado en alguna aplicacin de automatizacin. Entre la gama de MC que se encuentran en el mercado se eligi el MC PIC18F2550, por que cuenta con protocolo de comunicacin serial UART el cual necesitamos para
14 el mdulo Bluetooth, tambin con Conectividad USB. Para controlar los motores se utiliz un driver Puente H SN754410NE de Texas Instruments
Fig. 16 Circuitos integrados usados en el controlador [8]
El controlador posee las siguientes caractersticas: Entrada de alimentacin de 7 a 25 V Entrada para conexin USB Entrada Jack para Carga de bateras Expansin por Bus I2C La lista de materiales necesarios para su construccin es la siguiente:
1 Microcontrolador PIC18F2550 1 Driver SN754410NE 1 Cristal de cuarzo de 20 MHZ 1 Regulador de 5v LM7805 1 LED de 5 mm 2 Push Button 1 Capacitores electrolticos de 47 uf 1 Capacitor cermico de 0.1 uf 1 Capacitor cermico de 470 nf 1 Resistor de 330 ohm 1 Base para CI de 28 Pines 1 Conector USB tipo B hembra 4 Terminal de 2 pines 1 Tira de pines macho 2 Tira de pines Hembra 1 Jumper 1 Placa fenlica de una cara de 5x10
Fig. 17 Diagrama esquemtico del controlador parte 1 La segunda parte del controlador es una tarjeta de las mismas medidas que se conecta por medio de pines como el formato de conexiones de shields de arduino, esta tarjeta se encarga de proporcionar la
15 alimentacin a los motores y a los servos as como conectar la tarjeta de sensores de lnea y el modulo bluetooth. La figura 18 muestra la simulacin de la segunda parte del controlador hecha en el programa Proteus.
Fig. 18 Diagrama esquemtico del controlador parte 2
Despus de terminada la tarjeta se program el microcontrolador a travs de un programador externo a travs del puerto ICSP el archivo a descargar al microcontrolador se encarga de controlar todas las funciones del control de motores lectura de sensores y comunicacin bluetooth as como la reprogramacin del microcontrolador.
Fig. 19 Tarjetas montadas en el robot 3.2.4 Interfaz de Comunicacin Esta modulo facilita la conexin con la tarjeta controladora a travs de una conexin UART, est basado en el dispositivo HC-06 que acta como un puerto serie para establecer la conexin con un dispositivo Android
Fig. 20 Modulo Bluetooth [9]
En el mercado se encuentran infinidad de mdulos Bluetooth los cuales tienes distintas caractersticas, (alcance de la seal, si el dispositivo es maestro o esclavo, etc.) Por lo cual con las delimitaciones y limitaciones de nuestro proyecto, se seleccion el mdulo HC-06 con cobertura hasta de 100m sin obstculos, comunicacin RS232 y un bajo consumo de corriente y costo, para implementarlo en el proyecto.
16 Por fbrica el mdulo cuenta con valores y configuraciones por default: Slave, 9600 baud rate, N, 8, 1. Pincode: 1234 Name: Alivor Se puede modificar estos parmetros mediante los comandos AT proporcionados por la hoja de datos del mdulo y programarlo dependiendo la aplicacin que se requiera, en este caso el firmware del robot se encarga de los cambios necesarios.
Fig. 21 Pines de conexin del mdulo HC-06 [10]
El circuito del mdulo Bluetooth HC-06, para su conexin con un microcontrolador, se ha tomado de la hoja de datos del mismo.
Fig. 22 Circuito de implementacin del mdulo.
Se modific el nombre y el PINCODE del mdulo mediante los comandos AT, se programa mediante el compilador CCS PICC. La lista de materiales necesarios para su construccin es la siguiente:
1 Bluetooth HC-06 1 Regulador 3.3 V 1 LED 1 Resistor 330 ohm 1 Resistor 10 k 1 Resistor 15 K 4 Pines 1 Placa fenlica una cara 5x5
Fig. 23 Modulo Bluetooth Montado en la Tarjeta.
17 3.2.5 Software del Robot El programa del Microcontrolador se encarga de controlar la velocidad y giro de los motores, Procesar los datos del Bluetooth y leer los sensores. El firmware se descarga a travs de la interfaz USB y se hace uso de la herramienta PIC LOADER para que la tarjeta entre en modo programacin tarjeta PIC USB mientras se presiona el botn BOOT hasta que el LED RUN comience a parpadear, para usar esta funcionalidad se incluye un archivo de cabecera para el compilador. Este firmware se ha desarrollado usando el compilador PICC CCS.
Para el control de los motores se utilizan 4 pines para indicar la direccin de cada giro siendo 2 por cada motor, el control de velocidad se consigue con la tcnica de modulacin por ancho de pulso PWM implementado a travs del TIMER1 del PIC:
Los sensores de proximidad utilizan los canales analgicos AN0 y AN1 para leer el voltaje que entrega el sensor. El control de los servomotores se realiza mediante la interrupcin TIMER1 en la cual la posicin del servo se controla mediante la activacin del pin de salida en un tiempo entre 0.5 y 2.5 milisegundos para ubicarlo entre 0 grados y 180 grados.
Para procesar los datos en el intercambio de informacin entre el modulo Bluetooth y el dispositivo android se dise un protocolo de envo de datos. Para empezar el Microcontrolador debe detectar el momento en que llega el carcter (, despus guardar los datos y la posicin en la que se encuentran, detectar el carcter ) para reiniciar el ciclo, y por ultimo convertir esa cadena de texto en un valor. Es recomendable el uso de interrupciones por UART para evitar la prdida de datos. Teniendo en cuenta que el todos los valores utilizados varan de 0 a 100 el mnimo numero de caracteres que puede enviar son 3 y el mximo son 5, para (0) y (100) respectivamente. Entonces es necesario declarar una variable char en forma de arreglo para guardar los datos, siendo 5 la dimensin mnima, el cdigo del Microcontrolador usa para ello la siguiente lnea:
char dato[10];
Para detectar cada carcter recibido se utiliza la funcin Kbhit() , al recibir cada carcter se debe ir guardando en la variable dato[] especificando la posicin en los corchetes, debido a que no se sabe en qu momento se recibirn 3,4 o 5 caracteres la posicin de los datos y del carcter de fin ) ser variable, por lo tanto se usa la variable entera Position para usarla como apuntador como se muestra a continuacin:
if(kbhit()) { dato[position]=getc(); }
El siguiente paso es detectar el carcter de inicio, servir para saber que inicia la trama e indicar mediante una variable llamada Inicio que ya se puede incrementar la variable Position y acomodar el dato en la siguiente posicin del arreglo: if(dato[position]==40) { inicio=1; }
18 Luego se incrementa la posicin mediante la variable Inicio:
if(inicio==1) { position=position+1; }
El siguiente paso es detectar el fin de la cadena para reiniciar el ciclo, es decir hacer el apuntador Position = 0, la bandera Inicio=0 y guardar la posicin en la que terminan los datos, que siempre es una posicin antes que el carcter ). El cdigo queda de la siguiente manera:
Ahora solo resta extraer los datos y convertirlos a un valor numrico, si se han recibido 3 Caracteres (para un valor del acelermetro de un digito por ejemplo 5) las variables quedan como Position=2, Fin=1, por lo tanto los caracteres se han acomodado de la siguiente forma: dato[0]=(, dato[1]=5 y dato*2]=). Si se han recibido 4 caracteres (para un valor del acelermetro de dos dgitos por ejemplo 20) las variables quedan como Position=3, Fin=2, por lo tanto los caracteres se han acomodado de la siguiente forma: dato [0]=(, dato[1]=2, dato*2]=0 y dato*3]=). Si se han recibido 5 caracteres (para un valor del acelermetro de tres dgitos por ejemplo 100) las variables quedan como Position=4, Fin=3, por lo tanto los caracteres se han acomodado de la siguiente forma: dato [0]=(, dato[1]=1, dato*2]=0, dato*3]=0 y dato*4]=). Conociendo estos valores es posible convertir a un valor numrico, como los caracteres se envan en cdigo ASCII el carcter 0 corresponde al valor decimal 48, por lo tanto se le resta esa cantidad, de esta forma se obtienen los dgitos. El ltimo paso es formar la cantidad multiplicando cada digito por su valor correspondiente (unidad, decena y centena) y sumarlos, el cdigo queda de la siguiente manera:
Para el envo de datos con el microcontrolador se usa la instruccin printf y su sintaxis es la Siguiente:
Printf( );
Para enviar un valor fijo basta con poner el texto entre , por ejemplo para enviar un 100 el comando queda de la siguiente manera:
Printf(100);
Sin embargo la lectura del ADC es una cantidad variable, para enviar variables se puede usar los siguientes formateadores de cadena:
c Carcter en ASCII s Cadena u Entero sin signo en formato decimal
19 d Entero con signo en formato decimal Lu Entero sin signo de 16 bit en formato decimal Ld Entero con signo de 16 bit en formato decimal x Entero en formato hexadecimal (minsculas) X Entero en formato hexadecimal (maysculas) f Flotante con punto decimal g Flotante redondeado e Flotante en exponencial
A cada modificador se le antepone el smbolo % y con una coma despus del segundo smbolo , se especifica la variable a enviar, por ejemplo para enviar una variable llamada S1:
Printf(%u,S1);
Otros modificadores muy utilizados son el retorno de carro y carcter de salto de lnea \r y \n ser necesario enviar el carcter de salto de lnea al final, el cdigo quedara de la siguiente manera:
Printf(%u\n,S1);
Para diferenciar cada variable en el envo de datos con el microcontrolador se usa la instruccin printf y se enva un carcter que represente la variable este caso se ha usado los identificadores A y B para enviar la lectura de cada sensor de proximidad:
printf("%uA\n",ADC1/2); printf("%uB\n",ADC2/2);
3.3 Plataforma de Programacin La plataforma de programacin iDroid Studio fue desarrollado en Borland Builder C++ 6 que es actualmente uno de los estndares de lenguaje de programacin para sistemas operativos de Windows, y est estrictamente ligado para su funcionamiento con las plataformas de programacin de microcontroladores representa la integracin de lenguajes de alto nivel para microcontroladores acopladas para generar un programa orientado a objetos con una interfaz vistosa y sencilla para la programacin de robots mviles, en el caso de la plataforma para tablets que lleva por nombre iDroid Visual Programing es el resultado de la integracin de elementos que dan funcionalidad a la arquitectura clsica de un agente autnomo. Esta plataforma esta orientada a facilitar el entorno de programacin de robots moviles, para que el usuario final tenga la posibilidad de generar un algoritmo ya que las personas que an no saben de lenguajes de programacin programen el robot iDroid debido a que el software se encarga de generar el cdigo para el micro controlador.
20
Fig. 24 Entorno de programacin iDroid Studio La plataforma iDroid Studio programa al robot por medio del lenguaje C en el cual el usuario necesita nicamente tener conocimientos de los bloques if, ciclos for y while, etc. Ya que las funciones que controlan el hardware del robot ya estn prediseadas y el cdigo puede insertarse con la ayuda visual en donde se presenta los sensores del robot y los principales comando. Por ejemplo para ordenarle al robot que haga una curva mientras avanza hacia adelante solo ser necesario hacer que dos de las ruedas giren para avanzar y un motor tenga ms velocidad que el otro esto es un movimiento personalizado que tiene un asistente como se muestra en la imagen:
Fig. 25 Ventana de movimientos prediseados Para compilar el cdigo el entorno utiliza el compilador PIC C en cual es enlazado a travs de un archivo por lotes en la lnea de comandos del smbolo del sistema de Windows. Primero el cdigo del usuario se guarda en un archivo de texto, despus se carga las libreras del robot incluyendo un archivo de cabecera, a continuacin se une los dos archivos de texto y se guarda en un nuevo archivo con extensin C para despus ser compilado y el resultado es un archivo Hex.
21
Fig. 26 Ventana de compilacin Para poder acceder a las funciones del Smartphone se mostrara una ventana con los diferentes sensores disponibles y funcionalidades como multimedia y sntesis de voz, que por medio de una ventana emergente mostrara la opcin para agregar el cdigo correspondiente. Por ejemplo para darle la orden al robot de mostrar un estado de nimo bastara con hacer clic sobre la imagen correspondiente.
CONCLUSIONES Y RECOMENDACIONES La robtica pedaggica como medio de educacin y enseanza, estimula al alumno a crear y desarrollar proyectos de investigacin cientfica a partir de las experiencias adquiridas con los materiales didcticos, cubriendo las reas tericas y prcticas para poder nivelar al alumno a los ms altos estndares de tecnologa actual. La plataforma de programacin del Robot es una herramienta didctica que permite al usuario generar una aplicacin para el robot sin necesidad de conocer a detalle el funcionamiento de los sistemas y subsistemas que lo componen. El proyecto abre un perfil acadmico para el usuario, ya que utiliza la mecnica como metodologa de diseo en la estructura del robot, la electrnica en la implementacin de circuitos en las etapas descritas anteriormente y finalmente la informtica en la creacin de aplicaciones embebidas y de ordenador para darle funcionalidad al sistema. Integrando este conjunto de elementos se genera un camino de posibilidades para el acercamiento a la ciencia del usuario a manera grupal y autodidacta, donde este puede definir una especialidad en las ramas que involucran al proyecto. La integracin de los dispositivos mviles como los Smartphone y tablets como difusin de tecnologa despierta en usuarios expertos y pblico en general
22 a probar sus habilidades para experimentar la dinmica del robot, siempre llamando la atencin e introducindolos al mundo de la tecnologa de vanguardia.
REFERENCIAS BIBLIOGRAFICAS
[1] La Robtica y su Beneficios [En lnea] <http://www.urp.edu.pe/labcim/portal/imagenes/Ro botica.pdf> [Consulta: 05 de octubre de 2012]
[2] La Importancia de la Robtica [En lnea] <http://robotica-sociedad-educacion.blogspot.mx/> [Consulta: 05 de octubre de 2012]
[3] Agentes Inteligentes en Educacin [En lnea] <http://edutec.rediris.es/Revelec2/revelec16/villarre al.pdf> [Consulta: 10 de octubre de 2012]
[4] Mayabot, Modelo Robtico En La Educacin Para La Enseanza De Nuevas Tecnologas [En lnea] <http://www.ammci.org.mx/revista/pdf/Numero2/4 art.pdf> [Consulta: 10 de octubre de 2012] [5] Robtica Pedaggica [En lnea] <http://www.slideshare.net/cjrodriguez/robotica- pedagogica#btnNext> [Consulta: 12 de octubre de 2012] [6] Marco Terico para una Robtica Pedaggica [En lnea] <http://laboratorios.fi.uba.ar/lie/Revista/Articulos/0 10103/A4oct2004.pdf> [Consulta: 12 de octubre de 2012] [7] Sistemas Embebidos [En lnea] <http://www.idose.es/sistemas-embebidos> [Consulta: 12 de octubre de 2012] [8] Introduccin a los Sistemas Embebidos [En lnea] <http://www.slideshare.net/jkovima/introduccion- a-los-sistemas-embebidos-presentation#btnNext> [Consulta: 12 de octubre de 2012] [9] Qu es un Sistema Operativo? [En lnea] <http://www.euram.com.ni/pverdes/verdes_informa tica/informatica_al_dia/que_es_un_so_144.htm> [Consulta: 17 de octubre de 2012] [10] Tipos de Sistemas Operativos [En lnea] <http://www.e- mas.co.cl/categorias/informatica/tiposso.htm> [Consulta: 17 de octubre de 2012] [11] Qu es Android? [En lnea] <http://www.xatakandroid.com/sistema-
23 operativo/que-es-android> [Consulta: 17 de octubre de 2012] [12] Android App [En lnea] <http://translate.google.com.mx/translate?hl=es&la ngpair=en%7Ces&u=http://www.webopedia.com/T ERM/A/android_app.html&ei=IbTFUMmlOqTk2A XZ3YHAAw> [Consulta: 17 de octubre de 2012] [13] Android (Sistema Operativo) [En lnea] <http://translate.google.com.mx/translate?hl=es&la ngpair=en%7Ces&u=http://en.wikipedia.org/wiki/A ndroid_(operating_system)> [Consulta: 17 de octubre de 2012] [14] Microchip. Pic18F2455/2550/4455/4550 [En lnea] <http://ww1.microchip.com/downloads/en/devicedo c/39632c.pdf> [Consulta: 20 de octubre de 2012] [15] Arduino [En lnea] <http://translate.google.com.mx/translate?hl=es&la ngpair=en%7Ces&u=http://en.wikipedia.org/wiki/A rduino> [Consulta: 20 de octubre de 2012] [16] Pingino [En lnea] <http://translate.google.com.mx/translate?hl=es&la ngpair=en%7Ces&u=http://www.arduino.cc/> [Consulta: 20 de octubre de 2012] [17] Perifrico [En lnea] <http://translate.google.com.mx/translate?hl=es&la ngpair=en%7Ces&u=http://www.techterms.com/def inition/peripheral> [Consulta: 21 de octubre de 2012] [18] Qu son los Sensores y Actuadores? [En lnea] <http://translate.google.com.mx/translate?hl=es&la ngpair=en%7Ces&u=http://publib.boulder.ibm.com /infocenter/pvcsensa/v6r1m0/topic/com.ibm.wrps.d oc_6.1.0.1/ov_rfid.html> [Consulta: 21 de octubre de 2012] [19] Modulo Bluetooth [En lnea] <http://gustavolaureano.blogspot.mx/2011/02/modu lo-bluetooth-serial-bluetooth-rf.html> [Consulta: 16 de octubre de 2012] [20] Modulo Bluetooth HC-06 [En lnea] <http://www.neoteo.com/modulo-bluetooth-hc-06- android> [Consulta: 16 de octubre de 2012] [21] Romotive. Meet Romotive [En lnea] <http://romotive.com/meet-romo#meet-romo> [Consulta: 01 de octubre de 2012]
24 [22] Robot OddWerex [En lnea] <http://www.pcdemano.com/modules.php?name=N ews&file=article&sid=17630> [Consulta: 01 de octubre de 2012] [23] Bandai SmartPet Robot Dog [En lnea] <http://www.japantrendshop.com/bandai-smartpet- robot-dog-p-1391.html > [Consulta: 01 de octubre de 2012] [24] Lego Mindstorms NXT [En lnea] <http://www.robotsperu.org/talleres/index.php?opti on=com_content&view=article&id=53&Itemid=61 > [Consulta: 01 de octubre de 2012]
Inteligencia artificial: Lo que usted necesita saber sobre el aprendizaje automático, robótica, aprendizaje profundo, Internet de las cosas, redes neuronales, y nuestro futuro