BTM-222
Mit einem Bluetooth-Modul kann eine Schaltung einfach um virtuellen seriellen Port erweitert werden, über den dann drahtlos per Bluetooth Daten mit der Schaltung ausgetauscht werden können. Da heutzutage alle Computer, Laptops, Smartphones und Tablet-PCs etc. über eine integrierte oder nachrüstbare Bluetoothfunktion verfügen, kann so von diesen Geräten aus ein jedes Programm, welches über eine (virtuelle) serielle Schnittstelle kommunizieren kann, ohne weitere Modifikationen transparent auch mit der jeweiligen Schaltung Daten austauschen. Vor allem bei fehlender Unterstützung von USB oder Treiberproblemen bietet Bluetooth eine relativ günstige und flexible Alternative. Zudem entfällt eine kabelgebundene Verbindung und es sind Reichweiten bis zu 100 m möglich.
Bluetooth-Modul
Es gibt am Markt eine Reihe verschiedener Module, welche verschiedene Kriterien erfüllen, die je nach Anwendung relevant sein können, wie zum Beispiel:
- Klasse: Diese gibt die Leistung und Empfindlichkeit des Moduls an. Klasse 1 ermöglicht unter idealen Bedingungen eine Reichweite von bis zu 100 m.
- Datenrate: Wie schnell können Daten empfangen und gesendet werden.
- Profil: Daten zwischen Bluetooth Geräten werden durch so genannte Profile ausgetauscht, die für bestimmte Anwendungsbereiche festgelegt sind. Für Mikrocontrolleranwendungen dürfte vor allem SPP (Serial Port Profile: Serielle Datenübertragung) wichtig sein.
- Antenne: Ist diese integriert oder ist eine externe notwendig.
- Versorgungsspannung: Diese liegt bei allen gängigen Modellen bei ca. 3 V.
- Verfügbarkeit und Preis: Ist das Modul frei verfügbar und zu welchen Kosten?
BTM-220 bzw. BTM-222
Edit: abgekündigt zu Ende 2015. Sollte nicht mehr für neue Projekte eingesetzt werden! Aus der Vielzahl an Angeboten sticht vor allem das Modul BTM-220/BTM-222 der Firma Rayson hervor, da es bei kleinen Abmessungen leistungsfähig ist, relativ einfach in eigene Schaltungen integriert werden kann und zu einem relativ günstigen Preis frei verfügbar ist. Die wichtigen Parameter sind:
NAME | HERSTELLER | KLASSE | MAX REICHWEITE [m] | DATENRATE [kbps] | PROFILE | ANTENNE INTEGRIERT | Vss [V] | DATASHEET | PREIS [EUR] (zzgl. Versand) |
BTM-220/BTM-222 | Rayson | 1 | 100 | 921kBps | SPP | N | 3- 3,6 | Produktübersicht, Datenblatt (PDF) | ca. 10...11 (TME, CSD-Electronics) |
Funktionsüberblick
Das Modul befindet sich auf einer Platine mit den Abmessungen 28,2 x15,0 mm. Die gesamte Schaltung ist durch eine Metallhaube geschützt und abgeschirmt. Die Lötkontakte befinden sich an den beiden Längsseiten in Form von durchkontaktierten Halbkreisen. Mit einer feinen Lötspitze läßt sich das Modul auf SMD Pads auch von Hand auflöten. Eine Library des Moduls inkl. Device, Package und Modul ist für Eagle verfügbar [1].
Soll das Modul lediglich zur seriellen Datenübertragung zwischen einem Mikrocontroller und einem Empfänger genutzt werden, ist im Grunde keine externe Beschaltung notwendig und auch keine Konfiguration des Moduls erforderlich. Das Modul sendet transparent die Daten vom seriellen Eingang per Bluetooth weiter und leitet empfangene Daten an den seriellen Ausgang. Die serielle Schnittstelle ist mit den Standardeinstellungen 8N1 vorkonfiguriert:
- 19.200 bps Baudrate
- 8 Datenbits
- Keine Parität
- 1 Stopbit
Über Steuerbefehle, den sogenannten AT-Befehlen, kann das Verhalten des BTM-222 aber angepaßt werden. Zusätzlich bietet der BTM-222 auch neben der seriellen UART Schnittstelle noch SPI, USB und PCM. Es sollte vermieden werden, Daten per UART an den BTM-222 zu senden, wenn dieser keine Bluetoothverbindung besitzt, da es in diesem Fall zu Abstürzen des Moduls kommen kann.
Technische Daten
Das Handbuch weist große Lücken auf und ist ungenügend. Aus diesem Grund hier einige Ergänzungen.
Das Modul verfügt über frei programmierbare Ein- und Ausgänge. Wie diese programmiert werden können, ist nicht bekannt. Einige Ports sind bereits werksseitig vorbelegt. Die tatsächliche Belegung weicht aber teilweise vom Datenblatt ab:
PIO # | Pin | Funktion | ||||||||||||||
5 | 11 | (LED gegen Masse) signalisiert Austausch von Daten per Bluetooth | ||||||||||||||
6 | 12 | (LED gegen Masse) signalisiert bestehendes Pairing (Bluetoothkopplung) (Low = verbunden, High = getrennt) | ||||||||||||||
7 | 13 | (LED gegen Masse) signalisiert Status der Bluetoothkopplung
|
Elektronische Beschaltung
Der BTM-222 arbeitet in einem Spannungsbereich von 3,0 bis 3,6 V und eignet sich daher gut für den Einsatz in Schaltungen, die in diesem Spannungsbereich funktionieren. Bei 3,6V ist eine Schottky-Diode vor PVCC zu empfehlen.[2] Soll er an einen mit 5 V betriebenen Mikrocontroller angeschlossen werden, ist eine Separate Spannungsversorgung und eine Anpassung der seriellen Datensignale mit einem Pegelwandler notwendig.
Der BTM-222 verfügt über 10 frei programmierbare I/O-Pins, denen verschiedene Funktionen zugewiesen werden können. Die Werkskonfiguration sieht für PIO5 den Anschluß einer LED vor, die signalisiert, wenn Daten über das Modul ausgetauscht werden. Eine LED an PIO7 signalisiert durch blinken die Bereitschaft, eine Bluetoothverbindung aufzubauen und durch konstantes leuchten, daß das Modul mit einem anderen Bluetothmodul gekoppelt (verbunden) ist.
Da das Modul über keine integrierte Antenne verfügt, ist eine externe vorzusehen. Die Länge der Antenne kann einfach berechnet werden:
- [math]\displaystyle{ \lambda=\frac{c}{f} }[/math]
wobei c die Ausbreitungsgeschwindigkeit (in diesem Fall die Lichtgeschwindigkeit im Vakuum) und f die Frequenz der Welle ist (bei Bluetooth zwischen 2,402 und 2,480 GHz). Setzt man für
- [math]\displaystyle{ c \,=\, 29\,979\,245\,800\ \frac{\text{Zentimeter}}{\text{Sekunde}}\, }[/math]
und für
- [math]\displaystyle{ f \,=\, 2\,441\,000\,000\ {\text{Hertz}} }[/math]
erhält man
- [math]\displaystyle{ \lambda \,=\, 12,282\ {\text{cm}} }[/math]
Die Antenne kann aber kürzer ausfallen, so daß eine Antenne mit einem Viertel der Länge ausreicht:
- [math]\displaystyle{ {\text{l}} \,=\, \frac{\lambda}{4} \,=\, 3,07\ {\text{cm}} }[/math]
Die Antenne kann dabei sehr einfach in Form einer Leiterbahn auf einer gedruckten Schaltung ausgeführt sein. Bei der üblichen Kupferstärke von 35 µm hat sich eine Leiterbahn von 31 mm Länge und 1,78 mm Breite bestens bewährt, wobei auch schmalere Breiten bis hin zu ca. 0,4 mm umsetzbar sind [3].
Bluetooth einrichten
Auf dem Endgerät, also dem Gerät, welches Daten mit dem Bluetooth-Modul austauschen soll, muß sowohl ein Bluetoothadapter vorhanden, als auch eingerichtet sein. Wird dann eine Verbindung zum BTM-222 aufgebaut, richtet die Treibersoftware einen virtuellen COM-Port auf dem Gerät ein. Über diesen kann dann eine beliebige Anwendung Daten senden und empfangen.
Treiber
Die Treiber für den Bluetoothadapter sind auf dem Gerät gemäß der Anleitung vom Hersteller des Adapters einzurichten. Je nach Betriebssystem läuft dann die Einrichtung und der Verbindungsaufbau ein wenig abweichend ab. Die Bluetoothadapter richten aber stets einen Dienst oder ein Programm ein, mit dem nach anderen Bluetoothgeräten in der Nähe gesucht werden kann. Befindet sich eine Schaltung mit BTM-222 Modul in Reichweite, wird das Gerät als Serieller Adapter (Serial Adaptor) erkannt und eine Verbindung kann aufgebaut werden. Damit Bluetoothgeräte vor dem Zugriff von Unbefugten geschützt werden können, muß auf dem Endgerät ein Paßwort/Schlüssel angegeben werden, der dem BTM-222 signalisiert, daß es sich um einen autorisierten Zugriff handelt. Werksseitig lautet der Schlüssel 1234. Über die AT-Befehle des BTM-222 kann der Schlüssel aber auch geändert werden.
Einrichtung unter Linux
Hier eine kurze Anleitung für Linux:
- Gerät mithilfe der normalen Bluetooth funktionen binden.
- hcitool scan ausführen und die MAC merken
- /etc/bluetooth/rfcomm.conf Datei ggf. erzeugen.
- recomm.conf folgenden eintrag hinzufügen:
# RFCOMM configuration file.
rfcomm0 {
# Automatically bind the device at startup
bind yes;
# Bluetooth address of the device
device 00:12:6F:2B:B1:52;
# RFCOMM channel for the connection
channel 1;
# Description of the connection
comment "BTM";
}
Device muss natürlich angepasst werden.
- rfcomm connect 00:12:6F:2B:B1:52 in der Konsole ausführen.
- Nun kann mit einem normalen Terminal Programm auf die Serielle Schnittstelle zugegriffen werden. (/dev/rfcomm0 )
Kommunikationssoftware
Mit einem einfachen Terminalprogramm können Daten an das BTM-222 Modul gesendet werden und empfangene Daten werden angezeigt. Bei einem virtuellen COM-Port hat die Baudrateneinstellung keine Bedeutung, so daß eine Baudrate von beispielsweise 19.200 bps und 8N1 als Übertragungsparameter gewählt werden können.
Beispielapplikation
Die gezeigte Schaltung beschränkt sich auf die minimal notwendige Auswahl an Bauelementen, um einen ATmega328 Mikrocontroller bei 3,3 V zu betreiben und dessen serielle Schnittstelle mit einem BTM-222 zu verbinden, so daß über die Schnittstelle Daten gesendet und empfangen werden können. Da die Schaltung mit 3,3 V arbeitet (welche aus einem Linearregler erzeugt wird), ist keine Anpassung der Signale zwischen Mikrocontroller und BTM-222 erforderlich. LED1 signalisiert die Betriebsbereitschaft der Schaltung, LED2 signalisiert den Status der Bluetoothverbindung und LED3 blinkt, wenn Daten in eine beliebige Richtung übertragen werden.
Funktionsweise
Da der BTM-222 bereits ab Werk so eingestellt ist, daß Daten an seinem UART Eingang per Bluetooth gesendet und per Bluetooth empfangene Daten am UART Ausgang ausgegeben werden, ist keinerlei Konfiguration seitens der Firmware auf dem ATmega notwendig. Die Software im Mikrocontroller braucht lediglich eine UART Schnittstelle zu öffnen und darüber Daten mit den oben genannten Parametern zu senden und zu empfangen. Der BTM-222 kümmert sich autark um die Bluetoothübertragung. Wie die UART Kommunikation im Mikrocontroller umgesetzt werden kann, ist u. a. im AVR-Tutorial und im AVR-GCC-Tutorial beschrieben.
Aufbau
Die exemplarisch gestaltete Platine ist durchgängig in SMD Bauweise bestückt. Sie ist nicht hinsichtlich des Platzes und der Bauteilanordnung optimiert, sondern mehr unter dem Gesichtspunkt der funktionellen Gruppierung der Bauteile zum besseren Verständnis. Besonderes Merkmal ist die als Leiterbahn ausgeführte Antenne. Weiterhin wurden nicht alle am BTM-222 vorhandenen Masseanschlüsse beschaltet, sondern lediglich die beiden an Pin 18 und 19. Da an Pin 19 auch das Metallgehäuse des Moduls angelötet ist, ist somit eine ausreichende Masseverbindung für das Modul gewährleistet. Da auf der Unterseite des BTM-222 blanke Leiterbahnen existieren, ist darauf zu achten, daß Leiterbahnen, die unterhalb des Moduls verlegt sind, gegen das Modul hin isoliert sind (z. B. Lötstoplack).
Downloads
- Schaltplan und Platinenlayout im EAGLE Format
- Smartphone Anwendung für Android
- Android App mit Accelerometer und Sprachsteuerung
Einzelnachweise
- ↑ Microcontroller.net. Eagle Library für Bluetoothmodul BTM-222
- ↑ Microcontroller.net: BTM-222 am Launchpad mit 3,6V
- ↑ Microcontroller.net. BTM 222 Antenne als Leiterbahn auf Platine