原创来源:立创开源硬件平台

工程名称:【2023星火计划】计时骰子

工程作者:jackiecoo

前言

这,是一个简单的、高颜值的、实用的、教程级的开源项目!

就算你是小白!也可以搞定!

工程描述

用GD32F303和做了一个漂亮的骰子,有计时功能!通过姿态感应计时:

下文就分析一下,这个骰子的组成结构是怎样的?硬件设计原理是怎样的?外观设计又有什么巧思?

骰子组成

为了实现【姿态感应计时+好看的外观】,对骰子的外部和内部做了如下规划:

骰子外部由圆形屏幕和两个按钮组成。

骰子内部由姿态传感器、蜂鸣器、充放电管理电路、电量监测电路组成。

· 屏幕用于显示时间;

· 按钮用于交互;

· 姿态传感器是翻转计时的关键;

· 蜂鸣器用于发出提示;

· 充放电管理电路和电量监测电路用于锂电池供电需求。

硬件设计说明

骰子的电路部分由两块PCB板组成。

这是设计电路前的思维导图:

下文将对主要的6个电路模块,进行说明

01电源部分

电源部分由锂电池供电,用LDO进行降压。

电源部分的芯片选择ME611C33M5G-N,最大输出电流500mA

充放电部分的设计有一定讲究,我希望:

· 在骰子正常工作时,锂电池单独供电;

· 当用户插入USB接口时,断开锂电池对板子的供电。

因为需要USB接口在为锂电池充电的同时也为板子供电,所以我设计了如下的供电切换电路。

图中的MOS管为PMOS。

· 当USB接口(VBUS)不输入时,电池(VBAT)的电流可以顺利到VIN;

· 当USB接口被接入时,MOS管关闭,此时只有USB接口电流到VIN

VBUS与VIN之间有二极管,防止VBAT对VBUS有灌电流;B5819W这个二极管的压降通常可以达到550mA以上,对于这种小电压的电路还是蛮大的。介意的话可以换成SS14,压降只有500mA左右,参数除压降外都一样,但体积会更大。

锂电池充电电路一般按照数据手册上画即可,反馈电阻(PROG)选择1.5kΩ,充电电流就是最高的800mA

电池的电量监测用一个串联分压,将电池电压减一半,只要满电电压小于单片机的3.3V就可以了。

02主控部分

主控一般也是按照数据手册设计即可,额外增加了外部晶振,让定时更精确

值得一提的是:ADC的供电和地用0Ω电阻做了一个隔离,这样可以提高抗干扰性

03姿态传感器

姿态传感器在原理图上使用的是MPU6500,但预留了一个可以插MPU6050的排母口。

之所以这样设计是因为MPU6500和MPU6050都是QFN封装,手工焊极难,但可以接一个现成的模块。

04屏幕

屏幕的驱动芯片为GC9A01,使用的是SPI进行通信,240x240的分辨率。

我在主板上引出了一个FPC的接口连接屏幕,再将屏幕固定在副板上。

注意!如果要使用硬件SPI与屏幕通信,必须加上拉电阻!

05用户按键

用户按键在副板上的,通过FPC与主板连接。

按钮是全金属的防水按键,比较耐用。

电路中也加了一个双向瞬态抑制二极管用于保护电路

06蜂鸣器

这里采用有源蜂鸣器。

能少焊一个元件是一个,所以这里使用一个三极管控制开关

骰子外观设计

这是焊好的PCB板。

简单移植一个LVGL验证了一下。

组装完成后的实物图。

这是我第一次设计外壳。

我根据一些尝试,做了纯3D打印的方案。

外壳的设计文件已经开源参考【开源资料下载入口】章节提示下载!

开源资料下载入口

需要参考【电路+外壳】源文件,请复制链接,去原工程下载查看:

https://oshwhub.com/jackiecoo/xing-huo-ji-hua-ji-shi-tou-zi

也可以顺便给作者点个赞!


展开阅读全文