Frage

Wie kann die DF-Roboter Bluetooth-Modul mit dem Arduino verbunden werden, so dass das Arduino kann mit ihr kommunizieren.

Ich benutzen dieses Tutorial .

ich es geschafft, das Licht blinkt auf dem Modul zu bekommen und es scheint Paar fein zu können, aber wenn ich den seriellen Monitor laufen und einen Brief (sagen wir ‚H‘) senden, die ein Licht auf drehe ich sollte eine Java bekommen Fehler:

java.io.IOException: Bad file descriptor 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:128)
at processing.app.SerialMonitor.access$100(SerialMonitor.java:29)
at processing.app.SerialMonitor$4.actionPerformed(SerialMonitor.java:82)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

überprüfte ich die Verdrahtung und ich habe die RXD an den RX gehen (Pin 0) auf dem Brett und TXD zu TX (Pin 1) und den Rest verdrahtet, aber auch hier noch kein Glück. Was könnte die Angelegenheit sein?

Dies ist der Code, den ich auf dem Arduino haben:

int ledpin = 13;
char val;
void setup() {
    pinMode(ledpin, OUTPUT); // pin 48 (on-board LED) as OUTPUT
    Serial.begin(9600); // start serial communication at 9600bps
}

void loop() {
    if( Serial.available() ) { // if data is available to read
        val = Serial.read(); // read it and store it in 'val'
    }

    if( val == 'H' ) { // if 'H' was received
        digitalWrite(ledpin, HIGH); // turn ON the LED
    } else {
        digitalWrite(ledpin, LOW); // otherwise turn it OFF
    }

    delay(100); // wait 100ms for next reading
}
War es hilfreich?

Lösung

Es ist möglich, dass eine zweifelhafte Stromversorgung des Arduino / Bluetooth-Modul diesen Fehler verursachen könnte (dh es zu dem Fehler berichtet in das Arduino Forum Thema ).

Andere Tipps

Versuchen Sie, Ihre RXTX Bibliothek auf die neueste Version zu aktualisieren. IIRC die Arduino IDE ist mit einer Version davon gebündelt.

Dies ist eine lange gedreht, aber ...

Das Beispiel in der verknüpften Tutorial verwendet eine Baudrate von 115200 (anstelle der im Beispiel verwendeten 9600) und sagt:

  

Überprüfen Sie die Serieneinstellung! Versicher dich   Die Baud-Rate wird auf 115200 auf beide gesetzt   Master und Slave.

Es könnte, dass entweder:

  • Das funktioniert nur mit einer Baudrate von 115200 (was unwahrscheinlich scheint) oder möglicherweise
  • Die Baudrate auf dem Master und Slave ist nicht 9600

Sie sollten die Rx von dem Bluetooth-Modul an die Tx auf der Arduino-Board und umgekehrt verbinden. Oder hast du so schon? Hängen Sie sich auf einer 12 V-Adapter Stromversorgung sicher sein die Leistung ist nicht das Problem. (Eine mit 500 mA sollte in Ordnung sein.)

Ich sehe zwei mögliche Probleme.

Erstes mögliches Problem:

Sie haben es verdrahtet falsch oder haben Sie Ihre Verdrahtung falsch beschrieben. Normalerweise verbinden Sie den RX aus dem BT-Modul mit dem TX auf dem Arduino und den TX auf der BT an den RX auf dem Arduino.

Zweites mögliches Problem:

Sie können nicht mit dem Bluetooth-Modul anschließen und dann den eingebauten seriellen Monitor App über die serielle Schnittstelle auf dem Arduino zu überwachen. Ich bin nicht sicher, ob Ihre Hardware, aber in der Regel können Sie nicht haben sie beide verbunden, da sie die gleiche serielle Schnittstelle sind.

Ziehen Sie das Arduino vom PC. Schalten Sie die Arduino aus einer anderen Quelle. Schließen Sie den PC an das BT-Modul. Führen Sie Ihren fav TTY-App auf dem PC (tera Begriff ist schön) und eine Verbindung mit dem BT-Modul COM-Port und geben Sie 'H'.

Lassen Sie mich wissen, was Sie bekommen!

Ich habe über die serielle Schnittstelle der Kommunikation vom PC zum GSM-Modem bei der Einrichtung der Lösung Ihrer Probleme hat. Ich wurde zum ersten Mal mit java.comm auf Vista arbeiten und es war unmöglich. Später wechselte ich zu RXTXcomm und es war viel zuverlässiger. Verwenden Sie es stattdessen.

Ich bin mit einem Bluetooth-Mate-Silber mit meinem Arduino und der folgende Link ist das, was ich verwenden, um die Bluetooth-Kommunikation zu verwalten.

http://rxtx.qbang.org/wiki/index.php/Two_way_communcation_with_the_serial_port

Ich hatte die RXTX Bibliothek zu importieren, von hier:

http://rxtx.qbang.org/wiki/index.php/Two_way_communcation_with_the_serial_port

Auch wie andere Benutzer angegeben haben, verwenden Sie eine Baudrate von 115200, und schließen Sie das

Bluetooth-RX-Leitung -> Arduino-TX-Leitung und

Bluetooth-TX-Leitung -> Arduino-RX-Leitung

Die erste Verbindung war ein großer Durchbruch für mich. Hoffe, es hilft dir.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top