打造一个属于自己的多功能手柄
多功能手柄的视频演示
http://v.youku.com/v_show/id_XMTYyOTcwNjUy.html
预览
小结:
芯片: STM32F103C8T6,MMA7260,PAM3101DBA330
手柄与芯片连接定义:
L1 => GPIOA_6
L2 => GPIOA_7
R1 => GPIOB_6
R2 => GPIOA_0
Key1 => GPIOB_5
Key2 => GPIOB_4
Key3 => GPIOA_15
Key4 => GPIOA_4
Left => GPIOB_1
Up => GPIOC_14
Right => GPIOB_0
Down => GPIOB_10
Start => GPIOC_15
Select => GPIOB_7
SourceCodes: SuperJoystick
SVN CheckOut地址: http://lxyppc-tetrix.googlecode.com/svn/trunk/SuperJoystick/
STM32电路板原理图:点击下载
项目由来:
平时喜欢上网看看贴子,玩玩街机模拟器里面的游戏,看看电影什么的。玩游戏的时候用手柄,看电影网页用鼠标就行。偶尔会敲点网址,用户名密码什么的。一直在想要是有个东西能同时满足我的这些需要岂不是很完美。玩游戏的时候就是手柄,上网看电影的时候就是鼠标,而且想输入一些字符的时候还能客串一下键盘。
于是乎,我决定改造一个手柄来满足我的需求。因为鼠标不适合玩游戏,键盘又太大,只好从手柄下手了。
计划是手柄上加一个OLED屏,用来显示当前的工作状态,当作键盘使用的时候虚拟出一个软键盘,用来输入字符。
OLED显示部分直接从我之前的一个项目里面提取出来 [原创]STM32迷你OLed显示屏
决定使用这个项目打样没用完的电路板,这样还能把加速度传感器的功能集成在手柄里面。
当然了,之前在 [原创]用STM32 199元的开发板来玩俄罗斯方块 这个项目里面有提到要把俄罗斯方块游戏移植到手柄里面,这里正好用来做这个手柄的内置游戏。
决定了要做什么之后就是选材料,由于有之前项目的支持,这里电路不用重新设计了,只要选择一个能放得下OLED屏和主控电路板的手柄就行了。
买了两个手柄回来,一个不知道什么是牌子的(Bosston?),还买了一个北通的带振动的。
拆开之后觉得那个杂牌的比较好改造,可以在前面开个方孔让OLED露出来,后面也有足够空间放STM32的电路板。
北通的线太多了,电路板也放不下,OLED显示屏也不好弄,决定在那个杂牌的手柄上做改造。
由于有之前项目的支持,这里电路不用重新设计了,只要选择一个能放得下OLED屏和主控电路板的手柄就行了。
Let's Go:
STM32电路板空板
STM32电路板焊好后
由于直接使用USB供电,因此不用焊接电源管理芯片以及他们的外围器件。0R的电阻都用的是一元件的引脚
焊好的板子通上电测试,跑的是之前的工程里面的代码
STM32电路板原理图。点击下载
由于没有用BQ24073,C7用一个0R电阻代替,VBUS直接接在V4v4上
没有用到的外围器件焊盘都用飞线引出来,以后接在手柄的焊盘上
手柄的内部构造
上面板
下面板
手柄的电路板,在除去他的主控芯片的时候不小心把板子弄断了,后用502重新粘上了
用飞线把STM32电路板和手柄电路板连起来
连上后打上胶固定
线飞完测试无误之后把电路板装在手柄里面,还好飞线的时候线都留得很长,放进去之后还可以绕一下
把JTAG调试口用三根线飞出来。没错,就是三根,SWD_CLK,SWD_IO, Vcc,因为J-Link和手柄插在同一台电脑上的,所以地线就省了。
装好后的样子
和它的上一个项目来一个合影
OLED显示的效果
再来一个,北通的手柄,这个是以后的改造目标
不过用STM32F103C8T6已经满足不了需求,需要的IO太多。而且已有的电路板和OLED也放不进去了,最好是能够重新做里面的整体电路板
用户1648059 2012-4-30 19:37
用户236335 2010-4-10 13:08
tengjingshu_112148725 2010-4-10 12:46