梅蓉
【摘 要】相較于其他系統,Arduino表現出編程簡易、成本低、平臺跨越等一系列優勢,將其應用于智能小車設計具有十分重要的現實意義。文章通過闡述整體系統設計方案,對Arduino單片機智能小車硬件設計、軟件設計及示例功能的實現展開探討,旨在為促進智能小車設計的健康穩定發展提供必要借鑒。
【關鍵詞】Arduino;單片機;智能小車
【中圖分類號】PT29 【文獻標識碼】A 【文章編號】1674-0688(2019)02-0123-02
0 引言
依托各式各樣傳感器采集一系列信息,傳輸至主控單元Arduino單片機處理數據后實現相應操作,進而達到自身控制。電機驅動電路,借助H橋驅動模塊驅動2個直流電機;借助手機藍牙用戶界面、HC-06藍牙模塊實現藍牙控制;借助HC-SR04超聲波模塊、舵機模塊實現測距及避障,最后通過控制單元處理數據完成編程,并有效整合一系列模塊信號,實現相應操作,達到智能控制的目的,如同簡易機器人。
1 整體系統設計方案
相較于其他系統,Arduino表現出編程簡易、成本低、平臺跨越等諸多優勢。現階段,較為常用的Arduino版本為Arduino UNO R3,其高效性、穩定性可為智能小車設計提供有力支持。智能小車是指一款可對一系列實際狀況開展智能自主評估分析,進一步作出理想操作的智能機器。智能小車整體結構主要依托直流電動機驅動,將各式各樣傳感器采集的信息數據傳輸至主控單元Arduino單片機,單片機開展對應的數據處理分析,實現最理想的相應操作,這一過程可稱為智能化自身控制。
2 硬件設計
智能小車硬件環節以模塊化方式開展設計,設計內容主要包括電源模塊、電機驅動模塊、控制模塊、紅外收發模塊、LCD顯示模塊等。
電源模塊在全面系統設計中發揮至關重要的作用,該模塊設計穩定與否決定了全面系統設計的成敗。本系統的電源主要源自12 V、720 mA可充電式鋰電池,經由逆流保護、保險等手段變壓調整為其他電壓值,供其他模塊使用。電機驅動電源為12 V,Arduino單片機運行電壓為5 V,電機驅動模塊、顯示模塊、紅外收發模塊等運行電壓為5 V。另外,Arduino還可提供3.3 V、5 V雙電壓。
電機驅動模塊設計運用電機驅動芯片L298N,其包含兩個H橋的高電壓大電流全橋式驅動器,連接外部續流二極管保護電路,進而實現兩個電機的運動姿態控制。因為智能小車電機未設置轉速編碼盤或者相關傳感器,依托調節PWM輸出腳脈沖信號占空比,以實現對小車速度的控制。調節完PWM控制端后,變更控制信號輸入腳電平,便可使智能小車實現不同姿態的轉變。
控制模塊在全面系統中發揮至關重要的控制作用。系統設計應用Arduino單片機控制單元,通過主從通信方式實現對系統運行的有效控制。主從雙方依托SPI總線開展數據交互。模塊設計時,Arduino基于單片機控制核心,本模塊依據Arduino UNO開展設計。Arduino作用于控制命令關鍵詞的傳輸及從機數據的接收,但不直接參與底層硬件模塊的控制工作;單片機主要作用于主機傳輸來命令關鍵詞的接收,并結合各種命令執行對應的子函數,進一步實現不同的功能。
紅外收發模塊設計主要劃分為紅外發射頭、接收頭的驅動電路設計,其中,兩個紅外發射頭通過PNP三極管實現驅動,接收頭通過對應的指示燈實現數據接收指示。紅外發射頭設置于PCB頂部,接收頭設置于PCB底部,兩個接收頭接收面正對發射頭正前方,同時發射頭、接收頭呈相應角度列于智能小車頭部兩端,切實降低紅外信號誤接受率。與此同時,通過對紅外發射頭驅動電路中可調電阻的控制,可實現對紅外發射頭電流的有效調節。值得一提的是,依托紅外收發模塊,可實現智能小車的紅外避障功能。
LCD顯示模塊由LCD160、背光及對比度調節電路組成,其主要負責呈現智能小車執行相關功能的對應數據信息。該模塊設計過程中,依托四線制方式開展數據信息發送,可實現對單片機I/O端的有效控制。
3 軟件設計
3.1 主機程序設計
在主機程序設計過程中,涉及SPI連接、SPI通信初始化、SPI數據發送等關鍵函數,而主機與從機的SPI通信有效建立與否,則是實現其他功能函數的重要基礎。SPI總線初始化函數實現SPI功能初始化,涉及片選引腳選擇、輸入輸出模式設置、數據傳輸方式等內容。調節滿意后,loop主函數部分便可實現對相關功能庫函數的調用。期間會涉及片選信號端電平拉低、命令關鍵詞及數據傳輸、片選信號端電平拉電等流程,結合對應的時序實現對某一字節或若干字節數據的傳輸。
3.2 從機程序設計
從機程序設計可劃分為初始化調用、子函數調用兩個部分。單片機配置位設置涉及諸多方面內容,諸如選擇芯片振蕩器模式、禁用后臺調試器、調節數據區和引導區中相關數據保護與否等。單片機配置位調節結束后,從機的SPI初始化應當與主機SPI初始化通信時序保持統一。程序設計過程中,接收主機的數據通過中斷響應方式實現接收。接收完成后,依托關鍵命令字的分析轉至對應的子函數,然后經由數據分析實現底層硬件調節,進而實現各項功能。
4 示例功能實現
4.1 紅外避障
紅外避障是以Arduino兩組紅外收發器為基礎實現智能小車的自動避障功能。這一功能設計借助外部中斷、定時器中斷方式以檢測紅外接收頭的信號輸出腳電壓轉變情況,縮減紅外信號檢測滯后性,進一步增強智能小車對障礙物的檢測靈敏度。另外,可依托對PWM信號占空比的控制,以有效調節智能小車運動速度;可依托對智能小車避障動作延時參數、紅外發射頭可調電阻值的調節,實現對智能小車避障效果的有效調節。
4.2 藍牙遙控
藍牙遙控是以Arduino連接藍牙模塊及手機應用軟件藍牙遙控為基礎,實現手持設備遙控智能小車的功能。Arduino模塊經由串口接收藍牙模塊從設備端接收數據,并對其展開分析,然后將分析結果控制邏輯及應用軟件手勢控制邏輯開展評定處理,進而達到手持設備遙控智能小車的目的。依托手勢的不同方向操作,可實現智能小車的不同功能。手持設備控制軟件依托第三方設計應用軟件,可實現藍牙連接,并實現藍牙數據接收、傳輸等功能。
5 結語
基于Arduino單片機智能小車設計,主要是以Arduino單片機為核心,依托藍牙系統對Arduino單片機的反饋,從而實現對智能小車通信行動的智能控制,然后依托控制處理器對相關數據展開分析,進一步調節電動機的主驅動,以實現智能小車的紅外避障、藍牙遙控等智能化功能。因此,相關人員必須加大研究力度,不斷開拓創新,學習借鑒國內外成功經驗,提高對Arduino的有效認識,切實推進智能小車設計的健康穩定發展。
參 考 文 獻
[1]章杰瑞,周屹.基于Arduino和PIC單片機智能小車平臺的研究與設計[J].電腦知識與技術,2017(29):187-190.
[2]趙津,朱三超.基于Arduino單片機的智能避障小車設計[J].自動化與儀表,2013,28(5):1-4.
[3]陳開軍.基于Arduino技術的智能小車設計[J].科技創新與應用,2014(34):78-79.
[4]徐開軍,劉飛龍.基于Arduino平臺的多功能智能小車的設計[J].電子世界,2016(24):112-113.
[責任編輯:鐘聲賢]