Flowtime 坐垫
硬件说明
Flowtime 坐垫内置了压电和压阻信号传感器,其中压电信号可提取脉搏波、呼吸等生理特征,压阻信号可用于显示是否坐下。
在准备开发前,你可能需要了解的设备参数如下,如需了解更多详细参数请参考 Flowtime 坐垫硬件说明。
- 设备参数
- 压电信号采集
- 采样率:125 Hz
- 采样精度:12 位
- 压阻信号采集
- 采样率:25Hz
- 压电信号采集
数据分析服务
服务类型 | 支持的数据分析服务 |
---|---|
生物数据分析 | 压电压阻 |
生理状态分析 | 压力水平 |
和谐度 |
使用数据采集软件
- 如果你只需对生物数据和生理状态数据进行离线分析,可以使用我们已经开发好的心流实验 App来采集数据,并通过情感云管理后台(链接)下载报表文件。在使用心流实验 App 采集数据时,你还可以结合自己的实验设计,为数据添加分段的标签记录,以便在离线分析时将不同实验任务或实验状态下的数据分割出来。
- 心流实验 App 的详细使用说明请参考心流实验 App 使用说明。
- 情感云管理后台的详细使用说明请参考情感云管理后台使用说明。
- 如果你具备一定的软件开发能力,你还可以利用我们提供的开发资源来开发自己的应用,从而实时获取生物数据和生理状态指标并进行分析。首先你需要使用 Flowtime 坐垫开发资源实现设备连接,然后你可以使用情感云开发资源来获得情感云数据分析服务。但如果你需要在没有网络环境的情况下获得数据分析服务,你可以选择使用本地化数据分析 SDK。
连接设备
- 如果你使用心流实验 App 来采集数据,那么你可以根据心流实验 App 使用说明的操作来连接设备并采集数据。
- 如果你使用开发资源来采集数据,可参考下面的操作:
- 第一次绑定设备,长按按键直至指示灯亮起,设备开机并进入广播状态,此时可以在数据采集软件中搜索并连接设备。开机后设备会一直广播直到关机。
- 之后每次使用无需长按按键,直接坐上垫子指示灯即会亮起,设备开机并进入广播状态。
- 设备连接主机后指示灯将切换到长亮状态,此时可以通过指令控制设备进行数据采集等操作。
提示
开机时,如果长按设备按键,仍旧没有灯亮,说明设备已经没电。此时先给设备充电,10 分钟后再尝试开机。充电教程请参考 Flowtime 坐垫充电说明。
因为指示灯比较耗电,所以状态指示灯会在 2 分钟后熄灭(充电过程中不会熄灭)。此时并不代表设备休眠或者关机。单击按键,指示灯会重新亮起。
坐下与坐姿
由于压电信号传感器对压力的细微变化十分灵敏,为保证采集到信号质量良好的数据,请参考以下说明使用 Flowtime 坐垫。
第一次使用
- 提起坐垫上垫,拍打并抖动几下,使内部荞麦壳恢复流动性。
- 将上垫放于下垫上方。
- 多次按压并晃动上垫,使荞麦壳把上垫的几个角填实。
- 按照每次坐下进行使用。
每次坐下
- 轻轻拍打上垫,使表面平整。
- 坐在上垫前部,双腿盘于下垫。
- 轻轻晃动身体,让坐垫更贴合臀部和腿部。
- 调整坐姿,使身体重心位于坐垫靠前的位置,并在体验过程中保持身体的稳定。
- 过程中由于轻微动作可能导致短暂的信号质量不佳,保持稳定坐姿后可恢复正常。
- 如果过程中频繁出现信号质量不佳,可能是传感器接触不良,此时参考第一次使用重新坐下。
获取数据
- 使用 Flowtime 头环可获取的生物数据和生理状态指标请参考数据分析服务总览。
- 如果你使用我们提供的心流实验 App 并按照心流实验 App 使用说明来采集数据,那么你可以通过情感云管理后台下载报表文件,从中读取得到生物数据或生理状态指标。我们将在下文提供详细的操作步骤。
- 如果你使用我们提供的开发资源,并按照上面的步骤采集数据,那么你可以参考使用本地化数据分析 SDK 获取生物数据和生理状态指标来进行操作。
报表文件下载
- 登录情感云管理后台。
- 在使用记录中选择生物数据分析服务或生理状态分析服务,找到目标记录。
- 点击操作一列中的下载报表文件,可以得到压缩的报表文件,后缀名对应不同的生物数据分析或生理状态分析服务类型,如 .eeg.report 为双通道脑电波,.attention.report 为注意力。
- 更多情感云管理后台相关使用说明请参考情感云管理后台使用说明。
报表文件解压
- 情感云管理后台直接下载得到的原始数据文件是 gzip 压缩的,在读取之前需要先解压缩。
- 如果你的电脑中安装了 .zip 解压缩软件,你可以将下载的压缩原始数据文件后缀名更改为 .zip,并用解压缩软件直接解压,得到可以打开的文本文件。
- 如果你正在使用 Python,你也可以通过代码的方式来解压缩。
import gzip
import json
with open(path, 'rb') as fr: # path为压缩文件的路径
content = fr.read()
bin_data = gzip.decompress(content)
json_data = json.loads(bin_data)
with open(path + '_unz', 'w') as f: # path+'_unz'为解压缩后的文件保存路径
json.dump(json_data, f)
报表文件读取
- 解压缩后的文件可直接读取为 json,读取
data
字段中report
字段保存的内容,即为十进制无符号 int 型原始数据。例如:[0,0,119,7,236,...,136,214,58]
。 - 具体的报表文件格式可参考报表文件格式。
- 生物数据报表文件内容说明请参考生物数据报表分析返回值。
- 生理状态报表文件内容说明请参考生理状态报表分析返回值。
- 如果你正在使用 Python,你也可以直接利用下面的代码从解压后的文件中读取报表分析结果。
import json
with open(path, 'r') as f: # path为解压缩后的文件的路径
content = json.load(f)
raw_data = content.get('data').get('raw') # raw_data 即为十进制无符号 int 型原始数据
标签数据分割
- 如果你在实验过程中使用心流实验 App 为数据添加了分段标签记录,那么在离线分析时你可能需要从
report
中的某些全程记录数据里分割出添加标签的段落。例如和谐度全程记录coherence_rec
。 - 首先根据
data
字段中upload_cycle
字段显示的上传周期倍数,则report
中的各项全程记录数据点之间的间隔时间为 。例如upload_cycle
为 3,则和谐度全程记录coherence_rec
中每个数据点间隔时间为 秒。 - 从
label
字段中rec
字段获得分段标签记录,并从每一段分段标签中读取开始时间st
和结束时间et
,具体数据结构参考标签记录格式。 - 根据开始时间
st
和结束时间et
,以及全程记录数据点的间隔时间,即可从全程记录中分割出标签段的数据。
参考内容
- 关于 Flowtime 坐垫的详细说明请参考 Flowtime 坐垫说明。
- 关于获取生物数据和生理状态指标的详细说明请参考获取生物数据和生理状态指标。
- 关于情感云下载得到的报表文件格式请参考报表文件格式。
- 生物数据报表文件内容说明请参考生物数据报表分析返回值。
- 生理状态报表文件内容说明请参考生理状态报表分析返回值。