programmazione Arduino e bluetooth

ciao a tutti .

vi volevo chiedere un po di informazione e aiuto .
vorrei comandare il mio arduino attraverso bluetooth per fare salire e scendere la mia tapparella della mia casa, non so come devo scrivere il sw , sono riuscito a farlo diventare slave.
solo che non so come riesco a programmarlo .
mi potete dare una mano gentilmente.

il bluetooth instaura una seriale quindi con un serial read di uno specifico carattere o numero inviato da un altro terminale seriale bluetooth ad esempio uno smartphone puoi inviare dei comandi. cerca bluetooth nella sezione forum italiana vedi basta fare search poi advanced togli il check all e metti solo italiano come board vedi ceh trovi un topic con un app android e uno sketch già configurato per la ricezione dei comandi.

Madwriter:
il bluetooth instaura una seriale quindi con un serial read di uno specifico carattere o numero inviato da un altro terminale seriale bluetooth ad esempio uno smartphone puoi inviare dei comandi. cerca bluetooth nella sezione forum italiana vedi basta fare search poi advanced togli il check all e metti solo italiano come board vedi ceh trovi un topic con un app android e uno sketch già configurato per la ricezione dei comandi.

grazie per la riposta.
il mio problema che non so come si fa a creare una connessione seriale con bt..
ho cercato su sito solo che ho trovato questi , solo che non riesco a capire molto bene:

non è spiegato bene sulaa configurazione:
http://arduino.cc/forum/index.php/topic,73386.0.html
http://arduino.cc/forum/index.php/topic,72637.0.html

su megatiopic c'è il post sui modulini bluetooth cerca lì dovresti trovare tutto quello che ti serve

ale92:
su megatiopic c'è il post sui modulini bluetooth cerca lì dovresti trovare tutto quello che ti serve

grazie

ciao ragazzi

ho provato di
allora ho caricato questo programma in arduino:

#include <SoftwareSerial.h>     //IDE >= 1.0
//#include <NewSoftSerial.h>    //IDE <= 0023

const int rxPin = 2;
const int txPin = 3;
const int ledPin = 13;
byte btval = 0;

SoftwareSerial bluetooth(rxPin, txPin);  //IDE >= 1.0
//NewSoftSerial bluetooth(rxPin, txPin);   //IDE <= 0023

void setup() {
  
  Serial.begin(9600);
  bluetooth.begin(9600);

  pinMode(ledPin,OUTPUT);
}

  
void loop() {

  if (bluetooth.available()) {  
    btval = bluetooth.read();
    if (btval == 1) {
       digitalWrite(ledPin, HIGH);
    } else {
        digitalWrite(ledPin, LOW);
    }
  }
}

poi ho scollegato il cavo di usb di arduino e ho alimentato esternamente , e dopo ho collegato la mia chiavetta bt sul pc, e poi ho aperto serialmonitor e ho iniziato digitare (1) per attivare il led, solo che mi da questo errori che ti ho scritto sotto, cosa sono???

javascript:void(0);

java.io.IOException: No error in nativeDrain
at gnu.io.RXTXPort.nativeDrain(Native Method)
at gnu.io.RXTXPort$SerialOutputStream.flush(RXTXPort.java:1201)
at processing.app.Serial.write(Serial.java:470)
at processing.app.Serial.write(Serial.java:492)
at processing.app.SerialMonitor.send(SerialMonitor.java:197)
at processing.app.SerialMonitor.access$100(SerialMonitor.java:31)
at processing.app.SerialMonitor$3.actionPerformed(SerialMonitor.java:86)
at javax.swing.JTextField.fireActionPerformed(JTextField.java:492)
at javax.swing.JTextField.postActionEvent(JTextField.java:705)
at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:820)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1636)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2851)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2886)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2814)
at java.awt.Component.processEvent(Component.java:6040)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:704)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:969)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:841)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:668)
at java.awt.Component.dispatchEventImpl(Component.java:4502)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
java.io.IOException: No error in nativeDrain
at gnu.io.RXTXPort.nativeDrain(Native Method)
at gnu.io.RXTXPort$SerialOutputStream.flush(RXTXPort.java:1201)
at processing.app.Serial.write(Serial.java:470)
at processing.app.Serial.write(Serial.java:492)
at processing.app.SerialMonitor.send(SerialMonitor.java:197)
at processing.app.SerialMonitor.access$100(SerialMonitor.java:31)
at processing.app.SerialMonitor$3.actionPerformed(SerialMonitor.java:86)
at javax.swing.JTextField.fireActionPerformed(JTextField.java:492)
at javax.swing.JTextField.postActionEvent(JTextField.java:705)
at javax.swing.JTextField$NotifyAction.actionPerformed(JTextField.java:820)
at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1636)
at javax.swing.JComponent.processKeyBinding(JComponent.java:2851)
at javax.swing.JComponent.processKeyBindings(JComponent.java:2886)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2814)
at java.awt.Component.processEvent(Component.java:6040)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4630)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:704)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:969)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:841)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:668)
at java.awt.Component.dispatchEventImpl(Component.java:4502)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4460)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

ciao ragazzi
vi volevo chiedere gentilmente se qualcuno mi riesce a dare una mano ,ho letto tutti manuali , ho trovato tutti esempi ma non riesco a comandare il mio arduino attraverso BT del pc.
mi potete dare una mano per favore .

