擦嘞!!!一下子就3个月过去了,要说进度为什么这么慢,真不是我偷懒,是这3个月真是太多事了。工作日天天加班,周末又要研究装修的事,一周也就能有个半天,一天时间才能搞搞/(ㄒoㄒ)/~~
不过不要紧,好在还算完成了一些内容:
完成按键框架开发
- 支持按键消抖
- 支持长按保持、长按连续触发、单击、双击等按键识别
- 支持按键按下触发、释放触发选择
- 支持组合按键功能
- 支持按键缓存
为了处理按键扫描与按键消抖,按键处理程序由硬件定时器以5ms为周期调用,一旦扫描到按键,则会将判断出来的按键功能缓存起来,主循环中会读取缓存的按键功能,进行对应的处理。
完成消息总线开发
- 发布、订阅模式
- 用于不同界面下按键功能的消息发布
系统启动时会将所有用到的按键功能(单机、双击、长按等)注册到消息总线上,当某个功能模块需要使用到某一按键功能时则可以订阅对应的按键功能,并提供对应的处理函数,则在按键按下后,消息总线会将该消息发送至所有订阅者,并调用对应的处理函数,这样就可以轻松实现在不同界面下使用对应的按键功能。
完成软件定时器功能
- 理论上支持开启任意多个定时器
完成烙铁控制功能
- 实现分段加热机制
- 实现温度的PID控制(基础PID+积分分离+抗积分饱和+不完全微分)
为了尽可能提高烙铁升温速度,采用分段加热机制,在target*[factor]的温度范围采用全功率加热,target*[factor]-target之间则pid介入,factor的值确定需要通过室验确定,由于温度属于惯性系统,停止加热并不会立即停止温度上升,因此factor的选择需要满足:在T1停止加热后,温度不会在T2时过冲。
PID采用增量式PID,同时为了提高PID抗干扰能力,在基础PID算法上添加了积分分离、抗积分饱和、不完全微分来提高温度控制的快速、稳定。抽象出PID控制器,方便后续同时支持烙铁温度校准与温度控制。
完成温度校准功能
- 支持非线性温度校准曲线
- 校准温度PID精确控制
采集了一些adc值对应的实际温度,发现并不是特别线性,于是决定采用4个点进行曲线拟合来模拟真实的温度曲线,这样既降低了温度校准的难度,也能相对精确的描述温度曲线。
蜂鸣器框架
- 支持音调频率,时长调整
- 蜂鸣器异步驱动,不占用按键处理资源
后续计划
- 实现配置文件管理(基于stm32的flash模拟eeprom)
- 实现无界面下,能够正常工作。
- 精简代码,为GUI腾出资源
- 实现LVGL各个界面
- PCB修改,打样,元器件焊接
- 外壳结构优化,3D打印,试装
PS:
为了调试,趁着双十一,买了个Rigol示波器,双通道,100M 1G采样率,才1200,真香!!
你的文章充满了智慧,让人敬佩。 https://www.yonboz.com/video/75605.html
你的文章让我感受到了正能量,非常棒! https://www.yonboz.com/video/68572.html
你的文章让我学到了很多技能,非常实用。 http://www.55baobei.com/YiMLFsmPZa.html
赞博主的坚持,关注了