LusoRobótica - Robótica em Português

Robótica => Iniciantes => Tópico iniciado por: Gabriel SS em 12 de Abril de 2011, 18:19

Título: XBee direto PC
Enviado por: Gabriel SS em 12 de Abril de 2011, 18:19
Boas,

estava estudando sobre o protocolo ZigBee e vendo o tópico Comunicação Serial com XBee (http://lusorobotica.com/index.php/topic,319.0.html)  me surgiu uma dúvida:

Todo tutorial que vejo usa 2 Arduinos e 2 módulos XBee, portanto, é deveras difícil comunicar um Arduino com XBee Explorer com um outro, em um Arduino?

Queria saber como seria executada essa acção através do Processing ou Python: Um XBee[Master] direto do PC conectando-se a outro XBee[Slave] e logo, mandando informações.

Há um tópico (http://lusorobotica.com/index.php?topic=336.msg2399#msg2399) em que o título sugere a mesma coisa que o colocado em meu tópico, porém, verão que a dúvida é outra. Portanto, decidi criar outro post.


Cumprimentos,
Gabriel Salgueiro
Título: Re: XBee direto PC
Enviado por: CBX em 12 de Abril de 2011, 18:39
é a mesma coisa que comunicar com o arduino ligado por usb...
Título: Re: XBee direto PC
Enviado por: Gabriel SS em 12 de Abril de 2011, 20:40
Mas e a configuração do XBee, não é necessário nada?
Título: Re: XBee direto PC
Enviado por: andre_f_carvalho em 12 de Abril de 2011, 21:45
Mas e a configuração do XBee, não é necessário nada?


eu não sei como funciona o xbee, mas decerto tens sempre de ter um programa que faça o que queres para enviar os dados e outro que interprete os dados recebidos para executar a função que queres
Título: Re: XBee direto PC
Enviado por: CBX em 12 de Abril de 2011, 21:57
sim, os xbee têm de ser configurados antes de serem usados pela 1ª vez:

http://arduinobrasil.blogspot.com/2010/03/conectando-xbee-ao-arduino.html (http://arduinobrasil.blogspot.com/2010/03/conectando-xbee-ao-arduino.html)
Título: Re: XBee direto PC
Enviado por: Gabriel SS em 12 de Abril de 2011, 22:46
Grato pelas respostas,

no meu caso, no lugar do módulo com endereço ‘0’ ser o que vai estar conectado ao PC, o outro com ‘1’ o módulo remoto, terei que inverter isso correto? Pois no meu caso, não será o módulo remoto que irá enviar dados, mas sim o que vai estar ao PC (Está correto?)

Poderiam me explicar melhor o código abaixo?
Código: [Seleccione]
int numero = 0;
char recepcao;
int estado = 1;

void setup() {
Serial.begin(9600);
}

void loop() {
Serial.print(numero);
Serial.println();
delay(1000);
numero++;
// ler da serial
recepcao = Serial.read();
if (recepcao == 'x')
{
estado = !estado;
digitalWrite(13,estado);
}

Logo, vale mais entender do que copiar... :)

Grato pessoal!
Título: Re: XBee direto PC
Enviado por: CBX em 13 de Abril de 2011, 00:35
Código: [Seleccione]
int numero = 0;
char recepcao;
int estado = 1;

void setup() {
Serial.begin(9600);
}

void loop() {
Serial.print(numero); //envia a variável "numero"
Serial.println(); //dá um "enter"
delay(1000); //espera 1s
numero++; //soma 1 ao valor da variável "numero"
recepcao = Serial.read(); //a variável "recepcao" vai ficar com o valor lido
if (recepcao == 'x') //se a variável "recepcao" for igual a "x" o código abaixo é executado
{
estado = !estado; //não sei esplicar bem o "not equal" mas penso que o valor da variável "estado" vai ser alterado para o oposto?
digitalWrite(13,estado); //o estado do pino 13 vai ser HIGh ou LOW conforme o valor da variável "estado"(0 ou 1)
}

não comentei o básico alguma duvida diz...
Título: Re: XBee direto PC
Enviado por: senso em 13 de Abril de 2011, 00:41
estado = !estado; //não sei esplicar bem o "not equal" mas penso que o valor da variável "estado" vai ser alterado para o oposto?

Sim, isto serve para inverter o estado, é basicamente um XOR, se a variavel estado está a 1, passa a 0, se está a 0 passa a 1.
Título: Re: XBee direto PC
Enviado por: microbyte em 13 de Abril de 2011, 10:59
A variável "estado" e respectiva operação NOT (!) fariam muito mais sentido para mim se a variável fosse booleana.

Assim quanto muito faria uma comparação com 0 e respectivo else.
Se for 0, escreve LOW, se for diferente de 0 escreve HIGH.
Título: Re: XBee direto PC
Enviado por: Gabriel SS em 13 de Abril de 2011, 17:15
A variável "estado" e respectiva operação NOT (!) fariam muito mais sentido para mim se a variável fosse booleana.

Assim quanto muito faria uma comparação com 0 e respectivo else.
Se for 0, escreve LOW, se for diferente de 0 escreve HIGH.

E isso seria possível, substituir o !estado por LOW ? [Já que a posição padrão é 1 - HIGH]
Título: Re: XBee direto PC
Enviado por: microbyte em 13 de Abril de 2011, 21:21
Eu faria

if(estado == 0) digitalWrite(pin,LOW);
else digitalWrite(pin,HIGH);
Título: Re: XBee direto PC
Enviado por: Gabriel SS em 25 de Abril de 2011, 17:40
E a respeito do hardware, é só plugar o XBee Explorer USB no PC, certo?

Não precisa fazer gambiarra alguma..?!
Título: Re: XBee direto PC
Enviado por: senso em 25 de Abril de 2011, 17:45
Pois, se já pagou por uma placa para ligar o Xbee ao pc era meio parolo ainda ter de ligar mais coisas..
Título: Re: XBee direto PC
Enviado por: Gabriel SS em 26 de Abril de 2011, 20:25
Alguém já tentou utilizá-lo com Processing? Ví que não há suporte do Processing ao XBee..

Só por curiosidade: se utilizasse Firmata, seria só declarar qual porta COM o XBee usa, certo? Pois ele é um comunicador ligado a uma porta COM...
E para passar as informações através do Firmata para o XBee, como funciona?
Título: Re: XBee direto PC
Enviado por: senso em 26 de Abril de 2011, 20:28
Um Xbee não é uma simples ponte Serial, é mais complexo que isso, tem de se configurar primeiro e tal, mas tambem não posso ajudar muito mais visto que nunca usei Xbee's
Título: Re: XBee direto PC
Enviado por: Gabriel SS em 26 de Abril de 2011, 20:48
Um Xbee não é uma simples ponte Serial, é mais complexo que isso, tem de se configurar primeiro e tal, mas tambem não posso ajudar muito mais visto que nunca usei Xbee's

Ferrou  :o