Arduino, Xbee shield e Computer

Salve a tutti Sto cercando di fare in modo che arduino interagisca con il computer avendo un Xbee shield montato sopra...

In pratica un xbee-trasmettitore comunica tramite Serial.print che è stato premuto un bottone, un Xbee-ricevente montato su un Arduino e collegato al computer dovrebbe mandare un input al computer e mandare in loop un file midi tramite S2MIDI ( http://www.memeteam.net/2007/s2midi/ )...

Ora il problema è che non sono sicuro che Arduino possa comunicar al computer i dati ricevuti da l'Xbee-ricevente, per via dei Jumpers Xbee\USB....o forse ho semplicemente sbagliato il codice in arduino, per cui non riesco a farlo funzionare??

Grazie dell'aiuto

Ciao

Se vuoi usare la porta seriale per comunicare con il computer devi inventarti un’altra porta per parlare con l’XBEE

(anche se mi sembra un po “overkill”, ti basta un telecomando x apricancello :slight_smile:

L’unico modo per creare una seconda porta seriale è usare AFSoftwareSerial che trovi via google.
Con questa libreria puoi trasformare due piedini qualsiasi in una porta seriale… fai lavorare l’xbee a 9600.

dovrai anche cambiare i collegamenti perchè quando lo shield è montato sulla scheda è connesso ai piedini 0 e 1
(togli i ponticelli e usa i due pin centrali per collegarti a RX e TX del modulo XBEE)

m

per cui non è possibile fare in modo che l'xbee intreragisca col computer?

Mi sembra di capire che l'unico modo è trasformare un Pin in porta seriale?

dovrai anche cambiare i collegamenti perchè quando lo shield è montato sulla scheda è connesso ai piedini 0 e 1 (togli i ponticelli e usa i due pin centrali per collegarti a RX e TX del modulo XBEE)

Non ho capito che intendi...

Ti posto questo esempio molto utile dell'utente cairn... http://www.humboldt.edu/~cm19/XBee%20setup.pdf In pratica nell'ultima parte spiega come fare in modo da assicurarsi che i due Xbee comunichino, e lo fa immettendo nel xbee COORDINATOR il comando Serial.println("testing...");...cioè connettendomi Tramite X-CTU, sul terminal window ( quella in cui mandi i comandi ATID ATDH etc...) appare la scritta testing...

Il suo sketch funziona benissimo...Una volta inserito però in quello fatto da me, in cui cerco di mandare in loop il file midi smette di funzionare...

Da qui la mia confusione!

OK.. verifichiamo due cose

tu hai i moduli versione 2.5? perchè se hai quelli piu vecchi alcuni comandi del pdf non corrispondono.

quello che fa questo utente è

Situazione A Arduino->Xbee->>>>>onde radio>>>>>>xbee->convertitore Seriale USB->computer

mentre se ho capito quello che vuoi fare tu è: Situazione B Arduino->xbee->>>>>>onde radio>>>>>>xbee->arduino->computer->midi

Se mandi i comandi midi direttamente dalla prima arduino allora ti basta un semplice convertitore Seriale USB per far ricevere i segnali al computer (situazione A) . se togli il processore ad un arduino e ci monti sopra lo shield hai fabbricato un convertitore di questo tipo.

La situazione B si verifica se tu vuoi usare l'arduino connessa al computer per processare in qualche modo i segnali che arrivano dal modulo XBEE, e in quel caso hai il modulo XBEE e la connessione USB verso il computer che si contendono la porta seriale.

Si comunque io uso la versione 2.5 ( credo ). Sul modulo è scritto solo Series 2…
Credo che ci torviamo difronte al caso B: il file midi è nel computer e arduino deve solo mandarlo in loop quando gli arriva un preciso comando da un xbee lì vicino.

In realtà io non ho bisogno dell’arduino attaccato al computer per fare qualcosa se non mandare in loop un file midi (per cui se xbeee lo potesse fare da solo risolverei i problemi)…però:

  1. Sia nel libro di tom igoe che nei vari esempi trovati finora, lo sketch caricato in arduino dice ai moduli xbee dove connettersi e come connettersi----> Serial.print(“ATDH0,”);
    Serial.print(“ATDL1111”,); etch…
    Per cui risulta necessario per “comandare” l’xbee, altrimenti come fare a far sì che Xbee faccia qualcosa, apparte ricevere o inviare informazioni?

  2. Per mandare in LOOP un file midi ho bisogno di Arduino per forza oppure no?..cioè Xbee non può attuare un “processo”, tipo dire al computer < manda in loop un file >?

P.s.
Mi sapresti dire dove trovare del materiale specifico per la serie 2 di xbee, visto che tutto ciò che ho trovato sembra superato?

Grazie dell’aiuto