Software para programar/configurar el módulo Bluetooth

febrero 10, 2010

A lo largo de esta entrada se va a ver todo el software relacionado con la configuración del módulo Bluetooth OEMSPA310i.

En un principio, estos módulos se intentaron programar a través del ATMEGA88, dejando de lado está opción tras varios días de intentos sin logros ninguno mediante este tipo de programación. La segunda opción fue la compra del programador oficial que se podía obtener por internet a través de la empresa Ovedral, una de las empresas distribuidora de ConnectBlue en España, y a la cual le había comprado los módulos.

Gracias a esta adquisición pudimos programar/configurar los módulos Bluetooth. Para ello fue necesaria la descarga de los programas oficiales que proporciona ConnectBlue, teniéndonos que registrar en su página oficial para poder descargárnoslo. Al pinchar en el enlace (poner web) y tras registrarnos tenemos que descárganos tanto los programas como los manuales y los últimos firmwares disponibles para que nuestro módulos estén actualizados a la última versión. Todo esto se consigue pinchando en la pestaña “Support” del menú de la web. Para ello, lo mejor es descargarse el Complete Kit y el Multipoint Kit.El Complete Kit contiene manuales, programas y firmwares necesarios para el manejo de estos módulos.

En cuanto al software que nos encontramos en el pack se encuentran los siguientes:

-          Flash Loader

-          Serial Port Adapter Toolbox

-          El de inicio

Para cada uno de ellos dedicaremos una entrada nueva en el Blog, para que nos sea más fácil la búsqueda de cada programa sabiendo que hacer en cada uno.

Instalación de AVRStudio y WinAVR

febrero 10, 2010

Tras la descarga del software como se comento en el apartado anterior, vamos a proceder a describir los pasos necesarios para la instalación de este programa.

1. Ejecutar el fichero AvrStudio416Setup.exe (o la versión que se haya descargado, actualmente la 4.18)

2. Una vez nos salga la pantalla de bienvenida pulsamos sobre el botón “Next”.

3. Una vez pulsado en botón “Next”, nos sale un acuerdo de licencia que tendremos que aceptar (I agree). Cuando se haya pulsado “I agree” pulsaremos de nuevo “Next”.

Figura4.1.- Ventana de bienvenida de AVR Studio.

Figura 4.2.- Acuerdo de licencia de AVR Studio.

4. En el siguiente paso nos indicará la carpeta de destino donde queremos que se instale el programa, que en nuestro caso dejaremos la que trae por defecto. También nos da la opción de que la instalación sea sólo para nuestro usuario o para todos los usuarios del equipo. En nuestro caso seleccionamos sólo para nosotros.

Figura 4.3.- Elección de la carpeta de instalación de AVR Studio.

5. Una vez finalizada la instalación simplemente tenemos que cerrar la ventana y ya tendríamos instalado el AVR Studio.

 

Tras la instalación del AVRStudio es necesaria la instalación del WinAVR, por lo que tendremos que seguir los siguientes pasos:

1. Lo primero que nos aparece cuando ejecutamos el fichero WinAVR-20090313-install.exe es una advertencia. Una vez le demos a ejecutar nos pasará a ventana de selección de idiomas donde nos permitirá coger “Español”. Cuando se seleccione el idioma nos pasará a la pantalla de bienvenida.

Figura 4.4.- Ventana de bienvenida de WinAVR.

2. Posteriormente nos saldrá el acuerdo de licencia el cual tenemos que aceptar para proseguir con la instalación.

Figura 4.5.- Acuerdo de licencia de WinAVR.

3. A continuación se nos muestra el directorio donde queremos que se nos instale nuestro programa, cogiendo el que nos viene por defecto. Una vez le demos a “Siguiente” (Figura 4.6-a) nos saldrá una ventana donde escogeremos los componentes que queremos que se instalen (Figura 4.6-b), que en nuestro caso serán todos. Pinchando en el botón Instalar comenzará la instalación.

Imagen a)

Imagen b)

Figura 4.6.- (a) Elección de la carpeta de instalación de WinAVR.
(b) Selección de componentes a instalar.

4. Por último, nos saldrá una ventana diciéndonos que se ha instalado todo correctamente, teniendo que pulsar el botón “Terminar”.

Software para programar el ATMEGA88

