Arduino + Bluetooth + Processing

Ieri ho ricevuto il nuovo giocattolino:
http://www.ebay.it/itm/270979961067?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649#ht_2662wt_1037
Sono riuscito a connettere il modulo ad Arduino e leggere con putty.
Adesso vorrei inviare i dati a processing, ma non riesco. Devo utilizzare una libreria "Bluetooth" per processing?
E' sufficiente fare leggere a processing sulla COM del bluetooth?
Grazie

basta leggere la porta seriale nel playground c'è un esempio con il c# dagli un occhiata se trovo il link te lo posto :wink:

Ho provato a leggere la seriale con questo scketch:

import processing.serial.*;

Serial myPort; // Create object from Serial class

void setup()
{
size(200, 200);
String portName = Serial.list()[2];
myPort = new Serial(this, portName, 9600);
}

void draw()
{
if ( myPort.available() > 0) { // If data is available,
println(myPort.read());
}
}
Il problema è che il bluetooth non si connette...

Matteino:
Ho provato a leggere la seriale con questo scketch:

import processing.serial.*;

Serial myPort; // Create object from Serial class

void setup()
{
size(200, 200);
String portName = Serial.list()[2];
myPort = new Serial(this, portName, 9600);
}

void draw()
{
if ( myPort.available() > 0) { // If data is available,
println(myPort.read());
}
}
Il problema è che il bluetooth non si connette...

ma devi fare prima il paring col pc ovvero trovi il tuo dispositivo e lo associ il pc gli associa una porta seriale virtuale tu ci comunichi come vuoi,putty,hyperterminale ide arduino o programmi ad hoc.

Se uso putty o un terminale BT android il paring va a buon fine e riesco a leggere la seriale.
Ma con processing il paring non avviene. non capisco dove sbaglio...

Matteino:
Se uso putty o un terminale BT android il paring va a buon fine e riesco a leggere la seriale.
Ma con processing il paring non avviene. non capisco dove sbaglio...

scuami ma tu il paringo lo fai dal pc mica dal terminale,dopo aver fatto il paring apri il terminale e leggi/scrivi la seriale giusto?

Ma quando lancio putty o l'app bt term, il dispositivo si connette in automantico...

Probabilmente non riesco a fare il pairing. Mi potresti indicare come procedi tu?
Io una volta installato il nuovo dispositivo bt, ho inserito il code "1234", e mi compare la seriale associato al dispositivo.
Il led di stato, quando mi connetto per esempio con putty, passa da rosso a verde e tutto è ok.
Quando tento di leggera da processing il led è sempro rosso (disconnesso)

Matteino:
Probabilmente non riesco a fare il pairing. Mi potresti indicare come procedi tu?
Io una volta installato il nuovo dispositivo bt, ho inserito il code "1234", e mi compare la seriale associato al dispositivo.
Il led di stato, quando mi connetto per esempio con putty, passa da rosso a verde e tutto è ok.
Quando tento di leggera da processing il led è sempro rosso (disconnesso)

ok il modo di fare il paring è corretto probablmente è il tuo programma che non instaura alcuna connessione se hai un terminle android puoi provare con blueterm purtroppo non ho qui il programma che ho svilyppato io :.

Infatti con blueterm tutto funziona perfettamente. E' con processsing che non si connette....

Rieccomi...
qualcuno è riuscito a comunicare tra Arduino e Processing via Bluetooth?
Riassumendo io riesco a leggere con blueterm e putty i dati inviati da Arduino via Bluetooth (led verde di connessine avvenuta), ma con Processing nulla.. (il led di statto sulmodulo bt rimane spento)
Ogni aiuto è ben accetto :slight_smile:

Ciao,
io ti confermo che con Processing si comporta come con qualsiasi altro sw, una volta effettuato il pairing.
Prova a specificare la porta.

E' strano, sembra non rilevare la porta BT.
Con "println(Serial.list()); " con Arduino e Bt scollegato e spento ottengo: [0] "COM8" [1] "COM10]
Con "println(Serial.list()); " con Arduino e Bt collegato e acceso ottengo: [0] "COM7" [1] "COM8] [2] "COM10]
COM7 è l'USB di arduino, mentre non mi rileva la COM9 del BT ...

