當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件

服務(wù)機(jī)器人作為多種高新技術(shù)發(fā)展成果的集成,為實現(xiàn)服務(wù)的目的,需要通過人性化、簡便、自然的方式進(jìn)行人機(jī)交互,傳統(tǒng)的按鍵式遙控器顯然不能滿足這種設(shè)計要求。目前,體感設(shè)備發(fā)展迅速,各類基于體感控制的裝置層出不窮。體感控制就是通過肢體動作變化來實現(xiàn)。

控制,基于體感裝置的人機(jī)交互已經(jīng)成為當(dāng)前研究的熱門課題。

常見的無線遙控技術(shù)不外乎紅外遙控技術(shù)和無線電遙控技術(shù)。其中紅外遙控技術(shù)優(yōu)點就是帶寬大,但是需要較強(qiáng)的指向性,傳輸距離短,穿透能力差,功耗高;與之相比,無線電遙控技術(shù)無方向性,抗干擾能力和穿透能力強(qiáng),傳輸距離遠(yuǎn),功耗低。因此,無線電遙控技術(shù)更加適合于智能家居、消費(fèi)類電子和機(jī)器人控制等領(lǐng)域。

本文以STM32F103C8T6作為主控制器,采用iNEMO慣性導(dǎo)航模塊、nRF24L01無線模塊和12864液晶顯示模塊。設(shè)計的嵌入式體感遙控器具有體積小、操作簡單、可靠性高、可擴(kuò)展性強(qiáng)等優(yōu)點,能夠較好地滿足對服務(wù)機(jī)器人可靠遙控的要求,具有較大的應(yīng)用推廣價值。

1 系統(tǒng)功能要求及整體架構(gòu)

1.1 基本功能要求

①具備實時準(zhǔn)確發(fā)送相應(yīng)控制指令的能力。根據(jù)手部姿態(tài)確定指令的內(nèi)容。

②具備接收機(jī)器人本體回傳數(shù)據(jù)包的能力。根據(jù)接收的數(shù)據(jù)包進(jìn)行解析,進(jìn)而判斷本體接收的控制指令是否正確。

③具備當(dāng)前指令和機(jī)器人當(dāng)前狀態(tài)信息的顯示能力。一方面將發(fā)送的控制指令在LCD液晶屏上予以顯示;另一方面根據(jù)機(jī)器人本體回傳的數(shù)據(jù)包,解析得出機(jī)器人的狀態(tài),在LCD液晶屏上進(jìn)行顯示。

④具備電池電量檢測和低壓報警功能。將剩余電量實時地顯示在LCD液晶屏上,當(dāng)電量不足時,通過蜂鳴器進(jìn)行報警提示。

1.2 系統(tǒng)整體方案及架構(gòu)

iNEMO慣性導(dǎo)航模塊的基本原理如圖1所示,利用MEMS傳感器和主控芯片STM32F103RET7提供動靜態(tài)方向和慣性測量功能。集成雙軸滾轉(zhuǎn)-俯仰陀螺儀(LPR430AL)、單軸偏航陀螺儀(LY330ALH)、6軸地磁測量模塊(LSM303DLH)、壓力傳感器(LPS001DL)和溫度傳感器(STLM75)5個意法半導(dǎo)體公司的傳感器,運(yùn)行一個AHRS姿態(tài)角運(yùn)算系統(tǒng),從而實現(xiàn)對姿態(tài)角的實時測量。



本遙控器采用ST公司具有Cortex-M3內(nèi)核的ARM控制器STM32F103C8T6作為主控制器,采用ST公司的iNEMO慣性導(dǎo)航模塊進(jìn)行手部姿態(tài)檢測,采用nRF24L01無線模塊實現(xiàn)指令的發(fā)送和數(shù)據(jù)的接收,采用12864液晶顯示模塊對當(dāng)前控制指令、機(jī)器人當(dāng)前狀態(tài)和剩余電量予以顯示,采用LED和蜂鳴器實現(xiàn)提示和報警功能。遙控器軟件上使用μC/OS-II實時嵌入式操作系統(tǒng),能夠?qū)崿F(xiàn)實時性內(nèi)核、任務(wù)管理、時間管理、通信與同步、內(nèi)存管理等功能。系統(tǒng)的整體架構(gòu)如圖2所示。

2 硬件電路設(shè)計

2.1 主控制模塊電路

主控制器STM32F103C8T6芯片,工作頻率高達(dá)72 MHz,內(nèi)置64 KB的Flash和20 KB的SRAM,具有豐富外設(shè)和超低功耗,完全滿足本設(shè)計要求。主控制模塊電路圖如圖3所示,參照ST公司發(fā)布的STMF10xxx硬件開發(fā)入門文檔,該部分包括外部時鐘電路、模擬電源輸入、電源濾波、下載仿真口的設(shè)計。

2.2 電源模塊電路

