马斯克的脑机接口,一块树莓派就能做出来?

2024-05-18 17:48

本文主要是介绍马斯克的脑机接口,一块树莓派就能做出来?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击上方“小麦大叔”,选择“置顶/星标公众号”

福利干货,第一时间送达

大家好,我是小麦。

想必大家都听说过马斯克,还有特斯拉,SpaceX以及脑机接口。

前两个太难了,但是现在只需要一块树莓派的板子,就可以做一个低配版的脑机接口?

没有开玩笑,这位俄罗斯小哥Rakhmatulin还真做出来了。

这接地气的设备只用一块树莓派板子做处理器,可以实时处理八个大脑电信号:

c13d675e7ad73de7ac5d12315f31e6f7.png

不信来看看实时信号图像:

c1c68dc16b5e871da8c264d4f52d4fbf.gif

这些有规律的波形就是大脑在进行活动时产生的电信号。

目前这个项目已经开源,成本也不高,如果想自己动手做一个脑机接口,机不可失,赶快来学一学~

项目地址https://github.com/Ildaron/EEGwithRaspberryPI

树莓派脑机接口

在制作设备之前,我们要先有一个大致的框架。

脑机接口的框架很好理解:首先从脑壳上读取生物电信号,然后传到处理器中处理,最后用输出信号控制其他设备。

b44b0625a22fda85b64980e22a849343.png

所以第一步就是要读取脑中的生物信号,为此Rakhmatulin做了一个小帽子(下图左边),上面有8个电极(下图右边)。

4c4970cc2f6443272f9250a1adc492ee.png

这8个电极的位置是依据国际10-20系统(如下图)的脑电图检测电极位置来确定的,其中首字母代表大脑不同的分区,例如F为额叶,P是顶叶,T是颞叶等:

c478fb39159b4b17adcca745e05938e4.png
图注:国际10-20系统

当大脑在进行不同的活动时,也会同时产生可以区分的电信号模式。这样这些电极就可以检测到电信号,用以进行后续的分析处理。

有了脑信号之后,接下来第二步,就是对信号的处理了。这里用树莓派第三代或者是第四代都可以,如下的电路图显示了小黄板上的电路结构:

6decfbe768ca5c44b608b04ca78c971f.png

391c13ba02ec6f980f0557b9c36d80b2.png

上图中左边10个管脚中的8个接小帽子上的8个电极,1个接参考电平,1个接偏移信号。

右边的管脚用来传输数据,采样率为每秒250次到每秒16000次。

Rakhmatulin已经在GitHub开源了实时信号检测和处理的代码。

接上电源、显示器,戴上小帽子之后,硬件部分就万事俱备了:

c05191f8328fae1ac0a11ac69c8e13ca.png
图注:硬件部分

现在我们要做的就是做一些简单的动作,让大脑产生电信号。

在测试中,Rakhmatulin采用了“咀嚼”和“眨眼”这两个动作。

每次做咀嚼动作的时候,电信号都会有一个峰值出现,为了能够从波形图上清晰地看到脑信号的变化,小哥共做了四组咀嚼动作,每组依次咀嚼4下、3下、2下、1下,形成一串峰值。

然后通过处理器记录八个电极产生的八条信号(从上至下)如下图:

7cee5ceb506693249d7f7e6e13ab5aab.png

从上图可以很明显地看出,每一次动作都有对应的电信号峰值出现,并且按照动作次数排列。

在咀嚼动作之后,小哥又做了四组眨眼的动作,每组眨眼次数也依次是4、3、2、1下。

同样地,这些电信号变化也被记录了下来(如下图)。其中前四组波动是咀嚼的电信号,后四组波动是眨眼的电信号:

8d0ea190d0532ffa66468b3c9500ef92.png

通过带通滤波器之后波形更加清晰,4、3、2、1,4、3、2、1…像是脑信号在跳广播体操:

6d0b6a03c48755ff8ba015c9912592e7.png

到这里,脑机接口的使命就已经完成了,从处理器中输出的信号可以接到其他设备上去,形成不同的指令,例如指挥机械臂,玩具车,无人机等等。

