Bluetooth Telemetrie

Projektdatum: 12.07.2010 Viele von euch wollten bestimmt scho einmal Daten von einem Mikrocontroller zu einem anderen senden ohne Leitungen verlegen zu müssen. Oder vielleicht auch von einem Mikrocontroller zu einem Computer oder Mobiltelefon. Dazu ist Bluetooth genau das richtige Mittel. Wer jetzt denkt dass Bluetooth viel zu kompliziert für die eigene Anwendung ist, der wird sich nach dem Lesen dieses Artikels feststellen, dass dies nicht immer sein muss und wird sich womöglich gleich ein eigenes Modul kaufen 🙂

Zuerst etwas Theorie

Bluetooth verwendet ein ISM Band. Dieses hat eine Bandbreite von 2,402 GHz bis 2,480 GHz. Geräte welche eine Frequenz nutzen welche innerhalb des ISM Bandes liegt, dürfen Weltweit lizenzfrei betrieben werden. Da dieses Frequenzband bereits von vielen anderen Geräten benutzt wird, ist die Störanfälligkeit grundsätzlich ziemlich hoch. Um den Verlust von Daten durch Sörungen zu minimieren, wird die Frequenz welche zum Senden bzw. Empfangen benutzt wird sehr häufig gewechselt. Dieses Verfahren nennt man Frequenzhopping. Je nach Protokoll, kann der Wechsel bei einem Bluetoothgerät bis zu 1600 Mal pro Sekunde erfolgen. Die verfügbare Bandbreite wird dabei auf 79 einzelne Frequenzen aufgeteilt. Somit ergibt sich ein Abstand von je 1MHz zwischen den einzelnen Frequenzen. Das bedeutet, dass die Bandbreite eines Kanals bei 1 MHz liegt. Bluetooth Geräte werden aufgrund ihrer Sendeleistung in verschiedene Klassen eingeteilt.
Klasse Reichweite Leistung dBm Leistung mW
Klasse 3 1m im Freien 0 dBm 1 mW
Klasse 2 10m im Freien 4 dBm 2.5 mW
Klasse 1 100m im Freien 20 dBm 10 mW
Quelle: Wikipedia Bei meinem verwendeten Bluetooth-Modul handelt es sich um eines der Klasse 2. Somit hat es eine durchschnittliche Reichweite von etwa 10m. Diese Reichweite gnügt für die meisten Anwendungen völlig. Ein weiterer wichtiger Punkt nebst der Klasse, sind die vom Bluetooth-Modul unterstützen Profile. Profile werden für den Datenaustausch zwischen verschiedenen Bluetooth-Geräten benutzt. Dabei gibt es für jeden Anwendungsbereich ein dazu passendes Profil. Eine Liste aller derzeit verfügbaren Profile findet man bei Wikipedia Mein hier vorgestelltes Bluetooth-Modul bietet lediglich ein einziges Profil. Dieses genügt jedoch für praktisch alle Anwendungen. Das unterstütze Profil ist das sogenannte SPP, was so viel wie “Serial Port Profile” bedeutet. Dies ist eine drahtlose serielle Schnitstelle. Fügt man bei einem Computer ein Bluetooth Gerät mit SPP hinzu, so erscheint im Gerätemanager ein neuer COM-Port. Dieser ist dem ausgewählten Bluetooth-Gerät zugeordnet. Wenn man nun mit einem Terminalprogramm wie beispielsweise hTerm eine serielle Verbindung zum neu erstellten Com-Port aufbaut, so verbindet sich der Computer mittels Bluetooth zum entsprechenden Bluetooth-Gerät welches das SPP anbietet. Alle Daten (Zeichen) welche nun durch das Terminalprogramm eingegeben werden gehen durch die Luft zum empfangenden Gerät und stehen dort wieder seriell zur verfügung.

Das Bluetooth-Modul

