




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、摘要本文詳細(xì)介紹了六腳爬蟲(chóng)機(jī)器人的機(jī)械結(jié)構(gòu)以及控制程序的編寫(xiě)。機(jī)械結(jié)構(gòu)采用了對(duì)稱式設(shè)計(jì),結(jié)構(gòu)簡(jiǎn)單;其行走功能由六只腳、18個(gè)舵機(jī)實(shí)現(xiàn),自由度較高,穩(wěn)定性、靈活性較好??刂瞥绦虻闹黧w是C語(yǔ)言。包括基本步態(tài)的編寫(xiě),以及傳感器的在機(jī)器人上的高級(jí)應(yīng)用,這樣,機(jī)器人在滿足基本行走運(yùn)動(dòng)的同時(shí),也能感知外界環(huán)境,并通過(guò)控制器對(duì)接收到的外界信號(hào)進(jìn)行處理,并控制機(jī)器人運(yùn)動(dòng)。關(guān)鍵詞: 對(duì)稱式結(jié)構(gòu),舵機(jī)控制器,步態(tài),傳感器AbstractThe thesis describes in detail that the mechanic design of Hexcrawler and the compiling of
2、 control program. The structure of the robot is in symmetric expression, a simple mechanism; the function of walking is supported by six legs, and eighteen motors, with multiple degrees of freedom. Besides, it is of high stability and flexibility. The program to control the robot is written in C lan
3、guage, including basic gait, the advanced application of sensors. Thereby, the robot can walk in several gaits. At the same time, it can sense the condition around it. Then, it will process the data it received, and control the motion of the robot.Keywords: symmetric expression,PSCU, gait, sensor目錄摘
4、要IAbstractII目錄III1 緒論- 1 -1.1課題來(lái)源- 1 -1.2本課題的目的及其意義- 1 -1.3國(guó)內(nèi)外發(fā)展現(xiàn)狀- 1 -1.4本課題的研究?jī)?nèi)容- 5 -2 機(jī)械結(jié)構(gòu)設(shè)計(jì)介紹- 6 -2.1 功能需求與分析- 6 -2.2 材料選擇與結(jié)構(gòu)設(shè)計(jì)介紹- 6 -3 舵機(jī)控制板原理與應(yīng)用- 9 -3.1 舵機(jī)原理介紹- 9 -3.2 舵機(jī)控制板原理介紹- 10 -3.3 如何使用舵機(jī)控制板- 12 -3.4 控制板程序編寫(xiě)- 14 -4 STM32開(kāi)發(fā)板介紹與程序編寫(xiě)- 18 -4.1 STM32F107芯片簡(jiǎn)介- 18 -4.2 軟件與編程初始準(zhǔn)備- 18 -4.3 GPIO與A
5、FIO設(shè)置與應(yīng)用- 18 -4.31 GPIO設(shè)置與應(yīng)用.18 4.32 AFIO-I/O口重映射.22 4.4 USART設(shè)置與應(yīng)用- 22 -4.5外部中斷設(shè)置與應(yīng)用- 26 -4.6 系統(tǒng)時(shí)鐘設(shè)置與應(yīng)用- 29 -4.61 系統(tǒng)時(shí)鐘簡(jiǎn)介與應(yīng)用.29 4.62 定時(shí)器配置31 4.7 機(jī)器人行走步態(tài)程序編寫(xiě)- 32 -4.71 機(jī)器人行走步態(tài)簡(jiǎn)介33 4.72 三腳步態(tài).35 4.73 四腳步態(tài).37 4.74 單腳(波動(dòng))步態(tài).384.75 轉(zhuǎn)彎與橫爬步態(tài).404.8 多傳感器應(yīng)用與程序編寫(xiě)- 43 -4.81 指南針傳感器.434.82 紅外、光敏傳感器.454.83 柔性力傳感器.4
6、64.84 溫濕度、發(fā)聲、射頻識(shí)別(RFID)傳感器.484.85 無(wú)線(Zigbee)傳感器.494.86 超聲傳感器525總結(jié)- 55 -致謝- 56 -參考文獻(xiàn)- 57 -1 緒論1.1課題來(lái)源本項(xiàng)目來(lái)源于華中科技大學(xué)與伍斯特理工學(xué)院合作的WPI項(xiàng)目。1.2本課題的目的及其意義機(jī)器人是高級(jí)整合控制論、機(jī)械電子、計(jì)算機(jī)、材料和仿生學(xué)的產(chǎn)物?,F(xiàn)在,機(jī)器人已經(jīng)發(fā)展到一個(gè)全新階段,各種機(jī)器人應(yīng)運(yùn)而生,從簡(jiǎn)單地追求功能到神似,到個(gè)性化;從單單發(fā)展工業(yè)機(jī)器人到工業(yè)、家用機(jī)器人全面開(kāi)花,并取得了長(zhǎng)足進(jìn)步。六腳機(jī)器人作為行走機(jī)器人的一種,具有結(jié)構(gòu)簡(jiǎn)單,穩(wěn)定性好等優(yōu)點(diǎn),而本課題也并未在很高深的機(jī)器人理論花
7、大量功夫,而更多地著眼于為大專院校提供機(jī)器人教學(xué)平臺(tái),或者用于科技館展覽。本課題所設(shè)計(jì)的機(jī)器人最大的特點(diǎn)是:理論通俗易懂、操作方便、便于二次開(kāi)發(fā)。對(duì)于一些入門(mén)者(初步掌握控制論、機(jī)械設(shè)計(jì)、機(jī)械電子只是)來(lái)說(shuō),很容易便能被引領(lǐng)入機(jī)器人研究的殿堂。1.3 國(guó)內(nèi)外發(fā)展現(xiàn)狀對(duì)于仿生機(jī)器人,尤其是多足機(jī)器人,國(guó)內(nèi)外均有大量研究。1990年,美國(guó)卡內(nèi)基梅隆大學(xué)研制出用于外星探測(cè)的六腳步行機(jī)器人AMBLER。該機(jī)器人采用了新型的“腿機(jī)構(gòu),并由一臺(tái)32位的處理機(jī)來(lái)規(guī)劃系統(tǒng)運(yùn)動(dòng)路線、制運(yùn)動(dòng)和監(jiān)視系統(tǒng)的狀態(tài)。但由于體積和質(zhì)量太大,最終沒(méi)被用于行星探測(cè)計(jì)劃。1993年,卡內(nèi)基梅隆大學(xué)開(kāi)發(fā)出有纜的八足步行機(jī)器人DAN
8、TE,用于對(duì)南極的埃里伯斯火山進(jìn)行了考察,其改進(jìn)型也在實(shí)際中得到了應(yīng)用。1994年二代對(duì)距離安克雷奇145km的斯伯火山進(jìn)行了考察,并傳回了各種數(shù)據(jù)及圖像。日本對(duì)多足步行機(jī)的研究從20世紀(jì)80年代開(kāi)始,并不斷進(jìn)行著技術(shù)創(chuàng)新,隨著計(jì)算機(jī)和控制技術(shù)的發(fā)展,其機(jī)械結(jié)構(gòu)由復(fù)雜到簡(jiǎn)單,其功能由單一功能到組合功能,并已研究出各種類型的步行機(jī)。主要有四足步行機(jī)、爬壁機(jī)器人、腿輪分離型步行機(jī)器人和手腳統(tǒng)一型步行機(jī)器人。1994年,日本電氣通信大學(xué)的木村浩等研制成功四足步行機(jī)器人Patrush二代。該機(jī)器人用兩個(gè)微處理機(jī)控制,采用直流伺服電機(jī)驅(qū)動(dòng),每個(gè)關(guān)節(jié)安裝了一個(gè)光電碼盤(pán),每只腳安裝了兩個(gè)微開(kāi)關(guān),采用基于神經(jīng)
9、振蕩子模型CPG的控制策略,能夠?qū)崿F(xiàn)不規(guī)則地面的自適應(yīng)動(dòng)態(tài)步行,顯示了生物激勵(lì)控制對(duì)未知的不規(guī)則地面有自適應(yīng)能力的特點(diǎn)。20002003年,木村浩等又研制成功四足步行機(jī)器人Tekken。該機(jī)器人用一臺(tái)PC機(jī)系統(tǒng)控制,用瑞士Maxon直流伺服電機(jī)驅(qū)動(dòng),能適應(yīng)中等不規(guī)則表面的自適應(yīng)步行。我國(guó)對(duì)于多足機(jī)器人的研究起步則較晚。1989年,北京航空航天大學(xué)在張啟先教授的指導(dǎo)下,孫漢旭博士進(jìn)行了四足步行機(jī)的研究,試制成功一臺(tái)四足步行機(jī)。錢晉武博士研究地壁兩用六腳步行機(jī)器人,并進(jìn)行了步態(tài)和運(yùn)動(dòng)學(xué)方面的研究。1990年中國(guó)科學(xué)院沈陽(yáng)自動(dòng)化研究所研制出全方位六腳步行機(jī),不僅能在平地步行,還能上樓梯。1991年,
10、上海交通大學(xué)馬培蓀等研制出JTUWM 系列四足步行機(jī)器人。2000年,馬培蓀等對(duì)第一代形狀記憶合金SMA驅(qū)動(dòng)的微型六腳機(jī)器人進(jìn)行改進(jìn),開(kāi)發(fā)出具有全方位運(yùn)動(dòng)能力的微型雙三足步行機(jī)器人其每條腿的自由度變?yōu)?個(gè)自由度。2003年哈爾濱工程大學(xué)的孟慶鑫、袁鵬等進(jìn)行了兩棲仿生機(jī)器蟹的研究,通過(guò)研究多足步行機(jī)的單足周期運(yùn)動(dòng)規(guī)律,提出適合于兩棲仿生機(jī)器蟹的單足運(yùn)動(dòng)路線規(guī)劃方法,建立了生成周期運(yùn)動(dòng)的神經(jīng)振蕩子模型。目前市場(chǎng)上幾款六腳機(jī)器人對(duì)比如下:(一)DEPUSH HexCrawlerHexCrawlerCompanyDEPUSHMaterial5052 alloy aluminum, 1/16” thic
11、k with clear anodizingLeg Movement2 DOFDimensionsBody: 49.68 x 40 cm, Height: between 12.3 and 15.2 cmCost$350+(二)Lynxmotion RB-Lyn-248RB-Lyn-248CompanyLynxmotionMaterial5052 alloy aluminum, 1/16” thick with black anodizingLeg Movement3 DOFDimensionsBody: 19.1 x 14.9 cm, Height: between 5.1 and 13.3
12、 cm, Ground Clearance: up to 8.9 cmCost$261.35+(三)HexCrawler HDATSHexCrawler HDATSCompanyDEPUSHMaterial5052 alloy aluminum, 1/16” thick with clear anodizingLeg Movement3 DOFDimensionsBody: 52 x 49.7 cm, Height: between 12.3 and 15.2 cm, Ground clearance: 12.7 cmCost 10,000 (about $1,500)其中HexCrawler
13、一代機(jī)器人使用的編程軟件為Parallax公司提供的教育發(fā)展版芯片。圖1.1為Phoenix公司提供的六腳機(jī)器人,圖1.2則為Depush公司的六腳機(jī)器人一代外形,其每個(gè)腳僅有兩個(gè)自由度。圖1.1 Phoenix Hexapod圖1.2 DEPUSH HexCrawler 1.01.4本課題的研究?jī)?nèi)容六腳機(jī)器人基本結(jié)構(gòu)的設(shè)計(jì),首先使之能夠?qū)崿F(xiàn)三腳步態(tài)、四腳步態(tài)、波動(dòng)步態(tài)等,以滿足行走要求;然后,能夠感知外界環(huán)境的變化,實(shí)現(xiàn)避障報(bào)警等功能;最后,實(shí)現(xiàn)對(duì)機(jī)器人的遠(yuǎn)距離控制。具體要求為:設(shè)計(jì)機(jī)器人機(jī)械結(jié)構(gòu),使其可以完成前進(jìn),后退,左轉(zhuǎn),右轉(zhuǎn),側(cè)移,扭動(dòng)身軀等簡(jiǎn)單動(dòng)作;可以完成抬腳,簡(jiǎn)單舞蹈等動(dòng)作;1
14、、編寫(xiě)機(jī)器人各種基本動(dòng)作的軟件代碼,使其能完成以上動(dòng)作;2、機(jī)器人可以接受電腦無(wú)線控制,編寫(xiě)相應(yīng)無(wú)線控制程序;3、機(jī)器人可感知外界環(huán)境,編寫(xiě)相應(yīng)傳感器處理程序;4、對(duì)所有程序進(jìn)行綜合處理,協(xié)調(diào)各程序之間的關(guān)系。2 六腳機(jī)器人機(jī)械結(jié)構(gòu)設(shè)計(jì)介紹2.1 功能需求與分析作為六腳仿生機(jī)器人,在追求神似的同時(shí),關(guān)鍵在于能否像爬蟲(chóng)一樣完成各種行走動(dòng)作。本課題對(duì)機(jī)械結(jié)構(gòu)的要求不高,但需要滿足下面幾點(diǎn):靈活度高、穩(wěn)定性好、能夠?qū)崿F(xiàn)多足機(jī)器人的基本步態(tài)。針對(duì)這幾點(diǎn),同時(shí)按照德普士公司的要求,再參照目前市面上存在的六腳仿生機(jī)器人,最終擬定的機(jī)械結(jié)構(gòu)設(shè)計(jì)方案為:在DEPUSH HexCrawler 1.0(圖1.2)
15、的基礎(chǔ)上每只腳增加一個(gè)舵機(jī),即將自由度由兩個(gè)提升為三個(gè)。2.2材料選擇與結(jié)構(gòu)設(shè)計(jì)介紹根據(jù)目前市面上的六腳仿真機(jī)器人,本課題選用5052鋁合金作為機(jī)器人的主要材料,這樣機(jī)器人既能滿足強(qiáng)度要求,也能滿足輕便性要求。同時(shí),對(duì)外表進(jìn)行烤漆處理,顯得厚實(shí)而穩(wěn)重,富有質(zhì)感。如圖2.1為機(jī)械結(jié)構(gòu)的總?cè)S圖。圖2.1 六腳機(jī)器人三維總圖機(jī)器人整體上采用對(duì)稱式結(jié)構(gòu),由六只腳和底架(身體)組成。每只腳有三個(gè)關(guān)節(jié),每個(gè)關(guān)節(jié)處為采用舵機(jī)連接,可在固定平面內(nèi)旋轉(zhuǎn)180,如圖2.2所示。其中舵機(jī)1控制機(jī)器人腳前后擺動(dòng);舵機(jī)2控制機(jī)器人上下擺動(dòng);舵機(jī)3控制機(jī)器人內(nèi)外伸縮。三個(gè)舵機(jī)配合即可實(shí)現(xiàn)機(jī)器人的走動(dòng)。圖2.2 六腳機(jī)器
16、人單腳結(jié)構(gòu)圖機(jī)器人身體(圖2.3)、腳(圖2.2)上均布滿各種鏤空?qǐng)D案,主要有兩點(diǎn)作用:一、減輕機(jī)器人重量;二、增加機(jī)器人的美觀度。由于機(jī)器人的完全對(duì)稱性結(jié)構(gòu),其前后由認(rèn)為設(shè)定,即圖2.1中Leg1、Leg4在前,Leg3、Leg6在后。圖2.3 六腳機(jī)器人底架結(jié)構(gòu)圖 機(jī)器人的主要尺寸為: 機(jī)器人全長(zhǎng):500.0mm; 底架(身體寬):228.0mm; 舵機(jī)1(Leg1)距底架最前方距離:60.0mm; Leg1與Leg2距離:195.0mm; Leg1與Leg3距離:390.0mm;每只腳上舵機(jī)2與舵機(jī)3距離:120.0mm; 舵機(jī)3與腳底距離:150.0mm。3 舵機(jī)及舵機(jī)控制板原理與應(yīng)用
17、 本章主要介紹舵機(jī)以及舵機(jī)控制板(PSCU)的原理、使用方法與程序編寫(xiě)。3.1 舵機(jī)原理介紹舵機(jī)是一個(gè)通過(guò)輸出軸的轉(zhuǎn)動(dòng)來(lái)控制物體轉(zhuǎn)動(dòng)的裝置。它在特定編碼的驅(qū)使下可以轉(zhuǎn)動(dòng)到工作范圍內(nèi)的任意給定位置。因?yàn)樗妮p便,位置控制簡(jiǎn)易且精確,在機(jī)器人中使用尤多。多舵機(jī)的協(xié)調(diào)工作可滿足機(jī)器人的多自由度要求。舵機(jī)可以實(shí)現(xiàn)0180的旋轉(zhuǎn),當(dāng)軸處于正確位置時(shí),舵機(jī)將停止運(yùn)動(dòng);當(dāng)所在位置不對(duì)時(shí),電路則驅(qū)動(dòng)電機(jī)運(yùn)轉(zhuǎn)到需求位置。舵機(jī)是采用比例調(diào)節(jié)方式控制速度。當(dāng)舵機(jī)轉(zhuǎn)動(dòng)的距離大時(shí),則加載在舵機(jī)上的能量就大,反之亦然。而舵機(jī)的轉(zhuǎn)動(dòng)角度控制是由加載在控制線上的脈沖周期完成的,即所謂的脈沖編碼調(diào)制。舵機(jī)設(shè)定為每隔20ms接受
18、一個(gè)脈沖,這樣的話,實(shí)際脈沖長(zhǎng)度就可用來(lái)控制舵機(jī)轉(zhuǎn)動(dòng)的角度。如圖3.1,例如1.5ms的脈沖可使舵機(jī)轉(zhuǎn)動(dòng)90。圖3.1 舵機(jī)轉(zhuǎn)角與脈沖周期關(guān)系圖本項(xiàng)目采用的事Hi-Tec公司生產(chǎn)的HS-322HD舵機(jī),如圖3.6。圖3.6 HS-322HD舵機(jī)其主要技術(shù)參數(shù)如下:重量:43g尺寸:402036.5mm拉力:4.8V 3Kg 拉力:6.0V 3.7Kg 轉(zhuǎn)速:4.8V 0.19sec/60轉(zhuǎn)速:6.0V 0.15sec/60計(jì)算電流:0.35A當(dāng)舵機(jī)安裝好后,需要獲取其初始位置值,為編程做準(zhǔn)備,具體可見(jiàn)3.3節(jié)關(guān)于PSCI軟件的介紹。3.2 舵機(jī)控制板原理介紹由上述機(jī)械結(jié)構(gòu)介紹可知,本六腳機(jī)器人
19、是通過(guò)控制18個(gè)舵機(jī)來(lái)實(shí)現(xiàn)機(jī)器人的運(yùn)動(dòng)的。但如何協(xié)調(diào)好各舵機(jī)的動(dòng)作,讓其滿足功能需求?這就需要用到舵機(jī)控制板。舵機(jī)控制板按控制舵機(jī)數(shù)目(接口數(shù))的多少,可分為8路舵機(jī)控制器,16路舵機(jī)控制器,32路舵機(jī)控制器等等。考慮到成本以及控制舵機(jī)的數(shù)量,本課題采用兩塊16路舵機(jī)控制器串聯(lián)的方式來(lái)控制舵機(jī)。選用型號(hào)為PARALLAX公司提供的Propeller Servo Controller USB(#28830,簡(jiǎn)稱PSCU)。如圖3.2所示:圖3.2 舵機(jī)控制板PSCU具有下述多項(xiàng)特點(diǎn):可串聯(lián)兩塊控制板實(shí)現(xiàn)32路舵機(jī)控制; 獨(dú)立的螺旋式接線柱為控制板供電,舵機(jī)則可通過(guò)開(kāi)關(guān)控制關(guān)停; 其所用固件開(kāi)放源
20、代碼; 可通過(guò)USB接口或者串行通信接口編程; 舵機(jī)速度可控。 PSCU規(guī)格及性能: 電源要求:邏輯電平5VDC60mA,4.87.5VDC控制舵機(jī); 通信:異步串行通信2400bps或者38.4kbps(TTL或USB); 工作溫度:32158F(070C); 尺寸:2.26x1.80x0.65in(57.3x45.7x16.5mm);3.3如何使用舵機(jī)控制板在使用控制板前,需通過(guò)螺旋式接線柱給控制板提供4.87.5V的直流電,同時(shí)為使舵機(jī)運(yùn)動(dòng),還需給舵機(jī)提供5V的直流電。此項(xiàng)可通過(guò)USB接口(如圖3.3)或者通過(guò)舵機(jī)控制板左上方的Serial In 處的杜邦針供電(TTL電平,如圖3.4)
21、。圖3.3 PSCU-USB供電電路連接圖圖3.4 PSCU-主控制板供電電路連接圖USB調(diào)試:安裝FTDI VCP驅(qū)動(dòng)(下載地址: parallax /usbdrivers);安裝PSCI軟件(訪問(wèn)網(wǎng)址 parallax ,并搜索28823)。雙擊軟件圖標(biāo),即可獲得圖3.5所示,連接好USB線,在界面上選擇COM口,獲取PSC版本,即可使用。圖3.5 PSCI控制界面圖中每個(gè)channel的進(jìn)度條,可發(fā)現(xiàn)對(duì)應(yīng)舵機(jī)會(huì)向相應(yīng)方向發(fā)生一定度數(shù)的旋轉(zhuǎn)。這可用來(lái)進(jìn)行舵機(jī)控制調(diào)試,從而獲取舵機(jī)位置值,來(lái)書(shū)寫(xiě)步態(tài)。注意:圖中數(shù)據(jù)在編入ARM程序中時(shí),應(yīng)先除以2倍,才是實(shí)際數(shù)據(jù),即圖中的中心出1500對(duì)應(yīng)實(shí)
22、際的750。更多功能可參照PARALLAX公司提供的Propeller Servo Controller USB說(shuō)明文檔。當(dāng)使用雙塊板時(shí),其連接方式為:首先將主板的Serial In(兩排,選上排)引出按高低電平信號(hào)線要求插在主控制板(STM32板)上,其中紅色線接5V電源,黑色線接地,白色線接信號(hào)線,即PA9。然后將副板的Serial In(上排)引出插在主板的Serial In處(下排)。最后通上電源即可。了解了PSCI的基本功能,并按要求連接好電路后,首要做的就是將舵機(jī)位置的初始值找出。通過(guò)拖動(dòng)進(jìn)度條,并觀察機(jī)器人各腿的位置,從而確定舵機(jī)初值。筆者提供的舵機(jī)初始值均為六腳與身體垂直時(shí)的值
23、,且2、3關(guān)節(jié)夾角近似為90。3.4 控制板程序編寫(xiě) 基本工作準(zhǔn)備與注意事項(xiàng):前述工作準(zhǔn)備停當(dāng),即可開(kāi)始程序的編寫(xiě)。PARALLAX公司提供的說(shuō)明文檔中提供了BS2程序,需要通過(guò)C語(yǔ)言轉(zhuǎn)譯,才可供ARM板識(shí)別。首先注意的是PSCU板的默認(rèn)波特率為2400bps,所以在編寫(xiě)串行通信程序時(shí),應(yīng)將串行通信的波特率設(shè)置為2400bps(具體見(jiàn)4.4節(jié)關(guān)于USART設(shè)置的介紹)。當(dāng)然本控制板亦可通過(guò)程序設(shè)置,將波特率改為38.4kbps,具體內(nèi)容下面會(huì)介紹到。此外,控制板接收的異步通信數(shù)據(jù)格式要求還有,正相,8個(gè)數(shù)據(jù)位,無(wú)奇偶校驗(yàn)位,1個(gè)或2個(gè)停止位。其次控制板分為主副板,則對(duì)應(yīng)的舵機(jī)控制通道號(hào)即為03
24、1;即副板的通道號(hào)再原號(hào)基礎(chǔ)上加16即可。如果按序連接舵機(jī),可使編程變得較為簡(jiǎn)單,通過(guò)簡(jiǎn)單的數(shù)學(xué)關(guān)系進(jìn)行數(shù)據(jù)處理,但線路凌亂,看起來(lái)不是很美觀;本課題采用的是對(duì)稱連線,即選用通道號(hào)08,2331;當(dāng)然,這樣編程相對(duì)就復(fù)雜一些。最后關(guān)于主副板的界定還需提醒一句,由于硬件可能出現(xiàn)bug,實(shí)際上控制板可能通道號(hào)等沒(méi)有按照說(shuō)明書(shū)的來(lái),在調(diào)試過(guò)程中,可多試幾次,按照實(shí)際結(jié)果編程。本課題在調(diào)試過(guò)程中即出現(xiàn)了問(wèn)題,實(shí)際的主副板是顛倒的,且必須將副板與主控制板(STM32)連接才可使用。通信協(xié)議規(guī)則:PSCU為用戶提供了多種控制功能,但每種控制字符串均是以!SC開(kāi)始,以0x0D結(jié)束,中間有間隔4個(gè)主控制字符,
25、下面將一一介紹:位置命令設(shè)置舵機(jī)的位置控制字符串為:“!SC” 其中channel為通道號(hào),即前述的031;ramp speed為一字節(jié)值,用于舵機(jī)轉(zhuǎn)速控制,其變化范圍為063,且數(shù)值越大,轉(zhuǎn)速越小;lowbyte為舵機(jī)位置的低字節(jié),highbyte為舵機(jī)位置的高字節(jié)。通過(guò)改變lowbyte與highbyte值即可改變舵機(jī)位置,其值變化范圍為2501250。位置命令控制板最基本的命令,往往也是唯一用到的功能。通過(guò)此命令,可以實(shí)現(xiàn)舵機(jī)按要求的轉(zhuǎn)動(dòng),從而滿足行走等多功能要求。SBR設(shè)置波特率控制字符串為:“!SCSBR” 其中mode是用來(lái)設(shè)置波特率的,0代表2400bps,1代表38.4kbps
26、??刂瓢宓哪J(rèn)波特率為2400bps,無(wú)需設(shè)置,但如果需要使用38.4bps的波特率進(jìn)行通信時(shí),可使用該程序?qū)Σㄌ芈蔬M(jìn)行更改。RSP返回位置值控制字符串為:“!SCRSP” 其中channel為通道號(hào)。與VER?一樣,需要進(jìn)行輸入輸出的設(shè)置,方能返回位置值,這對(duì)編程很有用處,可以通過(guò)讀取位置值,判斷其是否到位來(lái)實(shí)現(xiàn)延遲,精確性較高。本課題未使用。讀者可拓展功能。PSS設(shè)置軟件口控制字符串為: “!SCPSS” 其中mode為0代表015;1代表1631??赡苡捎诎遄拥膯?wèn)題,實(shí)際過(guò)程中并未起作用,當(dāng)控制板沒(méi)問(wèn)題時(shí),可以根據(jù)個(gè)人喜好設(shè)置控制板的端口號(hào),為編程提供便利。PSD使端口無(wú)效控制字符串為:
27、 “!SCPSD” 其中channel為通道號(hào)。此功能與PSE功能配合使用,在適當(dāng)時(shí)候可能才生意想不到的效果。PSE使端口恢復(fù)有效控制字符串為: “!SCPSE” 其中channel為通道號(hào)。此功能用于PSD后,用來(lái)恢復(fù)端口的正常使用。其余的功能控制命令此處便不再贅述,因?yàn)橐话闱闆r下無(wú)法用到。C語(yǔ)言程序編寫(xiě)簡(jiǎn)介:由于說(shuō)明書(shū)中只提供了BS2程序,較難普及,需使用應(yīng)用較廣的C語(yǔ)言編寫(xiě)。從控制命令的格式可以看出,無(wú)論哪種方式,都是8字節(jié)的字符串,于是,可定義一個(gè)聯(lián)合體(結(jié)構(gòu)體亦可),來(lái)儲(chǔ)存這一串字節(jié):typedef union _SERVO_PACKET char stream8; struct c
28、har CR : 8; char B3 : 8; char B2 : 8; char B1 : 8; char B0 : 8; unsigned SC : 24; packet; SERVO_PACKET; SERVO_PACKET pac;并將三字節(jié)的SC初始化為0x215343或”!SC”,將CR初始化為0x0D。這樣在編寫(xiě)各種控制命令函數(shù)時(shí),只要改變B0B3的值即可。例,位置命令函數(shù):void SendPacket(char RS, char Channel, int Position) int i = 0; pac.packet.B0 = Channel; pac.packet.B1
29、= RS; pac.packet.B2 = LOWBYTE(Position); pac.packet.B3 = HIGHBYTE(Position); for(i = 7 ; i = 0 ; i-) ser_putbyte(pac.streami); /該函數(shù)4.4節(jié)介紹,作用為發(fā)送單個(gè)字節(jié) 其中LOWBYTE()、HIGHBYTE()函數(shù)的定義為:#define LOWBYTE(v) (unsigned char) (v) #define HIGHBYTE(v) (unsigned char) (unsigned int) (v) 8)其功能為獲取數(shù)值(位置值)的低八位與高八位。這即可為編
30、程提供很大方便。以此類推,其它命令的函數(shù)可以根據(jù)需要只要參考上述的位置命令函數(shù)編寫(xiě)即可。在此基礎(chǔ)上以及之前用PSCI軟件調(diào)試出的舵機(jī)初始值,即可編寫(xiě)舵機(jī)初始化程序了。void Initservo(void) int i=0; for(i=0;iCRL=(GPIOD-CRL&(0x0000000F04)|0x00000003CRL=(GPIOD-CRL&(0x0000000F04)|0x0000000404其中第一行將PD1設(shè)置為推挽輸出模式,第二行將PD1設(shè)置為浮空輸入模式。在使用時(shí),只需在程序前,加入一行DAT_OUT;或者DAT_IN來(lái)切換PD1輸入輸出。當(dāng)書(shū)寫(xiě)其它I/O口的程序時(shí),只需將
31、GPIOD換成相應(yīng)I/O口,如果端口號(hào)為07,則只需將右邊的04改成端口號(hào)*4的積,例如PA0則為00,如果端口號(hào)為815,則需將CRL換成CRH,同時(shí)DR = (data & 0xFF); return (data); 函數(shù)二:int SendChar (int ch) USART_SendData(USART1, (unsigned char) ch); while (!(USART1-SR & USART_FLAG_TXE); return (ch); 上述兩個(gè)函數(shù)的功能等同,在寫(xiě)程序時(shí)可以隨意調(diào)用,例如3.4節(jié)提到的SendPacket()函數(shù)便調(diào)用了上述的函數(shù)一。接收一個(gè)字節(jié)u8 R
32、Byte(void) u8 out=0;while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) = RESET) /等待接收完畢 out = (USART_ReceiveData(USART1); /接收一個(gè)字節(jié)return out; 該函數(shù)用于接收單個(gè)字節(jié),在無(wú)線通信時(shí)可用到。發(fā)送一個(gè)字符串void Print_String(u8 *p)/發(fā)送一串?dāng)?shù)據(jù) while(*p) USART_SendData(USART1, *p+); while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) = RESET)
33、當(dāng)連續(xù)發(fā)送的字符很多時(shí),可以選用該函數(shù)以字符串形式發(fā)送。接收一個(gè)字符串void SerialIn(u8 *buf,u8 len) unsigned char i;for (i = 0; i len; i+) bufi = RByte(); 同樣,當(dāng)需要連續(xù)發(fā)送多個(gè)字節(jié)數(shù)據(jù)時(shí),則可選用該函數(shù)。上面提到的都是USART1的設(shè)置以及拓展功能函數(shù)的書(shū)寫(xiě)。而其它串口通信的設(shè)置與U1一致,功能函數(shù)則只需將U1換成U2或U3即可。由于主板的問(wèn)題,本項(xiàng)目中并未使用U2、U3來(lái)實(shí)現(xiàn)其它串口通信,而是將所有的串口通信均由U1來(lái)實(shí)現(xiàn),這也是權(quán)宜之計(jì),即采用分時(shí)復(fù)用的原理。具體說(shuō)來(lái),就是發(fā)聲傳感器和無(wú)線傳感器都需要通
34、過(guò)異步傳輸來(lái)與處理器通信。對(duì)于每個(gè)傳感器以及PSCU,它們能夠識(shí)別的信號(hào)是由特定字符串組成的。這樣,只要將PA9、PA10口多引出幾個(gè)引腳,分別接到傳感器以及PSCU的相應(yīng)口即可,在傳輸指令時(shí),分時(shí)傳送,對(duì)于無(wú)法識(shí)別的字符串,則不處理,這樣便解決了串口不夠的問(wèn)題。如果要實(shí)現(xiàn)搶占,則將它們配置成中斷模式即可,并配置好優(yōu)先級(jí)。4.5 外部中斷設(shè)置與應(yīng)用當(dāng)主控制板遇到異常時(shí),便會(huì)觸發(fā)中斷,并進(jìn)行處理。NVIC,中文叫做嵌套矢量中斷控制器,是用來(lái)處理中斷的對(duì)于STM32F107的普通用戶來(lái)說(shuō),只要掌握EXTI線中斷,USART中斷以及TIM中斷即可。下面僅對(duì)EXTI中斷作簡(jiǎn)略介紹。外部中斷/事件控制器
35、(EXTI)由19個(gè)產(chǎn)生事件/中斷請(qǐng)求的邊沿檢測(cè)器組成。每個(gè)輸入線可獨(dú)立地配置輸入類型和對(duì)應(yīng)的觸發(fā)事件(上升沿、下降沿或雙邊沿觸發(fā))每個(gè)輸入線都可以被獨(dú)立地屏蔽,由掛起寄存器保持著狀態(tài)線的中斷要求。如果要產(chǎn)生外部中斷,首先必須配置好并激活中斷線。配置內(nèi)容包括:根據(jù)需要的邊沿檢測(cè)設(shè)置2個(gè)觸發(fā)寄存器、在中斷屏蔽寄存器的相應(yīng)位寫(xiě)1以允許中斷請(qǐng)求。當(dāng)外部中斷線上出現(xiàn)設(shè)定的邊沿信號(hào)時(shí),將產(chǎn)生一個(gè)中斷請(qǐng)求等待處理。完成中斷服務(wù)后,可以清除該中斷請(qǐng)求。下面具體介紹如何配置硬件中斷/事件請(qǐng)求。(1)首先要了解中斷線與I/O口的關(guān)系,如圖4.2可知,PAPE的015口分別對(duì)應(yīng)EXTI的015口;EXTI16與P
36、VD輸出連接、EXTI17與RTC鬧鐘事件連接、EXTI18與USB喚醒事件連接。圖4.2 中斷線與GPIO口對(duì)應(yīng)關(guān)系(2)對(duì)EXTI線配置,以EXTI0為例,配置函數(shù)如下:void NVIC_Configuration(void) NVIC_InitTypeDef NVIC_InitStructure; #ifdef VECT_TAB_RAMNVIC_SetVectorTable(NVIC_VectTab_RAM,0x0); #elseNVIC_SetVectorTable(NVIC_VectTab_FLASH,0x0); #endif NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1; NV
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年主題公園沉浸式體驗(yàn)設(shè)計(jì)創(chuàng)新與項(xiàng)目運(yùn)營(yíng)管理研究報(bào)告
- 2025年工程經(jīng)濟(jì)知識(shí)點(diǎn)覆蓋試題及答案
- 經(jīng)濟(jì)法概論的系統(tǒng)性試題及答案
- 2025年公共關(guān)系學(xué)課程重點(diǎn)試題及答案
- 行政管理心理學(xué)考試中例題詳解試題及答案
- 行政管理經(jīng)濟(jì)法課本概述試題及答案
- 2025年工程經(jīng)濟(jì)財(cái)務(wù)杠桿效應(yīng)試題及答案
- 行政管理經(jīng)濟(jì)法前沿問(wèn)題試題及答案
- 林草局森林火災(zāi)應(yīng)急預(yù)案(3篇)
- 工程經(jīng)濟(jì)新興市場(chǎng)分析試題及答案
- 行政能力測(cè)試常識(shí)題庫(kù)及答案
- 小學(xué)生反詐知識(shí)宣傳課件
- 高血壓腦出血專家共識(shí)
- NB-T 47013.1-2015 承壓設(shè)備無(wú)損檢測(cè) 第1部分-通用要求
- 西格列汀二甲雙胍緩釋片-藥品解讀
- 多因素身份認(rèn)證
- 鐵路基本建設(shè)工程設(shè)計(jì)概(預(yù))算編制辦法-國(guó)鐵科法(2017)30號(hào)
- 汽車修理廠臺(tái)賬表格范本
- 顏真卿《勸學(xué)》ppt課件1
- 400字作文稿紙20x20格A4標(biāo)準(zhǔn)稿紙
- 管道燃?xì)饪头T(高級(jí)工)技能鑒定考試題庫(kù)大全(含答案)
評(píng)論
0/150
提交評(píng)論