TGAM(脑波传感器)+Arduino如何开发编程

脑电波传感器,脑波传感器,脑波模块

· 脑电

一.开发思路

TGAM脑波传感器套件自带一个蓝牙从机,一般来讲,如果直接用Thinkgear官方的api开发,用电脑配上蓝牙,运行官方的C或者Java就行。

但是如果你想用脑电波点亮个灯或驱动个车,还是直接连Arduino单片机比较方便。具体思路是在Arduino板上接一个蓝牙主机,接收传感器发送的数据,并在Arduino程序中使用它们。

Arduino Uno开发板一块;

HC-05蓝牙模块一个(用作主蓝牙);

TGAM套件一组,套件自带从蓝牙;

导线若干

二.AT命令与主从蓝牙配对

HC-05是主从一体的蓝牙模块,HC-05与Arduino连接可以参照Arduino实验室里面的

Arduino板与HC-05芯片连接如下:

肌电传感器,心电传感器,脑波传感器开发
broken image

这里Pin10和Pin11的引脚可换,但要和程序里SoftwareSerial(rxPin, txPin)对应。rxPin是软串口接收引脚,txPin是软串口发送引脚,保证单片机发送对芯片接收,单片机接收对芯片发送。

EN/KEY接3.3V是为了用AT+INIT初始化命令,这个命令只有EN/KEY引脚置高电平时才能使用。只有初始化了之后,才能用AT+INQ搜索其他蓝牙设备。

 

broken image

 

程序中的Serial.begin波特率我们不用动,它跟HC-05与其他蓝牙模块配对传输时的波特率是两个概念,此处的波特率只是Arduino给HC-05写指令用的波特率,不影响配对。

HC-05有两种工作模式,普通模式和AT模式。准备完程序并且插好线后,按住HC-05模块角落的黑色小按钮,同时给Arduino开发板通电,这时会看到蓝牙模块的LED灯大概2秒闪烁一下,证明蓝牙模块已经进入AT模式,可以编写指令了 。

2. 写入AT指令

配对密码要一样;

两个蓝牙模块的串口波特率要一样;

主模块找到从模块地址

根据Thinkgear给的官方api,TGAM的默认密码是0000,波特率是57600;我们需要将HC-05的密码和波特率也设置成这个才能配对。

 

broken image

打开Arduino的串口监视器,选NL和CR,调到38400的波特率,会看到显示了BT is ready!

此时发送AT,会回复OK,可以配置HC-05蓝牙芯片了。这里我第一次发送AT的时候程序总会返回ERROR,再发一遍才显示OK

broken image

AT指令百度一下有很多也很全,这里只写重要的几个。

AT+INIT:初始化。初始化了之后才能AT+INQ查询其他蓝牙设备,当然如果你已经知道了从机蓝牙的MAC地址,可以不查询。

AT+ROLE:选择HC05蓝牙模块的角色,AT+ROLE=0为从机,AT+ROLE=1为主机,默认是从机,这里我们需要输入AT+ROLE=1改成主机。用AT+ROLE?可以查看当前角色。

AT+PSWD:设置蓝牙模块的配对密码,HC-05的默认配对密码是1234,TGAM从机密码是0000,我们要输入AT+PSWD=0000改成一样的。

AT_UART:设置蓝牙与其他蓝牙通讯的波特率,指令格式是AT+UART=,,,第一个参数是波特率,后面两个参数是停止位和校验位(一般置0),HC-05默认波特率是9600,TGAM从机默认波特率是57600,我们输入AT+UART=57600,0,0

AT+INQ:查询蓝牙设备,返回设备的mac地址。

AT+BIND:绑定其他蓝牙MAC地址,AT+BIND= ,这里,如果你的从蓝牙MAC地址是A44A:0E:08008D,输入时需要把冒号改为逗号,输入AT+BIND=A44A,0E,08008D

AT+CMODE:是否允许蓝牙连接任何设备,0表示只能连接绑定地址的蓝牙,1表示可以连接任何蓝牙。

AT+LINK:这是最后一步,连接蓝牙设备,输入AT+LINK=A44A,0E,08008D,返回OK为成功,返回FAIL为失败。失败的话,请确认两个蓝牙的配对密码和波特率是否一致。

3. 主从蓝牙配对

接下来,断开Arduino板,去掉HC-05 KEY引脚的导线,再次插上时会回到HC-05的工作模式,同时两个蓝牙模块还是会自动匹配。

情提示,当两个蓝牙成功连接上时,串口监视器可能会突然蹦出好多乱码,影响判断连接状态,可以直接通过观察两个蓝牙芯片指示灯状态判断是否连接成功。

 

肌电传感器,心电传感器,脑波传感器开发,脑波模块

三.Arduino读取数据

连接上了之后,我们就可以在Arduino中编程读取脑电波传感器的数据了。

此时需要改变一下连线:

HC-05的TXD接Uno板的0->RX引脚,RXD接TX->1引脚

broken image

这里遇到个问题,TXD和RXD接了Pin0和Pin1时,程序一直上传不上去(⊙.⊙),只好先在接10和11引脚的时候把程序上传上去,然后改导线到Pin0和Pin1,这样串口监视器才会显示数据,不知为何,还请大神赐教。

 这样就可以拿数据了。

 

broken image

示例代码可以留言联系领取哦!

,na

思知瑞科技,从2012年开始不断研发生物传感器

关于生物传感器,脑电波传感器,肌电传感器,心率心电传感器方面需求

请联系我们:疏先生 15821508209(微信同号)