grazie

e' un casino perche' entra in gioco il driver bluetooth del sistemas operativo, il quale si comporta diversamente in base allo stack bt usato.
io ci sto' sbattendo la testa da una settimana al fine di avere le idee chiare almeno sugli stack piu' usati che sarebbero il Microsoft preinstallato, il toshiba e il Broadcom (sempre se tu stai parlando di windows)

altro rpoblema e' proprio la dll che gestisce la connessione seriale, la RXTXSerial, che viene citata nel tuo log.

Io non posso che ridasrti il consiglio gia' datoti, la soluzione e' nel topic sui moduli bluetooth di Pitusso, che trovi nella sezione megatopic. Li' ci sono anche miei interventi in merito a questi problemi ed una nuova dll

ascolta, se stai usando bluesoleil, appena ti colleghi al modulino in alto a destra esce una scritta che ti indica in che seriale virtuale è collegato il modulino, prima di connetterti col serial monitor, devi ricordarti di impostare su tools-->serial port, la seriale virtuale del tuo modulino, dopo puoi cominciare a giocare.
Come sketch te ne basta uno qualsiasi che permetta di accendere un led usando la seriale, hardware oppure software. Se usa laseriale hardware devi ricordarti, però che devi alimentare arduino da fonte esterna e non via usb.
Ciaooo

cece99:
ascolta, se stai usando bluesoleil, appena ti colleghi al modulino in alto a destra esce una scritta che ti indica in che seriale virtuale è collegato il modulino, prima di connetterti col serial monitor, devi ricordarti di impostare su tools-->serial port, la seriale virtuale del tuo modulino, dopo puoi cominciare a giocare.
Come sketch te ne basta uno qualsiasi che permetta di accendere un led usando la seriale, hardware oppure software. Se usa laseriale hardware devi ricordarti, però che devi alimentare arduino da fonte esterna e non via usb.
Ciaooo

grazie mille per tutti aiuti .
@ grazie testato
@ cece99
ho trovato questo sito e sto facendo come dice questo :

solo che non uso piu blusolier, ho usato Tera term, i 2 blutooth riescono a comunicare , solo che quando carico in arduino questo codice:

#include <SoftwareSerial.h>     //IDE >= 1.0
//#include <NewSoftSerial.h>    //IDE <= 0023

const int rxPin = 2;
const int txPin = 3;
const int ledPin = 13;

SoftwareSerial bluetooth(rxPin, txPin);  //IDE >= 1.0
//NewSoftSerial bluetooth(rxPin, txPin);   //IDE <= 0023

void setup() {
  
  Serial.begin(9600);
  bluetooth.begin(9600);

  pinMode(ledPin,OUTPUT);
}

  
void loop() {

  if (bluetooth.available()>0) {  
     if (bluetooth.read() == '1') {
       digitalWrite(ledPin, HIGH);
    } else {
        digitalWrite(ledPin, LOW);
    }
  }
}

dopo non riescono piu comunicare , cioè non mi conosce piu il COM del blutooth del arduino , e non si comunicano piu .
non lo so perchè .

io non rispondo piu', visto che non potrei che fare copia e incolla mille volte del mio precedente consiglio.
studia il topic di pitusso, studia il topic di pitusso, studia il topic di pitusso, ecc ecc

dopodiche' scrivi direttamnte su quel topic i tuoi dubbi

Testato:
io non rispondo piu', visto che non potrei che fare copia e incolla mille volte del mio precedente consiglio.
studia il topic di pitusso, studia il topic di pitusso, studia il topic di pitusso, ecc ecc

dopodiche' scrivi direttamnte su quel topic i tuoi dubbi

io sinceramente ho studiato topic di pitusso , tutti 3 pdf che ci sono , non lo so dove devo trovare il mio problema su pdf di pitusso , se gentilmente mi dici quallle parte devo studiare di piu , lo studio di piu .

grazie

scusatemi sono un po confuso

il topic, con tutti gli interventi e le spiegazioni, sono parecchie pagine

Testato:
il topic, con tutti gli interventi e le spiegazioni, sono parecchie pagine

ok grazie per il consiglio .
solo che avevo una domanda. io quando mi connetto a mio modulino mi da 2 COM (COM13 , COM 14), quale di questi devo scrivere sul PUTTY?
mi riesci a darmi un consiglio gentilmente.
grazie

la ripsosta e' sempre li', nei miei interventi c'e' scritto quale usare, non e' che non te lo voglio dire, ma la domanda cosi' come e' posta non ha risposta, nessuno potra'0 dirti se usare la com13 o com14. se usi stack micosoft devi saure quella chiamata IN USCITA, ma cmq ti imbatti nel problema della rstxserial, quindi.... leggi il topic :slight_smile:

Testato:
la ripsosta e' sempre li', nei miei interventi c'e' scritto quale usare, non e' che non te lo voglio dire, ma la domanda cosi' come e' posta non ha risposta, nessuno potra'0 dirti se usare la com13 o com14. se usi stack micosoft devi saure quella chiamata IN USCITA, ma cmq ti imbatti nel problema della rstxserial, quindi.... leggi il topic :slight_smile:

:drooling_face:

Grazie per il consiglio, ok mi metto a leggere tutto Topic spero che ci salto fuori :drooling_face: