原创 [原创]用STM32 199元的开发板来玩俄罗斯方块

2010-3-28 15:57 4837 4 6 分类: MCU/ 嵌入式

开发板是万利的那个带有ST-Link2的199开发板  STM3210B-LK1
上面有一块STM32F103VBT6,这个片子有128K的Flash,20K的RAM
开发板上面可以用到的资源
·1 个LCD 显示,通过跳线选择连接LCD
·四个LED 发光管
·一个五方向输入摇杆
·两个GPIO 按键



可惜那个LCD是米字的LCD,如果是点阵的话,就可以在它上面画图了
不过不要紧,我之前做了一个OLed显示的小东西http://blog.ednchina.com/lxyppc/725361/message.aspx
在调试它的UI的时候我把开发板虚拟成了一个USB设备,并将数据以摄像头的格式发送上来,这样我就可以在电脑上直接调试了。
受此思路影响,只需要将游戏图像数据转换成摄像头数据发送上来,这样就解决了没有显示屏的问题,实际上把电脑显示器当成了显示屏。


最后我将这块开发板虚拟成了一个USB摄像头和一个USB鼠标,不玩游戏的时候可做鼠标用。游戏的时候画面通过摄像头传到电脑上来。


未来计划:
拆解一个USB的游戏手柄,将里面的主控芯片换成STM32,在实现手柄所有功能的同时,虚拟出一个摄像头设备让游戏手柄变成“游戏”手柄。
现在已经成功虚拟出了一个摄像头和一个鼠标设备,剩下来要做的只需要考虑在硬件上怎样改造手柄。


Hex文件下载 https://static.assets-stash.eet-china.com/album/old-resources/2010/3/28/06e6dadb-085d-4b76-a832-551890e9888d.zip 


直接下载到万利199元的开发板中,然后重新插拔一次USB线。
会发现一个USB摄像头,和一个USB鼠标。未打开摄像头时可当鼠标使用,打开摄像头后即可开始游戏。关闭摄像头游戏自动暂停。


资源使用情况


  9 568 bytes of CODE  memory
  4 855 bytes of DATA  memory
 34 646 bytes of CONST memory


游戏说明:
当USB摄像头没有打开时:五方向输入摇杆控制鼠标的上下左右,KEY2为鼠标左键,KEY3为鼠标右键
当USB摄像头打开时:左右键移动方块,向上旋转方块,向下方块快速下落,KEY2为开始/暂停


工程源代码在Google Code上
http://code.google.com/p/lxyppc-tetrix/


SVN CheckOut地址(read Only):
http://lxyppc-tetrix.googlecode.com/svn/trunk



游戏“快照”


a0e4d8ea-13ed-4a40-9cac-c695fee48a0d.jpg


01a21597-30af-4f16-82f2-7cf24c4c22dc.jpg


5a73a9db-f1eb-49ff-a2b0-6b76d8c91b2f.jpg

文章评论2条评论)

登录后参与讨论

用户377235 2012-7-28 13:09

这都能想到 发虚拟视频 厉害厉害

tengjingshu_112148725 2010-4-9 00:31

不得不佩服博主
相关推荐阅读
用户236335 2011-05-16 17:36
[原创]操作DS18B20的程序(C写的 带ROMSearch和CRC校验)
调试环境:MPLAB 7.5PICC  8.05 PL1PIC16F88,DS18B20 两颗,晶振4MHz(如换其它晶振,需要更改WriteBit和ReadBit中的等待操作以及延时函数)我只有两颗...
用户236335 2011-04-08 09:17
[原创]用PIC10F200实现三色LED亮度调节
10F200资源:一个8位timer,一个WDT可以工作在 2.0~5.5V内置晶振,单一频率4MHz 精度1%三个IO,一个Input指令空间: 255目标:使用串口通讯方式,波特率38400,8位...
用户236335 2010-04-09 16:35
[原创]DIY一个多功能手柄
打造一个属于自己的多功能手柄多功能手柄的视频演示http://v.youku.com/v_show/id_XMTYyOTcwNjUy.html预览小结:芯片: STM32F103C8T6,MMA726...
用户236335 2010-04-09 14:12
[原创]STM32迷你OLed显示屏
之前买了几块128X64的OLed屏,用开发板驱动起来玩了一下,感觉显示效果还蛮不错的去赛格逛的时候又看到了这么一个小盒子,比划了一下觉得把这个屏放进去还能加点东西在上面盒子内部大小为44mm X 2...
用户236335 2010-04-07 23:28
FPM不能使用?(Foot Print Maker)别急,那是作者的小玩笑
用Candence来画PCB很不错,但是做封装很麻烦还好有人做了一个免费的小软件FPM(Foot Print Maker),用来生成封装很方便但是作者开了个小玩笑,0.0.8.0版本的从2010年4月...
我要评论
2
4
关闭 站长推荐上一条 /2 下一条