【RT-Thread作品秀】家庭照明控制系统
作者:汪文龙
概述
普通的照明系统开关太多,整合到一处会方便一些
开发环境
硬件:ART PI
RT-Thread版本: 4.0.2
开发工具及版本:RTT studio
RT-Thread使用情况概述
内核: main进程,touchgfx进程,messagequeue,
组件:touch设备驱动程序
软件包:ft5426驱动包
硬件:IIC
库:TouchGFX Library
硬件框架
ART PI开发板,引脚A1, A2,A3,A6,A7灌流方式驱动5个LED灯珠。灯珠共阳。
软件框架说明
RTT和TouchGFX初始化完成后,每当屏幕上的滑块滑动,都会调用相应的回调函数。在回调函数里改变相应灯珠的PWM值
软件模块说明
TouchGFX:在touchgfxdesigner里创建五个滑块,并且设置相应的 interaction。生成的虚函数在xxxviewbase.hpp, 将这个虚 函数在 xxxview.hpp里继承,xxxview.cpp里实现即可。
PWM调光:由于尝试使用PWM设备不成功,这里使用的是软件调光。开 一条进程刷就行。
演示效果
演示视频:
比赛感悟
这次比赛, 是我第一次接触RTT这款国产操作系统。在此之前,我使用过,ucos,freertos,和cmsis封装过的freertos。在内核方面的区别,印象比较深刻的也只有RTT的消息队列多了一个发送紧急消息,这个功能在实际应用中应该是非常有效的。另一个区别是队列类的内核对象可以按优先级排列出队。其实总体来说,RTT内核和其他的操作系统感觉差别不大。让我感到惊艳的是RTT的生态环境太好了,适配了那么多的驱动,有那么多活跃的大佬在为我们这些入门小白服务,给RTT的“客服”们点赞。
当然,问题也是有的,比如RTT在配置env控制台中未出现的选项时候,就比较头痛。我的项目里需要用到PWM,Kconfig文件修改卡了我好几天,最终还是选择放弃,pwm用进程实现(幸好不是什么非常精准的pwm控制)。希望RTT可以在这方面优化一下,简化一下操作。
PS:源码在Gitee里,链接已经放上了。
电路过于简单,五颗用引脚驱动的LED。在代码里一目了然。就不放了。
感谢RTT交流群里大佬,kk,王海靖,李子木,私聊不回,感谢你们的帮助。