
stm32_arduboy_V1.0游戏机
简介
这个一个基于stm32f103c8t6的游戏机,软件是基于Arduboy2修改的,目前是第一版本,基本跑通,能运行一些游戏。
简介:这个一个基于stm32f103c8t6的游戏机,软件是基于Arduboy2修改的,目前是第一版本,基本跑通,能运行一些游戏。开源协议
:MIT License
描述
说明
这是一个基于stm32f103c8t6的游戏机,软件是基于Arduboy2修改的,目前是第一版本,基本跑通,能运行一些游戏。
不是arduino,是原生代码
介绍和制作的视频看这个:【stm32_arduboy_V1.0游戏机 - 介绍】
本人小菜鸟,搞着玩的,大家多提建议,后续还会陆续优化和添加新游戏, 这个版本的显示体验不好,不建议照我这个抄,可能换SSD1306的OLED会好一点
已经测试了,换SSD1306效果很好,这个版本先这样吧,后续版本再改进
目前已经能运行的demo/游戏(可能会有bug):
- BeepDemo
- Buttons
- FontDemo
- HelloWorld
- PlayTune
- RGBled
- SetSystemEEPROM
- ArduBreakout
- rund
- halloweend
- ID-34-Mystic-Balloon
- ShadowRunner
- Arduboy3D
- ardynia
- CastleBoy
- FlappyBall
成品展示
正面(其实是PCB的bottom):
背面(其实是PCB的top):
现在调试阶段,没有把电池装上,用USB供电,需要把跳线帽调到USB供电,原理图是这个
对应实物是
调试和烧写代码需要用JLINK连接调试的排针,不调试不要焊接这个排针,如下图
软件源代码仓库
软件代码会开源到如下位置: https://gitee.com/lambda_zhang/arduboy2_stm32
当前版本存在的问题
- LCD用的ST7567,显示明显的拖影,准备下个版本换掉
- 蜂鸣器代码还没有调通
- 电池还没有测试
- USB还没有测试
- E2PROM和Flash还没有测试
硬件说明
- 为什么使用stm32f103c8t6 ?因为手头刚好有一片,并且stm32f103c8t6挺便宜的,也好焊接。但是Arduboy2没有找到能运行在stm32上的版本,软件只能自己搞移植
- 为什么是2个蜂鸣器?因为看代码里面写的有2个, 目前声音的代码还没有调好
- 为什么有3个LED?因为也是看代码里面写的有3个
- 为什么有一个E2PROM,有一个Flash?E2PROM是看代码里面写的,Flash是看别人有我也放一个,虽然目前还没有用起来,后续可能不需要E2PROM,只需要公用Flash
- 为什么有一个『reset』有一个『VLO』? 『reset』是单片机的reset,『VOL』是后面用作开关声音的,『VOL』现在还没有开发代码
- 为什么使用ST7567的LCD,不使用代码写的SSD1306? 因为手头刚好有几片ST7567的LCD
- 为什么板子做这么大,别人都是往小了做?因为刚好有一个电池,这个电池挺大,照着电池尺寸做的
- 每部分电路是否可靠?我不是搞硬件的,每个部分的电路都是网上各种抄的,各种走线规则啥的更是不会,只要连在一起就认为好了
- 焊接怎么搞的?自己买焊锡浆、买加热台手工搞的
- 为什么不用Type-C的USB?手艺不行,感觉焊不了,所以选简单点的
软件说明
- stm32f103的开发环境我只有ubuntu环境,windows的我也不会。软件需要准备的开发环境:
- ubuntu版本的 STM32CubeMX
- gcc-arm-none-eabi-10.3-2021.10
- openocd + JLINK
- VSCODE
- Arduboy2 是基于arduino的,为什么我不用?因为我不会arduino,这个要学还要时间(关键是懒),干脆自己移植一个gcc+makefile的版本
- 软件的工程是基于STM32CubeMX生成的Makefile项目,为什么不用其他的环境?其他的还是不会,我只是简单的会gcc+makefile
- 从arduino移植需要哪些修改?我是直接编译,报错之后解决错误
- 游戏移植需要哪些修改?网上找源码,也是直接编译,报错之后解决错误
- 是否支持把很多游戏存flash选了哪个运行哪个?目前不支持,后续有时间了搞,目前是编译之后烧到单片机里面,换游戏就要重新烧
成本计算
LCD买的老王家的10个连邮费22
PCB总共6片20
其他元器件连邮费60.96
stm32是之前的剩下的,部分电阻电容也是之前的
总结:这个有点算不清楚,就这样吧。。。
另外在立创商城买上面的器件居然提示我这个!!
设计图

BOM


评论