當(dāng)前位置:首頁 > 測試測量 > 測試測量
[導(dǎo)讀] 圖1 LabVIEW藍(lán)牙控制樂高六足機(jī)器人一、前言 上篇文章《Arduino與LEGO結(jié)合的六足機(jī)器人》中,講解了使用32路舵機(jī)控制板的方法,該板自帶了一款舵機(jī)控制軟件,我用該軟件控制著六足機(jī)器人的12個mini舵機(jī)

圖1 LabVIEW藍(lán)牙控制樂高六足機(jī)器人

一、前言

上篇文章《Arduino與LEGO結(jié)合的六足機(jī)器人》中,講解了使用32路舵機(jī)控制板的方法,該板自帶了一款舵機(jī)控制軟件,我用該軟件控制著六足機(jī)器人的12個mini舵機(jī)做動作,通過“示教”法一步步地確定了前、后、左、右4個動作組,然后把動作序列文件下載到機(jī)器人身上舵機(jī)控制板的存儲卡中,并在線運(yùn)行,測試機(jī)器人的運(yùn)行是否符合預(yù)期。

《Arduino與LEGO結(jié)合的六足機(jī)器人》文章的網(wǎng)址:http://www.eefocus.com/zhang700309/blog/13-03/291894_b2e9f.html。

在這篇文章中,我用LabVIEW軟件設(shè)計(jì)了一個六足機(jī)器人的人機(jī)控制界面,設(shè)置5個互動按鈕。界面設(shè)計(jì)目的是,當(dāng)按鈕按下時,會把一行字符串命令通過藍(lán)牙串口,無線發(fā)送到舵機(jī)控制板,執(zhí)行事先下載到其存儲卡中的前后左右及停止動作序列文件,讓機(jī)器人“活”起來。

視頻網(wǎng)址:

http://www.tudou.com/v/y1tv6wvvR40/&rpid=96368873&resourceId=96368873_04_05_99/v.swf。

二、32路舵機(jī)控制板硬件設(shè)置和上下位機(jī)藍(lán)牙聯(lián)機(jī)

控制這個機(jī)器人12個mini舵機(jī)的是DFRobot公司出品的USB SSC32舵機(jī)控制板,該控制板的各端口分布和功能說明圖如下。

圖2 DFRobot公司的32路舵機(jī)控制板端口分布和功能說明

六足機(jī)器人左側(cè)6個舵機(jī)的輸出端子分別插接在控制板的1到6舵機(jī)通道,而右側(cè)6個舵機(jī)插接在17到22舵機(jī)通道??刂瓢宓耐ㄐ挪ㄌ芈?,我設(shè)置為115200b/s,通過圖2所示“7撥碼開關(guān)”來設(shè)置,把兩個撥碼開關(guān)都撥到ON端即可。

圖2中標(biāo)號為1、8、10和12的端口都可以供電,1號和10號端口供電給邏輯部分,8號和12號端口供電給舵機(jī)部分。由于機(jī)器人的電控僅用一塊7.4V、900ma的鋰聚合物電池供電,所以邏輯部分和舵機(jī)部分共用電源,于是“11 VL和VS1連通跳線”帽要插上,同時“2 USB供電選擇跳線”帽不插上,斷開,不采用電腦USB供電。

舵機(jī)控制板與PC機(jī)的通信采用藍(lán)牙模式,在控制板的“16數(shù)傳接口”上插入藍(lán)牙模塊,藍(lán)牙模塊也要設(shè)置為波特率為115200b/s,并采用從機(jī)通信模式。在PC機(jī)的USB插座上插入藍(lán)牙適配器,利用了IVT藍(lán)牙管理軟件進(jìn)行上下位機(jī)的聯(lián)機(jī)。這次用的筆記本電腦安裝了win7操作系統(tǒng),我發(fā)現(xiàn)低版本的IVT藍(lán)牙驅(qū)動管理軟件,連接失敗,采用高版本V6.4版,成功了。操作生成的串口號為COM6。PC機(jī)藍(lán)牙管理軟件IVT_BlueSoleilv6.4(win7),請下載:http://115.com/file/beuhmkdf。

PC機(jī)與下位機(jī)的藍(lán)牙聯(lián)機(jī)過程,可以參看我的另一篇文章的后半部分內(nèi)容。網(wǎng)址:http://www.eefocus.com/zhang700309/blog/12-09/286479_a1c80.html。

圖3 IVT軟件的上下位機(jī)藍(lán)牙通信連接