Ciao

E' strano, sembra non rilevare la porta BT.
Con "println(Serial.list()); " con Arduino e Bt scollegato e spento ottengo:
"COM8" [1] "COM10]
Con "println(Serial.list()); " con Arduino e Bt collegato e acceso ottengo:
"COM7" [1] "COM8] [2] "COM10]
COM7 è l'USB di arduino, mentre non mi rileva la COM9 del BT ..

prova a specificarla, invece di

String portName = Serial.list()[2];

usa

String portName = "COM9";

Ciao Pitusso,
con la modifica che mi hai suggerito ci sono delle novità.
Quando lancio lo sketch il led verde di avvenuta connessione sul BT si accende per mezzo secondo, ma poi si disconnette e seul monitor seriale ottengo una serie di errori:

gnu.io.PortInUseException: Unknown Application
at gnu.io.CommPortIdentifier.open(CommPortIdentifier.java:354)
at processing.serial.Serial.(Unknown Source)
at processing.serial.Serial.(Unknown Source)
at sketch_jul30b.setup(sketch_jul30b.java:31)
at processing.core.PApplet.handleDraw(PApplet.java:1952)
at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:187)
at processing.core.PApplet.run(PApplet.java:1855)
at java.lang.Thread.run(Thread.java:662)
Exception in thread "Animation Thread" java.lang.RuntimeException: Error inside Serial.()
at processing.serial.Serial.errorMessage(Unknown Source)
at processing.serial.Serial.(Unknown Source)
at processing.serial.Serial.(Unknown Source)
at sketch_jul30b.setup(sketch_jul30b.java:31)
at processing.core.PApplet.handleDraw(PApplet.java:1952)
at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:187)
at processing.core.PApplet.run(PApplet.java:1855)
at java.lang.Thread.run(Thread.java:662)

e questo: Error inside Serial.0

Ciao

gnu.io.PortInUseException: Unknown Application

assicurati che la porta non sia in uso, il problema sembrerebbe essere quello.

La porta non sembrerebbe in uso.
Ho notato inoltre che non sempre quando lancio lo sketch ottengo il messaggio di errore che ti dicevo.
Nel senso che a volte sembra connettersi per mezzo secondo, ma poi salta e mi genere l'errore.
9 volte su 10 invece il BT sembra trasparente e non ottengo alcun errore, ma non prova nemmeno a connettersi.

Ciao pitusso, ho riprovato in tutti i modi ma sempre lo stesso errore.
Adesso stavo provando a programmare il modulo BT, ma anche qui ci sono problemi.
Sto utilizzando lo sketch incluso nella tua guida:
#include <SoftwareSerial.h> //IDE >= 1.0
//#include <NewSoftSerial.h> //IDE <= 0023
const int rxPin = 2;
const int txPin = 3;
const int atPin = 4;
SoftwareSerial bluetooth(rxPin, txPin); //IDE >= 1.0
//NewSoftSerial bluetooth(rxPin, txPin); //IDE <= 0023
void setup() {
Serial.begin(9600);
bluetooth.begin(9600);
pinMode(atPin, OUTPUT);
Serial.println("Seriali attive...");
digitalWrite(atPin, HIGH);
}
void loop() {
if (bluetooth.available()) {
Serial.write(bluetooth.read());
}
if (Serial.available()) {
bluetooth.write(Serial.read());
}
}

e le connessioni: Arduino - BT
2 - TX
3 - RX
4 - MODE
Il modulo BT è acceso e entra correttamente in modalità programmazione. Quando digito sul monitor seriale i comandi AT non ottengo alcuna risposta..
Qualche aiuto?
Grazie

Ciao

Il modulo BT è acceso e entra correttamente in modalità programmazione. Quando digito sul monitor seriale i comandi AT non ottengo alcuna risposta..

Hai messo una resistenza da 2k2 sul RX del modulo e il TX di Arduino?
La TTL del moduli lavora a 3v3, e rischi di danneggiarlo a connetterlo direttamente ad un TX di Arduino...

Hai impostato correttamente i fine linea?

Cmq anche cece99, che ha lo stesso modulo + breakout, accusava problemi analoghi.