跳到主要内容

Flowtime 坐垫

硬件说明

Flowtime 坐垫内置了压电和压阻信号传感器,其中压电信号可提取脉搏波、呼吸等生理特征,压阻信号可用于显示是否坐下。

在准备开发前,你可能需要了解的设备参数如下,如需了解更多详细参数请参考 Flowtime 坐垫硬件说明

Flowtime 坐垫 1 Flowtime 坐垫 2

  • 设备参数
    • 压电信号采集
      • 采样率:125 Hz
      • 采样精度:12 位
    • 压阻信号采集
      • 采样率:25Hz

数据分析服务

服务类型支持的数据分析服务
生物数据分析压电压阻
生理状态分析压力水平
和谐度

使用数据采集软件

  • 如果你只需对生物数据和生理状态数据进行离线分析,可以使用我们已经开发好的心流实验 App来采集数据,并通过情感云管理后台(链接)下载报表文件。在使用心流实验 App 采集数据时,你还可以结合自己的实验设计,为数据添加分段的标签记录,以便在离线分析时将不同实验任务或实验状态下的数据分割出来。
  • 如果你具备一定的软件开发能力,你还可以利用我们提供的开发资源来开发自己的应用,从而实时获取生物数据和生理状态指标并进行分析。首先你需要使用 Flowtime 坐垫开发资源实现设备连接,然后你可以使用情感云开发资源来获得情感云数据分析服务。但如果你需要在没有网络环境的情况下获得数据分析服务,你可以选择使用本地化数据分析 SDK。

数据获取途径

连接设备

  • 如果你使用心流实验 App 来采集数据,那么你可以根据心流实验 App 使用说明的操作来连接设备并采集数据。
  • 如果你使用开发资源来采集数据,可参考下面的操作:
    • 第一次绑定设备,长按按键直至指示灯亮起,设备开机并进入广播状态,此时可以在数据采集软件中搜索并连接设备。开机后设备会一直广播直到关机。
    • 之后每次使用无需长按按键,直接坐上垫子指示灯即会亮起,设备开机并进入广播状态。
    • 设备连接主机后指示灯将切换到长亮状态,此时可以通过指令控制设备进行数据采集等操作。
提示

开机时,如果长按设备按键,仍旧没有灯亮,说明设备已经没电。此时先给设备充电,10 分钟后再尝试开机。充电教程请参考 Flowtime 坐垫充电说明

因为指示灯比较耗电,所以状态指示灯会在 2 分钟后熄灭(充电过程中不会熄灭)。此时并不代表设备休眠或者关机。单击按键,指示灯会重新亮起。

坐下与坐姿

由于压电信号传感器对压力的细微变化十分灵敏,为保证采集到信号质量良好的数据,请参考以下说明使用 Flowtime 坐垫。

第一次使用

  • 提起坐垫上垫,拍打并抖动几下,使内部荞麦壳恢复流动性。
  • 将上垫放于下垫上方。
  • 多次按压并晃动上垫,使荞麦壳把上垫的几个角填实。
  • 按照每次坐下进行使用。

每次坐下

  • 轻轻拍打上垫,使表面平整。
  • 坐在上垫前部,双腿盘于下垫。
  • 轻轻晃动身体,让坐垫更贴合臀部和腿部。
  • 调整坐姿,使身体重心位于坐垫靠前的位置,并在体验过程中保持身体的稳定。
  • 过程中由于轻微动作可能导致短暂的信号质量不佳,保持稳定坐姿后可恢复正常。
  • 如果过程中频繁出现信号质量不佳,可能是传感器接触不良,此时参考第一次使用重新坐下。

获取数据

报表文件下载

  • 登录情感云管理后台
  • 使用记录中选择生物数据分析服务生理状态分析服务,找到目标记录。
  • 点击操作一列中的下载报表文件,可以得到压缩的报表文件,后缀名对应不同的生物数据分析或生理状态分析服务类型,如 .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中的各项全程记录数据点之间的间隔时间为 0.6×upload_cycle0.6 \times \operatorname{upload \_ cycle}。例如upload_cycle为 3,则和谐度全程记录coherence_rec中每个数据点间隔时间为 0.6×3=1.80.6 \times 3=1.8 秒。
  • label字段中rec字段获得分段标签记录,并从每一段分段标签中读取开始时间st和结束时间et,具体数据结构参考标签记录格式
  • 根据开始时间st和结束时间et,以及全程记录数据点的间隔时间,即可从全程记录中分割出标签段的数据。

数据分段标签示意图

参考内容