三、六足機(jī)器人的LabVIEW人機(jī)界面的前面板設(shè)計(jì)

LabVIEW程序由前面板和框圖程序組成,前面板是人機(jī)交互的界面,界面上有用戶輸入和顯示輸出兩類控件;框圖程序則是用戶編制的程序源代碼,以定義和控制在前面板上的控件輸入和輸出功能。

圖4 LabVIEW前面板

在前面板中,有藍(lán)牙串口號和波特率設(shè)置輸入欄,有“退出程序”的按鈕,還用界面設(shè)計(jì)的核心控件,前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)和停止按鈕。這些按鈕的“機(jī)械動作”,要通過右鍵快捷菜單,來設(shè)置為窄脈沖觸發(fā)模式,如下圖所示。

圖5 LabVIEW前面板的按鈕模式設(shè)置

點(diǎn)擊圖5中右鍵快捷菜單中的“高級→自定義”選項(xiàng),可以設(shè)計(jì)“按鈕”控件的圖形,我所設(shè)計(jì)的是“箭頭”圖示的按鈕控件,關(guān)于前面板自定義控件和框圖程序事件結(jié)構(gòu)的應(yīng)用方法,早期我曾經(jīng)錄制過視頻教程,不妨看看。

視頻網(wǎng)址:http://www.tudou.com/v/TZYs2eJ-1vo/&rpid=96368873&resourceId=96368873_04_05_99/v.swf。

可以通過鼠標(biāo)點(diǎn)擊按鈕來控制機(jī)器人,也可以把這些按鈕與鍵盤上的快捷鍵關(guān)聯(lián)起來,通過鍵盤來控制機(jī)器人。點(diǎn)選圖5中的快捷菜單中的“高級→快捷鍵”選項(xiàng)。出現(xiàn)圖6快捷鍵設(shè)置對話框。

圖6 快捷鍵設(shè)置對話框

例如,“左轉(zhuǎn)”按鈕的快捷鍵對話框中“切換”選擇欄,我選擇“Page Down”鍵,前面板中的“左轉(zhuǎn)”按鈕與鍵盤的“Page Down”鍵綁定在一起,這樣按動鍵盤的按鍵與鼠標(biāo)點(diǎn)擊按鈕控件的效果就一樣了。

四、六足機(jī)器人的LabVIEW人機(jī)界面的框圖程序編制

前后左右及停止控件按下時,會立即反饋到后臺程序,即LabVIEW框圖程序,這個程序會把字符串命令,通過無線串口下達(dá)給32路舵機(jī)控制板,進(jìn)而控制機(jī)器人12個舵機(jī)動作。這次LabVIEW程序編制有兩個要點(diǎn):1、如何把字符串命令通過LabVIEW的VISA串口VI(子函數(shù)),寫入到舵機(jī)控制板的存儲卡;2、如何應(yīng)用“事件結(jié)構(gòu)”工具,把前面板的按鈕觸發(fā)事件與相應(yīng)的字符串命令下達(dá)關(guān)聯(lián)起來。(所有圖片雙擊后,都可以放大看!)

圖7 LabVIEW的框圖程序

圖7的圖形化編程設(shè)計(jì)是采用NI_VISA串口Serial函數(shù)來訪問和控制串口的。VISA中的Serial函數(shù)庫里包含VISA 配置串口、VISA 寫入、VISA 讀取、VISA 關(guān)閉等子函數(shù)。這些子函數(shù)的提取路徑是:函數(shù)庫→儀器I/O→串口,本設(shè)計(jì)用到的三個VISA串口VI是:VISA串口配置VI VISA Configure Serial Port、VISA寫入VI VISA Write、和VISA 關(guān)閉VI VISA Close。值得注意的是,您必須要安裝了VISA串口驅(qū)動程序,這些VI才會起作用。

VISA串口配置函數(shù)的作用是完成串口參數(shù)的初始化設(shè)置,包括了串口號,波特率,奇偶校驗(yàn)、數(shù)據(jù)比特、是否啟用終止符等。

VISA關(guān)閉函數(shù)VISA Close的作用是當(dāng)程序停止之前,必須要把使用的串口號設(shè)備關(guān)閉,若不關(guān)閉,之后的其他程序就不能使用該設(shè)備。

VISA寫入函數(shù)有三個輸入端子,中間的輸入端子是寫入緩沖區(qū)入口,寫入緩沖區(qū)支持的數(shù)據(jù)格式是字符串。

