程招招+馬超+武少卿+劉帥
摘 要:將STM32F103C8T6作為主控制器,結合體感識別技術,設計的機械手臂具有體積小、操作簡單、可靠性高、可擴展性強等優(yōu)點,能夠較好地滿足對機械手可靠遙控的要求,具有較大的應用推廣價值。
關鍵詞:嵌入式控制;體感技術;iNEMO慣性模塊;無線控制
中圖分類號:TP242 文獻標識碼:A DOI:10.15913/j.cnki.kjycx.2016.08.011
隨著科學技術的快速發(fā)展,智能機械手臂裝置被廣泛應用于實際生產(chǎn)生活當中,基于體感技術的智能機械裝置層出不窮。傳統(tǒng)的機械手一般都是采用PLC控制的,而本設計則采用模塊化機械裝置組裝機械手,是基于單片機的無線控制,利用STM32F103C8T6作為主控制器,采用iNEMO慣性傳感器模塊實現(xiàn)體感信息檢測、nRF24L01模塊完成無線通信和12864液晶顯示模塊實現(xiàn)狀態(tài)顯示。同時,利用體感識別技術來取代傳統(tǒng)的按鍵控制,有效地減少了硬件設備的投放,簡化了系統(tǒng),具有體積小、操作簡單、可靠性強等特點。體感技術的優(yōu)勢在于人們可以用肢體直接與周邊的裝置或環(huán)境互動,而無需使用任何復雜的控制設備,便可讓人們身臨其境地與內(nèi)容互動。依照體感方式和原理的不同,可以將體感技術分為三大類,即慣性感測、光學感測、慣性及光學聯(lián)合感測。本設計中采用慣性感測的原理對手部姿勢進行檢測,從而實現(xiàn)體感控制。
1 系統(tǒng)方案及整體構架
本設計采用ST公司具有Cortex-M3內(nèi)核的ARM控制器STM32F103C8T6作為主控制器,采用ST公司的iNEMO慣性導航模塊進行手部姿態(tài)檢測,采用nRF24L01無線模塊實現(xiàn)指令的發(fā)送和數(shù)據(jù)的接收,采用12864液晶顯示模塊顯示當前的控制指令、機器人狀態(tài)和剩余電量,采用LED和
蜂鳴器實現(xiàn)提示和報警功能。主控系統(tǒng)軟件上使用μC/OS-II實時嵌入式操作系統(tǒng),能夠實現(xiàn)實時性內(nèi)核、任務管理、時間管理、通信與同步、內(nèi)存管理等功能。系統(tǒng)的整體架構如圖1所示。
2 硬件電路設計
2.1 主控制模塊
本設計采用ST公司的ARM控制器STM32F103C8T6作為主控制器,32位內(nèi)核,工作頻率最高為72 MHz,內(nèi)置128 K字節(jié)的程序存儲器,20 K字節(jié)的SRAM,包含時鐘、復位和電源管理,供電電壓為2.0~3.6 V,滿足了低功耗的要求。
2.2 傳感器處理模塊
本設計采用iNEMO慣性導航模塊進行手部姿勢識別,iNEMO慣性導航模塊能夠檢測9個自由度,利用MEMS傳感器和主控芯片STM32F103RET7提供動靜態(tài)方向和慣性測量功能。集成雙軸滾轉-俯仰陀螺儀(LPR430AL)、單軸偏航陀螺儀(LY330ALH)、6軸地磁測量模塊(LSM303DLH)、壓力傳感器(LPS001DL)和溫度傳感器(STLM75)5個意法半導體公司的傳感器,運行一個AHRS姿態(tài)角運算系統(tǒng),從而實現(xiàn)對姿態(tài)角的實時測量。傳感器處理模塊如圖2所示。
2.3 無線通信模塊
無線通信模塊通過nRF24L01無線模塊實現(xiàn)指令的發(fā)送和數(shù)據(jù)的接收,將接收的數(shù)據(jù)轉化為數(shù)據(jù)指令,以控制機械手的運動,實現(xiàn)無線控制。采用嚴格的“一問一答”形式,即每發(fā)送一條指令都需要機械手本體返回一幀數(shù)據(jù)包。發(fā)送一條指令后,等待機械手本體返回的數(shù)據(jù)包,只有獲得機械手本體返回的數(shù)據(jù)包后才可以繼續(xù)發(fā)送指令包。如果機械手本體接收到錯誤指令(經(jīng)校驗錯誤的指令),置位通信錯誤標志位,上傳數(shù)據(jù)包;同時,機械手本體報警,將機械手速度置0,接下來1 s內(nèi)下位機清除串口DMA,重新接收指令。如果接收到的數(shù)據(jù)包中通信錯誤標志位置位,則重新配置nRF24L01無線模塊,重新發(fā)送指令。
2.4 顯示模塊
顯示模塊采用12864液晶模塊進行顯示,可顯示漢字和圖形,內(nèi)置8 192個中文漢字(16×16點陣)、128個字符(8×16點陣)和64×256點陣顯示RAM(GDRAM),具有并行數(shù)據(jù)傳送方式和串行數(shù)據(jù)傳送方式。其中,串行數(shù)據(jù)傳輸方式只用到CS、SID、SCK 3個通信引腳,較并行數(shù)據(jù)傳送方式節(jié)省單片機的I/O引腳。本文采用串行傳輸方式設計。
3 軟件系統(tǒng)設計
本系統(tǒng)經(jīng)上電初始化后,首先采集電池電壓,傳送采集的數(shù)據(jù),通過12864液晶進行顯示。如果電量過低,則通過蜂鳴器報警。通過DMA將iNEMO慣性導航模塊數(shù)據(jù)接收到USART1中,經(jīng)校驗后,將數(shù)據(jù)轉化為機械手臂的運動指令,并點亮指示LED燈。系統(tǒng)軟件流程如圖3所示。
4 結束語
本文討論了基于STM32F103C8T6的嵌入式體感機械手的設計與實現(xiàn),并對具體的硬件電路和軟件系統(tǒng)進行了詳細的介紹。大量實驗證明,本體感機械手具有操作簡便、可操作性強、通信可靠、穩(wěn)定性和人性化程度高等優(yōu)點,在實際應用中取得了良好的效果。
參考文獻
[1]劉軍.例說STM32[M].北京:北京航空航天大學出版社,2011.
[2]周立功.ARM7嵌入式系統(tǒng)基礎教程[M].北京:北京航空航天大學出版社,2008.
[3]杜春雷.ARM體系結構與編程[M].北京:清華大學出版社,2003.
[4]劉火良,楊森.STM32庫開發(fā)實戰(zhàn)指南[M].北京:機械工業(yè)出版社.
[5]肖廣兵.ARM嵌入式開發(fā)實例——基于STM32的系統(tǒng)設計[M].北京:電子工業(yè)出版社,2013.
〔編輯:劉曉芳〕