febrero 10, 2010

Una vez visto casi todo el tema Hardware y habiendo comentado las modificaciones necesarias para poder añadir los módulos Bluetooth a la placa controladora, vamos a entrar a detallar el Software que vamos a utilizar.

En cuanto al tema Software vamos a dividir el Software en dos bloques:

  • Software para el ATMEGA88
  • Software para el módulo OEMSPA310i

En esta primera parte nos vamos a centrar en el primer punto detallando todo el software necesario para poder programar el micro.

El primer software que vamos a ver es el AVR Studio, una IDE para desarrollo de aplicaciones sobre micros AVR 8-bits de ATMEL. Es una suite que tiene entre otras, las siguientes características.

  • Integrated Assembler
  • Integrated Simulator
  • Integrates with GCC compiler plug-in
  • Support for all Atmel tools that support the 8-bit AVR architecture, including the AVR ONE!, JTAGICE mkI, JTAGICE mkII, AVR Dragon, AVRISP, AVR ISPmkII, AVR Butterfly, STK500 and STK600
  • AVR RTOS plug-in support .
  • Gracias a esta Suite vamos a poder tener un entorno de desarrollo donde poder crear nuestro programa, permitiendo el uso de simulación y debugger entre otros. La función más importante de esta IDE es que me permite grabar en la Flash del micro a través del programa AVR Prog el cual trae incluido.

    Para descargarnos la última versión del AVR Studio debemos de pinchas en el siguiente enlace y registrarnos como usuarios, ya que sólo se permite la descarga a usuario. Además del AVR Studio, deberemos de bajarnos el SP1 de este programa.

    http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725

    El AVR Prog se encuentra dentro de un conjunto de ejecutables llamado WinAVR, una suite Open Source que proporciona herramientas de desarrollo para los micros AVR de Atmel. WinAVR incluye entre otro, el avr-gcc (compilador de C que incluye las librerias para trabajar con estos micros), avrdude (programador), avr-gdb (debugger) y el ya mencionado AVR Prog.

    WinAVR puede ser descargado de manera gratuita de Sourceforge en el siguiente enlace:

    http://sourceforge.net/projects/winavr/

    En el siguiente capítulo nos centraremos en los pasos necesarios para la instalación del AVR Studio y el WinAVR.

    Modificando el OEMSPA310i

    enero 20, 2010

    Tal y como se había comentado en posts anteriores, se tenían que hacer una serie de modificaciones en la placa para poder conectar nuestro módulo Bluetooth a la placa, pero también teniamos que realizar una serie de puentes y conexiones en el módulo Bluetooth.

    De los pines disponibles en el conector J6, vamos a usar sólo aquellos que sean necesarios para la correcta transmisión de datos: masa, alimentación, transmisión y recepción. Además, tenemos que puentear los pines 8 (UART-CTS) y 10 (UART-RTS), para emular el control de flujo por hardware. Estas soldaduras y conexiones se aprecian mejor en la siguiente figura.

    Como hemos comentado, nosotros usaremos los conectores J6 mediante una serie de soldaduras. De los pines disponibles en el conector J6, vamos a usar sólo aquellos que sean necesarios para la correcta transmisión de datos: masa, alimentación, transmisión y recepción, las cuales serán conectadas a sus correspondientes en la NanoC, de forma que sean las mismas baterías de la placa a suministrar tensión al connectBlue.

    El módulo connectBlue es básicamente un adaptador de puerto serie, por lo que para realizar la conexión Bluetooth tendremos que usar las mismas señales empleadas para el adaptador USB incorporado en la placa.

    Las líneas utilizadas para la comunicación serie son únicamente dos, las correspondientes a las señales RxD y TxD del microcontrolador ATmega88. Para poder conectar el módulo Bluetooth tenemos que unir estar 2 líneas al módulo. Esta conexión se hará de la siguiente manera: el pin 2 del ATmega88 (RxD) se conecta a la salida de transmisión UART-TxD del dispositivo Bluetooth, mientras que el pin 3 del micro (TxD) lo hace con la entrada de recepción UART-RxD del módulo. 

    Para ello utilizaremos unos conectores hembra a los que soldaremos los cables que salen de los pines del módulo Bluetooth. Estos pines conectarán con los pines macho colocados en la placa y mostrados en la entrada de “Modificación de la placa NanoC”. El conjunto final quedará como se muestra en la siguiente imagen.

    Módulo Bluetooth OEMSPA310i

    enero 18, 2010

    El objetivo principal del proyecto era la comunicación de módulos Bluetooth de forma autónoma, por lo que se opto por los módulos OEMSPA310i de connectBlue ya que su precio era reducido, se tenía buena experiencia con ellos y se podían configurar para que actuaran en modo multidrop (que no sea punto a punto). Las características más destacadas del módulo escogido son que se puede crear una conexión UART a través de la soldadura de algunos de sus pines, además de que acepta el perfil SPP. Además de su reducido tamaño, una de las cosas más importante es la posibilidad de configurar el módulo a través de los comandos AT.

    El módulo tiene unas interfaces eléctrica para poder comunicarnos con él. Para conectar con el módulo tenemos dos posibles opciones:

    1. A través de las conexiones J6 del borde de la placa. Estas son las conexiones que se usarán para conectar el módulo a nuestra placa.
    2. Mediante conexiones del tipo board-to-board en los conectores J2 y J3. Será el medio de comunicación cuando se use el programador.

    Las características técnicas son las siguientes:

    Soporte Bluetooth Versión Bluetooth 2.0.Perfiles Bluetooth soportados: Generic Access Profile (GAP), Serial Port Profile (SPP), Dial-up networking Profile (DUN GW, DUN DT).

    Clase 2 +3.5 dBm (hasta 50 metros).

    Chipset y Stack  Basado en el chipset BGB203 de Philips.
    Software Configurable localmente o a través de Bluetooth usando comandos AT
    Interfaz serie Nivel lógico UART.Tasa en baudios soportada: de 300 a 921.6k.

    Soporte para tasas no estándar.

    Control de flujo: CTS/RTS o ninguno.

    El servicio de Puerto Serie del módulo viene configurado de fábrica con los siguientes parámetros: 57.600 bps, 8 bits de datos, sin paridad, 1 bit de parada y control de flujo por hardware CTS/RTS. La variación automática del baud rate no está soportada.

    Alimentación 3.0 – 6.0 VDC
    Consumo Mínimo: 7.9 mA.Medio: 17 mA.

    Máximo: 70 mA (pico).

    Dimensión 16 x 36 x 2.4 mm.

    Modificando la placa controladora.

    enero 18, 2010

    Como se ha comentado en el post anterior, la placa NanoC tuvo que ser modificada para poder añadir el módulo Bluetooth del que hablaremos en proximos posts. 

    Para poder conectar nuestro módulo Bluetooth a la placa se ha suprimido tanto el conector USB como el conversor a serie, haciendo una serie de puentes entre unos pines a los que conectaremos el Bluetooth, el conector USB y el micro, conectando de esa manera el módulo Bluetooth con la placa. 

    Además, tendremos que hacer una serie de soldaduras y puentes en nuestro módulo Bluetooth para que pueda enviar y recibir datos de la placa a través de unos pines hembra. 

    . Las líneas verdes corresponden a las líneas de comunicación de la placa, mientras que las rojas corresponden con los cables soldados por nosotros que hacen de puente. Como se puede apreciar en la fotografía anterior, se ha eliminado tanto el adaptador RS232 como el USB, aunque se usarán para poder crear los puentes. 

    Los pines 2 y 3 que se aprecian en la figura corresponden a las conexiones TxD y RxD del módulo Bluetooth respectivamente. Estos pines estarán conectados al módulo Bluetooth, por lo que la comunicación la realizaremos a través de estos pines. El primer puente que crearemos será el que va del USB a la patilla 1 del adaptador. Este puente se crea ya que, como se aprecia la figura 6.7 y la figura 6.8, la patilla 1 se encuentra conectada al pin 2 del ATMEGA88, la cual corresponde al pin de recepción (RxD). 

    Para poder conectar nuestro módulo Bluetooth a la placa se ha suprimido tanto el conector USB como el conversor a serie, haciendo una serie de puentes entre unos pines a los que conectaremos el Bluetooth, el conector USB y el micro, conectando de esa manera el módulo Bluetooth con la placa. 

    Además, tendremos que hacer una serie de soldaduras y puentes en nuestro módulo Bluetooth para que pueda enviar y recibir datos de la placa a través de unos pines hembra, aunque estos serán más vistos más adelantes. 

     

    Las líneas verdes corresponden a las líneas de comunicación de la placa, mientras que las rojas corresponden con los cables soldados por nosotros que hacen de puente. Como se puede apreciar en la figura anterior, se ha eliminado tanto el adaptador RS232 como el USB, aunque sus conexiones se usarán para poder crear los puentes. 

    Los pines 2 y 3 que se aprecian en la figura corresponden a las conexiones TxD y RxD del módulo Bluetooth respectivamente. Estos pines estarán conectados al módulo Bluetooth, por lo que la comunicación la realizaremos a través de estos pines. El primer puente que crearemos será el que va del USB a la patilla 1 del adaptador. Este puente se crea ya que la patilla 1 se encuentra conectada al pin 2 del ATMEGA88, la cual corresponde al pin de recepción (RxD). 

    Para el siguiente puente tenemos que utilizar el especio reservado para colocar el diodo TxD. Esto se debe a que el pin 3 que hemos creado para conectar al Bluetooth, el cual se conecta con el pin RxD del módulo Bluetooth, tiene una línea de comunicación con este espacio reservado para el diodo. A su vez, la patilla 5 del adaptador se comunica con la patilla 3 del ATMEGA88 que se corresponde con la de transmisión (TxD). Simplemente tenemos que poner un puente entre la patilla 5 del adaptador y el diodo TxD y ya tendremos creado nuestra comunicación Bluetooth a la placa.

    Con todas estas uniones ya tendremos modificada la placa para poder añadir el módulo Bluetooth.

    La placa controladora

    enero 18, 2010

    Para desarrollar este proyecto se ha escogido la placa controladora creada por la AMUCA(Asociación de Microrobótica de la UCA) NanoC, a la cual se le han realizado una serie de modificaciones para poder incorporar el modulo Bluetooth.

    Esta placa esta controlada por un microcontrolador ATMEGA88 de Atmel y es una placa diseñada para desempeñar tareas de control en pequeños microrobots. Además, incorpora una pequeña etapa de potencia basada en el controlador L293.

    Placa NanoC

    Como alimentación se le puede proporcionar entre 6 y 12V de corriente continua que será regulada por un regulador LM117.

    Las características principales de la placa son:

    • Potente microcontrolador AVR ATmega88 de 20 MIPS
    • Etapa de potencia de hasta 2A con controlador compatible L293.
    • Seis salidas para sensores y/o servos.
    • Protección integral contra inversiones de polaridad y cortocircuitos.
    • Regulador de tensión incorporado en placa.
    • Diseño sencillo, libre de jumpers ni configuraciones.
    • Programación por RS232 con bootloader compatible con los comandos AVR910.
    • Compatible con programador Atmel AVRISP.
    • Programación en lenguaje C, utilizando herramientas GNU de Software Libre.

    A continuación se muestra un esquema de la placa sin modificaciones para añadirle el módulo Bluetooth.

    Presentación de AutoBlue

    enero 10, 2010

    Mi primera entrada la dedicaré, como es lógico, a la presentación de mi trabajo denominado AutoBlue. Autoblue es un trabajo que comprende una parte hardware y otra software consistente en la comunicación de dispositivos Bluetooth de forma autónoma.

    Como ejemplo se usarán una serie de robots, de los cuales uno irá siguiendo una línea y el resto irá haciendo los mismos movimientos que éste gracias a la comunicación Bluetooth de forma autónoma, consiguiendo así una sincronización de robots mediante comunicación Bluetooth autónoma.

    El avance que se va a conseguir con este proyecto es el eliminar el ordenador como intermediario entre los distintos dispositivos Bluetooth, pudiendose crear una Piconet(red inalámbrica Bluetooth de hasta 8 equipos(1 maestro y 7 esclavos)) autónoma.

    Una vez conseguido esto, podría aplicarse a distintos campos como el diseño gráfico o al montaje en cadena, consiguiendo que diversar máquinas hagan los mismos movimientos gracias a la comunicación Bluetooth.

    En los siguientes post iré comentando los pasos y problemas que nos hemos encontrado.


    Seguir

    Get every new post delivered to your Inbox.