自制鼠标!回报率1000Hz!
日期:2024-12-13 23:23 浏览:
本文援用地点:鼠标嘛,买一个就好了,为啥吃力做一个?自己在做数字图像处置时,打仗过一款adns3080光传播感器,可能近间隔照相天生彩色像素图像。深刻懂得后,发明其道理居然跟鼠标应用的传感器道理一样!索性就本人实验着做了一个鼠标!且本着要做就做最好的准则,还抉择了事先最风行的鼠标传感器paw3395,盼望能给同样想DIY鼠标的搭档供给一些参考意思!本文重要分享——功效亮点、硬件实现、软件计划道理、本钱阐明鼠标报答率:实测950Hz,最年夜1000Hz,市道上场景鼠标报答率在500Hz阁下(该数据为名目作者实测数据)主控:stm32f103c8t6光电传感器:原相paw3395应用HID协定与电脑通信现在以实现市道上鼠标全部基础功效,畸形鼠标功效:光标挪动、阁下键、中键、滚轮、DPI切换,DPI切换时LED闪耀3次拓展功效:两个自界说按键(已预留接口),本例程未增加尼龙外壳:基于嘉破创3D打印电路:基于嘉破创EDA计划,尺寸支撑收费打样硬件比拟简略,实质就是stm32最小体系板 + PAW3395驱动电路 + 按键跟滚轮电路+3D外壳的适配。道理图PCB图总体架构应用类RTOS操纵体系 的架构PAW3395应用spi协定 驱动应用STM32CbueMX主动天生初始HID协定自界说HID报文发送函数,申明一个HID报文发送义务,每1ms更新一次位移数据 并向电脑发送报文滚轮数据更新的道理?本章重要处理:滚轮不敏锐or滚轮始终往上/下转动的成绩在CubeMX中应用TIM2的编码器形式,默许设置如下:想懂得滚轮数据更新的道理,起首要搞明白,在HID协定中,滚轮的各项数据:滚轮数据为0x80时,代表滚轮未挪动0xff,为向上挪动一个单元0x01,为向下挪动一个单元其余数值为向上或向下挪动好多少个单元,挪动间隔太年夜,咱们掌握不住,该怎样处理?我是这么处置的:只有断定滚轮挪动就以一个单元处置,及0xff或0x01;其余情形为滚轮未挪动,及0x80。但假如滚了一次后编码器就会长时光坚持一个值形成反复断定,形成始终向上/下滚的情形,这就引出来一个新成绩:什么时间将编码器的值清零?很简略,断定完就清零,将断定出来的数值暂存在 wheel_num 中,经由过程下面刚自界说的报文发送函数 myMouse_update() 每1ms发送给电脑。每1ms发送给电脑是最佳抉择吗?1ms要做的事件太多了,既要spi读鼠标位移值,又要发送HID报文给电脑,还要断定滚轮数据,轻易时序杂乱。以是终极我测试出每5ms断定一次,会更公道,也合乎现实应用,因而终极代码如下:鼠标本钱:200元以内。前期能够把持在:50元以内。开源参考材料:https://oshwhub.com/lidongze/shu-biao-zhong-ji-ban
申明:新浪网独家稿件,未经受权制止转载。 -->