【RT-Thread作品秀】家庭照明控制系統(tǒng)
作者:汪文龍
概述
普通的照明系統(tǒng)開(kāi)關(guān)太多,整合到一處會(huì)方便一些
開(kāi)發(fā)環(huán)境
硬件:ART PI
RT-Thread版本: 4.0.2
開(kāi)發(fā)工具及版本:RTT studio
RT-Thread使用情況概述
內(nèi)核: main進(jìn)程,touchgfx進(jìn)程,messagequeue,
組件:touch設(shè)備驅(qū)動(dòng)程序
軟件包:ft5426驅(qū)動(dòng)包
硬件:IIC
庫(kù):TouchGFX Library
硬件框架
ART PI開(kāi)發(fā)板,引腳A1, A2,A3,A6,A7灌流方式驅(qū)動(dòng)5個(gè)LED燈珠。燈珠共陽(yáng)。
軟件框架說(shuō)明
RTT和TouchGFX初始化完成后,每當(dāng)屏幕上的滑塊滑動(dòng),都會(huì)調(diào)用相應(yīng)的回調(diào)函數(shù)。在回調(diào)函數(shù)里改變相應(yīng)燈珠的PWM值
軟件模塊說(shuō)明
TouchGFX:在touchgfxdesigner里創(chuàng)建五個(gè)滑塊,并且設(shè)置相應(yīng)的 interaction。生成的虛函數(shù)在xxxviewbase.hpp, 將這個(gè)虛 函數(shù)在 xxxview.hpp里繼承,xxxview.cpp里實(shí)現(xiàn)即可。
PWM調(diào)光:由于嘗試使用PWM設(shè)備不成功,這里使用的是軟件調(diào)光。開(kāi) 一條進(jìn)程刷就行。
演示效果
演示視頻:
比賽感悟
這次比賽, 是我第一次接觸RTT這款國(guó)產(chǎn)操作系統(tǒng)。在此之前,我使用過(guò),ucos,freertos,和cmsis封裝過(guò)的freertos。在內(nèi)核方面的區(qū)別,印象比較深刻的也只有RTT的消息隊(duì)列多了一個(gè)發(fā)送緊急消息,這個(gè)功能在實(shí)際應(yīng)用中應(yīng)該是非常有效的。另一個(gè)區(qū)別是隊(duì)列類的內(nèi)核對(duì)象可以按優(yōu)先級(jí)排列出隊(duì)。其實(shí)總體來(lái)說(shuō),RTT內(nèi)核和其他的操作系統(tǒng)感覺(jué)差別不大。讓我感到驚艷的是RTT的生態(tài)環(huán)境太好了,適配了那么多的驅(qū)動(dòng),有那么多活躍的大佬在為我們這些入門(mén)小白服務(wù),給RTT的“客服”們點(diǎn)贊。
當(dāng)然,問(wèn)題也是有的,比如RTT在配置env控制臺(tái)中未出現(xiàn)的選項(xiàng)時(shí)候,就比較頭痛。我的項(xiàng)目里需要用到PWM,Kconfig文件修改卡了我好幾天,最終還是選擇放棄,pwm用進(jìn)程實(shí)現(xiàn)(幸好不是什么非常精準(zhǔn)的pwm控制)。希望RTT可以在這方面優(yōu)化一下,簡(jiǎn)化一下操作。
PS:源碼在Gitee里,鏈接已經(jīng)放上了。
電路過(guò)于簡(jiǎn)單,五顆用引腳驅(qū)動(dòng)的LED。在代碼里一目了然。就不放了。
感謝RTT交流群里大佬,kk,王海靖,李子木,私聊不回,感謝你們的幫助。