摘 要:本文設計了基于Arduino的可移動鬧鐘控制系統。在硬件設計方面,該系統采用Arduino主控芯片、顯示模塊、超聲波模塊、蜂鳴器模塊、電機模塊和藍牙模塊等;在軟件設計方面,通過向Arduino主控芯片燒錄代碼,完成對該系統的控制。測試結果表明,該系統具有可移動、可避障、無線通信等功能。
關鍵詞:Arduino;鬧鐘控制;移動;避障;無線通信;DS1302
中圖分類號:TP271 文獻標識碼:A 文章編號:2095-1302(2024)04-00-03
DOI:10.16667/j.issn.2095-1302.2024.04.016
0 引 言
鬧鐘已成為提醒人們的重要工具,但是傳統鬧鐘的功能較為單一,例如:人們常采用鬧鐘作為提醒起床的工具,但在鬧鐘響起時,許多人會隨手關掉繼續睡覺,使鬧鐘無法發揮應有功能[1-2]。
如今,功能豐富的智能家居產品已逐步走進人們的生
活[3],針對上述問題,本文設計了一種可無線連接、可移動、可避障的鬧鐘系統,用戶必須捕獲移動中的鬧鐘才能使其停止工作,進而達到提醒用戶的目的。
1 系統整體架構
可移動鬧鐘控制系統的整體架構如圖1所示。該系統包括主控芯片、時鐘芯片、顯示模塊、超聲波模塊、蜂鳴器模塊、電機模塊和藍牙模塊。
該系統的主要功能包括手機通過藍牙模塊實現無線連接和通信,日期設置和顯示,通過超聲波模塊識別障礙物,借助電機模塊完成系統的移動控制等。
2 系統的硬件設計
2.1 主控芯片
系統采用型號為Arduino Uno的開發板[4],系統的主控芯片為該開發板中的8位ATmega328微處理器,ATmega328微處理器內含32 KB FLASH、2 KB SRAM、1 KB E2PROM以及16 MHz時鐘頻率。Arduino Uno開發板還包含如下模塊:
(1)USB接口:與計算機連接,可用于程序下載和供電。
(2)外接電源:一般使用9 V電源供電。
(3)電源管腳:可通過Vin給開發板供電。
(4)模擬輸入:6個模擬輸入口。
(5)數字I/O:14個數字I/O管腳。
在計算機上安裝Arduino的開發環境后,計算機即可通過USB接口向開發板燒錄程序。
2.2 時鐘芯片
系統采用的時鐘芯片為DALLAS公司推出的DS1302,該芯片能實現年、月、日、時、分、秒等的計時[3-6],并配備主電源和后備電源,以確保時間和日期等數據能夠長期保存。
DS1302時鐘芯片與Arduino Uno開發板的連接見表1所列。
2.3 顯示模塊
系統采用的顯示模塊為OLED顯示屏[7],用以顯示日期、時間等信息。OLED顯示屏的驅動芯片為SSD1306,其屏幕分辨率為128×64,顯示屏采用發光二極管點陣顯示信息。OLED顯示屏與Arduino完全兼容,將OLED顯示屏的GND、VCC、SCL和SDA與Arduino Uno開發板的相應引腳連接后,OLED顯示屏和Arduino Uno開發板即可通過I2C(Inter-Integrated Circuit)協議通信。
2.4 超聲波模塊
系統采用HC-SR04超聲波模塊。HC-SR04模塊的測距精度可達3 mm,該模塊包括控制電路、超聲波發射器與接收器。將HC-SR04模塊的TRIG和ECHO引腳與Arduino Uno開發板的數字I/O連接后,在Arduino Uno開發板的控制下,該模塊發出40 kHz的超聲波,當超聲波被前方障礙物反射回來后,通過計算觸發信號和回響信號間的時間差來判斷障礙物的距離[8]。
2.5 蜂鳴器模塊
系統采用MH-FMD蜂鳴器模塊,該模塊用于發出警報聲。蜂鳴器根據是否含有振蕩源分為無源蜂鳴器和有源蜂鳴器兩類。無源蜂鳴器具有價格低、聲音頻率可控等優點,缺點是必須采用頻率為2~5 kHz的方波驅動。有源蜂鳴器雖然價格較高,但其程序控制較為方便。本系統選擇有源蜂鳴器作為報警模塊。該模塊的正極、負極和I/O口分別與Arduino Uno開發板的VCC、GND和數字I/O連接,Arduino Uno開發板根據預設條件來控制MH-FMD模塊是否發出警報聲[9]。
2.6 電機模塊
電機模塊用來控制系統移動,配合前述超聲波模塊可實現系統自動避障。該電機模塊由L298N電機驅動芯片和H-Bridge橋控制直流電機組成。
L298N芯片可驅動1臺兩相(或四相)步進電機或2臺直流電機。
H-Bridge橋控制直流電機在L298N電機驅動芯片的控制下轉動。在直流電機轉速的調節方面,電機轉速由L298N芯片通過IN1/IN2、IN3/IN4接口向直流電機輸入脈沖寬度調制(Pulse Width Modulation, PWM)信號進行調節。在直流電機的正反轉控制方面,當L298N芯片向直流電機輸出信號IN1=HIGH、IN2=LOW時,直流電機正轉;當IN1=LOW、IN2=HIGH時,直流電機反轉。
2.7 藍牙模塊
系統采用HC-05藍牙模塊,手機端可通過內置藍牙模塊與系統進行無線連接和通信,進而實現手機對系統的設置和控制[10]。
HC-05模塊的VCC、GND、TXD和RXD分別與Arduino Uno開發板的VCC、GND和數字I/O連接。HC-05模塊具有如下2種工作模式:
(1)正常模式。用于藍牙通信。
(2)AT模式。在該模式下,Arduino Uno開發板通過串口向HC-05模塊發送AT指令,用于配置藍牙模塊參數,包括:藍牙模塊名稱、配對密碼、通信頻率等[11-13]。
3 系統的軟件設計
3.1 系統主流程
系統控制主流程如圖2所示。
系統上電后,對Arduino Uno開發板以及各模塊進行初始化。初始化結束后,系統的初始日期和時間由Arduino Uno開發板從DS1302時鐘芯片獲取并在OLED顯示屏上顯示,或者通過手機APP進行設置。本文采用wxbit工具在手機端開發APP,并通過APP實現手機端與系統間的無線通信。
當用戶設置的鬧鐘時間到時,鬧鐘會自動響起;當用戶設置的時間未到時,會返回時間顯示。
當鬧鐘響起時,執行鬧鐘移動程序,進行鬧鐘移動控制。當鬧鐘被關掉后,回到程序初始處。
3.2 鬧鐘移動控制流程
鬧鐘移動控制流程如圖3所示。
鬧鐘響起后,鬧鐘會向前移動。鬧鐘在移動過程中通過HC-SR04超聲波模塊來進行有無障礙物判斷。本系統采用順時針規避法避障,當鬧鐘前方存在障礙物時,鬧鐘會執行右轉命令,并向前移動;若右轉后前方仍然存在障礙物,則繼續執行右轉命令直至前方無障礙物。當鬧鐘前方不存在障礙物時,鬧鐘會一直向前移動。避障成功后,鬧鐘繼續移動。若用戶成功捕獲鬧鐘并按下停止鍵,鬧鐘停止移動;反之鬧鐘持續向前移動[14-15]。
4 結 語
本文設計了一款有趣的可移動鬧鐘,在鬧鐘的基礎功能上增加了可移動和自動避障功能。經運行測試,預想的鬧鐘功能均可實現。該系統運行穩定、能耗低,可以被廣泛應用到實際生活中。
參考文獻
[1]蘭波萬. Clocky:會跑鬧鐘的營銷創新課[J].市場觀察,2012,26(2):63.
[2]君堯.今天你的鬧鐘響了幾次[J].青少年科技博覽,2022,30(1):22.
[3]張長春.項目教學法在單片機應用技術課程中的應用研究[J].職業,2022,29(23):66-68.
[4]崔彥.單片機在電子技術中的優化應用[J].集成電路應用,2022,39(11):142-143.
[5]邵林,牛偉納,張小松.物聯網應用場景下自助終端網絡安全威脅評估與應對[J].四川大學學報(自然科學版),2023,60(1):103-113.
[6]段露星,馮治杰,付瑞玲.多功能鬧鐘設計[J].黃河科技學院學
報,2022,24(8):80-83.
[7]朱廣,黎海濤,馬銀童,等.低功耗物聯網網關設計與實現[J].國外電子測量技術,2016,35(6):31-36.
[8]鄭偉林.物聯網應用實踐與信息通信技術供應鏈安全管理[J].數字技術與應用,2022,40(12):141-143.
[9] BEDROSIAN B.聯網家庭:無線連接技術是最大的推動力[J].電子產品世界,2016,23(1):11-12.
[10]紐斯.測試無線連接性能在汽車研發制造中成為關鍵[J].汽車與配件,2018,38(8):57.
[11]羅云貴.會跑的鬧鐘的設計[J].電子世界,2013,12(6):109.
[12]施永貴.可配置物聯網網關設計與實現[J].物聯網技術,2022,12(6):51-54.
[13]郝建軍. 5G時代物聯網前景展望[J].單片機與嵌入式系統應用,2021,21(7):3.
[14]周晉,李建軍,王銳.工業物聯網無線化趨勢淺析[J].物聯網技術,2021,11(6):84-86.
[15]江志紅. AVR單片機系統開發實用案例精選[M].北京: 北京航空航天大學出版社,2010.
收稿日期:2023-04-07 修回日期:2023-05-16
基金項目:貴州省大學生創新創業訓練計劃項目(S2022142230 92);貴州省教育廳自然科學研究項目(黔教技〔2022〕029號);貴州省教育廳自然科學研究項目(黔教合KY字[2021]022)
作者簡介:邵嬌嬌(2002—),女,貴州安順人,本科,學生。
王 雪(2000—),女,貴州黔西南人,本科,學生。
崔忠偉(1980—),男,貴州銅仁人,博士,教授,主要研究方向為物聯網、機器視覺。
冉思彬(2001—),女,貴州遵義人,本科,學生。
羅 琛(2001—),男,貴州六盤水人,本科,學生。
羅小悶(2001—),女,貴州黔西南人,本科,學生。