站内搜索
发作品签到
专业版

基于STM32的In Falsus触摸板

工程标签

51
0
0
0

简介

基于STM32F103C8T6的In Falsus触摸板,使用HAL库编写 本质是一个靠触摸移动光标的鼠标,删去了按键功能,除了玩In Falsus外一无是处

简介:基于STM32F103C8T6的In Falsus触摸板,使用HAL库编写 本质是一个靠触摸移动光标的鼠标,删去了按键功能,除了玩In Falsus外一无是处

开源协议

GPL 3.0

创建时间:2026-05-09 23:03:08更新时间:2026-05-11 13:52:39

描述

    因为女娲造我的时候少了一根手指,用来弥补不足的项目(bushi)

    和大多数玩家不同,我是先知道这个游戏的玩法,想到造触摸板,造好后才开始玩InF的,所以一开始的想法是可以两个大拇指控制触摸板,当8k打的,所以最初的版本我甚至有在触摸板上打交互的想法,触摸区域也比较长。

    第二版(就是这版)保留了第一版的想法,触摸区域长度为10cm,如果想开发双手玩法也可以试试;但代码还是适用于单手操作的:大拇指在触摸区域中心部分操作即可实现光标从左到右的操作,剩下的触摸区域几乎等于摆设。如果想要重新设计电路的话可以在保留触摸通道数不变的情况下减少长度,可以让触摸信号更加抗干扰。

实现原理

    根据高中学过的电容的组成,PCB的铜皮与人体作为两个导体,与阻焊层(绝缘体)构成一个电容,我们还知道:电容的大小与导体面积有关,于是我们可以通过电容大小判断手指有没有靠近。手指在两片触摸区域之间时,电容分别变化,可以根据电容变化的大小不同来判断手指位置。

    而根据电容的充放电曲线,我们可以选择充电相同时间测电压或相同电压测时间来检测电容大小,其中相同电压可以是单片机IO口的触发阈值,这样理论上每个IO口都可以作为触摸引脚。本项目使用的是定时器周期性触发ADC测量电压的方法,电容的充电使用的是TIM的PWM输出(沁恒的CH32单片机自带触摸引脚,原理与项目中相同,触摸引脚自带输出,可以不用PWM)

                                                                      电容充放电曲线如图                                         

 

    知道了触摸电容的变化,就可以计算手指位置了,项目中使用的质心计算公式来计算手指位置(大物学这个时突然想到的,结果居然都在用吗?还以为是自己非常NB的小巧思呢)得到的初始数据很不稳定,可以滤波后计算。项目中用多次采样取均值的方法处理数据后对数据和坐标分别用了低通滤波(问就是大一小登啃两星期卡尔曼滤波发现啃不动),测试还是稍微有一点抖动的,但不影响游戏。

    然后是USB上传数据,USB我是一点不懂,然后标准库移植ST的USB库一直报错,这就是项目用HAL库的原因。

    我还在工程中设计了触摸板的自校准功能,当触摸板闲置一段时间后会根据环境微调触摸基准值,触摸则打断该过程。

使用说明

    焊接与组装部分没什么好说的,附件里有介绍。PCB设计中用到了肖特基二极管,本来想提升采样率的,结果触摸通道数增加到7后发现这点时间ADC转换完都够呛,可以不用焊,如果有问题就拉高一点TIM的自动重装。

    触摸板上电会有一点初始化时间,触碰会影响判断。初始化时间极短,应该1秒不到,感觉只要不是一边肘触摸板一边插电脑就没什么问题。

    打开谱面后加载界面不要碰触摸区域,防止光标初始位置改变。

    触摸时指针会移动到对应位置,松手时指针回到中心

外观展示

目前出现的BUG说明

    记录了原因不明的bug,感谢大佬修改

    1.触摸板连接后没有触碰过触摸板直到打开谱面,光标只会向右偏移(假设中心为原点,正常应该是-1200~1200,出现bug后是0~2400),重启谱面后消失,出现过2次

    2.歌曲打完后松手发现指针不在屏幕中心,点击触摸板数次后消失。不影响打歌。出现过2次

    3.指针卡在一个点,初步判断是手离得太近导致触摸板自校准时把手当作环境了,后来尝试复现不管手靠近触摸板速度多慢都无法触发,出现过1次

附件内容

    3D模型,包含3D打印用的stl文件和FreeCAD工程文件

    代码文件,.c和.h。并为keil玩家准备了可直接编译烧录的工程文件。

    嘉立创EDA工程文件和PCB制板文件

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
1
InF_Touchbar-Body (Meshed).stl
2
2
InF_Touchbar-Cover (Meshed).stl
2

附件

序号文件名称下载次数
1
InF_TouchBar.zip
2
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航