LusoRobótica - Robótica em Português

Sistemas específicos => Arduino / AVR => Tópico iniciado por: XicoMBD em 17 de Setembro de 2010, 13:32

Título: Comunicação entre Arduinos por IV
Enviado por: XicoMBD em 17 de Setembro de 2010, 13:32
Boas
Uma das coisas que sempre me fascinou foi a comunicação sem fios. Era uma das coisas que gostava de usar com arduinos. Mas até agora nunca me apeteceu gastar um balúrdio na compra de xbees.
E portanto, ultimamente tenho andado à procura de alternativas mais baratas.

O que até agora mais me chamou à atenção foi a comunicação por infravermelhos pelo seu preço e suposta facilidade em adquirir o material. Mas como ainda sou um grande novato nestas andanças, não percebo bem com a utilizar com arduino.

E assim, venho aqui pedir-vos ajuda e uns quantos conselhos.


Encontrei este
site (http://tthheessiiss.wordpress.com/2009/08/05/dirt-cheap-wireless/) que tem um tutorial interessante.

Mas não consigo perceber como é feita a ligação aos pinos 9 e 10 segundo este esquema e foto:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2F8bitklubben.dk%2Fpics%2Ftthheessiiss%2FTX.resized.jpg&hash=6cda02c9df222b3223109ee3cd895dbb73333f17)   (https://lusorobotica.com/proxy.php?request=http%3A%2F%2F8bitklubben.dk%2Fpics%2Ftthheessiiss%2Foverview.resized.jpg&hash=dc6d68f4f93c2f13d3b845052e7ff12ee21f07ea)

Está o pin positivo do led apenas ligado ao pin 9, apenas ao 10 ou a ambos?Mas voltando à questão principal, alguém tem experiência nisto, já utilizou este tipo de comunicação com arduino ou outro parecido mas igualmente barato?
Título: Re: Comunicação entre Arduinos por IV
Enviado por: ptrobotics em 17 de Setembro de 2010, 16:07
Os normais receptores de IV responde a uma determinada frequência. Nesse caso 38khz. Ou seja existe sinal com 38khz = 1, não existe, corresponde a 0. Isto é uma forma simples de modular a frequência (FM). No caso do emissor que apresentas, é na realidade um gerador de 38khz controlado pelo arduino.
Eu construiria da seguinte forma:
Gerador de 38khz (feito com uma porta CMOS NAND 4093 por exemplo ou com o Arduino em software) ligado ao pino positivo dos led's e o outro pino à massa. Ou seja, quando fosse aplicado 1 emite 38khz, 0 não emite nada.
O receptor está já preparado para responder a essa frequencia e apenas apresenta na saida 0 ou 1.
Título: Re: Comunicação entre Arduinos por IV
Enviado por: XicoMBD em 28 de Setembro de 2010, 18:52
Bem, mal acabei de desempacotar o meu 2º arduino a primeira coisa que quis fazer foi experimentar este sistema que funcionou perfeitamente até pelo menos um metro de distância.


Como podem ver as montagens e os códigos até são bastante simples:


EMISSOR:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg153.imageshack.us%2Fimg153%2F9702%2Ftxbreadboardc.png&hash=285adf2ac6c4c43d1b8f61919e847040fa43ce10)
Código: [Seleccione]
//dirt cheap wireless TX//generates 38kHz carrier wave on pin 9 and 10  //sends data via TX every 500ms  void setup()  {    pinMode(9, OUTPUT);    pinMode(10, OUTPUT);      // Clear Timer on Compare Match (CTC) Mode    bitWrite(TCCR1A, WGM10, 0);    bitWrite(TCCR1A, WGM11, 0);    bitWrite(TCCR1B, WGM12, 1);    bitWrite(TCCR1B, WGM13, 0);      // Toggle OC1A and OC1B on Compare Match.    bitWrite(TCCR1A, COM1A0, 1);    bitWrite(TCCR1A, COM1A1, 0);    bitWrite(TCCR1A, COM1B0, 1);    bitWrite(TCCR1A, COM1B1, 0);      // No prescaling    bitWrite(TCCR1B, CS10, 1);    bitWrite(TCCR1B, CS11, 0);    bitWrite(TCCR1B, CS12, 0);      OCR1A = 210;    OCR1B = 210;      Serial.begin(2400);  }    void loop()  {    Serial.println("testing testing testing");    delay(500);  } 



RECEPTOR:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg842.imageshack.us%2Fimg842%2F7378%2Frxbreadboard.png&hash=cce508964b474cce7ae2f1de72327451aae9ac97)
Código: [Seleccione]
//dirt cheap wireless RXvoid setup()  {    Serial.begin(2400);    pinMode(13, OUTPUT);  }    void loop()  {    // if incoming serial    if (Serial.available()) {      readSerial();      digitalWrite(13, HIGH);    } else {      digitalWrite(13, LOW);    }    delay(10);  }    void readSerial() {    char val = Serial.read();    Serial.print(val);  } 




VIDEO:
dirt cheap wireless (http://www.youtube.com/watch?v=IPs-OYCW3eo&feature=player_embedded#)


Podem encontrar mais informações no site original:
http://tthheessiiss.wordpress.com/2009/08/05/dirt-cheap-wireless/ (http://tthheessiiss.wordpress.com/2009/08/05/dirt-cheap-wireless/)
Título: Re: Comunicação entre Arduinos por IV
Enviado por: metRo_ em 28 de Setembro de 2010, 23:13
Muito interessante e com bastantes aplicações. Tambem já tinha pensado no mesmo, aliás, uma altura cheguei a pedir mesmo uns transceivers IR da vischay.
Título: Re: Comunicação entre Arduinos por IV
Enviado por: ptrobotics em 28 de Setembro de 2010, 23:52
Para responder algumas perguntas de receptores e emissores possiveis:

http://www.ptrobotics.com/category.php?id_category=34 (http://www.ptrobotics.com/category.php?id_category=34)