本遙控器采用8.4 V鋰電池供電,采用TL750M05C穩(wěn)壓芯片提供5 V電壓,選用REG1117-3.3穩(wěn)壓芯片為系統(tǒng)提供3.3 V電壓。STM32F1 03C8T6電源分為模擬電源與數(shù)字電源,為了保證其正常工作,將兩路電源進(jìn)行隔離設(shè)計,在模擬地與數(shù)字地之間通過0Ω電阻實現(xiàn)單點共地。為監(jiān)測鋰電池電源電壓,將電池電壓經(jīng)電阻分壓及阻容濾波電路濾波后作為STM32F103C8T6采樣輸入。

2.3 無線通信模塊及顯示模塊電路

無線通信模塊采用2.4 GHz頻段射頻芯片nRF24L01作為無線數(shù)據(jù)收發(fā)芯片,工作于2.4~2.5GHz ISM頻段,輸出功率和通信頻道可通過程序進(jìn)行配置。nRF24L01功耗低,在以-6 dBm的功率發(fā)射時,工作電流只有9 mA;接收時,工作電流只有12.3 mA,多種低功率工作模式(掉電模式和空閑模式)使節(jié)能設(shè)計更方便。nRF24L01采用SPI總線方式與控制芯片進(jìn)行通信。

12864液晶顯示模塊,可顯示漢字及圖形,內(nèi)置8192個中文漢字(16×1 6點陣)、128個字符(8×16點陣)及64×256點陣顯示RAM(GDRAM),具有并行數(shù)據(jù)傳送方式和串行數(shù)據(jù)傳送方式,其中串行數(shù)據(jù)傳輸方式只用到CS、SID、SCK 3個通信引腳,較并行數(shù)據(jù)傳送方式節(jié)省單片機(jī)的I/O引腳,本文采用串行傳輸方式進(jìn)行設(shè)計。

3 軟件系統(tǒng)設(shè)計

體感遙控器的軟件系統(tǒng)設(shè)計基于實時嵌入式操作系統(tǒng)μC/OS-II,借助于&mu ;C/OS-II內(nèi)核的多任務(wù)管理和優(yōu)秀的實時性能,大大簡化了軟件系統(tǒng)設(shè)計,并且可以保證系統(tǒng)響應(yīng)的實時性。

3.1 任務(wù)分配與實現(xiàn)

在任務(wù)規(guī)劃的過程中,采用分層次和模塊化的思想將整個系統(tǒng)任務(wù)進(jìn)行劃分。首先,我們必須對系統(tǒng)整體的控制任務(wù)有清楚地了解,具體任務(wù)劃分如表1所列。


表1中除OSTaskStat和OSTaskIdle任務(wù)為系統(tǒng)自帶,其他8個任務(wù)均為用戶創(chuàng)建。其中:App_TaskStart為起始任務(wù),系統(tǒng)運(yùn)行后第一個建立的任務(wù),其作用是為初始化系統(tǒng)時鐘和底層設(shè)備創(chuàng)建所有事件和其他任務(wù);App_TaskAD任務(wù)監(jiān)視電池電壓的變化,當(dāng)電壓低于設(shè)定值Low Battery時,將啟動蜂鳴器報警;App_TaskAHRS任務(wù)通過DMA不斷接收iNEMO慣性導(dǎo)航模塊數(shù)據(jù),然后交由USART1接收緩沖區(qū),實時獲得手部姿態(tài)信息;App_TaskCmd根據(jù)手部姿態(tài)信息轉(zhuǎn)化為機(jī)器人運(yùn)動指令,然后按照制定的通信協(xié)議通過nRF24L01無線模塊將指令數(shù)據(jù)包發(fā)送出去;App_TaskData任務(wù)在每發(fā)送一次指令數(shù)據(jù)包后,通過nRF24L01無線模塊接收機(jī)器人本體回傳的運(yùn)動狀態(tài)信息包;App_TaskLCD任務(wù)實現(xiàn)運(yùn)動指令、機(jī)器人運(yùn)動狀態(tài)、電池電量、實時時鐘在12864液晶顯示模塊上的顯示;App_TaskLED_B任務(wù)通過LED指示遙控器上的主控芯片與iNEMO慣性導(dǎo)航模塊、遙控器與機(jī)器人是否通信正常,當(dāng)電池電量過低時,通過蜂鳴器進(jìn)行報警;App_TaskClock任務(wù)得到DS1302的實時時鐘,通過消息郵箱App_LCDClockMbox發(fā)送給App_TaskLCD任務(wù)予以實時顯示。

3.2 任務(wù)間通信設(shè)計

任務(wù)和中斷服務(wù)子程序可以通過事件控制塊與其他任務(wù)進(jìn)行通信,常用的通信方式有信號量、郵箱和消息隊列,同時,通過事件標(biāo)志實現(xiàn)任務(wù)與事件之間的同步。本操作系統(tǒng)共創(chuàng)建了8個消息郵箱和1個事件標(biāo)志:

