RF trasmitter and receiver
Moderatori: ragno, tapino, alez, zulu, davidea
Re: RF trasmitter and receiver
Finalmente sono riuscito a mettere le mani sugli insettini, ho iniziato da quelli economici (quelli che fanno solo TX -> RX ad 1 canale).
Per prima cosa vi dico che questo sito va bene come esempio e per cultura generale sui moduli ma contiene una libreria VirtualWire obsoleta, ci ho sbattuto un po la testa ma non sono riuscito a compilare con successo ne con IDE Arduino 1.0 ne con 0.23:
http://www.pjrc.com/teensy/td_libs_VirtualWire.html
Dopo un po di ricerche finalmente sono riuscito a trovare questo sito, stesso autore ma librerie aggiornate:
http://www.open.com.au/mikem/arduino/VirtualWire/
Un po di foto:
shield barbona millefori TX 433mhz, DATA collegato al PIN 12 di Arduino, +5V, GND
shield barbona millefori RX 433mhz, +5V, DATA collegato al PIN 2 di Arduino, GND
test TX-RX via_filo (praticamente la libreria VirtualWire ma con un REAL wire ), pin GND in comune e DATA in comune
se col filo funziona, test TX-RX via_radio
vi riporto anche la lunghezza delle antenne che ho messo io:
8,5 cm sul TX
15 cm sul RX
Ho provato ad allonanarmi di una ventina di passi e continua a funzionare correttamente sulla console seriale di Arduino:
non fate caso al 46 iniziale invece del 68, ho cambiato lo sketch per prova da "Hello" a "Fello"
Ecco anche gli sketch che ho usato per i test, leggermente modificati rispetto a quelli trovati negli Examples
Transmitter:
Rispetto allo sketch originale, ho aggiunto le righe
Receiver:
Rispetto allo sketch originale, ho aggiunto le righe
Lo sketch TX funzionava anche senza la definizione del tx pin, mentre l'rx non funzionava correttamente.
Buon smanettamento!
P.s.: quello di sinistra (TX) è un Arduino Duemilanove mentre quello di destra (RX) è un Uno, il tutto compilato con IDE Arduino 1.0.
Per prima cosa vi dico che questo sito va bene come esempio e per cultura generale sui moduli ma contiene una libreria VirtualWire obsoleta, ci ho sbattuto un po la testa ma non sono riuscito a compilare con successo ne con IDE Arduino 1.0 ne con 0.23:
http://www.pjrc.com/teensy/td_libs_VirtualWire.html
Dopo un po di ricerche finalmente sono riuscito a trovare questo sito, stesso autore ma librerie aggiornate:
http://www.open.com.au/mikem/arduino/VirtualWire/
Un po di foto:
shield barbona millefori TX 433mhz, DATA collegato al PIN 12 di Arduino, +5V, GND
shield barbona millefori RX 433mhz, +5V, DATA collegato al PIN 2 di Arduino, GND
test TX-RX via_filo (praticamente la libreria VirtualWire ma con un REAL wire ), pin GND in comune e DATA in comune
se col filo funziona, test TX-RX via_radio
vi riporto anche la lunghezza delle antenne che ho messo io:
8,5 cm sul TX
15 cm sul RX
Ho provato ad allonanarmi di una ventina di passi e continua a funzionare correttamente sulla console seriale di Arduino:
non fate caso al 46 iniziale invece del 68, ho cambiato lo sketch per prova da "Hello" a "Fello"
Ecco anche gli sketch che ho usato per i test, leggermente modificati rispetto a quelli trovati negli Examples
Transmitter:
Codice: Seleziona tutto
// transmitter.pde
//
// Simple example of how to use VirtualWire to transmit messages
// Implements a simplex (one-way) transmitter with an TX-C1 module
//
// See VirtualWire.h for detailed API docs
// Author: Mike McCauley (mikem@open.com.au)
// Copyright (C) 2008 Mike McCauley
// $Id: transmitter.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $
#include <VirtualWire.h>
const int transmit_pin = 12; // DATA del trasmettitore sul PIN 12 di Arduino
void setup()
{
Serial.begin(9600); // Debugging only
Serial.println("setup");
vw_set_tx_pin(transmit_pin);
// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec
}
void loop()
{
const char *msg = "hello";
digitalWrite(13, true); // Flash a light to show transmitting
vw_send((uint8_t *)msg, strlen(msg));
vw_wait_tx(); // Wait until the whole message is gone
digitalWrite(13, false);
delay(200);
}
Codice: Seleziona tutto
...
const int transmit_pin = 12; // DATA del trasmettitore sul PIN 12 di Arduino
...
vw_set_tx_pin(transmit_pin);
Receiver:
Codice: Seleziona tutto
// receiver.pde
//
// Simple example of how to use VirtualWire to receive messages
// Implements a simplex (one-way) receiver with an Rx-B1 module
//
// See VirtualWire.h for detailed API docs
// Author: Mike McCauley (mikem@open.com.au)
// Copyright (C) 2008 Mike McCauley
// $Id: receiver.pde,v 1.3 2009/03/30 00:07:24 mikem Exp $
#include <VirtualWire.h>
const int receive_pin = 2; // DATA del ricevitore sul PIN 2 di Arduino
void setup()
{
Serial.begin(9600); // Debugging only
Serial.println("setup");
vw_set_rx_pin(receive_pin);
// Initialise the IO and ISR
vw_set_ptt_inverted(true); // Required for DR3100
vw_setup(2000); // Bits per sec
vw_rx_start(); // Start the receiver PLL running
}
void loop()
{
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message(buf, &buflen)) // Non-blocking
{
int i;
digitalWrite(13, true); // Flash a light to show received good message
// Message with a good checksum received, dump it.
Serial.print("Got: ");
for (i = 0; i < buflen; i++)
{
Serial.print(buf[i], HEX);
Serial.print(" ");
}
Serial.println("");
digitalWrite(13, false);
}
}
Codice: Seleziona tutto
...
const int receive_pin = 2; // DATA del ricevitore sul PIN 2 di Arduino
...
vw_set_rx_pin(receive_pin);
Lo sketch TX funzionava anche senza la definizione del tx pin, mentre l'rx non funzionava correttamente.
Buon smanettamento!
P.s.: quello di sinistra (TX) è un Arduino Duemilanove mentre quello di destra (RX) è un Uno, il tutto compilato con IDE Arduino 1.0.
Ciao alez
Re: RF trasmitter and receiver
Ah, che figata le librerie, con 4 righe di codice sei in etere.
Stiamo parlando dei moduli piu' "cicciosi" non di quelli NRF?
ciao
Stiamo parlando dei moduli piu' "cicciosi" non di quelli NRF?
ciao
vdr: 1.4.7+extpatch54 (pensionata), 1.7.27 (yavdr 0.4)
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Percorri la via che porta al sole,
e non camminare sui sentieri oscuri.
E quando penso che sia finita,
è proprio allora che comincia la salita.
Re: RF trasmitter and receiver
Moduli più bavosi, quelli solo TX e solo RX separati, guarda la foto delle antenne
Ciao alez
Re: RF trasmitter and receiver
Altra scoperta che potrebbe eviatare di farvi impazzire con la libreria VirtualWire:
i PIN 11 e 10 NON VANNO usati, servono per le funzioni interne di TIMER 1 dell'atMega, avevo dei led collegati a quei pin e sembrava un'albero di natale, meno male che sapevo che lo sketch funzionava, ho fatto tutto il resto e poi ho incluso la libreria VirtualWire nel mio sketch.
Forse crea problemi anche il PIN 9 ma non ho testato, altre info qui:
http://arduino.cc/forum/index.php?topic=49177.0
i PIN 11 e 10 NON VANNO usati, servono per le funzioni interne di TIMER 1 dell'atMega, avevo dei led collegati a quei pin e sembrava un'albero di natale, meno male che sapevo che lo sketch funzionava, ho fatto tutto il resto e poi ho incluso la libreria VirtualWire nel mio sketch.
Forse crea problemi anche il PIN 9 ma non ho testato, altre info qui:
http://arduino.cc/forum/index.php?topic=49177.0
Ciao alez
Re: RF trasmitter and receiver
Altro hint: la libreria VirtualWire a quanto pare parla stringese, quindi se si vuole trasmettere int come serve a me, è necessario convertire gli int in stringa all'atto della trasmissione e le stringhe in int all'atto della ricezione, è spiegato abbastanza bene in questo esempio che usa le funzioni
itoa()
e
atoi()
http://genericnerd.blogspot.it/2012/07/ ... -with.html
Presto pubblico il codice che le usa, ho quasi terminato il trasmettitore...
itoa()
e
atoi()
http://genericnerd.blogspot.it/2012/07/ ... -with.html
Presto pubblico il codice che le usa, ho quasi terminato il trasmettitore...
Ciao alez
Re: RF trasmitter and receiver
Altro test positivo: ho provato a piazzare il trasmettitore nel garage dei miei genitori ed il ricevitore collegato ad un portatile per monitorare il segnale.
Nel vano scale, mentre salivo, non funzionava ma posizionando il ricevitore in camera da letto (dove poi andrà sistemato definitivamente) il segnale arriva
Praticamente gli insettini riescono ad attraversare 2 piani, non male per essere oggetti così a basso costo e bassa potenza! (prima o poi devo decidermi a misurarne l'assorbimento)
Ho terminato i prototipi hardware su millefori, ora penso che userò due XINO per realizzare il trasmettitore e ricevitore definitivi, sfruttando la parte millefori dovrei riuscirci senza aggiungere uno shield sopra, cosa molto comoda!
Nel vano scale, mentre salivo, non funzionava ma posizionando il ricevitore in camera da letto (dove poi andrà sistemato definitivamente) il segnale arriva
Praticamente gli insettini riescono ad attraversare 2 piani, non male per essere oggetti così a basso costo e bassa potenza! (prima o poi devo decidermi a misurarne l'assorbimento)
Ho terminato i prototipi hardware su millefori, ora penso che userò due XINO per realizzare il trasmettitore e ricevitore definitivi, sfruttando la parte millefori dovrei riuscirci senza aggiungere uno shield sopra, cosa molto comoda!
Ciao alez
Re: RF trasmitter and receiver
Siori e siore sono arrivate le antenne barbone, cercate sulla baya
"10pcs 433MHz Helical antenna"
e sarete serviti
"10pcs 433MHz Helical antenna"
e sarete serviti
Ciao alez