那么到底什么樣的字符串命令可以控制舵機(jī)控制板的存儲卡中各動作組的動作序列文件?請先看看DF-USBSSC32控制板使用說明書。

說明書網(wǎng)址:http://wiki.dfrobot.com.cn/index.php?title=USB%E7%89%8832%E8%B7%AF%E8%88%B5%E6%9C%BA%E6%8E%A7%E5%88%B6%E6%9D%BF(SKU:DRI0005)。

從說明書中,我學(xué)習(xí)到,如果要執(zhí)行動作組0的文件,字符串命令是:PL 0 SQ 0,執(zhí)行動作組1的文件,字符串命令是:PL 0 SQ 1,也就是SQ后面的數(shù)字就是動作組的編號。“停止”的字符串命令是:PL 0。表示回車符。

我把機(jī)器人前進(jìn)、后退、左轉(zhuǎn)和右轉(zhuǎn)分成了4個動作組, “前進(jìn)”動作組編號設(shè)為0,其它3個動作組的編號分別設(shè)置為1、2、3。

從圖7可以看出,在前面板中按下“前進(jìn)”按鈕,會執(zhí)行“[1] 前進(jìn) 值改變”事件分支,把字符串PL 0 SQ 0用“連接字符串”VI與回車符合并后,通過VISA寫入VI,下達(dá)給舵機(jī)控制板。

談完字符串命令串口通信的問題,再來談?wù)勈录Y(jié)構(gòu)的應(yīng)用方法。

事件結(jié)構(gòu)是一個功能非常強(qiáng)大的編程工具,什么是事件呢?事件幾乎可以是LabVIEW中“發(fā)生”的任何事情,例如,按下前面板布爾控件;數(shù)值控件值改變;鼠標(biāo)光標(biāo)進(jìn)入程序窗口等。為啥需要事件結(jié)構(gòu),如果沒有它的話,例如,為了檢測用戶是否按下按鈕,就不得不在While循環(huán)中周期性地“輪詢”按鈕的值。使用它,就不需要“輪詢”,因?yàn)長abVIEW程序會“知道”事件何時發(fā)生。軟件的事件結(jié)構(gòu)很像硬件的中斷機(jī)制。

在框圖程序界面的空白處右擊鼠標(biāo),就會出現(xiàn)函數(shù)庫面板,接著在“編輯”→“結(jié)構(gòu)”子面板里,找到“事件結(jié)構(gòu)”模塊,把它拖到程序編輯界面,再拉大模塊方框,就可以建立一個初始事件結(jié)構(gòu)。如8所示為事件結(jié)構(gòu)的提取方法。

圖8 事件結(jié)構(gòu)的提取方法

事件結(jié)構(gòu)總是放在一個While循環(huán)結(jié)構(gòu)中,如圖7所示。為了可以連續(xù)處理事件,需要用While循環(huán)來一直執(zhí)行事件結(jié)構(gòu)。如果沒有While循環(huán)結(jié)構(gòu),事件結(jié)構(gòu)只能處理一次事件,就會退出程序。另外在程序中只能放置一個事件結(jié)構(gòu),如果想在程序中處理幾種不同的事件,可以在單個事件結(jié)構(gòu)中創(chuàng)建多個分支幀。

圖9 添加事件分支

在事件結(jié)構(gòu)上右擊鼠標(biāo),出現(xiàn)快捷菜單,選擇“添加事件分支…”,隨之會出現(xiàn)“編輯事件”對話框,如圖10所示。

圖10 編輯事件

如果希望在“前進(jìn)”按鈕事件后,添加“后退”按鈕事件,可以在圖10里,找到“后退”事件源,選擇事件觸發(fā)條件是“值改變”。對于前面板中的前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)和停止按鈕,我分別添加了對應(yīng)的事件分支幀,在各分支幀里,把相應(yīng)的字符串命令下達(dá)給下位機(jī),32路舵機(jī)控制板。

值得注意的是,要退出一個包含事件結(jié)構(gòu)的While循環(huán),必須把退出按鈕放在事件結(jié)構(gòu)中,如圖11所示,還要為退出按鈕配置專門的“值改變”事件分支幀。如果退出按鈕放在事件結(jié)構(gòu)外,事件結(jié)構(gòu)將一直等待,無法退出程序運(yùn)行。

圖11 停止帶事件結(jié)構(gòu)的While循環(huán)的正確方法

LabV

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(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)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(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)閉