OS_EVENT *App_AHRSMbox

OS_EVENT *App_CommandMbox

OS_EVENT *App_DataMbox

OS_EVENT *App_ADMbox

OS_EVENT *App_LCDCmdMbox

OS_EVENT *App_LCDDataMbox

OS_EVENT *App_LCDADMbox

OS_EVENT *App_LCDClockMbox

OS_FLAG_GRP *App_GreenLEDFlag

其中,App_GreenLEDFlag包括3個標(biāo)志位:

#define Flg_GreenLED 0x0001

#define Flg-BlueLED 0x0002

#define Flg_Buzzer 0x0004

3.3 軟件系統(tǒng)流程圖設(shè)計

軟件系統(tǒng)流程圖如圖4所示。體感遙控器經(jīng)上電初始化后,首先采集電池電壓,然后通過郵箱*App_ADMbox將采集得到的電量值發(fā)送給12864液晶顯示模塊進(jìn)行顯示,若電量過低,則使標(biāo)志位Flg_Buzzer置位,即通過蜂鳴器進(jìn)行報警。并且,通過DMA把iNEMO慣性導(dǎo)航模塊的數(shù)據(jù)接收到USART1,判斷校驗位是否正確,若不正確則重新配置DMA,重新接收數(shù)據(jù);若正確則將接收到的數(shù)據(jù)轉(zhuǎn)化為控制指令,通過nRF24L01無線模塊發(fā)送給機(jī)器人。同時通過郵箱*App-LCDCmdMbox將指令發(fā)送給App_TaskLCD任務(wù),在12864液晶顯示模塊顯示當(dāng)前發(fā)送的指令,并通過置位Flg_GreenLED點亮相應(yīng)LED,以表示STM32F103C8T6與iNEMO模塊通信正常;機(jī)器人本體接收到指令后,會給遙控器返回數(shù)據(jù)包,如果遙控器接收的數(shù)據(jù)錯誤標(biāo)志位沒有置位,則說明遙控器與機(jī)器人本體通信正常,通過郵箱*App_LCDDataMbox將機(jī)器人的狀態(tài)信息發(fā)送給App_Tas kLCD任務(wù),在12864液晶顯示模塊上顯示機(jī)器人本體運(yùn)動狀態(tài),同時通過置位Flg_BlueLED點亮相應(yīng)LED,以表示遙控器與機(jī)器人本體通信正常。App_TaskClock任務(wù)通過郵箱*App_LCDClockMbox向App_TaskLCD任務(wù)發(fā)送當(dāng)前時間信息,并予以顯示。

體感遙控器 軟件系統(tǒng)開發(fā)環(huán)境為IAR EWARM5.4,&mu ;C/OS-II版本為V2.86,STM32F103C8T6的調(diào)試工具為J-Link仿真器,STM32F103C8T6的固件庫版本為V2.0.3.

3.4 遙控器與機(jī)器人本體通信方案設(shè)計

本設(shè)計采用嚴(yán)格的“一問一答”形式,即每發(fā)送一條指令都需要機(jī)器人本體返回一幀數(shù)據(jù)包。遙控器發(fā)送一條指令后,等待機(jī)器人本體返回的數(shù)據(jù)包,只有獲得機(jī)器人本體返回的數(shù)據(jù)包后才可以繼續(xù)發(fā)送指令包。如果機(jī)器人本體接收到錯誤指令(經(jīng)校驗錯誤的指令),置位通信錯誤標(biāo)志位,上傳數(shù)據(jù)包;同時,機(jī)器人本體報警,將機(jī)器人速度置0,接下來1 s內(nèi)下位機(jī)清除串口DMA,重新接收指令。如果遙控器收到的數(shù)據(jù)包中通信錯誤標(biāo)志位置位,則重新配置nRF24L01無線模塊,重新發(fā)送指令。

4 性能測試

對本文所描述的嵌入式機(jī)器人體感遙控器進(jìn)行了相應(yīng)的測試,測試環(huán)境分別為室內(nèi)走廊環(huán)境和室外環(huán)境,測試結(jié)果如表2所列。測試結(jié)果表明,在室內(nèi)走廊環(huán)境中,收發(fā)指令的正確率在95%以上;在室外環(huán)境中,由于環(huán)境中可能存在多種干擾,并且距離在20~30 m,正確率在90%以上。由于遙控器底層軟件具備一定容錯能力,90%以上的正確率完全滿足要求。

結(jié)語

本文討論了基于STM32F103C8T6的嵌入式服務(wù)機(jī)器人體感遙控器的設(shè)計方案,該方案對具體的硬件電路和軟件系統(tǒng)進(jìn)行了詳細(xì)的介紹。經(jīng)過大量的實例證明,本體感遙控器具有操作簡便、可操作性強(qiáng)、通信可靠、穩(wěn)定性和人性化程度高等優(yōu)點,在實驗室服務(wù)機(jī)器人的實際應(yīng)用中取得了良好的效果。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