Kommen wir nun also zum entscheidenden Teil… dem Bluetooth-Modul 🙂 Das Bluetooth-Modul ist wirklich äussert klein. Die Abmessungen betragen gerade mal 26.9mm x 13mm Die Dicke beträgt 2.2mm. Mit diesen Daten findet das kleine Teil wohl in fast jeder Anwendung noch einen Platz 🙂 Verwendet wird ein Chip von CSR. Genauer gesagt ein BC417143. Zusätzlich befindet sich noch ein 8-MBit Flash-Speicher auf dem kleinen Board für die Firmware. Die vielen Anschlusspads führen zu den benutzerdefinierten IOs des CSR Chips. Diese können durch eine eigene Firmware nutzbar gemacht werden. Wie man seine eigene Firmware für das Teil schreibt möchte ich hier nich näher erwähnen. Falls es jemanden interessiert, soll er sich mal das BlueLab von CSR genauer anschauen. Diese Software ist jedoch nicht frei verfügbar… Man wird jedoch auf bestimmten Seiten fündig 😉 besonders dann, wenn man Google bemüht… Die Module gibt es inzwischen in verschiedenen Shops zu kaufen. Man sollte vor dem Kauf jedoch genau abchecken, was das entsprechende Modul kann und was nicht! Ich selbst bin nämlich reingefallen. Aber woher hätte ich das auch wissen können. Es existieren mehrere verschiedene Versionen dieser Module. Selbst wenn diese optisch absolut identisch sind, so ist es die Firmware eventuell nicht. Genau dies ist das Problem bei einigen Modulen. Denn erst durch die Firmware bekommt das Modul seine Fähigkeiten. Ich Ziele hier auf die Fähigkeit, ob es AT-Befehle versteht oder nicht. Bei einigen Modulen muss man zum senden von AT-Befehlen einen bestimmten Anschluss auf high bzw. low ziehen. Meistens ist der PIO11. Ich hab jedoch festgestellt, dass selbst bei einem entsprechend gekennzeichneten Modul (Beschreibung des Verkäufers) diese Funktionalität nicht vorhanden gewesen ist. Ohne AT-Befehle ist es z.B. nicht ohne grössere Umwege möglich, den PIN-Code zu ändern. Es ist zudem nicht möglich, dem Modul mitzuteilen mit was es sich verbinden soll. Somit ist es nicht möglich, eine Verbindung von Modul zu Modul aufzubauen. Genau dies wollen wir jedoch tun, wenn wir z.B. Daten zwischen Mikrocontroller austauschen wollen. Bei meinen Recherchen habe ich herausgefunden, dass es anscheinend derzeit zwei verschiedene Hardware-Versionen gibt. Die rot markierte ist nach meinen Angaben die neuere und somit die vozuziehende Version. Die Version rechts ist somit die alte Version. Diese habe ich leider als erstes eingekauft. Der rot markierte Bereich ist beim neuen Modul markant unterschiedlich!

Technische Daten

Kommen wir nun zu den Technischen Daten der winzlinge.
Eigenschaft Beschreibung
Klasse 3 1m im Freien

Stromversorgung

Beide Versionen benötigen als Stromversorgung 3.3V. Diese erzeugt man am besten mit entsprechenden Linearreglern wie z.B. einem LT1117-3.3. Diese bekommt man äusserst günstig auf ebay. 50Stk für gut 8$ inkl. Free Shipping

Der LT1117-3.3 liefert maximal 1A was mehr als ausreichend ist.

Programmer für den LPT Port

Quelle: http://forum.sparkfun.com/viewtopic.php?t=16425 Die dazu passende Software ist die CSR BlueSuite Darin befindet sich ein Tool namens BlueFlash. Damit lassen sich die Bluetooth-Module problemlos neu Programmieren. Ein komplettes Image eines Bluetooth-Moduls findet ihr hier: Version 1.0 Aus rechtlichen Gründen kann ich den Dump leider nicht mehr länger anbieten! Dieses Image beinhaltet die Software für Module mit erweiterten AT-Befehlen. Also auch Verbindungen von Bluetooth-Modul zu Bluetooth-Modul sind damit möglich.

More projects