
赛博魔杖_STM32卷积神经网络
简介
此项目是Cyberry Potter Electromagic wand赛博魔杖,使用STM32作为主控芯片,通过卷积神经网络进行动作识别,采用模块化设计,具有极高的可扩展性
简介:此项目是Cyberry Potter Electromagic wand赛博魔杖,使用STM32作为主控芯片,通过卷积神经网络进行动作识别,采用模块化设计,具有极高的可扩展性开源协议
:GPL 3.0
描述
视频教程链接:
B站视频--功能演示及介绍
项目简介
此项目是Cyberry Potter Electromagic wand赛博魔杖,通过卷积神经网络进行动作识别,采用模块化设计,具有极高的可扩展性,你可以使用这个项目中的文件,制作一个赛博魔杖。如果你有足够的能力,你也可以对魔杖的的法术(功能)进行修改,魔杖采用了模块化的设计,不同的模块对应了不同的执行功能,你可以根据自己的需要制作新的模块,添加新的功能。也可以对激活法术的动作进行修改,只需要重新收集数据并训练模型就可以了。
实物展示
组装完成状态

拆解状态

模块插入方向为正面朝下

Type-c口可以充电和用作串口调试,充电时红灯亮,满电绿灯亮

从左到右以此为,状态指示灯,交互按钮,电源开关

项目功能简介
主板在上电以后会进入模式0,长按按键0.5秒后松开,就可以进入模式1。
任何模式下短按按键并松开:对IMU进行1.5s的采样,将数据输入模型得到动作识别输出,不同的模块在得到动作识别结果后会执行不同的功能。
在红外模块插入时,可以进行任意协议的红外信号复制,例如空调和NEC
模式0:在得到动作识别输出后,模块会根据识别到的动作发送已经录制的红外信号
模式1:在得到动作识别输出后,模块会根据识别到的动作等待并录制红外信号
模式0和模式1下执行的操作可以根据插入模块的不同而执行不同操作(需要编写代码)
Type-c口的作用:可以用于串口调试和电池充电,在有Type-c连接时,设备会使用Type-c而非电池供电
电源开关:电源开关负责开启或关闭3.3V的供电,在1没有开启电源开关时,电池充电是可以正常进行的,但是Stm32和陀螺仪等不会上电工作
按钮:按钮有长按松开(大于0.5秒后松开)、短按松开(0.5s内松开)两种控制方法。
按钮前的LED:系统状态指示灯,分为10Hz闪烁,5Hz闪烁,2Hz闪烁,常亮,熄灭五种状态
原理解析(硬件说明)
- 本设计采用STM32F103CBT6作为主控芯片,神经网络推理以及主要功能都在STM32上运行,目前可以识别12种动作
- 可以在电脑上收集数据并重新训练模型,以添加新动作或适应自己的挥动习惯
- 神经网络模型占用的内存不到8kb,节约了大量资源
- 推理时间在百毫秒左右,在完成采样后立即推理,完全不会感觉有延迟
- 本设计采用MPU6050作为动作信息采集芯片
- 目前已经设计了红外模块和射频模块,具有录制和收发功能
- 红外与射频模块的录制不需要解码,也就是可以录制任意信号(带加密的不可以)
- 红外射频信号通过外部存储器W25Q16进行存储,掉电不丢失
- 模块检测使用了ADC对模块上分压电阻的电压值进行采样,以辨别模块
- ADC使用了方差校验,可以辨别是否有模块插入
软件代码
完整魔杖代码以及外壳GitHub
软件代码存放在Software目录下,包含一个Keil工程,在./Software/CNN目录下存放了模型训练脚本,数据收集脚本,以及法术对应动作的卡片。
开发环境配置请参照GitHub中的readme文档。
你也可以在下方下载3D外壳文件和法术卡片
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。











