Hallo
über das Herzfrequenz messen gibts ja einige Beiträge. Ich möchte
eventuell einen POLAR Wearlink Bluetooth Brustgurt an einen Atmega mit
GPS-Modul anschließen. Ich habe da das BCA8-BTM-328 Modul.
In einigen Foren wurde aber auch diskutiert, dass das Protokoll von dem
Gurt nicht verfügbar wäre. Ein Beitrag behauptet aber, dass das
Protokoll "simpel" wäre.
Von einigen PDA Tools wird der Gurt unterstützt (nur mit
Lizenzgebühren?).
Meine Frage ist nun, hat jemand diesen Gurt schon mal an einen Atmega
mit Bluetooth angeschlossen und kann was über das Protokoll sagen?
Leider habe ich nicht wirklich was darüber gefunden. Auf verdacht den
Gurt zu kaufen, dafür ist der zu teuer.
MfG
Achim
Ps.: Ich weiß, es gibt auch den Zephyr. Der ist aber noch teuerer aber
das Protokoll ist wohl verfügbar. Hat aber ne andere Ladetechnik.
Hallo,
ich glaube nicht, dass das WearLink Protokoll irgendwo verfügbar ist.
Ich würde einen Brustgurt mit ANT+ einsetzen.
Da gibt es z.Bsp. von Sparkfun ein fertiges Modul dazu.
http://www.sparkfun.com/products/8565
Hallo
@Christoph das ANT+ Protokoll mag gut sein, aber die Standard
Brustgürtel können das nicht. Auch ist der Anschluss an
Standardprogramme nicht vorhanden. Was nützt mir da der erwähnte Modul
um einen solchen Gurt anzusprechen? Oder habe ich da was nicht
verstanden.
Es gibt schon ein Java Source Programm für den Polargurt ==>
http://www.neuroupdate.com/polarbt/ aber ob das funzt weiß ich nicht.
Ich schwanke eben zwischen dem Polar und dem Zephyr.
Außer den Standard-Tools möchte ich da einen "eigenen" Empfangsmodul
(software) stricken deshalb die Frage.
Hallo,
In dem von dir angegebenen Programm
(http://www.neuroupdate.com/polarbt/), das übrigens nicht mit Java
sondern C# programmiert wurde, werden die Daten über eine serielle
Schnittstelle gelesen. Entweder geschieht dies direkt über Bluetooth SPP
oder es hängt noch irgendein Adapter am PC der über die serielle
Schnittstelle gesteuert wird.
Wenn das direkt über Bluetooth geht, dann ist das auch mit einem ATmega
und einem Bluetooth Modul mit SPP leicht möglich.
MfG Christoph
Hallo
>>Wenn das direkt über Bluetooth geht, dann ist das auch mit einem ATmega>>und einem Bluetooth Modul mit SPP leicht möglich.
..das ist schon klar, deshalb die Eingangsfrage nach dem Protokoll. Das
mit dem Java hatte ich mit einem entsprechenden Zephyr (HxM) Projekt
verwechselt.
Ich habe ja das Programm übersetzt, kann das aber nicht testen mangels
Gurt.
Hi,
das ist jetzt frei aus dem Gedaechtnis, aber im Prinzip ist es wirklich
ganz einfach. Einfach eine RFCOMM Verbindung aufbauen zum Gurt.
Man kriegs dann folgende Pakete (jede Zeile ein Byte):
0x254
Packet Laenge
255-Laenge
Packetnummer (von 0 - 15)
irgend ein status
Puls
rri_h
rri_l
rri2_h
rri2_l
Bei mir sind immer entweder 1 oder 2 rri mitgeschickt, das ist einfach
die Zeit in ms zwischen den Herzschlaegen.
Ab und zu bekomme ich auch Pakete bei denen die ersten 2 Byte fehlen,
keine Ahnung warum. Aber da die Laenge ja zum Glueck eh 2 mal
reincodiert ist klappts trotzdem :)
mfg
Hi,
ich wuerde mir, wenn ich wieder einen braeuchte, aber den Zephyr
zulegen. Der Polar Gurt hat naemlich keinen Akku. Da wirds schnell
nervig wenn dir mitten im Laufen die Batterie ausgeht :\
mfg
Ich versuche gerade, das Polar WearLink Protokoll zu simulieren. Mein
Ziel ist es, eine Schaltung für meinen analogen Brustgurt zu basteln,
die dessen Signal per WearLink Protokoll und Bluetooth an mein Handy
weiter gibt. Das sollte nicht allzu schwer sein. Für den analogen
Empfänger gibt es hier gute Beispiele und zum Weiterreichen reicht mir
ein günstiges Seriell-zu-Bluetooth Modul.
Mit Hilfe des Codes von http://www.neuroupdate.com/polarbt/ habe ich ein
C# Tool geschrieben, um das Protokoll zu simulieren:
1
SerialPortport=newSerialPort("COM6");
2
port.BaudRate=115200;
3
port.Parity=Parity.None;
4
port.StopBits=StopBits.One;
5
port.DataBits=8;
6
port.Handshake=Handshake.None;
7
port.Open();
8
9
byte[]data=newbyte[8];
10
11
data[0]=254;// header
12
data[1]=8;// length
13
data[2]=247;// 255 - length
14
data[3]=1;// index
15
data[4]=209;//0xF1; // status
16
data[5]=90;// pulse
17
data[6]=0x03;// rri_h
18
data[7]=0xE8;// rri_l
19
20
while(true)
21
{
22
// increment index
23
data[3]=(byte)(data[3]+1);
24
25
if(data[3]==15)
26
{
27
data[3]=0;
28
}
29
30
port.Write(data,0,data.Length);
31
32
Thread.Sleep(1000);
33
}
Das sollte einen konstanten Puls von 90 ausgeben. Mit BlueTerm auf
meinem Android-Handy sehe ich die Daten, sie kommen also schon mal an.
Doch leider erkennt keine der Apps (MoveTracker, Runtastic,
WalkMater...) die simulierten Daten.
Weiß jemand was da falsch läuft?
Ich weiß, der Thread ist uralt, aber vielleicht hilt es ja jemand
weiter, denn ich habe den Thread beim Suchen über Google gefunden, und
es ist einer der ganz wenigen zum Thema.
Die Lösung, die auch dem TO geholfen hätte ist:
Das Bluetooth gerät muss "Polar iWL" heißen, nur dann wird es als
Wearlink-Gurt erkannt. So klappt es bei mir mit OruxMaps und Run.GPS!
Anbei mein kleines Python-Testprogramm (linux, daher /dev/rfcomm0):
1
import serial
2
from time import sleep
3
4
ser = serial.Serial(port='/dev/rfcomm0', baudrate=115200, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=False, rtscts=False, dsrdtr=False) # open serial port
5
6
print(ser.name) # check which port was really used