Autor Tema: Manejar Modulos XBee en forma bidireccional  (Leído 21514 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Roddy

  • PIC10
  • *
  • Mensajes: 4
Manejar Modulos XBee en forma bidireccional
« en: 25 de Mayo de 2009, 17:01:03 »
Hola amigos, yo soy nuevo en este foro, pero he recurrido a el xq necesito de su ayuda en cuanto a manejar dos módulos XBee usando un microcontrolador PIC17F877A y PIC BASIC para la programación, para cada módulo. Ya he realizado la comunicación unidireccional según como se encuentra el código del ejemplo que facilita Arduino en su pagina http://www.faludi.com/itp_coursework/meshnetworking/XBee/XBee_example.html  y la prueba ha resultado exitosa, pero cuan he intentado hacer la comunicación bidireccional no ha resultado, no se donde esta el problema, según yo el código esta bien, pero necesito de una segunda opinión, para lo cual aquí les adjunto el código con sus respectivos comentarios:

' el portc.6 como salida serial
' el portc.7 como entrada serial
' el portb.0 como entrada digital
‘definición de la constante true9600 = 84 ( baudmode 9600-8-n-1-true (non-inverted)):
                         true9600 con 84
' definición de la variable thisByte (para salida) de tipo byte (8 bits)
                         thisByte var byte
 ' definición de la constante timeout = 2000, para esperar un dato proveniente del pin de entrada serial
                       timeout CON 2000
'definición de la variable inByte (para guadar datos de entrada serial) de tipo byte
                       inByte var byte                       
' el portb.0 como entrada digital:
                         input portb.0
' el portd.1 como salida para representar un estado (status light):
                         output portd.1
' label to jump back to if configuration times out
configure:
' el LED de estado colocado en el portd.1 parpadea una vez en el arranque:
                         High portd.1
                         pause 200
                         low portd.1
                         PAUSE 200
'por alguna razón esto parece ayudar a enviar un carácter arbitrario primero
‘luego una pausa de 200 para el guard time antes de solicitar el modo comando
                         serout2 portc.6, true9600, ["X"]
                         pause 1500
'poner el módulo XBee en modo comando:
                         serout2 portc.6, true9600, ["+++"]
'esperar por una respuesta (OK) desde el XBee por 2000 ms, o empezar de
 ‘nuevo en la etiqueta de configure, si no hay una respuesta por parte del XBee
                         SERIN2 portc.7, true9600, 2000, configure, [WAIT ("OK")]
' luego se coloca el ID de la PAN (red de área personal) ID, los dos módulos
‘deben tener el mismo PAN ID
' este ejemplo usa  un ID de 0x3332, pero tu puedes elegir un propio
‘entre el rango hexadecimal de 0x0 y 0xFFEE
                         serout2 portc.6, true9600, ["ATID3332,"]
‘definimos el canal por el cual se van a comunicar los dos módulos XBee
‘en este caso hemos elegido el canal 12 (0x0C), pero tu puedes elegir entre
‘un rango de 11(0x0B) a 26(0X1A) canales permitidos
                         serout2 portc.6, true9600, ["ATCHC,"]
‘se coloca arbitrariamente la dirección  para un módulo en este caso 0x01 entre
‘un rango de 0x0 a 0xFFFE, esta dirección debe corresponder a la dirección de
‘destino (ATDL1) del otro modulo XBee
                         serout2 portc.6, true9600, ["ATMY1,"]
'para usar el direccionamiento de 16 bits se debe dejar a cero el comando DH=0
‘Esta dirección puede ser asignada y cambiada por comandos de envio desde el
‘microcontrolador.
                         serout2 portc.6, true9600, ["ATDH0,"]
' se coloca la dirección de destino DL que corresponde a la dirección propia del
‘ otro módulo (ATMY2) con el cual se va comunicar, en este ejemplo es de 0x02
‘ pero tu puedes elegir entre un rango de 0x0 a 0xFFFE
                         serout2 portc.6, true9600, ["DL2,"]
‘luego aunque no es necesario (puesto que lo hace el microcontrolador) se ajusta
‘la tasa de transmisión entre el módulo y su cliente (micro) conectado a través de
‘interfaz serial. Para ello se usa el comando BDx, donde x puede ser 0 (1200), 1
‘(2400), 2 (4800), 3(9600), 4 (19200), 5 (38400), 6 (57600) y 7(115200).
                         serout2 portc.6, true9600, ["ATBD3,"]
' para salir del modo comando
                         serout2 portc.6, true9600, ["CN",13]
' esperar por una respuesta (OK) desde el XBee por 2000 ms o empezar de
‘nuevo en la etiqueta de configure, si no hay una respuesta por parte del XBee
                            SERIN2 portc.7, true9600, 2000, configure, [WAIT ("OK")]
main:
 ' obteniendo los datos, desde la entrada serial por 2000 ms o ir a la etiqueta enviar
‘ si no hay datos presentes en la entrada
              SERIN2 portc.7, true9600, timeout, enviar, [DEC inByte]
' el LED rojo colocado  en el pin portb.1 se ilumina cuando se ha recibido un “1”
‘por la entrada serial, desde el otro modulo XBee       
  if inByte == 1 THEN
              HIGH portb.1
' si un “0” es recibido por la entrada serial el LED rojo se apaga
              ELSE
              LOW portb.1
              ENDIF
enviar:
' leer el estado del switch, colocado en el potb.0:
              thisByte = portb.0
'para convertir thisByte a un valor ASCII legible y enviar este dato por el puerto serial:
              serout2 portc.6, true9600, [DEC thisByte]
                      pause 500
' para saltar a la etiqueta main y quedar dentro de en un bucle leyendo y escribiendo datos
goto main



Esperando me se sepan ayudar, me despido.Voy estar esperando por una respuesta, gracias.

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3510
Re: Manejar Modulos XBee en forma bidireccional
« Respuesta #1 en: 26 de Mayo de 2009, 05:04:21 »
No he trabajado con estos módulos, ni con esa versión de Basic, pero si he trabajado algo con transmisión de datos y te recomiendo que antes de conectar los módulos pruebes la conexión directa por cable a ver si funciona correctamente el software y, una vez que tengas esto claro empieces a trabajar con los módulos.

PD. Si ya lo has hecho pues olvídate de lo que dije y suerte ...  :mrgreen:
Saludos desde Granada, España.

Desconectado RALF2

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2060
Re: Manejar Modulos XBee en forma bidireccional
« Respuesta #2 en: 27 de Mayo de 2009, 12:18:58 »
Que tal roddy!
La pagina que colocas sale un ejemplo mas sencillo tu te estas complicando la vida metiendote con la programacion del xbee que segun veo me parece que no es correcta, por ejemplo el comando +++ y los otros que siguen deben ser utilizados para programar el xbee y para ello hay un programa para eso por lo que el xbee se debe comunicar con la pc utilizando el software diseñado para programar los xbee y por lo que veo tu estas intentando programar el xbbe desde otro xbee via RF y no estoy seguro que esa sea la mejor forma.
Si estas empesando a manejar los xbee te recomiendo que utilices la programacion que tren por defecto para empesar y luego te metas en la candela cuando ya lo tengas funcionando todo bien.   :mrgreen:

Para transmitir y recibir es super sencillo usas el serout para enviar datos del xbee1 al xbee2 este ultimo los lee con el serin, despues de haber recibido los datos el xbee2 puede enviar datos al xbee1 de la misma forma como el xbee1 se los envio al xbee2 y listo.

No hace falta nada mas, es como si tuvienras enlazados los dos pic con un cable para comunicacion serial vulgar y silvestre   :D

Bueno espero a ver sido de ayuda  :mrgreen:


Saludos

Desconectado rodrigo_control2009

  • PIC12
  • **
  • Mensajes: 54
    • Blog  de la  Orden del  temple
Re: Manejar Modulos XBee en forma bidireccional
« Respuesta #3 en: 02 de Junio de 2009, 22:07:10 »
De acá también puedes descargar el soft que te sugieren es muy fácil su uso y la comunicación en modo transparente es muy  simple de implementar como alguien te dice es un simple extensión del RS232 inalámbrico lo que envías el xbee lo recibe y luego tu PIC lo procesa.

http://www.olimex.cl/product_info.php?products_id=392

Además hay manuales en español muy practico.
« Última modificación: 03 de Junio de 2009, 04:57:21 por dogflu66 »
“El hombre ideal, sería persa de origen, árabe de religión, iraquí por cultura, hebreo por experiencia, cristiano por conducta, hindú por perspicacia, sufí por su estilo de vida, angélico por su moral y divino por sus ideas y conocimiento, destinado a la eternidad”

Desconectado alexiel

  • PIC10
  • *
  • Mensajes: 31
Re: Manejar Modulos XBee en forma bidireccional
« Respuesta #4 en: 04 de Junio de 2009, 22:44:07 »
Gracias por la info se le agradece de corazon rodrigo_control2009 ese manual esta muy bueno.......Y en espanol excelente aporte... :lol: :lol:

Desconectado Roddy

  • PIC10
  • *
  • Mensajes: 4
Re: Manejar Modulos XBee en forma bidireccional
« Respuesta #5 en: 12 de Junio de 2009, 03:51:47 »
Bueno gracias por todas las sugerencias anteriores......He estado programando el modulo XBEE a través del micro xq no contaba en un principio con la tarjeta serial o USB para utilizar el software X-CTU de Digital, pero me conseguí un circuito en el Internet que usa el MAX3232 y lo implementé y pude comunicar mi PC (es decir la interfaz gráfica X-CTU) con el módulo y así hacer la programación...... Ahí me percaté que el problema había sido que estaba configurando mal los módulos XBEE cuando estaba haciendo uso del micro, xq no se estaban asignando las direcciones MY y DL de cada módulo......Bueno....pero el problema ya lo solucione, y los módulos están trabajando perfectamente....Recientemente acabo de terminar un trabajo en el que transmito la distancia medida por un sensor ultrasónico (SRF05) y la muestro en un LCD que se encuentra el circuito receptor junto con el módulo XBEE....Voy a seguir manipulando los módulos, xq se esta poniendo más interesante la situación, y ahora voy a ver si lo implemento en un  proyecto de robótica en la universidad donde estudio.......

Bueno ahí he de estar comunicado con todos...para alguna duda o sugerencia de este tema u otro.

Desconectado rodrigo_control2009

  • PIC12
  • **
  • Mensajes: 54
    • Blog  de la  Orden del  temple
Re: Manejar Modulos XBee en forma bidireccional
« Respuesta #6 en: 23 de Junio de 2009, 13:17:14 »
La verdad yo soy medio durazno para esta  cosas pero he logrado implementar algunas cositas.
Y creo q si usas un 18f con puerto usb te ahorras la parafernaria del max232 en vb es facil enviar y recibir datos creas una clase puerto o como quieras llamarle y le asignas (busca en google un proyecto robot dispensador es muy completo en cuant al uso del los puertos serie) todas las propiedades que necesites del puerto serie (com) o bie usas hid y por el lado de micro usas el archivo usb_cdc y todo marcha bien con solo hacer unas pequeñas  modificaciones a usb_des_cdc y ya tienes casi todo para envia y recibr datos a tu pic y ese mismo lo usas para el xbee pq ademas tienen modulo rs232 y en el programa para config el xbee tb tines un visor de puerto serie y con l1117 le das los 3.3 v al xbee no olvides adaptar el vltaje de xmit del puerto serie del pic ya q salen como 3.5volt o el xbee los necesita creo q cerca de 2 volt yo use u simple potenciometro de 1k (loidela seria de 10 para q el pic no consuma mucha corriete) y lo ajuste aun no he tnido problemas claro q para n aplicacion mas tecnica hay otros metodos pero para hacer las pruebas me fue bien.
« Última modificación: 23 de Junio de 2009, 20:09:15 por dogflu66 »
“El hombre ideal, sería persa de origen, árabe de religión, iraquí por cultura, hebreo por experiencia, cristiano por conducta, hindú por perspicacia, sufí por su estilo de vida, angélico por su moral y divino por sus ideas y conocimiento, destinado a la eternidad”

Desconectado beckherzt

  • PIC10
  • *
  • Mensajes: 3
Re: Manejar Modulos XBee en forma bidireccional
« Respuesta #7 en: 08 de Agosto de 2009, 16:09:12 »
HOLA RODDY ,YO TAMBIEN TENGO PROBLEMAS CON LA PROGRAMACION DEL ZIGBEE PUES NO TENGO LA INTERAZ SERIAL ,PODRIAS PROPORCIONARME  EL DIAGRAMA CON MAX 232 QUE UTILIZASTE PARA PROGRAMARLO,,,,,,GRACIAS

Desconectado rodrigo_control2009

  • PIC12
  • **
  • Mensajes: 54
    • Blog  de la  Orden del  temple
“El hombre ideal, sería persa de origen, árabe de religión, iraquí por cultura, hebreo por experiencia, cristiano por conducta, hindú por perspicacia, sufí por su estilo de vida, angélico por su moral y divino por sus ideas y conocimiento, destinado a la eternidad”

Desconectado Roddy

  • PIC10
  • *
  • Mensajes: 4
Re: Manejar Modulos XBee en forma bidireccional
« Respuesta #9 en: 25 de Junio de 2010, 13:36:47 »
Cualquier ayuda con los modulos XBEE les ofrezcon mi ayuda....creo que con lo que los he trabajado tengo suficiente conocimiento para ayudarles en lo que este a mi alcance.......

Desconectado lbp

  • PIC10
  • *
  • Mensajes: 1
Re: Manejar Modulos XBee en forma bidireccional
« Respuesta #10 en: 06 de Agosto de 2010, 17:10:43 »
tengo un problema con el xbee- pro, he hecho varias configuraciones  en el x-ctu como colocar el my, dl, id y dh y probando enlace entre los dos xbee en diferentes computadores por el hyperterminal funciona perfectamente pero si conecto al pic no funciona, el programa del pic es muy sencillo solamente envia una letra por serial. como podria hacer el enlace entre el xbee y el pic? esto utilizando el pic c para programar un 18f4550
si alguien me puede ayudar le agradeceria

Desconectado hmmg

  • PIC10
  • *
  • Mensajes: 1
Re: Manejar Modulos XBee en forma bidireccional
« Respuesta #11 en: 15 de Noviembre de 2010, 23:25:30 »
Que tal
estoy trabajando en un proyecto de comunicación serial y tengo el mismo problema antes mencionado
me poedrian dar información mas detallada sobre como asignar las direcciones MY y DL de cada modulo
gracias

Desconectado Roddy

  • PIC10
  • *
  • Mensajes: 4
Re: Manejar Modulos XBee en forma bidireccional
« Respuesta #12 en: 10 de Agosto de 2011, 13:12:57 »
Bueno amigos como les va........

Disculpen por lo que no he respondido a algunas peticiones de ayuda que se han publicado en este foro, lo que pasa es que he estado
desconectado del mundo de la electrónica por mi trabajo....pero ahora ya estoy aquí para ayudarles en lo que pueda....

Cualquier ayuda por favor enviarme un mensaje a mi correo que yo les responderé con todo gusto.

Correo: jrfo_roddy@hotmail.com

Desconectado debonaire

  • PIC10
  • *
  • Mensajes: 12
Re: Manejar Modulos XBee en forma bidireccional
« Respuesta #13 en: 10 de Agosto de 2011, 19:26:09 »
Hola amigos ya he trabajado con estos módulos Xbee y también comunicándolos con el PIC16f877A y funciono perfecto esta guía me fue de mucha ayuda para configurar entre xbee's ya q explica los modo en q trabajan y como configurarlos paso a paso bien sea con el XCTU o con Hyperterminal.

http://www.olimex.cl/pdf/Wireless/ZigBee/XBee-Guia_Usuario.pdf

En cuanto al PIC16f877A las rutinas son muy sencillas solo q las programo en assembler ya que creo que nos pone a punta la logica.

Cualquier cosa me avisan y puedo pasarle las rutinas...


Desconectado RogerMueller

  • PIC10
  • *
  • Mensajes: 1
Re: Manejar Modulos XBee en forma bidireccional
« Respuesta #14 en: 15 de Septiembre de 2011, 18:54:22 »
Podrias pasarlas rutinas por favor? Es que ya probe la configuracion de los Xbee con X-CTU y funciono perfecto pero aun no me queda muy claro como programarlos con PIC.. Gracias. Saludos.