You are on page 1of 7

Programacin de Arduino inalmbrica

El Arduino sistema ofrece un mtodo fcil y de cdigo abierto para la programacin de microcontroladores. Normalmente, esto significa usar un cable serie o USB estn conectados directamente con el proyecto de microcontrolador. Pero lo que si su proyecto est flotando en un globo meteorolgico, pegado a la parte inferior de una piscina o al horno en una barra de pan? Sera muy bueno para subir los cambios de cdigo de forma inalmbrica, y an ms si se puede hacer desde varios kilmetros de distancia. El siguiente ejemplo muestra cmo construir una solucin inalmbrica completa para el cdigo de subir a un microcontrolador Arduino remoto usando un par de radios XBee , y una funcin muy til para llevar a cabo restablece inalmbrica.

Ejemplo prctico
Partes mnima necesaria: (ver lista de piezas de Tom Igoe para ms detalles)

Dos 5-15VDC fuentes de alimentacin. Radio Shack vende 4AA los titulares de la batera que son convenientes para los circuitos de control remoto 3.3 voltios. Dos mdulos XBee OEM RF soldados a las juntas de arranque ( como se muestra aqu, los pasos 1 y 2 solamente ) Una configuracin para conectar un XBee la serie (o USB) en su computadora. Mi circuito de ejemplo para la carga de firmware XBee funciona muy bien para este propsito. Un Arduino instalado en una placa Regulador de 3.3V Transistor 2N2222A (o similar) LEDs Surtido de cables

Paso 1: Usando una conexin en serie del programa, las dos radios XBee para hablar unos con otros a 19.200 baudios. Puede utilizar un programa como HyperTerm o ZTerm. En Mac OS X se puede utilizar el programa en la pantalla una ventana de terminal . (El comando sera algo as como: pantalla / dev/tty.Keyserial1 9600). Este ejemplo se utiliza el ID PAN por defecto de 3332, pero usted debe escoger una diferente para que otras radios XBee en el rea de no interferir con las comunicaciones. Para el XBee primer lugar, utilizar la secuencia + + + para pasar al modo de comandos. Usted debe recibir un mensaje OK de nuevo. A continuacin, ejecute el siguiente comando: ATID3332, DH0, DL1, MY0, BD4, WR, CN

