Problemi di comunicazione con Arduino BT

Salve a tutti, Ho acquistato le seguenti schedine

1 - Arduino 10000 1 - Arduino BT

Purtroppo la seconda e precisamente quella BT (bluetooth) non riesco a farla funzionare.

Premessa : Il mio ambiente di lavoro e' Arduino su linux Ubuntu 7.10 e con la arduino 10000 non ho avuto alcun problema. Con la 10000 funziona tutto.

L'inconveniente pero' non credo sia dovuto all'ambiente bensi' alla comunicazione.

La schedina viene rilevata infatti:

$ hcitool scan Scanning ... 00:07:80:83:AB:D6 ARDUINOBT

Il pairing bluetooth tra la board arduino BT ed il notebook sul quale lavoro avviene correttamente.

Anche il device /dev/rfcomm0 viene creato correttamente.

Primo inconveniente: in ambiente linux la seriale Bluetooth di consuetudine e' rfcomm[x] e non ttyUSB[x], ma questo non e' un vero e proprio problema perche' ce la si cava con un:

ln -s /dev/rfcomm0 /dev/ttyUSB0

ed a quel punto il device compare tra i device selezionabili da arduino.

Il vero problema e' che non e' possibile fare alcun upload alla arduino BT board perche' dopo alcuni secondi compare la scritta: avrdude: stk500_recv(): programmer is not responding avrdude: stk500_recv(): programmer is not responding

Ovviamente ho fatto tutte le prove possibili ed immaginabili iscrivendomi ai vari forum e spulciando qualsiasi documento potesse riguardare tale malfunzionamento.

Non nascondo che utilizzando linux sono andato a cercare dentro l'uovo quale potesse essre l'origine del malfunzionamento ed ho scoperto che dall'ambiente di sviluppo viene lanciato per esempio il seguente comando quando si vuole fare l'upload:

hardware/tools/avrdude -Chardware/tools/avrdude.conf -q -q -pm168 -cstk500v1 -P/dev/ttyUSB0 -b19200 -D -Uflash:w:/home/fdinzeo/Projects/arduino-0010/examples/Digital/Blink/applet/Blink.hex:i

ed ho scoperto che c'e' una discrepanza per quanto riguarda la velocita' che e' 19200 invece che 115200 e a questo punto ho rilanciato la stessa riga a mano nel seguente modo:

hardware/tools/avrdude -Chardware/tools/avrdude.conf -q -q -pm168 -cstk500v1 -P/dev/ttyUSB0 -b115200 -D -Uflash:w:/home/fdinzeo/Projects/arduino-0010/examples/Digital/Blink/applet/Blink.hex:i

il risultato a riga di comando pero' e' il medesimo:

avrdude: stk500_recv(): programmer is not responding avrdude: stk500_recv(): programmer is not responding

Esise qualche altra prova da fare per la verifica del funzionameto ? Sbaglio da qualche parte ?

P.S. Probabilmente la board funziona ed e' solo un problema di bootloader, ma non ho proprio idea di coma possa fare a rifare l'upload u l'inizializzazione della bluetooth (non credo sia un problema dell'inizializzazione bluetooth perche' la schedina viene rilevata dal computer e viene fatto anche il pairing).

Grazie in anticipo.

Ciao a tutti scarface514

Ciao

Dovresti cercare nel forum, il problema dello stack BT su linux è stato discusso in passato.

mentre per gli utenti mac ho scritto un riassuntino di come si puo risolvere il problema http://tinker.it/now/2008/03/18/making-sense-of-the-arduino-bt-and-mac-os-x-leopard/

massimo

Grazie Massimo per la risposta, Cerchero' nel forum per quanto riguarda lo stack bluetooth.

In ogni caso, se puo' essere d'aiuto, ho provato anche a colloquiare con la Arduino BT in ambiente Windows perche' sul notebook di mio figlio c'e' Windows XP Professional ma il risultato e' identico : la board viene riconosciuta si riesce tranquillamente a fare il pairing, ma, al momento di sparargli dentro lo sketch compilato per tale board sulla giusta porta il risultato e' analogo. Non ricordo bene se l'output su console abbia la stessa dicitura, pero' piu' o meno il significato e' lo stesso.

Saluti scarface514

Prova a resettare la Board ed inviare lo sketch nei primi 10 secondi dopo il riavvio. Se vuoi avere un feedback visivo attacca un led tra tredicesimo pin e Gnd. Dopo il riavvio si accenderà per alcuni secondi.

Spero di essere stato d'aiuto. Ciao ;)

a me interesserebbe invece aprire una comunicazione seriale con linux… con windows mi funziona ma con ubuntu non riesco a comunicare…
Esiste un programma o qualche applicazione per aprire una comunicazione seriale via bluetooth sotto linux?

ciao Calamaro, ci son vari modi per aprire una comunicazione seriale su Linux. Puoi usare un Serial Port Terminal (per es. GtkTerm), oppure più semplicemente puoi fare: echo "valore" > /dev/rfcommX per passare un valore

cat /dev/rfcommX per "leggere" dalla seriale

(/dev/rfcommX è la seriale in questione, potrebbe essere /dev/ttySX o /dev/ttyUSBX, o altro ancora)

@Calamaro puoi anche usare minicom :)

gtkterm mi piace come opzione... ho provato a vedere se mi apre una connessione seriale facendo ls /dev/ttyS* e ci sono tutte le ttySx da 0 a 3 e poi ho linkato la rfcomm0 in ttyS4 sudo ln -s /dev/rfcomm0 /dev/ttyS4 dico bene? Però gtkTerm non mi vede la ttyS4 :( Minicom l'ho installato ma non so come funzioni :D

linux è bello perchè ogni comando ha la sua guida.... man minicom oppure http://www.cyberciti.biz/tips/connect-soekris-single-board-computer-using-minicom.html con minicom controlli tutto.