聚豐項目 > AB32VG1項目之智能晾衣架
本項目是解決實際生活中晾衣時,陽臺沿容易遮擋陽光及有人站在陽臺時,衣服又遮擋視線問題,給出的一個智能解決方案。主要實現的過程如下: 1. 曬衣過程,手動按鍵控制曬衣,這是一個基本的功能,具體過程就是開機后,要自動放下衣架,人放上衣服后,再按一下按鍵,升上衣架。 2. 一鍵收衣過程,手動控制及在任意模式下都可以收衣,具體過程為:無論是否在雷達控制下,都可以實現收衣,一般在雷達控制下,根據電機位置,可少轉一圈。雙擊按鍵后,進入收衣,先放下衣架,收衣完成后,再單擊按鍵,升上衣架。可以認為是曬衣的逆過程。 3.雷達控制晾衣高度,曬衣完成后,等待15后,會先降一圈(這樣可以避免陽臺上沿遮擋陽光,也就是曝曬模式)同時,打開雷達,檢測是否有人。有人的話就再升起衣架,進入一個循環周期。 這樣可以實現智能化的晾衣控制。
guangods
分享guangods
團隊成員
劉工 研發管理
rt-thread使用情況概述:整個方案涉及的技術棧有:硬件選型,PCB 設計,RT-Thread 程序,程序調試等。應該來說,硬件都是用到平時項目成熟的電路,所以這塊省了不少時間。就是一個邏輯控制調試。尤其是對電機位置所需要標志及不同線程間的協調,還是費了一些時間的
內核部分:使用了線程、消息、事件
軟件包部分:MultiButton(按鍵)
設備驅動:PWM,GPIO,外部中斷
核心模塊AB32VG1是藍牙控制一體的芯片,引出了非常多的引腳,使用起來非常方便,可以直接通過 USB 供電。但考慮到有一個12V的電機,所以還是選用了之前項目的測試板,上面可以輸出12V、5V、3.3V等電壓。這樣即可以驅動電機又可以驅動磁傳感器還可以直接帶個項目所需要的雷達檢測電路,還可以直接給AB32Vg1來供電。基本的ab32vg1管腳分配及功能說明如下。
搭建硬件電路,需要考慮到雷達的影響,因為雷達的頻率比較高為24GHz,所以對電源的穩定性有一定的要求。板子上的只有一路5V,除雷達外,還需要給AB32的板子供電,這塊是需要測試的。最終在程序中采用分時使用,這就避免了5V電源波動對雷達造成的誤觸發。
這個項目本身難度不是很大,主要用到了消息及事件,對電機的控制主要是通過消息,用以區分不同的轉動控制,而傳感器位置檢測則使用事件,這樣可以比較快的作出反應。整體的控制流程如下:
之前本來打算用溫濕度控制另一路電機,但實際意義實在是不是很大,能伸出窗外晾衣的陽臺不多,也聽從了別人的建議,所以就把溫濕度去掉了。線程基本上就是上面的線程,線程間通訊用的是消息,線程內用的是事件,難點在于電機位置的檢測及控制。要想流暢的運行,還是費把勁的。
程序運行邏輯流程圖如下:
這個項目邏輯總體實現起來,還是比較清晰的,實施過程中,主要還是對ab芯片外部中斷使用時遇到一些問題,具體總結在博客中,詳見https://blog.csdn.net/guangod/article/details/121536624。其他根據流程圖寫就行了。通過這個項目,再次熟悉了rtt,之前本打算基于nano開發的,但考慮到對芯片實在是不熟悉,在寫了一個測試程序后,就沒在nano下實現。同時,也鍛煉了程序的調試能力,感到非常的有收獲。