怎么样?是不是很简单?全程没有复杂的硬件设备,自己在家就可以做,有条件的可以动起手来啦~

如果实在不想动手,也可以关注小哥官网的公告,众筹活动即将上线:

ec9ff40c127511edae6b0a3544776e8a.png

作者简介

这个项目的开发者Ildar Rakhmatulin是一位电气工程师,毕业于俄罗斯南乌拉尔国立大学。

c01c1dc14550e0ab78cbf085d023d993.png

这哥们在做脑机接口之前,还用树莓派做了一个检测蚊子的处理器,还可以发射激光消灭蚊子。

最近,他还和同伴Sebastian Völkl一起经营一家公司,希望能提供给人们经济实惠的脑机接口设备。

参考链接:

[1]https://github.com/Ildaron/EEGwithRaspberryPI
[2]https://www.hackerbci.com/
[3]https://arxiv.org/abs/2201.02228

行早 发自 凹非寺
本文来自 量子位 报道 | 公众号 QbitAI

—— The End ——

往期推荐

高手常用的3个开源库,让单片机开发事半功倍

看似简单的代码,却暗藏玄机...

如何防止破解?MCU加密技术揭秘

实战总结的7个C程序,好东西不私藏

成为嵌入式高手,少不了这100多个软硬件开源项目

加入嵌入式技术交流群一起进步

点击上方名片关注我

1488b98f03b83ae2dc56dc3aa177bdbe.png

你点的每个好看,我都认真当成了喜欢

这篇关于马斯克的脑机接口,一块树莓派就能做出来?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/995609

相关文章

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

基于Redisson实现分布式系统下的接口限流

《基于Redisson实现分布式系统下的接口限流》在高并发场景下,接口限流是保障系统稳定性的重要手段,本文将介绍利用Redisson结合Redis实现分布式环境下的接口限流,具有一定的参考价值,感兴趣... 目录分布式限流的核心挑战基于 Redisson 的分布式限流设计思路实现步骤引入依赖定义限流注解实现

SpringBoot实现RSA+AES自动接口解密的实战指南

《SpringBoot实现RSA+AES自动接口解密的实战指南》在当今数据泄露频发的网络环境中,接口安全已成为开发者不可忽视的核心议题,RSA+AES混合加密方案因其安全性高、性能优越而被广泛采用,本... 目录一、项目依赖与环境准备1.1 Maven依赖配置1.2 密钥生成与配置二、加密工具类实现2.1

使用Python的requests库调用API接口的详细步骤

《使用Python的requests库调用API接口的详细步骤》使用Python的requests库调用API接口是开发中最常用的方式之一,它简化了HTTP请求的处理流程,以下是详细步骤和实战示例,涵... 目录一、准备工作:安装 requests 库二、基本调用流程(以 RESTful API 为例)1.

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

springboot下载接口限速功能实现

《springboot下载接口限速功能实现》通过Redis统计并发数动态调整每个用户带宽,核心逻辑为每秒读取并发送限定数据量,防止单用户占用过多资源,确保整体下载均衡且高效,本文给大家介绍spring... 目录 一、整体目标 二、涉及的主要类/方法✅ 三、核心流程图解(简化) 四、关键代码详解1️⃣ 设置

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor

MybatisPlus service接口功能介绍

《MybatisPlusservice接口功能介绍》:本文主要介绍MybatisPlusservice接口功能介绍,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录Service接口基本用法进阶用法总结:Lambda方法Service接口基本用法MyBATisP

Java中的Closeable接口及常见问题

《Java中的Closeable接口及常见问题》Closeable是Java中的一个标记接口,用于表示可以被关闭的对象,它定义了一个标准的方法来释放对象占用的系统资源,下面给大家介绍Java中的Clo... 目录1. Closeable接口概述2. 主要用途3. 实现类4. 使用方法5. 实现自定义Clos

java对接第三方接口的三种实现方式

《java对接第三方接口的三种实现方式》:本文主要介绍java对接第三方接口的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录HttpURLConnection调用方法CloseableHttpClient调用RestTemplate调用总结在日常工作