该项目的核心是思想控制和机器学习方面。要完成项目的这一部分,您只需要 HC-05、任何速度足够快的计算机(我使用的是 Raspberry Pi 4)和 mindflex。最后,您将控制可以连接到 Raspberry Pi 的任何硬件或软件开关!
破解 Mindflex
要破解 mindflex,您首先需要购买一个:确保至少获得一个 HC-05 和 2 个 HC-05,如果您想要可靠的连接,还需要一个额外的 Arduino。你只需要耳机,所以你可以在 eBay 上花 15 美元左右买到一个。确保不要购买新的 Starwars Force Trainer,因为它成本更高,电极更差,并且需要更多的努力才能开始工作。
获得 mindflex 后,您需要将其设置为无线传输原始数据。默认情况下,耳机会以 9600 串行波特率发送注意力/冥想值、信号质量和 EEG 功率带,但每秒仅发送一次。要让 mindflex 进入原始模式,您需要以 9600 波特发送字节 0x02;但是,由于 HC-05 将以 56700 的波特率进行通信,因此您要么需要在 56700 中发送模仿 9600 的字节(不可靠),要么使用其他设备(如 arduino nano)来发送消息。
我建议使用两个绑定在一起的 HC-05,因为它证明了比仅使用标准蓝牙连接更可靠的连接。我不会在这里解释如何将它们中的两个绑定在一起,但这里有一个关于如何做到这一点的来源。
打开mindflex的左侧;您应该看到 mindflex 的内部结构。将 HC-05 和 Arduino 的 5V 连接到 mindflex 上开关的输出;mindflex的两个接地输入的GND;HC-05 的 RX 到 mindflex 的 TX;以及 arduino 的 TX(如果不是 arduino,则为 HC-05)到 mindflex 的 RX。mindflex 的 TX 和 RX 分别用 T 和 R 标记。用 0x02.ino 刷新 arduino。您的 mindflex 现在应该每秒输出 512 次原始数据。
将 Mindflex 连接到 Raspberry Pi
要开始收集数据,您需要使用内置蓝牙模块或另一个 HC-05 将 Raspberry Pi 连接到 mindflex。我将 HC-05 连接到 GPIO 中的 RPI 串行引脚,因为我发现它更可靠。
这是一篇处理将 HC-05 连接到 RPI 的帖子。
收集数据
在你的脑海中想出一个好的激活。您不必使用“触发”数据,而是使用您认为对应用程序有益的任何概念(确保选择可以区分的东西)。
使用RPI 上的data.py来收集数据,它应该将其保存在名为 standard 和 fire 的数据文件夹中(如果要更改标题,请更改代码)。我建议您短时间记录您的激活状态,因为您希望在实际使用您的模型时激活速度更快——我记录了我的开火时间四分之一分钟,而我的标准时间有时是一小时。
您可能不会获得等量的标准数据和激活数据,因为它需要更多的努力和专注才能获得。在准备训练模型时,我们将只乘以激活数据——仍然尝试至少获得 15 到 30 分钟。
神经网络的目的是处理噪声:因此请记住在收集标准思维数据时要获得广泛的范围。例如,当信号质量低时,一个或所有电极都没有打开(这些符合标准并且不会污染您的其他分类)。所有这些都符合标准将帮助您建立一个有弹性和准确的模型。此外,尝试在多个会话中收集数据以捕捉许多不同的心理状态。
训练模型
在您认为您已获得足够的数据后,将文件从 RPI 移动到您的计算机上,将火和标准数据保存在不同的文件夹中。确保将一些标准数据和火灾数据移动到各自的标准和火灾测试文件夹中,以测试模型的准确性。
该模型使用一维 CNN,一种卷积神经网络:它提取与标准和激活之间的分类相关的特征。要训练模型,请尝试使用我的 Jupyter Notebook:您只需定义放置训练标准和激活数据的文件夹以及相同类型的测试数据(用于测试准确性)。尝试新的预处理方法、窗口时间和优化。点击多次后,您应该会得到一个可以在 RPI 上运行的 TensorFlow Lite 模型。如果您不喜欢准确性,请尝试收集更多数据或新的激活概念——您可能不会超过 80%。
一些部分很难理解和混淆,因为代码没有完善,一些旧的未使用的特性仍然存在:问我你是否想不通。如果你的台式机没有好显卡,你可以使用谷歌的免费服务 Google Colab。
运行模型
获得 TFLite 模型后,将文件移动到计算机上并将模型名称放在mind.py中。现在,我让 RPI 打开了一个 GPIO 引脚,但是您可以在 if 语句中定义任何您想要的东西。祝你好运!
老实说,我不建议制造火焰喷射器,因为我认为您可以使用支持 AI 的 Mindflex 做出一些令人难以置信且更安全的想法。但是如果你想建造一个,火焰喷射器的概念非常简单,因为它只是一个电磁阀,用弧光打火机喷射丙烷。对于这个项目,我 3D 打印了一个外壳、添加了按钮和一个屏幕来控制安全功能。对于电源,我使用了连接到无人机通常使用的配电板的锂聚合物电池:它有 5v 和 12v 输出。打火机由继电器控制,而电磁阀由晶体管控制。我用一个继电器来控制打火机,用一个晶体管来控制电磁阀。
我在下面的附件中包含了 stl 文件。如果您要使用我的设计,我建议您戴上防火手套。我还包含了运行整个程序的 arduino nano 的代码——如果你愿意,你可以在思维模式和打孔模式之间切换。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !