IEEE-RITA Vol. 6, Núm. 1, Feb. 2011 49 Plataforma para el Aprendizaje de Tecnologías Inalámbricas y Redes de Sensores Basada en el Sistema Open Hardware Denominado Openmoko J.M. Hinojo, Member, IEEE, F. Barrero, Senior Member, IEEE, S.L. Toral, Senior Member, IEEE, F. Cortés Title– Platform for Teaching Wireless and Sensor Networks Technologies based on the Open Hardware System called Openmoko. Abstract– Recent progress in sensor networks and wireless systems provides serious difficulties to the higher education community for teaching these technologies. The complexity is so high that no practical work content is normally found in the related learning process. In this paper, a novel platform is presented for teaching Bluetooth–based wireless sensor networks and embedded systems. The system is based on a commercial “Open Hardware” device called Openmoko, a personal computer and a suite of software applications, with the objective of introducing a learner–centre approach in aforementioned fields, based on laboratory works in subjects assigned to the Telecommunication Engineering degree and the Electronic Engineering Department of the University of Seville. Index Terms– Laboratory Education, Sensor Networks, Wireless Technologies, Bluetooth. L I. INTRODUCCIÓN OS mecanismos de gestión y transmisión de contenidos e información están evolucionando notablemente en la actualidad, favorecidos por el desarrollo de la sociedad de la información y, sobre todo, por las tecnologías electrónicas [1]. Dentro de estos nuevos mecanismos cabe destacar los estándares de comunicaciones inalámbricas, que permiten la interconexión de sistemas dotados de una cierta inteligencia, como pueden ser los sistemas empotrados, formando complejas redes sin cables. Hoy en día es habitual encontrar gran cantidad de sistemas interconectados entre sí, empleando estándares como GPS, GPRS, WiFi, Bluetooth o Zigbee. Aunque los sistemas de comunicación inalámbrica por excelencia son las redes WiFi, utilizadas profusamente en el J.M. Hinojo es Ingeniero de Telecomunicación y colabora con el grupo de investigación adscrito a la Universidad de Sevilla denominado ACE-Ti, TIC201 reconocido por la Junta de Andalucía. F. Barrero, S.L. Toral y F. Cortés son miembros del grupo de investigación ACE-Ti y profesores adscritos al Dpto. de Ingeniería Electrónica de la Universidad de Sevilla, Avda. Camino de los Descubrimientos sn, 41092, Sevilla, (email: [email protected]). DOI (Digital Object Identifier) Pendiente. mundo de la informática de consumo, otros estándares como Bluetooth o Zigbee, de menor alcance y tasa de transferencia de información pero también de mucho menor consumo, se han abierto un importante hueco a nivel industrial (recopilación de información extraída de sensores, acción de control remota, etc.) o incluso comercial (cualquier teléfono móvil o PDA que se precie de serlo incorpora en la actualidad la capacidad de comunicarse empleando el estándar Bluetooth, lo que ha permitido desarrollar nuevos sistemas de información como son los sistemas de navegación en interiores de edificios). No obstante, la formación que los alumnos de Ingeniería reciben sobre este tipo de sistemas es fundamentalmente teórica y carece de la necesaria visión práctica por la dificultad que supone desarrollar un sistema sencillo con el que los alumnos puedan trabajar y adquirir destrezas profesionales en un tiempo razonable [2]. Otro inconveniente asociado a este tipo de sistemas es su indefinición programática, adscrita en simultáneo a áreas de conocimiento diferentes como son la tecnología electrónica, la teoría de la señal y las comunicaciones o la telemática [3]. Para intentar mejorar la visión práctica que el alumnado adquiere sobre el manejo de sistemas de comunicación inalámbricos, en el Departamento de Ingeniería Electrónica de la Universidad de Sevilla se está llevando a cabo un importante esfuerzo en pro de la remodelación de las prácticas de las diferentes asignaturas que tiene adscritas. Este es el caso de dos asignaturas denominadas “Complementos de Sistemas Electrónicos Digitales” y “Laboratorio de Instrumentación Electrónica” y, pertenecientes a 3er y 5º curso, respectivamente, de la titulación de Ingeniería de Telecomunicación. Ambas asignaturas aúnan esfuerzos en la actualidad para desarrollar nuevas prácticas que permitan al alumno tener una visión más clara y práctica sobre el manejo de los sistemas electrónicos de comunicación y, en concreto, de los estándares inalámbricos [4], [5]. Los estándares WiFi y Bluetooth son algunos de los sistemas de comunicación inalámbrica que centran estos nuevos desarrollos [6]. En este sentido, y dada las asignaturas involucradas en la experiencia, parece adecuado el desarrollo de actividades de tipo práctico que involucren al alumno con el manejo de los sistemas ISSN 1932-8540 © IEEE 50 IEEE-RITA Vol. 6, Núm. 1, Feb. 2011 empotrados, así como en el análisis y estudio de los sistemas microprocesadores y microcontroladores actuales [7], con la caracterización de enlaces inalámbricos basados en Bluetooth [8]. En esta dirección se encamina la propuesta docente planteada en este artículo: el desarrollo de un sistema que permita al alumno familiarizarse de forma práctica con el manejo de una tecnología inalámbrica tan extendida como Bluetooth, mediante la programación de sistemas empotrados. El artículo se ha organizado como sigue. En la siguiente sección se describe el sistema propuesto. Sus aplicaciones prácticas se muestran en la sección III. En la sección IV se detallan los beneficios pedagógicos que se obtienen con este sistema. Finalmente, las conclusiones se analizan en el último apartado. II. DESCRIPCIÓN DEL SISTEMA El sistema implementado se basa en un ordenador personal (PC) dotado de conectividad Bluetooth que ejecuta una distribución de Linux, un dispositivo Openmoko que se muestra en la Figura 1 [9], y un conjunto de aplicaciones que permiten a los alumnos caracterizar los enlaces Bluetooth. Algunas de las características más destacables que se pueden estudiar del enlace Bluetooth son el establecimiento de conexiones mediante la búsqueda de servicios por parte de la aplicación cliente, cómo afecta a la búsqueda la publicación de servicios de carácter privado o cómo se reconocen dichos servicios por dispositivos comerciales como pueden ser los teléfonos móviles comerciales. Con respecto al PC, se ha utilizado un ordenador de sobremesa de arquitectura x86, arquitectura con la que el alumno está normalmente familiarizado. La distribución de Linux instalada en el equipo se corresponde con una distribución Ubuntu 9.04. La elección de esta distribución se debe, en primer lugar, a que dispone de una extensa comunidad de soporte. De esta forma, si un alumno se encuentra con algún problema puede recurrir a simples buscadores web, como Google, o a foros especializados en esta distribución para resolverlo (se fomentaría así el autoaprendizaje y la búsqueda de información por parte del alumno). Un segundo motivo para esta elección pasa por la gran cantidad de paquetes software existente, lo que permite tener cómodamente actualizado el sistema, así como instalar librerías adicionales de una manera sencilla. Por último, la semejanza de las estructuras de ficheros a las distribuciones de tipo Debian ofrece un punto de partida avanzado debido a nuestra experiencia con este tipo de sistemas operativos. Ubuntu se adapta, por tanto, a las exigencias que se le podrían imponer a una distribución de Linux destinada a fines educativos. En cuanto a las herramientas de compilación para el PC, se suministrará el compilador gcc [10], que cuenta además con la ventaja de que se encuentra incorporado dentro del sistema operativo como una utilidad más. El desarrollo de aplicaciones mediante compilación cruzada permite que el alumno se familiarice con un proceso de diseño económico, ya que la programación y compilación se realiza en una máquina Fig. 1. Sistema Openmoko denominado Neo FreeRunner. diferente al sistema empotrado, ahorrando de esta manera tiempo y costes en el desarrollo de dichas aplicaciones. Otra ventaja añadida al uso de un sistema operativo GNU/Linux es la utilización de una implementación libre de la torre de protocolos Bluetooth denominada BlueZ [11], [12]. Ésta se caracteriza por presentar una gran flexibilidad, eficiencia y modularidad en su implementación. De forma que desde el punto de vista de la programación, el desarrollador tan sólo necesita llamar a las funciones suministradas por la API facilitada. Con este objetivo, se pueden distinguir los siguientes módulos: 1) 2) 3) 4) 5) Núcleo del subsistema Bluetooth. Nivel L2CAP y gestión de enlaces SCO para audio. RFCOMM, BNEP, CMTP y HIDP. HCI UART, USB, PCMCIA y dispositivos virtuales. SDP y demonios para gestionar los servicios Bluetooth al arrancar el sistema operativo. 6) Herramientas para la interpretación y análisis de los paquetes del protocolo. El otro dispositivo que forma parte del sistema de comunicaciones inalámbricas basado en Bluetooth es el teléfono móvil de carácter libre Openmoko, en concreto la versión Neo FreeRunner. Este terminal se corresponde con un proyecto de hardware y software de carácter abierto destinado a usuarios avanzados, con idea de que puedan personalizar el terminal móvil satisfaciendo sus necesidades. Se caracteriza por disponer de un microprocesador Samsung S3C2442B, que presenta una arquitectura ARM920T a 400 MHz. Este tipo de arquitecturas (ARM9x) se están implantando rápidamente en los sistemas empotrados y móviles de comunicaciones debido a su elevada potencia de cálculo, su bajo consumo y el bajo coste de desarrollo que ofrecen. El uso de esta arquitectura supone que, a la hora de generar el código fuente de cualquier programa que se vaya a ejecutar en la plataforma Openmoko, debamos hacer uso de la compilación cruzada para poder obtener un ejecutable válido para el procesador en cuestión. Otras ventajas adicionales que ofrece Openmoko son los dos acelerómetros disponibles (ubicados en diferentes posiciones para poder realizar las correcciones pertinentes a las medidas obtenidas) o la conectividad GPRS, GSM, Bluetooth con chipset CSR BlueCore 4, 802.11g y GPS, entre otras. Como se puede comprobar, Openmoko es un sistema empotrado que puede ser empleado en una gran cantidad de aplicaciones ISSN 1932-8540 © IEEE HINOJO et al.: PLATAFORMA PARA EL APRENDIZAJE DE TECNOLOGÍAS INALÁMBRICAS Y REDES DE... diferentes, permitiendo que el alumno pueda investigar y desarrollar tareas en áreas de conocimientos que involucren las comunicaciones inalámbricas o los sistemas de instrumentación, medida y adquisición de datos. El sistema operativo que gobierna Openmoko es una distribución de Linux para dispositivos móviles con un kernel 2.6.24, de forma que puede aprovecharse para que el alumno adquiera abundantes conocimientos sobre la programación de dispositivos móviles basada en el kernel de Linux, Figura 2. El motivo por el que se adoptó un sistema operativo libre y no uno privado, como puede ser Symbian o Windows Mobile, se debe a que es de código abierto, lo que implica el control absoluto de las aplicaciones externas adquiridas. Además, se dispone de una gran libertad de uso y de desarrollo de aplicaciones, así como de un amplio soporte por parte de desarrolladores externos (es posible acceder, por ejemplo, a una extensa API de programación que permite simplificar tareas como la lectura de acelerómetros o de la señal del GPS). Se consigue asimismo una gran reutilización de las aplicaciones desarrolladas, estimándose que la creación de aplicaciones será rápida puesto que, al ejecutar Linux, el usuario del sistema únicamente debe conocer el funcionamiento del mismo para empezar a diseñar y construir una primera aplicación, algo muy habitual en la actualidad. En cuanto a los dispositivos usados para establecer la comunicación inalámbrica, se ha implementado el enlace Bluetooth empleando dispositivos comerciales; dongle USB con chipset CSR BlueCore 4 compatible con la versión 2.1 del estándar Bluetooth. Esto permite realizar tareas como la modificación de la potencia de transmisión durante el proceso de inquiry, realizar búsquedas en modo RSSI extendido o aumentar la velocidad de transferencia. El motivo de la elección del enlace inalámbrico Bluetooth es su profusión a nivel comercial, lo que se estima aumentará el interés por parte de los alumnos. El dongle seleccionado dispone de chipset compatible con la versión 2.1 del estándar Bluetooth para que se pueda experimentar con todos los comandos de la capa HCI, que permiten configurar la comunicación inalámbrica a bajo nivel. Finalmente, y para dotar de una cierta funcionalidad a la plataforma de aprendizaje desarrollada, se ha implementado una aplicación que sigue una arquitectura de tipo cliente−servidor, haciendo uso del protocolo SDP (Service Discovery Protocol) o protocolo de descubrimiento de servicios. Este protocolo permite a los programas clientes descubrir la existencia de diversos servicios proporcionados por uno o varios servidores de aplicaciones, junto con los atributos y propiedades de los servicios que se ofrecen. Dichos atributos incluyen, a su vez, el tipo o clase de servicio ofrecido y el mecanismo o la información necesaria para utilizarlo. SDP se basa en una determinada comunicación entre un servidor que contiene los servicios ofrecidos y un cliente que desea algún servicio específico. El servidor mantiene una lista de registros de servicios, los cuales describen las características de estos. Cada registro contiene información sobre un determinado servicio. Para recuperar la información asociada a alguno de estos registros, el cliente debe realizar 51 Fig. 2. Estructura software del dispositivo Neo FreeRunner. una petición SDP. Si el cliente o la aplicación asociada con el cliente deciden utilizar un servicio deben establecer una conexión independiente con el servicio en cuestión. SDP proporciona un mecanismo para el descubrimiento de servicios y sus atributos asociados, pero no proporciona ningún mecanismo ni protocolo para utilizar dichos servicios. Es en este punto donde se establece una comunicación RFCOMM, Figura 3, que se corresponde con la emulación de un puerto serie para transmitir información a través de él. El cliente SDP, por otro lado, realiza una búsqueda de servicios acotada por determinadas características. No obstante, hay momentos en los que resulta deseable descubrir todos los servicios ofrecidos por un servidor SDP sin que pueda existir ningún conocimiento previo sobre los registros que pueda contener. Este proceso de búsqueda de cualquier servicio ofrecido se denomina navegación o browsing. La tecnología inalámbrica Bluetooth hace un uso muy amplio de procesos de descubrimiento que permiten a los dispositivos identificarse entre sí cuando entran dentro del radio de acción, y establecer las conexiones apropiadas para que los dispositivos puedan ejecutar las aplicaciones comunes y acceder a varios servicios. Por medio del descubrimiento de servicios, las redes personales son básicamente autoconfigurables lo que convierte a los dispositivos portátiles en elementos tecnológicos sencillos de utilizar. En consecuencia, las conexiones son enteramente transparentes para el usuario y no requieren asistentes de instalación ni configuraciones en línea. Fig. 3. Enlace de comunicación establecido por RFCOMM. ISSN 1932-8540 © IEEE 52 IEEE-RITA Vol. 6, Núm. 1, Feb. 2011 III. APLICACIÓN DEL SISTEMA El sistema tiene como finalidad su aplicación en prácticas tanto en cursos sobre sistemas microprocesadores, como sería el caso de la asignatura “Complementos de Sistemas Electrónicos Digitales” centrada en dispositivos microprocesadores y DSPs con aplicación en las telecomunicaciones, como en asignaturas de últimos cursos, donde se le presuponen al alumno los conocimientos suficientes como para poder sacarle el máximo provecho al sistema mediante la realización de trabajos prácticos. En función del nivel del curso en el que se utilice se pueden adaptar las prácticas. Así, por ejemplo, en las asignaturas de cursos inferiores o sobre microprocesadores y sistemas empotrados, se puede emplear el sistema para introducir a los alumnos en el proceso de compilación cruzada, con idea de que mediante la creación de aplicaciones sencillas adquieran pericia con el proceso de realización de programas para microprocesadores. Para ello, se propondrá a los alumnos el desarrollo de una aplicación que deben realizar y compilar en el PC empleando el compilador cruzado y las librerías necesarias para, finalmente, descargarlo en el sistema Openmoko, donde se ejecutaría y depuraría. Con este objetivo, se ha desarrollado una API, de libre disposición para los alumnos, que permite leer los valores de los acelerómetros del terminal Openmoko. El alumno puede hacer uso de las funciones incluidas en la API para realizar una lectura del acelerómetro y, en función del valor obtenido, generar una respuesta u otra en la pantalla del dispositivo móvil. La API ha sido desarrollada en lenguaje C y está pensada para que el alumno pueda interaccionar de forma transparente con los periféricos comentados anteriormente, de manera que pueda abstraerse del modo de funcionamiento de los componentes y centrar su atención en el proceso de compilación y en la gestión de los recursos del sistema. Para facilitar la utilización de la API de programación, se ha generado una amplia documentación con la herramienta Doxygen. Esta aplicación se corresponde con un generador de documentación automático para archivos con código fuente de lenguajes de programación como C, C++ o Java. El único requisito existente es la utilización del estilo y de las etiquetas recomendado en el manual de la aplicación. La ayuda generada puede ser exportada en formato HTML o PDF, pudiendo ser fácilmente publicada en la web de la asignatura. Así, se le proporciona al alumno un amplio manual de uso de la interfaz de programación para promover su autoaprendizaje. La Figura 4 muestra el tipo de documentación generada para el interfaz de programación. Se observa el fichero “API.c”, así como la descripción de las diferentes funciones diseñadas y sus parámetros. La práctica que deben realizar los alumnos consta de dos aplicaciones en la arquitectura cliente/servidor. La primera de ellas, a desarrollar en el dispositivo móvil Openmoko por parte de los alumnos, ejerce el papel de cliente. El alumno debe diseñar la parte de la aplicación encargada de la adquisición de datos del acelerómetro. Utilizará para ello la API desarrollada. El trabajo se centra en el uso de las bibliotecas de funciones, así como en el proceso de enlazado y de compilación. La parte de codificación se basa en la interpretación de los datos obtenidos de los acelerómetros del dispositivo móvil. La parte de la aplicación que funciona como servidor, encargándose de procesar los datos enviados por el terminal Openmoko, se ejecuta en un PC y genera la interfaz gráfica que se muestra en la Figura 5. Esta parte de la aplicación, desarrollada para probar el funcionamiento del programa desarrollado por el alumno, registra un canal RFCOMM en el que permanece a la espera de un establecimiento de conexión por parte de la aplicación cliente. En el momento en el que se produce esta conexión, el servidor queda nuevamente a la espera de un comando enviado por el cliente para activar un botón u otro en función de los siguientes “eventos”: Fig. 4. API desarrollada para el manejo del dispositivo Openmoko. Aplicación Logger: *(Botón Activo) DOWN -107 -115 DOWN -99 -151 UP 109 79 Arriba Izquierda Derecha Abajo Fig. 5. Interfaz gráfica del programa servidor o aplicación de supervisión. ISSN 1932-8540 © IEEE HINOJO et al.: PLATAFORMA PARA EL APRENDIZAJE DE TECNOLOGÍAS INALÁMBRICAS Y REDES DE... 1) Botón ARRIBA. Se activa cuando la lectura procedente de los acelerómetros indica un movimiento ascendente. 2) Botón ABAJO. Se activa cuando la lectura procedente de los acelerómetros indica un movimiento descendente. 3) Botón IZQUIERDA. Se activa cuando la lectura procedente de los acelerómetros indica un desplazamiento lateral hacia la izquierda. 4) Botón DERECHA. Se activa cuando la lectura procedente de los acelerómetros indica un desplazamiento lateral hacia la derecha. Por otra parte, en los últimos cursos, los alumnos poseen un mayor conocimiento de diversas disciplinas como telemática, teoría de la señal o electrónica. Esto permitiría sacarle un mayor provecho al sistema, puesto que en este caso pueden aplicar los conocimientos adquiridos en la titulación para aplicarlos en la creación de complejas aplicaciones. Para ayudar a los alumnos en esta tarea, se ha desarrollado una segunda aplicación orientada a servicios web. La Figura 6 muestra en un diagrama de bloques la funcionalidad de la aplicación web desarrollada. Se puede observar que la parte de la aplicación que actúa como servidor en el PC de sobremesa se encuentra implementada mediante páginas webs, que el usuario en cuestión deberá solicitar para obtener cierta información. Con ello se pretende conseguir que sólo se tenga que efectuar una conexión a una determinada URL para obtener los contenidos solicitados. En este sentido, las páginas web se han desarrollado en PHP para simplificar su programación y poder interactuar fácilmente con bases de datos como MySQL. Debido a que se ha optado por utilizar un servidor web como Apache, en el lado del servidor deberá existir una segunda aplicación que será la encargada de actuar a modo de pasarela entre el servidor y los usuarios (Apache está orientado a la respuesta de peticiones HTTP efectuadas a través de la torre de protocolos TCP/IP, por lo que para poder interactuar con el cliente, que usa Bluetooth, se necesita una pasarela). Las tareas implementadas por la aplicación son las siguientes: Publicación del servicio SDP. Mediante este paso se consigue registrar en el servidor el servicio correspondiente a la aplicación, permitiendo al cliente efectuar una búsqueda de dispositivos en función del mismo. Éste se almacena en una tabla de servicios que SDP se encarga de hacer pública para que los clientes puedan efectuar la búsqueda de los equipos a través de los servicios que ofrece. Apertura de un socket RFCOMM para la escucha de clientes. En esta segunda etapa, la pasarela debe registrar un socket para poder permanecer a la escucha de posibles peticiones de contenidos por parte del cliente. Redirección de la petición del cliente al servidor Apache. Finalmente, tras aceptar una conexión de un cliente, la pasarela deberá trasladar la petición del usuario al servidor Apache. Para esta tarea deberá 53 Cliente GUI Conexión Bluetooth Petición tooth Blue Conexión Bluetooth Pasarela Bluetooth-HTTP Apache Servidor Fig. 6. Estructura de la aplicación desarrollada. desempaquetar los datos adquiridos a través del protocolo RFCOMM de Bluetooth y enviarlos como una petición HTTP hacia el servidor. El cliente debe, a su vez, poder buscar un equipo a partir de un determinado servicio mediante el protocolo SDP. Para ello es necesario implementar un proceso de descubrimiento para determinar así los dispositivos Bluetooth que se encuentran dentro del rango de cobertura del cliente. Después de obtener la lista de los dispositivos al alcance del cliente, se debe consultar a cada uno de los equipos por el servicio en cuestión, obteniendo únicamente una respuesta afirmativa por parte del servidor. Una vez obtenida la dirección Bluetooth del equipo servidor, así como los parámetros de configuración de la comunicación RFCOMM definidos en el servicio, se realiza una petición HTTP para obtener un fichero con la información necesaria para construir la interfaz gráfica de la aplicación cliente: http://127.0.0.1/index.php?menu=main.men. Así, el usuario puede comprobar los contenidos que existen en el servidor y solicitar aquel por el que muestre interés mediante la pulsación del botón adecuado. Al realizar dicha pulsación, se volvería a desencadenar una nueva petición HTTP hacia el servidor, solicitando el fichero asociado a la nueva ventana. La Figura 7 muestra la interacción que se produce entre el cliente y el servidor. Se aprovecha, por tanto, el protocolo SDP para descubrir aquellos dispositivos que pertenecen a nuestro sistema para solicitarles posteriormente un inicio de conexión y establecer peticiones de información a través del enlace establecido. Según este principio de funcionamiento, lo primero que se ejecuta al arrancar el programa cliente es un escaneo de los dispositivos que tiene a su alcance para que, una vez detectados todos, se pueda realizar una consulta a cada uno de ellos determinando si el servicio que se solicita está disponible. En caso de encontrarse el servicio, deberán solicitarse sus atributos para poder configurar la petición de conexión. Una vez configurada, se solicita el inicio de una comunicación mediante el establecimiento de una conexión RFCOMM al canal donde el servidor, por medio de la pasarela, se encuentra a la escucha. Posteriormente, y después de la detección del equipo remoto y del establecimiento de la conexión, el cliente solicita el fichero principal de configuración de los menús, que alberga la temática de las entradas. Este fichero es procesado por el cliente para detectar las entradas asociadas a texto plano y las que hacen referencia a botones, construyéndose la interfaz gráfica de la aplicación ISSN 1932-8540 © IEEE 54 IEEE-RITA Vol. 6, Núm. 1, Feb. 2011 Fig. 7. Diagrama de paso de mensajes que describe la interacción entre el cliente y el servidor. Fig. 8. Descripción de los ficheros con los contenidos de los menús y su extrapolación a la interfaz gráfica. cliente en tiempo de ejecución. El formato del fichero utilizado para tal fin se muestra en la Figura 8. En cuanto a la programación del cliente, se ha optado por utilizar el lenguaje interpretado Python, debido a la facilidad y flexibilidad que aporta en el diseño de las aplicaciones. La principal ventaja es que puede correr en cualquier sistema operativo, ya sea Windows, GNU/Linux o Mac OS X gracias a que la máquina virtual que ejecuta el código se ha portado a Java y a .NET. Además, Python se caracteriza por ser libre, por lo que no se necesita pagar por su utilización, incluso en sistemas comerciales. Esto se debe a su licencia de tipo Open Source aprobada por el organismo OSI. La librería gráfica utilizada para dotar de entorno gráfico a la aplicación utiliza la biblioteca pyGTK, que se corresponde con la adaptación de GTK+ al lenguaje de programación Python. Su elección está justificada por su carácter multiplataforma y por su facilidad de uso, pudiendo conseguir prototipos de la aplicación final en un plazo de tiempo inferior al de otros lenguajes como puede ser C. Al igual que en el caso de Python, se corresponde con código libre por lo que se puede usar, modificar, distribuir y estudiar con muy pocas restricciones, como consecuencia de la licencia LGPL sobre la que se distribuye. El funcionamiento de esta aplicación se ha comprobado mediante la interacción de un usuario con la aplicación cliente, de forma que el dispositivo móvil Openmoko se encontrase en el rango de cobertura del servidor. Se realizaron dos pruebas, una primera en la que se modificó el tiempo de búsqueda del servidor por parte del cliente (buscando minimizar el tiempo que el cliente debe esperar para poder encontrar al servidor), y una segunda en la que se declaró un servicio como privado para comprobar que verdaderamente dicho servicio quedaba oculto al cliente, Figura 9. La aplicación desarrollada pretende servir de ejemplo de la potencia que pueden tener las tecnologías inalámbricas destinadas al intercambio de información en distancias cortas, como es Bluetooth, cuando se integra con otras tecnologías ampliamente utilizadas como son los servidores web. Además, no sólo permite demostrar el potencial de este tipo de sistemas en el mercado actual sino que, a su vez, posee una función pedagógica al permitir el estudio de parámetros importantes del estándar Bluetooth y la familiarización con aplicaciones orientadas a servicios web. La aplicación descrita se utiliza como punto de partida en la asignatura “Laboratorio de Instrumentación Electrónica” para el desarrollo de un trabajo conjunto. El trabajo se estructura en los siguientes trabajos asignados a 4 grupos: 1) Empleo de los acelerómetros del sistema para gestionar la navegación en un menú. 2) Creación de un escritorio sonoro que interprete la estructura de navegación asociada a ese menú. 3) Adaptación de la información para su transmisión por enlace Bluetooth. 4) Creación de una interfaz gráfica adaptada al proyecto y realizada en pyGTK que integre las tres tareas anteriores. Cada grupo debe desarrollar sus propias tareas, pero teniendo en cuenta que los entregables generados deben cumplir con las especificaciones de modularidad e integración de una aplicación general. Por tanto, este esquema de trabajo no sólo fomenta la colaboración entre los miembros de los grupos, sino que también fomenta la colaboración entre grupos en base a una especificación global. Fig. 9. Pruebas realizadas de la aplicación. ISSN 1932-8540 © IEEE HINOJO et al.: PLATAFORMA PARA EL APRENDIZAJE DE TECNOLOGÍAS INALÁMBRICAS Y REDES DE... IV. PRESTACIONES PEDAGÓGICAS DEL SISTEMA El sistema que se plantea pretende englobar beneficios que se consiguen a partir del denominado aprendizaje cooperativo [13] y del aprendizaje basado en proyectos [14], sin centrarse exclusivamente en alguno de estos métodos. El aprendizaje cooperativo se basa en la teoría constructivista del proceso enseñanza−aprendizaje, que fomenta la creación de grupos pequeños formados por estudiantes con diferentes habilidades1 a los que se les encomiendan pequeñas tareas para ahondar en el conocimiento de una materia. Se basa en el fomento de la discusión entre los propios alumnos del trabajo realizado, para mejorar la eficiencia y calidad del proceso de aprendizaje y potenciar la interacción. Una de las principales características de esta metodología es la interdependencia que deben tener los miembros del grupo, que deben identificar que el grupo sólo podrá lograr sus objetivos si colaboran entre sí todos los miembros. Permite al alumno, por tanto, desarrollar aptitudes de tipo social [15]. El aprendizaje basado en proyectos establece a su vez que la asimilación de conocimiento requiere de su aplicación en un contexto real, forzando una mayor implicación del alumno en el proceso de aprendizaje2 [16]– [17]. El conocimiento se transmite al alumno de forma tradicional, pero no se considera asimilado hasta que éste no realiza un proyecto real basado en dicho conocimiento. El valor pedagógico del sistema desarrollado incorpora prestaciones de ambos métodos, como se muestra en la Tabla I y se detalla en [6]. Las principales aportaciones que ofrecería este sistema, a semejanza de otros sistemas de aprendizaje cooperativo son [18]–[19]: (i) el conocimiento se crea al compartirse (se fomenta la interacción entre los alumnos de un grupo, así como entre grupos de manera que el mayor número posible de alumnos comparta la información adquirida para incrementar el grado de aprendizaje colectivo siguiendo la teoría cooperativa del aprendizaje); (ii) el proceso docente comienza con la impartición de seminarios para transmitir al alumno conocimientos previos que le permitan abordar la tarea planteada; y (iii) se fuerza la participación del alumno mediante la celebración de reuniones periódicas y de asistencia obligatoria. Para alcanzar dichas premisas, se ha fomentado el trabajo en equipo de los grupos para la solución de problemas en base a un proceso de discusión e interpretación de resultados, fomentándose la participación en el grupo mediante la autoevaluación en el grado de implicación de los miembros. Los grupos de trabajo se han constituido de manera intencionada para que los alumnos que los forman tengan diferentes currículum y conocimientos previos, disponiendo de todos los recursos técnicos necesarios (acceso total a documentación, equipos de laboratorio y framework de aplicaciones para manejo del dispositivo Openmoko) para el desempeño de la actividad propuesta. Por su parte, como sistema de aprendizaje constructivista, el sistema propuesto también aporta prestaciones que definen un 1 Obsérvese la diferencia que existe entre la teoría constructivista del aprendizaje y la forma con la que se conforman los grupos de trabajos prácticos en la Universidad actual. 2 Esta metodología es diametralmente opuesta a la empleada en el mundo Universitario, centrada en el profesor y sus exposiciones. 55 aprendizaje basado en proyectos [20]–[21]: (i) procedimiento basado en el currículum, así como en los principios y disciplina estudiados, y centrado en aplicaciones reales que se podrán encontrar los estudiantes en el desempeño de su actividad normal; (ii) dirigido a un objetivo que genere cuestiones, permita la construcción de conocimiento y el desarrollo de una solución válida y aplicable; (iii) fomenta la autonomía del estudiante. El conjunto de desarrollos que los alumnos pueden realizar en el laboratorio sobre la base del sistema open hardware denominado Openmoko está centrado en las aplicaciones de los dispositivos móviles comerciales. El uso de redes inalámbricas soportadas por el estándar Bluetooth o de dispositivos como son los acelerómetros, muy cercanos al alumno debido a su empleo en el desarrollo de productos comerciales relacionados con las TIC (como serían las videoconsolas de última generación), permite acercar al alumno a tecnologías emergentes relacionadas con su formación y futuro profesional. Se conseguiría, de esta manera, una mayor motivación del alumno, lo que se antoja especialmente necesario en los últimos cursos de la carrera, en los que el alumno no percibe una aplicación práctica y real de los conocimientos adquiridos. Por otro lado, la realización de un trabajo práctico realista a partir de otros subproyectos de menor envergadura fuerza la interacción entre alumnos en los grupos y entre los propios grupos para llegar a buen puerto en los objetivos planteados, fomentando la discusión e interacción entre alumnos como metodología docente. V. CONCLUSIONES En este artículo se presenta una plataforma de comunicaciones inalámbricas, basada en el estándar Bluetooth y diseñada para motivar a los alumnos de la titulación de Ingeniería de Telecomunicación en la realización de trabajos prácticos mediante el uso de dispositivos electrónicos de consumo. La base del sistema recae en un dispositivo “open hardware” denominado Openmoko, que ofrece un entorno de trabajo totalmente configurable por el alumno. La existencia de una comunidad de desarrolladores detrás del dispositivo seleccionado, especialmente en los aspectos relacionados con el sistema operativo, permite reducir los tiempos de aprendizaje, aumentar los conocimientos adquiridos y fomentar el autoaprendizaje y la búsqueda de información por parte del alumnado, cualidades que resultarán muy beneficiosas en su futura actividad profesional. El sistema permite, finalmente, realizar trabajos prácticos de diferente envergadura, adaptada a contenido del curso y/o asignatura de la titulación de Ingeniería de Telecomunicaciones en que se aplique. AGRADECIMIENTOS Este trabajo se ha realizado en el marco del proyecto “Introducción de Nuevas Metodologías Sistémicas de Enseñanza en Laboratorio basadas en Proyectos Cooperativos”, financiado por el I Plan Propio de Docencia de la Universidad de Sevilla, dentro del programa de proyectos de Innovación y Mejora Docente. ISSN 1932-8540 © IEEE 56 IEEE-RITA Vol. 6, Núm. 1, Feb. 2011 TABLA I. CUMPLIMIENTO, POR PARTE DEL SISTEMA DESARROLLADO, DE PREMISAS RELACIONADAS CON APRENDIZAJES COOPERATIVO Y BASADO EN PROYECTOS [6]. Aprendizaje cooperativo [*] Premisas Habilidades Toma de Gestión del Razonamiento Habilidades Motivación Colaboración Planificación Tareas cooperativas decisiones tiempo sistémico cognitivas * * * * Resolución de la + + + + tarea presentada Generación de la documentación del proyecto Definición de una interfaz de integración Determinación de hitos y entregables Manejo de los acelerómetros Programación de la interfaz gráfica Gestión de comunicaciones inalámbricas Sesiones de control obligatorias Tareas Premisas * + * * + + + + + * + * * * + * * * + + + + * * + + + + * + + * * * + * + * * + * + + * + + Compartir conocimiento Multidisciplinar Autonomía del estudiante Trabajo realista Investigación constructivista Aprendizaje basado en proyectos [+] + Adaptado a la titulación Participación Adaptado a descriptores de asignatura REFERENCIAS [1] [2] [3] [4] [5] [6] [7] [8] [9] S.L. Toral, F. Barrero, M.R. Martínez−Torres, S. Gallardo, “Interactive multimedia Teaching of Digital Signal Processors,” Computer Applications in Engineering Education, Vol. 15, no. 1, pp. 88−98, 2007. S.L. Toral, M.R. Martínez−Torres, F. Barrero, S. Gallardo, M.J. Durán, “An Electronic Engineering Curriculum Design based on Concept−Mapping Techniques,” International Journal of Technology and Design Education, Vol. 17, no. 3, pp. 341−356, 2007. S.L. Toral, M.R. Martínez−Torres, F. Barrero, “Reforming ICT Graduate Programs to Meet Professional Needs,” Computer, Vol. 43, no. 10, pp. 20−27, 2010. F. Barrero, S.L. Toral, S. Gallardo, “eDSPLab: Remote laboratory for experiments on DSP applications,” Internet Research, Vol. 18, no. 1, pp. 79−92, 2008. D. Gutiérrez, E. Marsal, M. Soto, J.M. Hinojo, F. Cortés, F. Barrero, S.L. Toral, “Plataforma para el Aprendizaje de Tecnologías Inalámbricas y Redes de Sensores basada en el Sistema Open Hardware denominado OpenMoko,” 10º Congreso de Tecnologías Aplicadas a la Enseñanza de la Electrónica (TAEE2010), premio “accesit” a las mejores contribuciones en la temática de laboratorios, 2010. S.L. Toral, F. Barrero, F. Cortés, J.M. Hinojo, D.G. Reina, “A new Systemic Methodology for Lab Learning based on a Cooperative Learning Project,” Procedings del IEEE EDUCON 2010 Conference, EDUCON2010, 2010. S.L. Toral, F. Barrero, M.R. Martínez−Torres, S. Gallardo, “Interactive multimedia Teaching of Digital Signal Processors,” Computer Applications in Engineering Education, Vol. 15, no. 1, pp. 88−98, 2007. Bluetooth SIG. Core Specification v2.1+EDR. Disponible en: http://www.bluetooth.com. (Septiembre, 2010) Proyecto Openmoko, http://wiki.openmoko.org/wiki/Main_Page. (Septiembre, 2010) [10] H. Schildt. C: Manual de referencia. McGraw−Hill, 2002. [11] BlueZ. http://www.bluez.org. (Septiembre, 2010). [12] Albert S. Huang, Larry Rudolph. Bluetooth essentials for programmers, Cambridge University Press, 2007. [13] R.E. Slavin, S. Kagan, S. Sharan, Learning to Cooperate, Cooperating to Learn, Basic Books, New York, 1985. [14] E.D. Graaff, A. Kolmos, “Characteristics of Problem-Based Learning,” International Journal of Engineering Education, Vol. 19, no. 5, pp. 657−662, 2003. [15] T.Y. Chan, R.M. Wang, B.S. Jong, Y.T. Hsia, T.W. Lin, “Conceptual graph based learning material producing strategy for cooperative learning,” 38th Annual Frontiers in Education Conference, Vol. 22−25, pp. 15−19, 2008. [16] M. Prince, R. Felder, “The many faces of inductive teaching and learning,” Journal of College Science Teaching, Vol. 36, no. 5, pp. 14– 20, 2007. [17] S.W. van Rooij, “Scaffolding project-based learning with the project management body of knowledge (PMBOK®),” Computers & Education, Vol. 52, no. 1, pp. 210–219, 2009. [18] B. Lin, & C. Hsieh, “Web−based teaching and learner control: a research view,” Computers & Education, Vol. 37, pp. 377–386, 2001. [19] M. Cole, “Using Wiki technology to support student engagement: Lessons from the trenches,” Computers & Education, Vol. 52, pp. 141– 146, 2009. [20] W. Thomas, S.K. MacGregor, “Online project-based learning: How collaborative strategies and problem-solving processes impact performance,” Journal of Interactive Learning Research, Vol. 16, no. 1, pp. 83–107, 2005. [21] S.W. van Rooij, “Scaffolding project-based learning with the project management body of knowledge (PMBOK®),” Computers & Education, Vol. 52, no. 1, pp. 210–219, 2009. ISSN 1932-8540 © IEEE HINOJO et al.: PLATAFORMA PARA EL APRENDIZAJE DE TECNOLOGÍAS INALÁMBRICAS Y REDES DE... 57 Jose María Hinojo (S’10) es Ingeniero de Telecomunicación (2010) por la Universidad de Sevilla. En 2009 ingresa en el Dpto. de Ingeniería Electrónica de la Universidad de Sevilla como becario de colaboración, donde continúa en la actualidad realizando un Máster oficial en Electrónica, Tratamiento de Señales y Comunicaciones. Sergio Luis Toral (M’01–SM’06) es Ingeniero Industrial (1995) y Dr. Ingeniero Industrial (1999) por la Universidad de Sevilla. En 1995 ingresa como docente en el Dpto. de Ingeniería Electrónica de la Universidad de Sevilla, donde continúa en la actualidad como Profesor Titular. Federico Barrero (M’04–SM’05) es Ingeniero Industrial (1992) y Dr. Ingeniero Industrial (1998) por la Universidad de Sevilla. En 1992 ingresa como docente en el Dpto. de Ingeniería Electrónica de la Universidad de Sevilla, donde continua en la actualidad como Profesor Titular. Francisco Cortés es Ingeniero de Telecomunicación (2005) por la Universidad de Sevilla. En 2008 ingresa como docente en el Dpto. de Ingeniería Electrónica de la Universidad de Sevilla, donde continúa en la actualidad como Profesor Sustituto y realizando su Tesis Doctoral. ISSN 1932-8540 © IEEE