Ya ha configurado el ID de 3332 (recordar que esto debe ser cambiado a otra cosa en el comando actual), el destino de 01 (que 's la direccin de su XBee otros), la direccin local a 0 y registrar su velocidad de transmisin a 4, que corresponde a 19.200 baudios. WR escribe la configuracin del firmware, de modo que los ajustes se conservan en el firmware. A partir de ahora estar hablando con el XBee a 19.200 baudios. [Si en algn momento desea regresar a 9600 baudios, el comando ATBD3, WR, CN har el truco.] Conectar el segundo XBee y utilice de nuevo la secuencia + + + para pasar al modo de comandos. A continuacin, ejecute el siguiente comando: ATID3332, DH0, DL0, MY1, BD4, WR, CN La nica diferencia aqu es que para el XBee segundo, se establece la direccin de destino a 0 y la direccin local a 1. Los dos XBees estn configurados para hablar unos con otros. Paso 2: Configure la placa con un regulador de 3.3 voltios para alimentar la radio XBee. El regulador de 3.3V utilizado en este ejemplo se dispone (de izquierda a derecha) de tierra-de entrada-salida, que es diferente de la V 5 un. Asegrese de que de que conecte correctamente para que no se fren el regulador o cualquier otra cosa en su tablero. El mdulo XBee funciona con 3.3 voltios y se conecta al RX y TX pines 0 y 1 del Arduino. Un LED es conectado al pin 13, y la base de un transistor est conectada al pin 12. Colector del transistor est conectado al pin de reset y el emisor se conecta a tierra

VISTA SUPERIOR: XBee que se ejecutan en 3,3 voltios regulados placa Arduino con el transistor de control pin de reset Arduino.

VISTA ESQUEMA: Arduino programacin inalmbrica. Haga clic aqu para agrandar .

Paso 3: Cargue el siguiente cdigo de ejemplo en el microcontrolador Arduino, inicialmente utilizando una conexin por cable serie o USB. La manera fcil de hacer esto es poner el microcontrolador Arduino en una de las placas Arduino regulares y cargar el cdigo con normalidad.
/ * Programacin Arduino inalmbrica * ------------ * Este programa espera a que un mensaje de restablecimiento de * de serie de un equipo remoto, * a continuacin, restablece el chip Arduino despus de un retraso para permitir que el microcontrolador * aceptar una subir de nuevo cdigo desde un dispositivo remoto. * Robert Faludi rob@faludi.com * * / int ledPin = 13; / / LED conectado al pin digital int transistorPin = 12; void setup () {pinMode (ledPin, OUTPUT); / / pone el pin digital como salida pinMode (transistorPin, OUTPUT); blinkLED (ledPin, 2, 500); / / retardo de abrir y cerrar de inicio (1000); Serial.begin (19.200); / / inicio de serie a 19200 baudios, al igual que la velocidad del programador} void loop () {blinkLED (ledPin, 1, 250);

if (Serial.available ()> 0) {/ / si hay bytes esperando en el puerto serie de caracteres inByte = Serial.read (); / / leer un byte if (inByte == '*') {/ / si byte es el carcter deseado len int = 5; / / cadena de espera es de 6 bytes de longitud caracteres inString [len]; / / declara variable de cadena for (int i = 0; i <len; i + +) {inString [i] = serie. read ();} if (strstr (inString, "reset") = NULL!) / / comprueba si el respose es "reset" resetChip (5000); / / restablecer el chip despus de esperar por el # de milisegundos} }} vaco resetChip (DelayTime int) {/ * si el proyecto no suele recibir datos, y su activacin accidental de chips son tolerables, * este es un mtodo simple que debera funcionar bien. De lo contrario, se recomienda que el reinicio * cadena de la solicitud formar parte de una secuencia de llamada-respuesta, se transmite con un byte * reservadas o cadena de bytes, o transmitir de alguna manera fuera de banda, por lo que no es * accidentalmente recibi. * / Serial.print ("\ nArduino se restablecer en"); Serial.print (delayTime/1000, diciembre); Serial.print ("segundos ... \ n \ r"); blinkLED (ledPin, delayTime/100, 100); / / esperar a que la cantidad de tiempo, haciendo Serial.print nada ("\ nResetting AHORA \ n \ r."); delay (transistorPin, HIGH); / / switch en un transistor que tira pin de reset del chip a tierra} vaco blinkLED (int targetPin, int numBlinks, int BlinkRate) {/ / esta funcin parpadea la luz de un LED tantas veces como sea solicitado for (int i = 0; i <numBlinks; i + +) {digitalWrite (targetPin, HIGH); / / enciende el LED delay (BlinkRate); / / espera un segundo digitalWrite (targetPin, LOW); / / enciende el LED de retardo (BlinkRate);}}

Una vez que el cdigo ha sido cargado, vuelva a colocar el microcontrolador Arduino en la configuracin del circuito experimental. Ahora est listo para cargar cdigo sin cables! Paso 4: Conecte un XBee a su ordenador para que pueda comunicarse con l a partir de un programa de terminal de serie, y tambin en el programa de Arduino. Como se mencion anteriormente, mi ejemplo de circuito para la carga de firmware XBee funciona muy bien para esto. La XBee remoto otros ser montado en su placa Arduino, como se muestra en el paso 2.

DIAGRAMA DE FLUJO: programacin de Arduino de forma inalmbrica mediante radios XBee.

Cuando est listo para cargar un nuevo cdigo para el microcontrolador: 1. Haga que su programa en ejecucin Arduino. Cambie el cdigo un poco. Por ejemplo, podra modificar la primera lnea en el bucle que se blinkLED (ledPin, 1, 1000), una luz parpadea ms lento. Salir del programa de Arduino corriendo. Tendr que volver a ella rpidamente en un momento. 2. Abrir una conexin serie con el XBee adjunta a 19.200 baudios. Puede utilizar un programa como HyperTerm o ZTerm. En Mac OS X se puede utilizar el programa en la pantalla una ventana de terminal . (El comando sera algo as como: pantalla / dev/tty.Keyserial1 19200). 3. Escriba el siguiente rpidamente en la ventana de terminal. Puede ser mejor el trabajo de copiar en el portapapeles y pegarlo a la vez: * Restablecimiento 4. Usted debe recibir una respuesta ", Arduino se reiniciar en 5 segundos". Desconectar inmediatamente el programa de terminal para liberar el puerto serie, cambio en el programa de Arduino, y haga clic en el botn Subir a la Junta de E / S. El momento es probable que tome un poco de prctica al principio. 5. Cuando usted tiene el tiempo correcto, el cdigo comenzar a cargar de forma inalmbrica a la distancia Arduino, y que oficialmente se viven en un mundo feliz. Paso 5: Se vuelven locos poniendo su pata sistemas habilitados para Arduino en lugares imposibles, a sabiendas

de que todava se puede corregir errores, mejorar y probar nuevas ideas. Asegrese de que el nuevo cdigo incluye siempre la funcin que supervisa para el comando de reinicio *! Extender el ejemplo anterior a los ganglios Arduino mltiples. Ver lo cerca que puede llegar al lmite terico de 65.536 dispositivos diferentes. Trate de aadir un Lantronix XPort o WiPort para extender su conexin a la programacin a travs de Internet. Trate de usar Bluetooth en lugar de la XBees. Si bien esto probablemente va a costar ms y ser un poco menos flexible, que podra ser una solucin til es su proyecto ya usa Bluetooth, tiene menos de ocho nodos, o si usted no quiere nada para conectar a su computadora porttil externo. Si usted est en un estado de nimo aventurero, abra su proyecto, al permitir a otros a cambiar el cdigo en el microcontrolador.
Esta pgina creada por Rob Faludi Minimum parts needed: (see Tom Igoe's parts list for additional details)

You might also like