BTM-222 in geöffnetem Zustand

Startseite

Bluetooth Modul BTM-222

In Zusammenhang mit meinem NIBObee Roboter habe ich das Bluetooth Modul BTM-222 gefunden, welches ich nun benutze, um den Roboter mit meinem Notebook fern zu steuern.

Das Modul hat einen seriellen Port. Wenn es drahtlos mit dem PC verbunden ist, spricht man es von dort aus über einen virtuellen seriellen Port an. Die Daten werden nach dem Verbindungsaufbau transparent übertragen. Man kann das Modul daher wie ein serielles Verlängerungskabel verwenden, nur eben drahtlos.

Ich verwende zum Testen das Programm Hammer Terminal und die Bluetooth SPP App für Android. Außerdem dürfen Sie gerne von meinem Programmierbeispiel für Android abgucken.

Standardmäßig arbeitet es im Slave-Modus, so daß der Verbindungsaufbau vom PC aus initiiert wird. Die Bitrate ist auf 19200,N,8,1 Baud eingestellt und das Passwort für den Verbindungsaufbau lautet "1234".

Man schließt nur wenige Pins an:

An Pin 13 kann man eine LED zur Statusanzeige anschließen. Sie blinkt, wenn das Modul nicht verbunden ist. Bei Verbindung liegt der Pin auf High.

Um das Modul an einen Mikrocontroller mit 5V Spannungsversorgung anzuschließen, brauchen Sie einen Spannungsregler (z.B. LP2950-3.3 oder LF33CV) und ein paar Kleinteile:

Schaltplan

Der 2,2µF Kondensator kann entfallen, wenn der Spannungsregler ganz nahe zum Modul platziert wird.

Im Datenblatt des BTM222 werden zahlreiche spannende Features genannt, wie programmierbare I/O Pins, USB Interface, Voice Funktionen, etc. All diese Funktionen werden von der gewöhnlichen "SPP" Firmware aber nicht unterstützt.

Die wichtigsten Befehle, sie gehen nur am (echten) seriellen Port:

Auf dem (echten) seriellen Port erscheint die Meldung CONNECT  '001D-D9-F71C7E', wenn eine Funkverbindung aufgebaut wurde, und es erscheint die Meldung DISCONNECT  '001D-D9-F71C7E', wenn die Funkverbindung getrennt wurde. Außerdem erscheinen in nicht-verbundenem Zustand ab und zu Statusmeldungen, wie AT+GCAP. Wenn Sie für den angeschlossenen Mikrocontroller eine Firmware schreiben, könnte es nützlich sein, zu wissen, daß diese Meldungen niemals Kleinbuchstaben enthalten.

Wenn Du mehrere Befehle nacheinander an das Modul sendest, musst Du ihm nach jedem einzelnen Befehl genug Zeit geben, den Befehl auszuführen. Das Modul kann den nächsten Befehl erst empfangen, wenn der vorherige Befehl abgearbeitet wurde.

Um das Modul mit einem Java Programm unter Linux oder Windows anzusprechen, benötigst du die RxTxComm Library. Android Geräte unterstützen die Bluetooth Verbindung von Hause aus, Apples iOS Geräte leider gar nicht (Stand Dezember 2015).

Verwendung unter Windows

Diese Anleitung habe ich mit Windows Vista ausprobiert.

Stromversorgung einschalten, auf das Bluetooth Symbol in der Startleiste klicken. Man muss das Passwort des Moduls eingeben und es wird ein virtueller Serieller Port installiert.

Danach kann man die Verbindung benutzen, z.B. mit einem Terminal Programm. Windows baut die Funkverbindung erst auf, wenn der virtuelle serielle Port geöffnet wird, und die Verbindung wird beim Schließen des seriellen Portes wieder getrennt.

Falls das Modul zwar gefunden wird, aber beim Öffnen des virtuellen seriellen Port immer eine Fehlermeldung erscheint, versuche einen anderen Bluetooth Treiber. Bei mir funktionierte es mit dem Treiber aus Windows Vista nicht, wohl aber mit dem Treiber von Widcomm, den ich auf der Support-Seite meines Notebook-Herstellers downloaden konnte.

Verwendung unter Linux

Diese Anleitung habe ich mit Bluez Version 4.6 unter Ubuntu 10.04 getestet.

Stromversorgung einschalten, dann mit dem Befehl hcitool scan Die Hardware-Adresse des Moduls herausfinden. In meinem Falls erscheint "00:12:6F:08:98:90".

Diese Adresse trägt man in /etc/bluetooth/rfcomm.conf ein:

rfcomm0 {
    bind yes;
    device 00:12:6F:08:98:90;
    channel 1;
    comment "BTM-222";
}

Wenn das Modul beim Booten des Rechner erreichbar ist, wird automatisch ein virtuelles serielles Gerät mit dem Namen /dev/rfcomm0 erstellt. Ansonsten kann man das auch manuell auslösen, mit dem Befehl:

sudo rfcomm bind 0

Beim ersten mal erscheint ein Pop-Up Fenster, in dem man das Passwort des Moduls eingeben muss.

Die Funk-Verbindung wird erst aufgebaut, wenn der serielle Port geöffnet wird. Beim Schließen wird die Funk-Verbindung wieder abgebaut.