Pages: [1]   Go Down
Author Topic: Problemas com serial.read()  (Read 820 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Olá pessoal, tudo bem?

Sou novo no Arduino e to passando mals pedaços com ele tentando fazer comunicação Xbee em 2 hops.
Gostaria muito da colaboração de vocês para eu conseguir terminar meu projeto final. Ficarei muito grato pela atenção e ajuda galera!

Então, o que eu estou tentando fazer é enviar pacote de um arduino para o outro estaticamente em hops. São no total de 3 arduinos.
Estou tendo problemas na comunicação dos 2 primeiros, se conseguir resolver isso, o 3º hop acho que fica fácil. Note que todos os 3 arduinos tem uma identificação, no caso (1), (2), (3).
Em poucas palavras, to tentando enviar um pacote de um arduino com XbeeShield (todos possuem) neste formato (2#1#0#) -> (Hostdestino, HostOrigem, hop).

Mas, como disse to tendo problema em um método da minha biblioteca chamado recebeBeacon, que está abaixo:

Beacon Service::recebeBeacon(short id) {

   Beacon beacon;
   String msg;
   
   while(Serial.available() > 0) {
      byte temp = Serial.read();
      msg = msg + (char) temp;           
   }
   Serial.flush();
   
   if (msg.length() > 0) {
      beacon = converteStringParaBeacon(msg);
      delay(1000);
      Serial.flush();
     
      if (verificaMensagemBeacon(beacon,id)) {
         return beacon;
      }
   }
   return beacon;
}

Meu arduino (1) envia o pacote com (2#1#0#), ta ok!
void loop() {
         
           //Send beacon com Dest(2), Source(1), Hop(0)
           beacon = Beacon(2,1,0);
           service.enviaBeacon(beacon);
           delay(2000);
               
}
Mas, quando o arduino (2) pega a mensagem, além da mensagem vir, vem um monte de lixo. Olhem a figura anexada para vocês terem uma ideia.

recebendo...
void loop() {
 
           recebe = service.recebeBeacon(1);
           delay(2000);

           //recebe.getDhost(), recebe.getShost(), recebe.getSALTO() são do tipo short, não sei se o problema ta aqui!!!

           beacon = Beacon(recebe.getDhost(), recebe.getShost(), recebe.getSALTO());         
           Serial.println(service.converteBeaconParaString(beacon));
               
            delay(2000);
}

Fui claro pessoal? O que vocês acham?

Muito obrigado pela atenção!!!


* recebe(Arduino2).jpg (103.19 KB, 778x519 - viewed 10 times.)
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3217
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Algumas questões:

- Já experimentaste comunicacão entre o computador e o Arduino com as Xbees?

- Configuraste as XBee? Isso é bastante parecido com o que eu tinha nas minhas. Depois de as configurar, funcionam bem.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Olá amigo, obrigado pela atenção.

Então, o que eu estou fazendo é usar tres cabos seriais, do tipo de cabo de impressora, um em cada arduino.
Os tres arduinos tem um skield Xbee, mas eles estao conectados no computador. Faço a comunicação assim, para depois poder usar eles com pilha!!
Não configurei Xbee, você teve problema parecido? Pode me explicar como fez?

abs e muito obrigado.
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 42
Posts: 3217
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

De repente não me lembro, não. :\

Eu passei por estes tutoriais para o fazer:

http://www.ladyada.net/make/xbee/configure.html
https://sites.google.com/site/xbeetutorial/xbee-introduction/zigbee_setup
http://www.embedded.arch.ethz.ch/xbee-setup.pdf

Eu lembro que na altura passei um bom bocado de tempo e acabei por ler o manual para ver exactamente o que cada parâmetro queria dizer. Talvez valha a pena porque facilita. O que me aconteceu foi que elas precisam dum setup que supostamente viria de fábrica, mas näo vinha. Elas estavam brancas.

Já agora, tens a certeza que não é um problema de bauds?
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Newbie
*
Karma: 0
Posts: 17
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Olá amigão,

Então não é problema de bauds, já usei a 19200 e 9600 e a 19.200 acontece a mesma coisa.
Nunca mexi nessa parte de configuração. Vou tentar ler estes tutoriais que você me passou? Não lembra mesmo o que você fez?? :/

muito obrigado.

Logged

Pages: [1]   Go Up
Jump to: