LusoRobótica - Robótica em Português
Robótica => Tutoriais => Tópico iniciado por: guibot em 24 de Dezembro de 2008, 20:08
-
Como tive alguma dificuldade em obter informação sobre comunicação serial entre 2 arduinos, aqui fica o resultado da minha pesquisa.
No Arduino emissor tenho 2 potenciómetros, no receptor atribuo o valor de cada potenciómetro a um led :]
http://www.youtube.com/watch?v=1PxjZglyXYU (http://www.youtube.com/watch?v=1PxjZglyXYU)
// SENDER
int analogValue2, analogValue5, val2, val5;
void setup()
{
// start serial port at 19200 bps
Serial.begin(19200);
}
void loop()
{
// read analog input
analogValue2 = analogRead(2);
analogValue5 = analogRead(5);
val2 = map(analogValue2, 0, 1023, 253, 0); // 254 and 255 for SYNC
val5 = map(analogValue5, 0, 1023, 253, 0);
Serial.print(254, BYTE); //SYNC char
Serial.print(val2, BYTE);
Serial.print(255, BYTE); //SYNC char
Serial.print(val5, BYTE);
delay(150);
}
// RECIEVER
byte incomingByte, sensor1, sensor2;
void setup() {
// start serial port at 19200 bps
Serial.begin(19200);
Serial.println(”Ready!”);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
delay(1000);
}
void loop() {
if (Serial.available()) {
incomingByte = Serial.read();
Serial.print(int(incomingByte));
if ((int(incomingByte) == 254)) {
sensor1 = Serial.read();
Serial.print(”Sensor 1 = “);
Serial.print(int(sensor1));
}
if ((int(incomingByte) == 255)) {
sensor2 = Serial.read();
Serial.print(” Sensor 2 = “);
Serial.print(int(sensor2));
}
}
analogWrite (5, sensor1);
analogWrite (6, sensor2);
}
-
Parabéns pelo projecto, obrigado por partilhares, assim quando fizer-mos comunicação entre 2 Arduinos não começamos do zero ;)
Um abraço, e continua o bom trabalho.
-
Só por curiosidade... é possível fazer o mesmo sem utilizar o XBee? Quero dizer, ligar uns fios e tal de maneira a por dois Arduinos a comunicarem entre si directamente?
-
claro...é o mais simples....o pin 1 e 2 (ou 0 e 1) do arduino sao comunicaçao serie ;) RX e TX respetivamente....(diz na placa ;D)
-
ligas o TX ao RX, e o RX ao TX... tens q tirar sempre os fios antes de fazeres upload do sketch :)
-
fiz um update ao tutorial sobre comunicação Serial, agora tenho um setup com fios, e outro sem fios:
http://lab.guilhermemartins.net/?p=346 (http://lab.guilhermemartins.net/?p=346)
Feliz 2009 ;D
-
que xbee é que compraram?
na sparkfun existem mts tipos:
XBee 1mW Chip Antenna
XBee 1mW Wire Antenna
XBee 2mW Series 2.5 Chip Antenna
XBee 2mW Series 2.5 RPSMA
XBee 2mW Series 2.5 U.FL Connection
XBee 2mW Series 2.5 Wire Antenna
XBee Pro 50mW Series 2.5 Chip Antenna
XBee Pro 50mW Series 2.5 RPSMA
XBee Pro 50mW Series 2.5 U.FL Connection
XBee Pro 50mW Series 2.5 Wire Antenna
XBee Pro 60mW Chip Antenna
XBee Pro 60mW U.FL Connection
XBee Pro 60mW Wire Antenna
quais são as diferenças e qual é que é o melhor?
-
Olá
Realmente é uma boa confusão...
Pelo que pude analisar há alguns dias, em relação aos módulos que trabalham a 2.4GHz, é assim:
Em relação às antenas existem:
- chip
- wire
- conector - permite uma antena externa para um melhor alcance
Em relação à rede que se pretende implementar:
- ponto para multi ponto - existe os 802.15.4 tb conhecidos por serie 1
- mesh
Dentro dos mesh existe:
- znet2.5 (no site da digi diz q novos utilizadores devem usar os ZB e até existe informação de como transformar os znet em zb. talvez seja para descontinuar)
- ZB (protocolo da zigbee)
- digimesh (protocolo da digi).
Para cada um deles existe a versão normal e a pro. A diferença é no alcance que é de cerca de 30m para os normais e 100 para os pro ou como eles costumam dizer 100 e 1500m respectivamente em campo aberto.
A utilização deles depende do que se quer fazer. Se só queres interligar dois dispositivos que estão a 10 metros de distancia o melhor é comprar a versão normal da serie 1 porque são os mais baratos... Se a distancia for superior compras a versão pro.
Se pretendes fazer uma rede mesh... já não te posso ajudar mais (ainda não li esse capitulo)
Jaime
-
Muito obrigado por partilhares, também tinha algumas duvidas relativamente aos modelos mas como ainda não estou a pensar comprar, não pesquisei sobre eles.
Sei que também existe uma versão a 896Mhz (se não estou em erro) que tem alcance de 30km com antena on chip. tenho que ver se encontro mais sobre isso e depois posto!
-
Dizem ele que o pro 868Mhz com antenas de alto ganho separadas o alcance é 80km.
No entanto nao sei se podemos usalos na europa... mas esta pequena tabela ajuda
http://www.digi.com/xbee/ (http://www.digi.com/xbee/)
jaime
-
Com o X-CTU consigo ver toda a configuração do XBee, alterar alguns parâmetros, mas não consigo alterar o ID do Xbee (executar o comando ATMY1234).
O que é básico e que estou a fazer mal?
Obrigado,
Delphi
-
Olá
No xctu é só clicar em cima da linha do MY e escolher o o novo valor.
Depois é preciso clicar no botão write para gravar a configuração.
Jaime
-
Olá,
Venho apenas aqui acrescentar que caso tenham 2 arduinos, e pretendam ligar o Xbee ao PC, não é necessário nenhuma placa usb, ou qualquer coisa do género.
Para ligar o Xbee ao PC, basta retirar o chip de um dos arduinos (MAS TIREM O CHIP COM CUIDADO QUE AS PERNAS TEM UMA CERTA TENDÊNCIA PARA DOBRAREM), liguem os pins GND e 3.3v do arduino aos do XBee, e aqui também ATENÇÃO: TX com TX e RX com RX.
Basta abrirem um programa que comunique com a porta COM e já está pronto a utilizar!!!!
Penso que esta dica também serve para qualquer micro/board/... que comunique por TX/RX.
Comprei uma placa xbee usb explorer e agora preferia ter comprado outro arduino. Um arduino faz muito mais do que a board de interface :)
-
Alteração de planos:
NÃO tirem o chip do arduino para ligarem um xbee ao pc.
Basta colocar o Arduino em RESET (ligar o pin GND ao RST) e ligarem como descrito em baixo, et voilá....!
-
em baixo onde? :P
-
como fizeste para o xbee mandar a informação para o outro, sem teres nenhum parametro no arduino?(o id do xbee por exemplo)
-
Não faço ideia, mas tenta pesquisar na datasheet por mensagens broadcast.
-
Deve de haver uma opção chamada Broadcast. Utiliza-a pois significa enviar para um endereço em que todos estão sensíveis.
-
ja encontrei um tutu em portugues onde dava para definir o caminho do outro xbee por comando at, so a ultima duvida, os softwares do xbee funcionam com zigbit (zigbee) da atmel? e qual é a distancia maxima dos zigbit atmel ATZB-24-A2?
-
ghostbuster, os XBees vêm configurados de fábrica para funcionar em broadcast, por isso é k não precisas de configurar nenhum ID para por dois XBees a comunicar. Contudo, se queres definir endereços tens que configurar os XBees por comandos AT ou fazer um pequeno circuito para ligar a porta série e utilizar um software da maxstream que é o X-CTU que no fundo faz o mesmo, mas com um interface gráfico. Eu uma vez pus aqui no fórum um trabalho que fiz para a cadeira de Redes de Comunicação na UAlg em que tens isso tudo explicado tanto da parte teórica, como da parte prática ( circuito pa ligar a porta série, tutorial de configuração utilizando o X-CTU, código para dois pontos de comunicação em C para 8051 ). Procura isso que ainda deve andar por aí. Se não encontrares depois mando-te se quiseres.
-
Aqui tens muita informação :
http://www.rogercom.com/ZigBee/ZigBee.htm (http://www.rogercom.com/ZigBee/ZigBee.htm)
-
Aqui tens muita informação :
http://www.rogercom.com/ZigBee/ZigBee.htm (http://www.rogercom.com/ZigBee/ZigBee.htm)
muito bem explicado, obrigado.
Quem quiser modulos zigbit e bluetooth baratos deem uma vista de olhos... http://shop.strato.de/epages/61427429.sf/de_DE/?ViewObjectID=6340256 (http://shop.strato.de/epages/61427429.sf/de_DE/?ViewObjectID=6340256)
-
tenho uma pequena grande duvida lool
eu quero comunicar 2 arduinos com o xbee
vou ter um sensor de temperatura 2 motores que vao estar num carro
depois vou ter de controlar
a minha duvida é
por os xbee a comunicar e em termos de programaçao por exemplo no xbee que envia
ter "1" do pin 3 e o arduino que recebe vai por os motores a funcionar para a frente
e o sinal do sensor como envia.lo e conseguir ler o sinal nas saidas do arduino
gostava de saber em termos de programaça uma ideia para perceber melhor como se faz essa programaçao eu tenho alguns conhecimentos de C mas nao muito
podem.me ajudar?;)
cump.
ze pedro
-
Alguém sabe se é possível enviar um float usando o xbee shield?
Estou a ter alguns problemas nisso!
-
Alguém sabe se é possível enviar um float usando o xbee shield?
Estou a ter alguns problemas nisso!
podes enviar a arte inteira e depois a parte decimal.
eu faço isso. o xbee que recebe esta ligado a um pic que depois faz os calculos.
-
boa noite.
eu comprei a uns tempos no site www.drois.it (http://www.drois.it) 2xbee pro de 2.4g cfom antena pelo preço de um em portugal. mais portes claro mas estes foram diluidos por um 990.005 e por um 990.002.
-
Usando ponteiros e referências podes mandar um float ao "parti-lo" em 4 bytes.
-
Quais foram os equipamentos utilizados? teria como colocar uma lista com os nomes? Ajudaria muito, pessoas que estam começando como eu, tem dificuldades em relação aos nomes. Isso devido a infinidade de modelos disponíveis no site do fabricante de x-bee.
abs.
-
Pessoal,
Sou novo no forum e estou montando uma rede zigbee em empresa de saneamento. Quando eu tenho vários xbee's acoplados a arduinos enviando a um coordenador, os dados ficam todos truncados, pois todos mandam ao mesmo tempo. Minha rede tem 1 coordenador, 1 roteador e 4 end device.
Qual a melhor forma de realizar essa comunicação de forma ordenada e sem confusões? Alguém já fez isso no arduino IDE? Tem algum modelo de programa?
No aguardo e urgente!!!
-
tens de usar endereços diferentes para cada um para saberes de onde vêm os dados
-
O programa para fazeres as modificações é este: X-CTU
Podes também encontrar aqui alguma info:
http://rogercom.com.br/index.htm (http://rogercom.com.br/index.htm)
-
Caríssimos,
Há uns tempos atrás comecei a desenvolver um bilbioteca em C++ (bastante modesta para já), para o XBee DIGI API.
Embora esteja longe de estar estável e ser ainda defecitária em funcionalidades, pode no mínimo dar-vos jeito para alguma coisa, nem que seja para reaproveitarem código. No máximo, a contribuição e críticas constructivas! ;D
Fica aqui a o link: http://code.google.com/p/zigbeelib/ (http://code.google.com/p/zigbeelib/)
Cumps,
Carlos