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
-
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?
-
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.
-
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)
//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)
//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/)
-
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.
-
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)