
图一乐小助手1.1
简介
图一乐小助手1.1,是上上上次图一乐游戏机1.0的部分修正版,使用GD32E230C8T6
简介:图一乐小助手1.1,是上上上次图一乐游戏机1.0的部分修正版,使用GD32E230C8T6开源协议
:GPL 3.0
描述
一、前言:
感谢嘉立创的活动!
感谢嘉立创的50元器件券,20元打板券!
本次活动,我既要又要,既想要嘉立创的券,又想弄一个与主题擦边的能整合我之前学习内容的东西,最后弄出来的结果比较勉强,是妥协的产物。
上上上次的图一乐1.0,我在原有简易数字示波器的结构上软件写了一个简易的棋类游戏,在显示方面又用了TFT彩屏又用了数码管(后者当时只是觉得只是核心板按钮屏幕太单调,此外为了验证一下595级联工作的代码于是十分鸡肋地添加了数码管),这次的1.1版本我就把数码管去掉了
上上上次的图一乐1.0,我直接把蜂鸣器(单个的蜂鸣器而不是模块)连到了IO口上,但经过上次的新年音乐播放器我知道我原来的电路有误,所以这次的1.1版本蜂鸣器电路也改了
这次因为主题是“智能便携”我能力有限,唯一会的就是压缩体积,所以我这次把核心板放到屏幕的背面,体积小一点,这样与主题好歹也有关联
我本来是准备继续用STM32F103C8T6的,因为蜂鸣器代码已经有了,我移植好了SHT40后TFT彩屏死活都是花屏,为了完成度,我换成GD32E230C8T6,这样TFT相关代码直接可以用,只需要移植蜂鸣器代码和SHT40代码,但是我太菜了,前者成功了但后者还是有问题
最后为啥是图一乐1.1只比1.0多了0.1?就是因为变化不算大,有点愧对江东父老了
二、功能介绍:
- 从右下到左上的三个按键分别为“选择”“确认”“待定”,这里也用到了多级菜单,只不过是把OLED上的情况迁移到TFT上,有关“选择”“确认”按键在多级菜单中起到的作用,参见上次开源“暖冬-新年音乐播放器”的“功能介绍”
- 本来预期是在菜单中直接选择播放音乐(目前只有上次留下的金蛇狂舞)或者玩“鬼怪棋”那个游戏,但是目前后者在按键方面代码有些问题(原本是中断,为多级菜单改成轮询后游戏里的按键作用出问题了),不过直接下载上上上次的图一乐1.0代码还是可以玩那个游戏的(只是播放音乐和玩那个游戏就需要两个代码了)
三、参考资料:
1)蜂鸣器相关电路参考微信公众号“硬件笔记本”
2)多级菜单参考B站up主:_WNNN
3)其余主要参考上上上次的图一乐1.0
四、硬件(原理图):
【1、核心板电路】
核心板电路与上上上上上上次开源“简易数字示波器”的相应部分只多了SHT40相关的SCL和SDA(硬件IIC)和蜂鸣器引脚BEEP对应PA11,注意是能输出PWM波的引脚(TIM0-CH3)
【2、无源蜂鸣器驱动电路】
电路相关讲解参见上次开源“暖冬-新年音乐播放器”的相应部分,此不赘述
【3、TFT显示电路】
同上上上次开源“图一乐1.0”的相应部分
【4、其余电路】
其余电路略
五、硬件(PCB):
上图为PCB正面情况,可以看出屏幕在正面,核心板实际上在反面,蜂鸣器相关电路见缝插针
六、软件:
软件部分,多级菜单相关部分参见上次开源的“暖冬-新年音乐播放器”的相应部分,只不过这次把其中OLED显示的相关函数改成TFT相关的函数
如上图,原本的“简易数字示波器”那一期,TFT显示字符串要三行代码,这次为了将字符串显示函数放到多级菜单的代码里同时不能让它看上去太臃肿,于是让deepseek帮我把三行代码合并成一个函数,但是我这里指定了是白字黑底这一点需要注意
1)PWM波与蜂鸣器相关代码的解释参见上次开源的“暖冬-新年音乐播放器”的相应部分
2)鬼怪棋的玩法和代码解释参见上上上次开源的“图一乐1.0”的相应部分(注意目前想要玩这个游戏需要单独下载上上上次开源的“图一乐1.0”的代码)
七、实物制作注意事项:
1、【元件购买】
参见上上上次开源的“图一乐1.0”的相应部分
2、【焊接】
这次就不放焊接顺序了,总之先焊矮的再焊高的,对于排针和排母这种我一般先在正面用热熔胶固定一下避免它东倒西歪,然后再在反面将它焊上,不过这种方式有一个缺点就是用热熔胶固定之后容易以为自己已经焊接好了,直接进行下一步结果发现连到上面的模块不工作以为模块坏了结果是没有焊接,这样的错误我犯了不只一回,大家需要注意
八、过程中的问题解决:
SHT40迁移到STM32F103C8T6或者GD32
参考:
1)“温湿度检测仪”训练营的SHT40代码(HAL库,STM32G030K6T6,硬件IIC);
2)“立创·地阔星STM32F103C8T6开发板”模块移植手册“SHT30温湿度传感器”资料
步骤:
1)让Deepseek将训练营的SHT40代码转化成适合STM32F103C8T6使用软件IIC的标准库代码,然后将其与模块移植手册“SHT30温湿度传感器”资料中的代码做对比
2)本来想直接用一个i2c文件同时处理oled和sht40的情况,最后还是先分开为两个文件各自处理各自的
立创开发板地阔星STM32F103C8T6的资料里,对I2C的持续时间有要求
……
- 最后我放弃了软件I2C,让AI帮我写硬件IIC
- 写好硬件IIC后(此处省略一些字)
- 将TFT移植到STM32F103C8T6的过程中出了问题,于是改变思路,把多级菜单蜂鸣器和SHT40的代码移植到GD32E230C8T6里
注意:成品图像中我的旋转编码器看上去怪怪的是因为旋转编码器我是用金刚石线切割机把上上上次开源的“图一乐1.0”连编码器带底下的PCB板子一起切下,贴着这次板子的相应位置,用热熔胶固定后反面用焊锡在焊上,为什么这么做?问就是我用电烙铁和热风枪都试过但是都没有把它取下来,只能这样了
设计图

BOM


评论