Buongiorno e grazie a tutti per ogni consiglio,
Ho cercato invano di seguire un tutorial per arduino+x bee+gps per costruire un gps wireless. (il tutorial è disponibile qui http://www.cooking-hacks.com/index.php/blog/tutorial-arduino-deluxe-pack).
Visto che i due moduli x-bee non comunicavano ho provato qualcosa di più semplice (molto semplice) per testarli, seguendo un secondo tutorial per arduino+x bee, senza gps (il secondo tutorial è disponibile qui http://www.cooking-hacks.com/index.php/documentation/tutorials/arduino-xbee-shield).
Anche in questo caso non sono riuscito a far comunicare i due moduli x-bee, nonostante abbia provato ripetutamente anche invertendo i moduli (trasmettitore-ricevitore) e spostando i moduli in combinazioni diverse.
In generale ho:
- due moduli arduino (arduino Uno [R3] & Arduino Duemilanove ATmega168])
- due x-bee shields (non so se sono identiche, guardate in figura)
- due moduli x-bee serie 2 (XB24-z7PIT & XB24-BCIT)
prendendo il tutorial più semplice, proverò a riassumere cosa ho fatto:
- ho programmato entrambi i moduli (Arduino + x-bee shield + x-bee) in modalità USB (jumpers montati sui piedini più esterni della scheda), con due differenti scretches: (a) codice trasmettitore, (b) codice ricevitore. (vedi sotto)
- ho posizionato i due jumpers in modalità x-bee (piedini interni della scheda)
- ho alimentato un modulo su USB (trasmettitore) ed uno con batteria 9v (ricevitore).
Ecco i codici:
- codice ricevitore (è un esempio presente su arduino: file -> esempi -> communication -> PhisicalPixel):
(escludendo la parte commentata:
const int ledPin = 13; // the pin that the LED is attached to
int incomingByte; // a variable to read incoming serial data into
void setup() {
// initialize serial communication:
Serial.begin(9600);
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
}
void loop() {
// see if there's incoming serial data:
if (Serial.available() > 0) {
// read the oldest byte in the serial buffer:
incomingByte = Serial.read();
// if it's a capital H (ASCII 72), turn on the LED:
if (incomingByte == 'H') {
digitalWrite(ledPin, HIGH);
}
// if it's an L (ASCII 76) turn off the LED:
if (incomingByte == 'L') {
digitalWrite(ledPin, LOW);
}
}
}
- codice trasmettitore:
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.print('H');
delay(1000);
Serial.print('L');
delay(1000);
}
Non capisco dove sia l'errore, i miei dubbi:
- i moduli (non identici) potrebbero non comunicare tra loro per differenza di modello?
- il modulo XB24-Z7PIT (acquisto recentissimo) non sembra avere antenna (vedi immagine), anche se nella descrizione è riportato: w/PCB ant (vedi descrizione)
- le schede Arduino Duemilanove & Arduino Uno possono "lavorare insieme"?
- le shield hanno differenze che impediscono l'utilizzo congiunto?
Anche se non avete consigli specifici, ma avete esperienza con x-bee+arduino, potreste indicarmi altri tutorial o guide che mi aiutino a capire meglio o partire da basi più solide.
vi ringrazio tantissimo per ogni aiuto.
in seguito lascio le specifiche dei moduli x-bee che sono i più complicati da recuperare (per le schede arduino non credo sia necessario).
ed infine uno zoom suli moduli x-bee:
Ancora un grazie a chiunque possa dedicare un pò di tempo al mio problema.
Cassandr@