Telemetrie mit dem BlauenZahn (Bluetooth) >>Beta<<

posted by: Claudio Hediger

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 das bluetooth viel zu kompliziert für die eigene Anwendung ist, der wird sich nach dem Lesen dieses Artikels gleich eines kaufen :)

Zuerst ein mal 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 gross. Um den verlust von Daten durch Sörungen zu minimieren, wir 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.

Bluetooth Geräte werden je nach ihrer Sendeleistung in verschiedene Klassen eingeteilt.

Klasse Reichweite Leistung dBm Leistung mW
Klasse 3 1m im Freien 0dBm 1mW
Klasse 2 10m im Freien 4dBm 2.5mW
Klasse 1 100m im Freien 20dBm 10mW

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 Recihweite gnügt für die meisten Anwendungen komplett.

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ügbarer 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 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 Profil 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 Terminal Programm 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... das 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 8Mbit Flash Speicher auf dem kleinen Board für die Firmware.

Die vielen Anschlusspads führen zu den Benutzerdefinierten IO's 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. Mann 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 hat 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, das 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 das es anscheinen derzeit 2 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 das Dump nicht mehr länger anbieten!

Dieses Image beinhaltet die Software für Module mit erweiterten AT Befehlen also auch Verbindungen von BluetoothModul zu BluetoothModul sind möglich.

Diese Seite befindet sich noch im Aufbau... ergänzungen folgen :)