前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >开源神经捕获系统(含防缠绕IMU 传导版)

开源神经捕获系统(含防缠绕IMU 传导版)

作者头像
云深无际
发布于 2024-11-11 11:49:17
发布于 2024-11-11 11:49:17
16100
代码可运行
举报
文章被收录于专栏:云深之无迹云深之无迹
运行总次数:0
代码可运行

前段时间有一个需求给到了这边,我是写算法的,大概就是做生物学实验的时候,动物的运动能力太强了,会让信号线缠绕。原理很简单就是监测动物的旋转量驱动线材同步转。有三个方案,一种是基于外力牵引的,看着是非常不靠谱的一种,还有基于 IMU 和图像处理的。

我这边就选择了基于 IMU 的,肯定不是自己原创的做了,就找了找相关的算法,其实我自己写了一个来着,但是算起来很复杂,现在研究完了开源的组件,发现是我搞复杂了。直接 IMU融合 解算出 4 元数,求出相对于 XOY 的旋转角就完事了。

但是文章没有特别详细的写这个算法,项目结了再写。但是是要分享一下这个采集系统的,很棒!有空一定复现。

首先是给小老鼠头上的这个采集系统,集成度很高,原件也很密集,有着采集,刺激,转换,姿态解算等很多功能。

而且也用了 8 层板

然后是通过了一个 TI 的串转并的 chip 转换成差分将所有的信号传出去

这个方案很有意思,值得学习

就一根线就水灵灵的出去了

这个是板子的一些参数,可以看到还有 LED,那是给定义使用的

信号就通过这样的一根细线出去了

详细的样子,还是密度很高

然后小老鼠下面是一个板对板的接口,给把脑电信号传出去

示意图

组件图

BNO055 9 轴 IMU,用于实时 3D 方向跟踪,里面解算是用的这一刻,为了体积考虑,这颗 IMU 非常的厉害, 有磁测量,可以给出绝对位置。

看特性

以及还是一个 SIP 系统,里面有一个 MCU

可以通过窗口通讯

IIC

还带有一个高精度的晶振

其实也没有什么算法,就是一些函数

我把控制寄存器的写出来了

  • Calibration: 校准状态字节 (byte)
  • SystemCalibrated: 系统校准标志 (bool)
  • AccelerometerCalibrated: 加速度计校准标志 (bool)
  • GyroscopeCalibrated: 陀螺仪校准标志 (bool)
  • MagnitometerCalibrated: 磁力计校准标志 (bool)
  • Temperature: 温度值 (byte)
  • Quaternion: 四元数姿态 (Mat)
  • LinearAcceleration: 线性加速度 (Mat)
  • GravityVector: 重力向量 (Mat)
  • Euler: 欧拉角 (Mat)

私有辅助函数

  • GetEuler(ushort[] sample, int begin)
    • 从原始数据帧中提取欧拉角数据。
    • 将原始数据按比例转换为角度值。
    • 返回包含欧拉角数据的 Mat 对象。
  • GetAcceleration(ushort[] sample, int begin)
    • 从原始数据帧中提取加速度数据。
    • 将原始数据按比例转换为加速度值。
    • 返回包含加速度数据的 Mat 对象。
  • GetQuat(ushort[] sample, int begin)
    • 从原始数据帧中提取四元数数据。
    • 将原始数据按比例转换为四元数。
    • 返回包含四元数数据的 Mat 对象。

这段就是对设备的注册

很简单

采集是使用的 FPGA 和 PCI-E

现成的板子

组件图

高速的采集器

使用 FMC 接口,做了一个载板

就是上面这样子

这个是接口

可以看到很漂亮,我圈住的地方是来做同步的

使用这个协议来多个子设备同步时间

还有控制的按键

这个是特性,输出是 DAC 搞刺激的恒流源

同样也是 8 层

在接收的时候就是后面芯片了,串转并

原理图也说了这一点

看,解码的信号线,很多 12bit 的

这个是里面的 DAC

系统集成度很高,围绕 intan64 这个芯片辅以多个传感器设计出了一个强大的采集平台,在传输过程中使用了抗干扰的串并转方案,后端也是为了灵活性使用了自己设计 PIC-E 协议,又灵活又搞笑,扩展性也好。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://www.cf-hw.org/harp
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/open-ephys/onix-fmc-host
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://www.iwavesystems.com/product/fmc-loopback-test-module/
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://numato.com/product/nereid-kintex-7-pci-express-fpga-development-board/
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://numato.com/docs/nereid-kintex-7-pci-express-development-board/
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://github.com/open-ephys/onix-headstage-64
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://numato.com/help/wp-content/uploads/2018/01/Nereid4.2.1Sch.pdf
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 私有辅助函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档