在linux系统下蓝牙读取neurosky的brainlink脑电环的数据的步骤:
1.hcitool scan ---找到brainlink的地址,如果没找到,重新运行。也可以使用系统自带的蓝牙如下图

$ hcitool scan
Scanning ...
B0:C0:90:B3:ED:7A   DESKTOP-JA7BUAI
0D:00:18:A1:54:DD   BrainLink_Lite

image.png
2.sudo rfcomm connect /dev/rfcomm0 0D:00:18:A1:54:DD 2 ----最后一个数字2代表使用通道2连接brainlink设备,不同的电脑通道不一样,你需要根据自己的电脑进行尝试。我猜测原因是蓝牙工作在2.4G频段的,蓝牙的频段是从2401MHz 到2479MHz,每个channel占1MHz,共79个channel。

$ sudo rfcomm connect /dev/rfcomm0 0D:00:18:A1:54:DD 2
Connected /dev/rfcomm0 to 0D:00:18:A1:54:DD on channel 2
Press CTRL-C for hangup

/dev/rfcomm1 或 /dev/rfcomm2或者其他数字也是可以的,相应的/dev/路径下会出现rfcommX,当断掉brainlink连接时,rfcommX也会消失。
使用$ rfcomm -i --device可以查看brainlink设备已经连接到本地蓝牙0C:DD:24:16:ED:69(电脑的蓝牙地址)

$ rfcomm -i --device
rfcomm0: 0C:DD:24:16:ED:69 -> 0D:00:18:A1:54:DD channel 2 connected [reuse-dlc release-on-hup tty-attached]

3.另开一个treminal终端:

sudo cat /dev/rfcomm0 | hexdump -C 
00000000  7a aa aa 04 80 02 00 6c  aa aa 04 80 02 00 21 5c  |z......l......!\|
00000010  aa aa 04 80 02 00 31 4c  aa aa 04 80 02 00 35 48  |......1L......5H|
00000020  aa aa 04 80 02 00 6a aa  aa 04 80 02 ff ef 8f aa  |......j.........|
00000030  aa 04 80 02 00 06 77 aa  aa 04 80 02 00 34 49 aa  |......w......4I.|
00000040  aa 04 80 02 63 aa aa 04  80 02 00 0a 70 aa aa 04  |....c.......p...|
00000050  80 02 00 17 66 aa aa 04  80 02 00 16 67 aa aa 04  |....f.......g...|
00000060  80 02 00 24 59 aa aa 04  80 02 00 34 49 aa aa 04  |...$Y......4I...|
00000070  80 02 00 3b 42 aa aa 04  80 02 00 31 4c aa aa 04  |...;B......1L...|
00000080  80 02 00 6a aa aa 04 80  02 00 01 7c aa aa 04 80  |...j.......|....|
00000090  02 00 6a aa aa 04 80 02  00 20 5d aa aa 04 80 02  |..j...... ].....|
000000a0  00 04 79 aa aa 04 80 02  ff f5 89 aa aa 04 80 02  |..y.............|

如果出现的是如下形式,意味着在步骤2中没有选择正确的通道,你需要尝试你的电脑是哪一个通道

$ sudo cat /dev/rfcomm0 | hexdump -C
00000000  ff 55 02 00 ee 10 ff 55  02 00 ee 10 ff 55 02 00  |.U.....U.....U..|
00000010  ee 10 ff 55 02 00 ee 10  ff 55 02 00 ee 10 ff 55  |...U.....U.....U|
00000020  02 00 ee 10 ff 55 02 00  ee 10 ff 55 02 00 ee 10  |.....U.....U....|
00000030  ff 55 02 00 ee 10 ff 55  02 00 ee 10 ff 55 02 00  |.U.....U.....U..|
00000040  ee 10 ff 55 02 00 ee 10  ff 55 02 00 ee 10 ff 55  |...U.....U.....U|
00000050  02 00 ee 10 ff 55 02 00  ee 10 ff 55 02 00 ee 10  |.....U.....U....|
00000060  ff 55 02 00 ee 10 ff 55  02 00 ee 10 ff 55 02 00  |.U.....U.....U..|
00000070  ee 10 ff 55 02 00 ee 10  ff 55 02 00 ee 10 ff 55  |...U.....U.....U|

4.运行NeuroPy example程序获得数据。NeuroPy的程序是在python2下运行的,在python3下运行,部分代码需要做相应的修改。
$ sudo python neuropyexample.py
注意代码需要在sudo模式下运行(若报错再次运行),并使用ctrl+c提前终止$ sudo cat /dev/rfcomm0 | hexdump -C


wieneralan
1 声望0 粉丝