今天我们来做一个USB HID游戏摇杆。
硬件上很简单,使用了一个arduino电子积木的摇杆模块。
把PA2接到摇杆的按键,PA0和PA1分别接到摇杆x和y轴。
我这个代码是基于arduino的USB HID库写的,所以也比较简单。
使用了现成的usb库,把adc数据跟Joystick函数一接就完事啦
IDE使用的是VisualStudio2015,装了visual micro插件,可以支持arduino
stm32f103是可以直接当arduino用的,ST-link下载器也是支持的。
编译并烧写的时候,出来一堆莫名其妙的字符,
应该是IDE编码格式的问题,这个不管它了,反正最后提示烧写成功就好。
拔掉ST-Link,把板子的USB插到电脑,这时候可以看到一个新硬件出现了
点开游戏控制器选项,可以做进一步设置
正常情况下,屏幕上虚拟的按键都没按下,并且摇杆在正中间。
我们把实体摇杆摇动一下,并把按键按下。
屏幕上虚拟的摇杆也跟着动了,并且按键也有反应
再校准一下这个摇杆的行程
点击显示原始参数的钩,可以看到摇杆是10位编码的。
虽然最高可以16位,但是没有这样的必要。
校准以后,摇杆应该就能正常应用于游戏了。
我找了个PSP模拟器测试,叫PPSSPP。
测试了一下《噬神者》游戏,操作正常。
后续可以再加几个按键,用3d打印个外壳,就是个正常游戏手柄了
今天我们来做一个USB HID游戏摇杆。
硬件上很简单,使用了一个arduino电子积木的摇杆模块。
把PA2接到摇杆的按键,PA0和PA1分别接到摇杆x和y轴。
我这个代码是基于arduino的USB HID库写的,所以也比较简单。
使用了现成的usb库,把adc数据跟Joystick函数一接就完事啦
IDE使用的是VisualStudio2015,装了visual micro插件,可以支持arduino
stm32f103是可以直接当arduino用的,ST-link下载器也是支持的。
编译并烧写的时候,出来一堆莫名其妙的字符,
应该是IDE编码格式的问题,这个不管它了,反正最后提示烧写成功就好。
拔掉ST-Link,把板子的USB插到电脑,这时候可以看到一个新硬件出现了
点开游戏控制器选项,可以做进一步设置
正常情况下,屏幕上虚拟的按键都没按下,并且摇杆在正中间。
我们把实体摇杆摇动一下,并把按键按下。
屏幕上虚拟的摇杆也跟着动了,并且按键也有反应
再校准一下这个摇杆的行程
点击显示原始参数的钩,可以看到摇杆是10位编码的。
虽然最高可以16位,但是没有这样的必要。
校准以后,摇杆应该就能正常应用于游戏了。
我找了个PSP模拟器测试,叫PPSSPP。
测试了一下《噬神者》游戏,操作正常。
后续可以再加几个按键,用3d打印个外壳,就是个正常游戏手柄了