機(jī)器人關(guān)節(jié)的設(shè)計(jì)與實(shí)現(xiàn)

上傳人:小** 文檔編號:58153166 上傳時間:2022-02-26 格式:DOC 頁數(shù):38 大?。?14.50KB
收藏 版權(quán)申訴 舉報 下載
機(jī)器人關(guān)節(jié)的設(shè)計(jì)與實(shí)現(xiàn)_第1頁
第1頁 / 共38頁
機(jī)器人關(guān)節(jié)的設(shè)計(jì)與實(shí)現(xiàn)_第2頁
第2頁 / 共38頁
機(jī)器人關(guān)節(jié)的設(shè)計(jì)與實(shí)現(xiàn)_第3頁
第3頁 / 共38頁

下載文檔到電腦,查找使用更方便

30 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《機(jī)器人關(guān)節(jié)的設(shè)計(jì)與實(shí)現(xiàn)》由會員分享,可在線閱讀,更多相關(guān)《機(jī)器人關(guān)節(jié)的設(shè)計(jì)與實(shí)現(xiàn)(38頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、設(shè)計(jì)題目: 機(jī)器人關(guān)節(jié)的設(shè)計(jì)與實(shí)現(xiàn) 學(xué)生姓名: ******* 所在院系: 信息工程學(xué)院 所學(xué)專業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 導(dǎo)師姓名: ******** 完成時間: ********** 摘要 機(jī)器人關(guān)節(jié)是機(jī)器人的基礎(chǔ)部件,其性能的好壞直接影響機(jī)器人的性能。隨 著數(shù)字伺服技術(shù)等電子技術(shù)的發(fā)展, 機(jī)器人關(guān)節(jié)也在不斷發(fā)展。本文主要研究基 于舵機(jī)的機(jī)器人關(guān)節(jié)的設(shè)計(jì)與實(shí)現(xiàn)。本文主要了完成以下工作: 采用定時器控制方法產(chǎn)生舵機(jī)控制的脈沖信號。 為了能實(shí)現(xiàn)活動關(guān)節(jié)根據(jù)輸 入角度準(zhǔn)確定位和微調(diào),在設(shè)計(jì)中加入了矩陣鍵盤調(diào)控系統(tǒng)。在硬件搭建方面, 設(shè)計(jì)了基于STC89C52的2路

2、脈沖信號的硬件控制電路系統(tǒng)。之后對系統(tǒng)所使用 的編輯軟件和調(diào)試工具進(jìn)行了簡要說明,并詳細(xì)介紹了軟硬件主要模塊的設(shè)計(jì)和 實(shí)現(xiàn)過程,以及重要模塊的調(diào)試和仿真的具體過程。 最后,根據(jù)軟硬件設(shè)計(jì)結(jié)果, 制作了一個極坐標(biāo)結(jié)構(gòu)的機(jī)器人關(guān)節(jié),能夠完成在水平和豎直方向的比較精確的 控制。 關(guān)鍵詞 舵機(jī),機(jī)器人關(guān)節(jié),脈沖信號 Abstract Robots joi nt, is a basic part of robot, whose performa nee will directly affect a robot. With the developme nt of electr onic tech n

3、o logy such as digital servo, the tech no logy of robot joint is develop ing continu ally. This paper studies the robot joint desig n and impleme ntati on based on digital serv o. In this paper, the follow ing work to complete: In order to achieve activities Joint accurate positioning and fine-tune

4、 based on the in put an gle, the desig n addi ng a matrix keyboard to con trol the system. Hardware structures desig ned 2-way pulse hardware con trol based on STC89C52 circuit system. Then, the paper briefly describes the editing software and debugging tools by the system. This paper in troduces th

5、e desig n and impleme ntati on of the main modules of hardware and software, and importa nt part of the specific process of debugg ing and simulatio n. Fin ally, accord ing to the results of software and hardware desig n, produced a polar structure of the robot joi nts which can complete in the hori

6、z on tal and vertical directi on s, respectively, the more precise con trol. Key words Servo, Robot joint. Pulse signal 1. 弓 I言 2.. 1.1 課題背景 2. 1.2 舵機(jī)簡介 3. 1.3 本文研究的工作 4. 2. 系統(tǒng)的總體設(shè)計(jì) 4. 3. 硬件的設(shè)計(jì)與實(shí)現(xiàn) 5. 3.1 主要元器件介紹 5. 3.1.1 舵機(jī) 5. 3.1.2 STC89C52 .6.. 3.2 硬件的設(shè)計(jì)過程 6. 3.2.1 工作電源控制電路設(shè)計(jì) 6 3.2

7、.2 1602顯示控制電路設(shè)計(jì) 1 3.2.3 矩陣鍵盤控制電路設(shè)計(jì) 8 3.2.4 舵機(jī)與系統(tǒng)接口電路設(shè)計(jì) 9 3.2.5 機(jī)器人關(guān)節(jié)的外形設(shè)計(jì) 9 3.3 硬件的實(shí)現(xiàn)過程 9. 3.3.1 電路板的設(shè)計(jì)過程 9. 3.3.2 硬件的組裝過程 10 4. 軟件的設(shè)計(jì)與實(shí)現(xiàn) 1.0 4.1 系統(tǒng)軟件設(shè)計(jì)流程 1.1 4.2 各模塊程序設(shè)計(jì) 1.1 4.2.1 脈沖信號產(chǎn)生模塊 1.1 4.2.2 矩陣鍵盤控制模塊 12 4.3 數(shù)據(jù)處理 1.3 4.3.1 矩陣鍵盤的散列轉(zhuǎn)換 1.3 4.3.2 脈寬與角度的數(shù)據(jù)處理 1.4 5. 仿真與調(diào)試 15

8、 5.1 硬件電路的仿真 15 5.2 單片機(jī)的程序調(diào)試 16 6. 總結(jié) 17 致謝 1.8 參考文獻(xiàn) 1.9 附錄1 20 附錄2 20 1.引言 從一戰(zhàn)以來,機(jī)器人學(xué)和飛機(jī)、火箭、計(jì)算機(jī)等一樣,也日益發(fā)展成為我們 日常生活不可或缺的科學(xué)技術(shù),機(jī)器人的應(yīng)用廣泛,從傳統(tǒng)的自動化制造領(lǐng)域, 到人類的日常生活,再到茫茫星系的探索,都已經(jīng)離不開機(jī)器人。 1.1課題背景 機(jī)器人關(guān)節(jié)的種類有很多,根據(jù)機(jī)器人的功能不同,關(guān)節(jié)的配臵和運(yùn)動系統(tǒng) 的形式也都各不相同。 應(yīng)用最多的工業(yè)機(jī)器人是多關(guān)節(jié)機(jī)器人,它主要是由多個回轉(zhuǎn)關(guān)節(jié)和連桿組 成,模擬人的肩關(guān)節(jié)、肘關(guān)節(jié)和腕關(guān)節(jié)等的作用。工業(yè)

9、機(jī)器人關(guān)節(jié)根據(jù)輸出運(yùn)動 形式的不同分為移動關(guān)節(jié)和轉(zhuǎn)動關(guān)節(jié):根據(jù)傳動機(jī)構(gòu)的不同可以分為齒輪傳動、 連桿傳動和擺線針輪減速傳動;根據(jù)驅(qū)動器形式的不同可以分為電驅(qū)動關(guān)節(jié)、 氣 壓驅(qū)動關(guān)節(jié)、液壓驅(qū)動關(guān)節(jié)和特種驅(qū)動關(guān)節(jié)等。仿人機(jī)器人也是當(dāng)今機(jī)器人愛好 者研究的熱點(diǎn)之一,仿人機(jī)器人因?yàn)橥庑皖惾藙t其關(guān)節(jié)可以分為上肢關(guān)節(jié)和下肢 關(guān)節(jié)。仿人機(jī)器人主要分為仿人手臂型和仿人雙足型。仿人手臂型主要是研究 7 自由度手臂和多自由度操作臂、多指靈巧手及手臂和靈巧手的組合。 仿人雙足型 主要研究步行機(jī)構(gòu)及步行特性,下肢關(guān)節(jié)結(jié)構(gòu)是步行質(zhì)量好壞的關(guān)鍵。微型機(jī)器 人則是利用集成電路微細(xì)加工,將驅(qū)動器,關(guān)節(jié)傳動裝臵以及傳感器控

10、制器和電 源等集成在很小的多晶硅上。工業(yè)機(jī)器人與仿人機(jī)器人的肩、 肘、髖關(guān)節(jié)不同的 是自由度的個數(shù)。通常工業(yè)機(jī)器人的肩肘髖的關(guān)節(jié)的自由度為 1。 總體來看機(jī)器人關(guān)節(jié)呈現(xiàn)出大力矩,高精度,反應(yīng)靈敏,小型化,標(biāo)準(zhǔn)化和 模塊化的趨勢和發(fā)展。 1.2舵機(jī)簡介 在機(jī)器人關(guān)節(jié)的設(shè)計(jì)中,電機(jī)是至關(guān)重要的一部分,電機(jī)就像是機(jī)器人關(guān)節(jié) 的肌肉,只有正確的配臵和使用電機(jī)才能使機(jī)器人關(guān)節(jié)正常運(yùn)轉(zhuǎn)起來。 常見的電機(jī)主要有直、交流電機(jī),而直流電機(jī)一直在機(jī)器人設(shè)計(jì)中占有主導(dǎo) 地位。直流電機(jī)可以分為連續(xù)轉(zhuǎn)動電機(jī)和步進(jìn)電機(jī) 2種,主要區(qū)別是連續(xù)轉(zhuǎn)動的 電機(jī)在通電后主軸連續(xù)轉(zhuǎn)動,只有當(dāng)斷電或者電機(jī)提供的驅(qū)動力無法驅(qū)動負(fù)

11、載 時,主軸才停止轉(zhuǎn)動或這阻塞;步進(jìn)電機(jī)則是通電后主軸轉(zhuǎn)動某一個角度后, 然 后停止。直流電機(jī)和步進(jìn)電機(jī)都是開環(huán)反饋系統(tǒng), 也就是在電機(jī)轉(zhuǎn)動的過程中并 不知道電機(jī)究竟轉(zhuǎn)過了多少角度。 伺服電機(jī)是一種比較特殊的連續(xù)轉(zhuǎn)動電機(jī)類型。 伺服電機(jī)轉(zhuǎn)動的角度可以通 過控制電路反饋,并且控制電路不斷的修正轉(zhuǎn)動角度的誤差, 直到電機(jī)轉(zhuǎn)動要預(yù) 期位臵。 舵機(jī)是一種伺服電機(jī),它具有伺服電機(jī)的優(yōu)點(diǎn),即在接收到控制信號后可以 轉(zhuǎn)過相對準(zhǔn)確的位臵,這使舵機(jī)在機(jī)器人設(shè)計(jì),航模,船模等有著廣泛的應(yīng)用, 比如用來控制機(jī)器人的轉(zhuǎn)動方向等。 舵機(jī)的定位是利用脈寬調(diào)制的方法實(shí)現(xiàn)的。 舵機(jī)可以根據(jù)周期內(nèi)高電平的持 續(xù)時間(即

12、脈寬)來完成定位。一般的舵機(jī)控制電路能夠接收周期為 20ms、脈 寬為1~2ms的脈沖信號,脈沖的準(zhǔn)確長度決定了舵機(jī)軸轉(zhuǎn)動的準(zhǔn)確位臵 (圖1-1)。 目前普遍使用PWM (占空比)即高電平在20ms周期內(nèi)的持續(xù)時間所占的比例 來描述脈寬。當(dāng)舵機(jī)接收到的1ms的脈寬時,舵機(jī)向某一個極限位臵轉(zhuǎn)動,當(dāng) 接收到脈寬為2ms的時候,舵機(jī)向另一個方向極限位臵轉(zhuǎn)動。也可以說舵機(jī)的 角位移與接收到的脈寬成正比,一般情況下,舵機(jī)能在 0.25~0.5的時間內(nèi)轉(zhuǎn)過 60°。 伺服電機(jī)是一種閉環(huán)反饋系統(tǒng),內(nèi)部主要有一個控制電路、一個電機(jī)、一個 齒輪箱和一個電位計(jì)組成。電位計(jì)的作用是檢測舵機(jī)的輸出軸是否已經(jīng)轉(zhuǎn)到

13、期望 位臵。電位計(jì)與舵機(jī)的輸出軸相連接,這樣分壓計(jì)能夠非常準(zhǔn)確的反映出舵機(jī)輸 出軸的當(dāng)前位臵。電位計(jì)輸出為一個電壓信號,當(dāng)舵機(jī)的輸出軸的位臵變換時, 控制電路就會從分壓器接收到不同的電壓信號。 舵機(jī)中的控制電路將電位計(jì)的輸 出的電壓信號和控制脈沖信號定時比較,如果電壓信號不正確就會產(chǎn)生誤差信 號。該誤差信號與電位計(jì)的位臵和可能告知脈沖的差值成正比, 當(dāng)存在誤差信號 時,電機(jī)就會保持轉(zhuǎn)動,直到電位計(jì)輸出的電壓信號和控制脈沖信號相匹配時, 誤差信號被移除,電機(jī)停轉(zhuǎn)。 1?2ms A 20ms 圖1-1周期為

14、20ms的脈沖信號的高電平持續(xù)時間在 1~2ms之間變化可以控制舵機(jī)的輸出軸位臵 舵機(jī)的主要技術(shù)參數(shù)有力矩,回轉(zhuǎn)率,工作電壓,工作溫度,死區(qū)等。舵機(jī) 的應(yīng)用場合,主要有多自由度機(jī)器人設(shè)計(jì),多路伺服航??刂?,電動遙控飛機(jī) , 遙控飛機(jī),航海模型,高檔遙控仿真車等。 1.3本文研究的工作 通過對電機(jī)類型的結(jié)構(gòu)和原理進(jìn)行分析與比較,本課題選用舵機(jī)作為機(jī)器人 關(guān)節(jié)的本體原件來完成的機(jī)器人關(guān)節(jié)的設(shè)計(jì)與實(shí)現(xiàn),以達(dá)到可以在水平和豎直兩 個方向上控制機(jī)器人關(guān)節(jié)的活動效果。 系統(tǒng)主要包括硬件設(shè)計(jì)和軟件設(shè)計(jì), 以及 最終硬件的制作。硬件設(shè)計(jì)主要包括液晶顯示模塊,矩陣鍵盤模塊和舵機(jī)與單片 機(jī)的接口模

15、塊,以及最后的機(jī)器人關(guān)節(jié)外形設(shè)計(jì)。 與硬件設(shè)計(jì)相對應(yīng)的,軟件設(shè) 計(jì)主要包括液晶顯示模塊,矩陣鍵盤模塊和舵機(jī)的脈沖形成模塊。在本文的下面 一些章節(jié)會詳細(xì)介紹軟硬件各部分的設(shè)計(jì)過程。 2.系統(tǒng)的總體設(shè)計(jì) 系統(tǒng)的總體設(shè)計(jì)分別包括系統(tǒng)的硬件設(shè)計(jì)和軟件設(shè)計(jì)。硬件設(shè)計(jì)主要是指完 成系統(tǒng)工作所必須的硬件部分電路設(shè)計(jì)以及硬件組裝設(shè)計(jì); 軟件設(shè)計(jì)主要是指單 片機(jī)的程序設(shè)計(jì)。硬件設(shè)計(jì)主要包含液晶顯示,矩陣鍵盤和舵機(jī)接口三大部分。 圖2-1為系統(tǒng)框圖。 圖2-1系統(tǒng)框圖 3.硬件的設(shè)計(jì)與實(shí)現(xiàn) 硬件是系統(tǒng)運(yùn)行的基礎(chǔ),硬件設(shè)計(jì)是系統(tǒng)設(shè)計(jì)中的重要組成部分。本系統(tǒng)中 的硬件設(shè)計(jì)主要包括系統(tǒng)工作電源電

16、路設(shè)計(jì), 1602液晶顯示電路設(shè)計(jì),矩陣鍵 盤和舵機(jī)與系統(tǒng)接口的電路設(shè)計(jì)等。 3.1主要元器件介紹 下面主要對硬件中使用的一些重要的元器件的電氣特征作一下介紹。 3.1.1舵機(jī) 通過對舵機(jī)的結(jié)構(gòu)原理,控制特性與機(jī)械特性的綜合分析與研究, 最終選擇 TowerPro公司的MG995型號舵機(jī)(圖3-1)作為本課題的舵機(jī)本體。該型號舵 機(jī)具有力矩大(10kg/cm),輸出功率高,價格合理,穩(wěn)定性好等優(yōu)點(diǎn)。其他參數(shù) 還有回轉(zhuǎn)率0.20s/60°,工作電壓4.8~7.2V,工作溫度為0~55°C,角度范圍0~90 度等。 圖 3-1 TowerPro MG995 3.1.2 STC89

17、C52 由于51系列單片機(jī)在國內(nèi)廣泛使用,技術(shù)比較成熟,而且相關(guān)的開發(fā)工具 也比較普及,性能優(yōu)越,所以在此也選擇 51系列的STC89C52單片機(jī)作為控制 機(jī)器人關(guān)節(jié)的單片機(jī)。STC89C5*系列單片機(jī)不僅性能優(yōu)越,而且控制簡單,價 格合理。該型號的單片機(jī)片內(nèi) EPROM達(dá)到8K,同時有2個定時器,足以承擔(dān) 系統(tǒng)的設(shè)計(jì)需要。 其他的選用的主要器件還有穩(wěn)壓器 7805,液晶顯示器1602,電容和電阻等 一系列電器元件。 3.2硬件的設(shè)計(jì)過程 硬件的設(shè)計(jì)過程包括硬件的電路設(shè)計(jì)和機(jī)器人關(guān)節(jié)的外形設(shè)計(jì)。 根據(jù)系統(tǒng)將要完成的幾項(xiàng)功能考慮硬件電路設(shè)計(jì),硬件部分所要提供的功能 有液晶顯示、矩陣鍵盤

18、、舵機(jī)接口,所以硬件電路設(shè)計(jì)主要包含這幾個部分的功 能。除此之外還有系統(tǒng)工作的電壓電路, 以及機(jī)器人關(guān)節(jié)的外形設(shè)計(jì)等。 下面詳 細(xì)介紹重要功能模塊的設(shè)計(jì)。 3.2.1工作電源控制電路設(shè)計(jì) 為了給系統(tǒng)各部分提供穩(wěn)定可靠的直流電壓,在控制系統(tǒng)中選用了穩(wěn)壓器 7805完成對工作電壓的穩(wěn)定控制工作。7805具有體積小,重量輕,可靠性好等 特點(diǎn)。圖3-2是為系統(tǒng)電源控制電路圖。 12V的直流電壓經(jīng)過7805后轉(zhuǎn)換為穩(wěn)定的5V電壓后,供應(yīng)整個電路的電 源系統(tǒng)。為了防止電路回時電流過大對 7805造成損害,在電路中選用二極管保 護(hù) 7805。 VCC 5V VCC 12V 7805 1 3

19、 2 C1 C2 key 當(dāng)GND 圖3-2電源控制電路圖 3.2.2 1602顯示控制電路設(shè)計(jì) 系統(tǒng)選用1602 (SPI16引腳)作為數(shù)據(jù)顯示器件,主要用于顯示舵機(jī)的當(dāng)前 角度和調(diào)整角度。1602是一種16*2字符型液晶顯示器,采用電路模塊封裝,控 制器大部分為HD44780,帶有標(biāo)準(zhǔn)的SIP14引腳(無背光)或SIP16引腳(帶背 光),芯片和背光電路工作電壓與單片機(jī)兼容引腳分為電源、通信數(shù)據(jù)和控制三 部分,可以很方便的可以與單片機(jī)進(jìn)行連接。 設(shè)計(jì)中選用單片機(jī)的 P0 口作為1602的數(shù)據(jù)輸入端口( D0~D7 ),P3.2,P3.3, P3.4分別作為數(shù)據(jù)命令選擇端

20、(H/L)( RS),讀/寫選擇端(H/L)( RW),使能信 號端(E)。上拉電阻部分(RP1)具有限流的作用。圖3-3為1602與STC89C52 的接口電路圖。 LM016L 圖3-3 1602 顯示電路圖 3.2.3矩陣鍵盤控制電路設(shè)計(jì) 本系統(tǒng)的矩陣鍵盤主要是用于定位調(diào)整和加減微調(diào)舵機(jī)角度兩項(xiàng)功能。 電路 圖3-4為矩陣鍵盤的控制電路。 選用STC98C52單片機(jī)的P2 口作為矩陣鍵盤的控制端口。按鍵 0~9為數(shù)字 按鍵,主要用于定位舵機(jī)角度的輸入。鍵 D1++,D1――,D2++,D2――分別 控制舵機(jī)1和舵機(jī)2微調(diào)。確定鍵,當(dāng)輸入舵機(jī)需要定位的角度后,按下確認(rèn)鍵 后

21、,舵機(jī)開始運(yùn)轉(zhuǎn)。取消鍵,用于取消輸入的定位角度(未按確定鍵前) 。 P2.0 10 P2.1 P2.2 P2.3 STC89C>4 P2.5 P2.6 P2.7 11 12 13 14 15 16 17 1 2 3 D1++ 4 5 6 D1-- 7 8 9 0 D2++ D2-- 確認(rèn) 取消 14 15 16 「 仃 「 10 11 12 13 圖3-4

22、 矩陣鍵盤電路圖 324舵機(jī)與系統(tǒng)接口電路設(shè)計(jì) 向舵機(jī)發(fā)送脈沖信號的電路部分,舵機(jī)根據(jù)脈沖寬度調(diào)整舵機(jī)的位臵。 下圖 (圖3-5)為舵機(jī)與系統(tǒng)接口的控制電路部分。 VCC 分別選用STC89C52單片機(jī)的P1.3, P1.4引腳作為舵機(jī)1和舵機(jī)2的輸出 脈沖信號的控制端口。在電路仿真中,該2個端口接的是虛擬示波器,用來顯示 和反映脈沖信號的輸出狀態(tài)。 3.2.5機(jī)器人關(guān)節(jié)的外形設(shè)計(jì) 機(jī)器人關(guān)節(jié)的外形設(shè)計(jì)是指最終機(jī)器人關(guān)節(jié)的成型外形。 首先是關(guān)節(jié)的支架 部分的設(shè)計(jì),因?yàn)殛P(guān)節(jié)支架是第一眼外觀直接接觸到的, 所以設(shè)計(jì)的時候兼顧成 本與外形的美觀;然后是關(guān)節(jié)基座的設(shè)計(jì),關(guān)節(jié)基

23、座是位于關(guān)節(jié)底層的基礎(chǔ)部件, 它的穩(wěn)固與靈活直接關(guān)系到整個關(guān)節(jié)的活動性。 3.3硬件的實(shí)現(xiàn)過程 硬件的實(shí)現(xiàn)過程主要包括PCB板得制作過程和硬件的組裝過程下面對此兩 方面做分別介紹。 3.3.1電路板的設(shè)計(jì)過程 將整個系統(tǒng)電路圖設(shè)計(jì)出來后,接下來我們就需要制作電路板圖了。 電路板 設(shè)計(jì)得是否合理,質(zhì)量是否可靠,直接決定著制作出來的控制電路的質(zhì)量和運(yùn)行 的可靠性。Altium Designer提供了板圖設(shè)計(jì)功能,包括自動布線和器件自動擺放 功能。事實(shí)上,器件自動擺放功能是達(dá)不到要求的,因此,實(shí)際操作時應(yīng)采用“人 工擺放兀件一人工預(yù)布線一自動布線一人工細(xì)調(diào)” 的設(shè)計(jì)流程,一步一步制作出

24、符合要求的電路板。電路板圖見附錄二。 332硬件的組裝過程 這部分主要包括部分硬件的制作和硬件的組裝。前期硬件制作的精細(xì)將直接 關(guān)系到最終關(guān)節(jié)的靈活性、外觀以及擴(kuò)充能力,也就是決定了機(jī)器人關(guān)節(jié)的質(zhì)量。 硬件的組裝主要包括機(jī)器人關(guān)節(jié)的外形組裝和電路板的各元件的安放與焊 接,以及組裝完成后的調(diào)試等過程。首先是硬件的選材,在跑遍各材料市場之后, 終于選定了以鋁合金作為支架的材料。 但是因?yàn)殇X合金的硬度較大,實(shí)驗(yàn)的工具 設(shè)計(jì)的不足,以及遇到各式各樣的問題 剪過程的失誤,造 有限,不易裁剪,所以這對部分的器件制作產(chǎn)生了不小的困難。 不過最終我們依 然是不懈的向我們的設(shè)計(jì)靠近,裁剪出來比較合格的

25、部件。硬件的組裝過程可以 說也是一個有難度的過程,在設(shè)計(jì)階段的各個關(guān)節(jié)部件,在組裝過程中才會發(fā)現(xiàn) 。比如會遇到裁剪好的部件因?yàn)檎`差和裁 E的最終部件不能很好的吻合舵機(jī)的轉(zhuǎn)軸問題等。 4.軟件的設(shè)計(jì) '實(shí)現(xiàn) 圖3-6 關(guān)節(jié)實(shí)物圖 軟件是系統(tǒng)的靈魂,軟件設(shè)計(jì)的好壞直接影響到整個系統(tǒng)性能的強(qiáng)弱。 所以 軟件設(shè)計(jì)是本系統(tǒng)中重要的組成部分 4.1系統(tǒng)軟件設(shè)計(jì)流程 在本系統(tǒng)中的軟件主要是指單片機(jī)的程序,主要包括舵機(jī)脈沖信號發(fā)生模 塊,矩陣鍵盤控制模塊和液晶顯示器 1602顯示模塊幾大部分。 軟件的工作過程首先單片機(jī)程序復(fù)位以后,定時器和 160分別進(jìn)行初始化。 之后在主函數(shù)里設(shè)臵舵機(jī)的初始

26、位臵,然后進(jìn)入 while()函數(shù)。在函數(shù)內(nèi)部,不 停的進(jìn)行按鍵掃描是否有按鍵被按下, 如果按鍵被按下,則進(jìn)入按鍵數(shù)據(jù)處理函 數(shù)keymanage(進(jìn)行按鍵處理,并將處理結(jié)果送去 1602顯示。系統(tǒng)流程圖如圖 4-1所示。 4-1系統(tǒng)設(shè)計(jì)流程圖 4.2各模塊程序設(shè)計(jì) 單片機(jī)程序的子模塊主要包括脈沖信號產(chǎn)生模塊,矩陣鍵盤控制模塊和液晶 顯示模塊,在這里主要詳細(xì)介紹前 2個模塊。 4.2.1脈沖信號產(chǎn)生模塊 在該單片機(jī)程序中,主要使用2個定時器來產(chǎn)生2路脈沖信號,分別輸送給 2個舵機(jī)。具體實(shí)現(xiàn)方法是timer1作為基準(zhǔn)定時器,提供穩(wěn)定的10ms定時,timerO 則作為控制

27、高電平時間定時器。在 timerl中每次根據(jù)標(biāo)志位選擇翻轉(zhuǎn)脈沖信號 高低電平,并打開timerO:在timerO中斷函數(shù)中,則根據(jù)標(biāo)志位重新翻轉(zhuǎn)脈沖信 號,最后關(guān)閉timerO,則形成高電平脈沖,完成舵機(jī)脈沖信號的輸出。脈沖信號 產(chǎn)生流程圖如圖4-2所示。 ▼ 設(shè)置 timerO, timerl timerl timerO 打開 timerO, timerl PWM1=~PWM1 Flag=1 PWM2=?PWM2 Flag=O 設(shè)置舵機(jī)2的定 時器初值并 PWM 仁?PWM1 設(shè)置舵機(jī)1的定 時器初值并 PWM2=~PWM2 是 —— (Fl

28、ag==O)? 打開timeO 關(guān)閉TimerO 圖4-2 脈沖信號產(chǎn)生流程圖 因?yàn)槎鏅C(jī)的控制電路周期的脈沖時間為 20ms,而STC89C52里共有2個定 時器,所以本系統(tǒng)采用分時復(fù)用的方法來產(chǎn)生 2路脈沖信號。該方法在理論上可 以控制10個舵機(jī)的共同工作,可擴(kuò)充性強(qiáng)。 4.2.2矩陣鍵盤控制模塊 在單片機(jī)程序中,矩陣鍵盤的控制最為繁雜。首先是鍵盤的掃描,根據(jù)按鍵 的不同分別執(zhí)行不同的程序操作:0~9數(shù)字按鍵經(jīng)過鍵盤的散列轉(zhuǎn)換后分別被存 入程序處理并臵flag_key=1 (表示有數(shù)字按鍵被按下)和送去液晶顯示器顯示; ++,――按鍵直接控制脈寬信號微調(diào)增加(減少)千分之 0.5

29、( <0.1°);確定鍵 則是很據(jù)所輸入2個舵機(jī)的角度的范圍滿足要求且flag_key=1(數(shù)字鍵按下標(biāo)志) 時,系統(tǒng)則控制脈寬信號發(fā)生變化,舵機(jī)轉(zhuǎn)動到相應(yīng)角度,并更新 1602顯示, 否則執(zhí)行出錯;取消鍵則是用于取消已輸入角度,但是還未按下確定鍵的角度值。 矩陣鍵盤的控制流程圖如圖4-3所示。 按鍵掃描 有按鍵被? 按下? ■ —1

30、 是 r 鍵盤散列轉(zhuǎn)換 1 數(shù)據(jù)處理 否 圖4-3 矩陣鍵盤流程圖 4.3數(shù)據(jù)處理 在本單片機(jī)程序中,數(shù)據(jù)處理的任務(wù)主要有兩個,分別是矩陣鍵盤的散列轉(zhuǎn) 換和脈寬與角度轉(zhuǎn)換的處理。 4.3.1矩陣鍵盤的散列轉(zhuǎn)換 鍵盤的散列轉(zhuǎn)換是指鍵盤分別接收到不同的按鍵信息后, 分別轉(zhuǎn)化為相應(yīng)的 數(shù)字或者相應(yīng)的操作。鍵盤地散列轉(zhuǎn)換采用根據(jù) P2的值來進(jìn)行不同的鍵的功能 定義,分別對應(yīng)見下表: 表4-3-1鍵盤散列轉(zhuǎn)換功能定義表 P2值 對應(yīng)鍵 P2值 對應(yīng)鍵 Oxee 取消 Oxeb 舵機(jī)1-- Oxde 確定 Oxdb 6 Oxbe 舵機(jī)2-

31、- Oxbb 5 0x7e 舵機(jī)2++ 0x7e 4 Oxed 0 Oxe7 舵機(jī)1++ Oxdd 9 Oxd7 3 Oxbd 8 Oxb7 2 0x7d 7 Ox77 1 432脈寬與角度的數(shù)據(jù)處理 根據(jù)舵機(jī)的控制原理可知,脈寬與角度滿足線性關(guān)系(圖4.2)o脈寬與角度 的處理包含2個部分,一是將脈寬信號轉(zhuǎn)化為角度并用液晶顯示器顯示出來, 另 一部分是將輸入的角度轉(zhuǎn)換為脈寬信號。 若角度記為 二,脈寬記為,,脈寬-角度關(guān)系圖如圖4-4所示。 圖4-4脈寬一角度關(guān)系圖 在將脈寬轉(zhuǎn)換為角度的時候,因?yàn)轱@示的角度是整數(shù),顯示部分采取下限

32、取 整(如80.0° ~80.9°顯示為80)。需要指出的是,在程序內(nèi)部,使用的脈寬單位 為us,故轉(zhuǎn)換公式如下: v - 0.09* ——90 脈寬信號在程序內(nèi)部采用的是整數(shù)(即 1000~2000us),在將輸入的角度轉(zhuǎn) 換為脈寬信號時,采取的約法是四舍五入(如 1500.3=1500,1500.6=1501。轉(zhuǎn)換 公式如下: = ((「90)*10)*1.1111 0.5 5.仿真與調(diào)試 5.1硬件電路的仿真 在本系統(tǒng)中的硬件電路仿真設(shè)計(jì),主要是運(yùn)用英國Labcenter electronics公司 開發(fā)的EDA工具軟件Protues, Protues是一款非常優(yōu)秀的仿真

33、軟件,能支持當(dāng) 前主流單片機(jī)系統(tǒng)的仿真并有豐富的軟件調(diào)試功能。 下面對主要的硬件電路仿真 作介紹和分析。首先是系統(tǒng)脈沖信號的產(chǎn)生,因?yàn)楫a(chǎn)生的是脈沖信號,所以選用 2個虛擬示波器查看單片機(jī)定時器產(chǎn)生的波形與大?。蝗缓笫褂?LCD1602來模 擬液晶顯示器的顯示,4*4按鍵模擬矩陣鍵盤(圖5-1)。 圖5-1電路仿真圖 系統(tǒng)最終輸送給舵機(jī)的脈沖信號是 20ms分2次10ms周期,兩路舵機(jī)信號 分別在前10ms與后10ms翻轉(zhuǎn),形成高電平,最終仍然脈沖周期仍為 20ms。圖 5-2為系統(tǒng)產(chǎn)生的2路舵機(jī)脈沖信號圖。 PWM1 PWM2 <-

34、 i 10ms — ?! 20i ms - ■* 圖5-2 2路舵機(jī)脈沖信號圖 5.2單片機(jī)的程序調(diào)試 開發(fā)工具是選用目前國內(nèi)流行的 Keil公司出品的51系列單片機(jī)軟件仿真 器。Keil Vision3 IDE是一個窗口化的軟件開發(fā)平臺,它集可視化編程、編譯、 調(diào)試、仿真于一體,支持51匯編、PLM和C語言的混合編程,界面友好、易學(xué) 易用、功能強(qiáng)大。它具有功能強(qiáng)大的編輯器、工程管理器以及各種編譯工具。 由于單片機(jī)程序采用 C語言編寫,因而程序的調(diào)試比較簡單。使用 Keil uVision3提供了豐富的調(diào)試工具,使調(diào)試進(jìn)行的非常順利,最后通過編譯并生成 了

35、hex可執(zhí)行文件,下圖5-3為程序部分調(diào)試過程圖。 lESin ■mnz* K■訃*IrstdKiHiR斟djh W Q[ Fljili FrLiihrdi ]>山 兩 Ejdp 冋* N4 | -■ - + 電 二鼻咖 愴了監(jiān)£|聞也暑3 ■JU: LP^^MrrEK E'. ■AJLCTJd £hkf rCllLZ V 1 ?i 苓 罷匸粗1 mH方回 ■ml! lrat I'widl dLt Fni-pi*]a 如戈 FnChiP: 站0. .'7L1I2 Hf :F】魁弘何4 //Lllf ffl riitim: 匸庇顧 丿

36、門芒?rtl帛電甲*;找界廿 TIIRI. CEtuyiJpOI. LfJC-TQ.dlM 卄 ★ip】町.宜rue 1石. ■ ■93 I $?????*? ■ ■ +CJI ESK [QE -iibhBBariiidJ I I iikhbiririiiiid 11 LtabfaBS?ddiiJ I I iikhbiririririJ 11 Ltabhfci?d:l OX 蟲il ifldriD fihx! ■WH]) I聞0: TJHHI.=i?:EE!!2?-MLI/2E£!>. tll?C=■::£E£frNUCl..,2Et:L nH

37、L^i;i;IEE£:i>mL!iaiE£:i. JfiH 厲冋階nkDinbh Eg角心2 STrfill Brwrl.14r St列k霽t OOWJEWS DEFINE DIR Pitploy &tn E^Luoc* KIT IWC to 曲UWE KILL - 圖5-3 程序部分調(diào)試圖 6?總結(jié) 本課題利用單片機(jī)定時器實(shí)現(xiàn)了舵機(jī) 2路脈

38、沖信號的輸出,實(shí)現(xiàn)了機(jī)器人關(guān) 節(jié)轉(zhuǎn)動的功能,完成了本課題的主要內(nèi)容:機(jī)器人關(guān)節(jié)的設(shè)計(jì)與實(shí)現(xiàn)。 由于制作工藝水平的有限,使得本次設(shè)計(jì)中電路系統(tǒng)做得比較簡易與粗糙, 由于時間緊迫,未能完成更高等的目標(biāo)與任務(wù)。然而,在有限的時間內(nèi),我努力 掌握了舵機(jī)的控制方式,整體把握了機(jī)器人關(guān)節(jié)的設(shè)計(jì)思路, 完成了從設(shè)計(jì)硬件 電路、單片機(jī)程序到實(shí)現(xiàn)關(guān)節(jié)轉(zhuǎn)動的整個過程。在實(shí)驗(yàn)過程中,我學(xué)習(xí)了 Keil、 Potues和Altium Designer軟件的基本功能,并掌握了一些基本的使用方法。 在前期收集資料的過程中,從網(wǎng)上和前輩們的論文中搜集到了很多不同的多 路PWM脈沖信號的控制方法,使我從不同的角度深入的

39、了解舵機(jī)的控制方法, 這對我本次實(shí)驗(yàn)的軟件設(shè)計(jì)脈沖信號部分有很大的借鑒和參考意義。 雖然這次軟 件設(shè)計(jì)過程中,林林總總換了三、四種脈沖信號產(chǎn)生方案,在做過幾種方法的穩(wěn) 定性與操作難度的比較之后,最終決定使用定時器方式來完成脈沖信號的產(chǎn)生。 畢業(yè)設(shè)計(jì)是一個回顧與理順舊知識, 不斷的吸收新知識的過程。在這個過程 中,我深深感覺到自己的不足,連每一次的失敗都顯得是那么的珍貴, 都會給我 以深刻的啟迪。雖然在以后不一定會有機(jī)會從事單片機(jī)相關(guān)的工作,但是這個過 程的努力和汗水,思維和方法都會是我寶貴的人生財富。 在論文的完成過程中,得到了院系老師的大力支持,尤其是得到了曲培新老 師的精心指導(dǎo)和

40、幫助,感謝曲老師在百忙之中的辛苦指點(diǎn),給予我無盡的啟迪。 曲老師從論文方向的選定,到最后的整篇文論的完成,都非常耐心的對我進(jìn)行指 導(dǎo)。給我提供了大量數(shù)據(jù)資料和建議,告訴我應(yīng)該注意的細(xì)節(jié)問題,細(xì)心的給我 指出錯誤。他嚴(yán)肅的科學(xué)態(tài)度,嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神,精益求精的工作作風(fēng),深深地 感染和激勵著我。 在此,我還要特別感謝在論文完成過程中所有給予我?guī)椭睦蠋熀屯瑢W(xué)。 正 是由于你們的幫助和支持,我才能克服一個一個的困難和疑惑, 直至本文的順利 完成。在論文即將完成之際,請?jiān)谶@里請接受我誠摯的謝意! 參考文獻(xiàn) [1] 劉廣瑞等?機(jī)器人創(chuàng)新制作?西安:西北工業(yè)大學(xué)出版社,2007.2 [2] 張玉

41、茹,李繼婷,李劍鋒等.機(jī)器人靈巧手.北京:機(jī)械工業(yè)出版社, 2007.1 [3] ( 美)Gordon McComb Myke Predko著;龐明等譯.北京:科學(xué)出版社, 2007 [4] (美)McComb,G著:原魁等譯?機(jī)器人本體制作指南?北京:機(jī)械工業(yè)出 版社,2006.2 ⑸李華晉,劉鳴?機(jī)器人關(guān)節(jié)及轉(zhuǎn)向裝臵一一舵機(jī)的原理及應(yīng)用[J]高校實(shí) 驗(yàn)室工作研究,2010( 103): 62-63 [6] 王倩,李冬雪?基于FPGA的機(jī)器人多路舵機(jī)控制器[J] 科學(xué)技術(shù)與工 程,2009( 11):3083-3085 [7] 萬小丹,孔凡讓,李巖,趙小偉.基于at89c5

42、2單片機(jī)的機(jī)器人關(guān)節(jié)控制 系統(tǒng)設(shè)計(jì)[J]學(xué)術(shù)論文2008(2):38-40 [8] 付麗,劉衛(wèi)國,伊強(qiáng)?單片要控制的多路舵機(jī)用 PWM波產(chǎn)生方法[J]微 特電機(jī),2006(2) : 28-33 [9] 徐謀峰,黃雪梅?舞蹈機(jī)器人動作編程研究[J]山東理工大學(xué)學(xué)報,2010 (24) : 77-80 [10] 梁峰,王志良,解侖,等?多舵機(jī)控制在類人機(jī)器人上的應(yīng)用 [J].微計(jì) 算機(jī)信息,2008(1-2) : 242-243 附錄1 附錄2 /*現(xiàn)在系統(tǒng)中需要2個舵機(jī)的控制,采用的控制方式是改變單片機(jī)的一個定時器中斷的初 值,對于每一個舵機(jī)來說,是將 20ms分為三次中

43、斷執(zhí)行,一次短定時中斷和兩次長定時中 斷。這樣既節(jié)省了硬件電路,也減少了軟件開銷,控制系統(tǒng)工作效率和控制精度都很高。 具體的設(shè)計(jì)過程:例如想讓舵機(jī)轉(zhuǎn)向左極限的角度,它的正脈沖為 2ms,則負(fù)脈沖為 20ms-2ms=18ms 所以開始時在控制口發(fā)送高電平, 然后設(shè)臵定時器在 2ms后發(fā)生中斷,中斷發(fā)生后,在 中斷程序里將控制口改為低電平,并關(guān)閉短中斷,再過 18ms進(jìn)入下一次定時長中斷,再將 控制口改為高電平,打開短中斷并將定時器初值改為 2ms,等待下次中斷到來,如此往復(fù)實(shí) 現(xiàn)PWMI號輸出到舵機(jī)。用修改定時器中斷初值的方法巧妙形成了脈沖信號, 調(diào)整時間段的 寬度便可使伺服機(jī)

44、靈活運(yùn)動為保證軟件在定時中斷里采集其他信號, 并且使發(fā)生PWM信號的 程序不影響中斷程序的運(yùn)行 (如果這些程序所占用時間過長,有可能會發(fā)生中斷程序還未結(jié) 束,下次中斷又到來的后果 ),所以需要將采集信號的函數(shù)放在長定時中斷過程中執(zhí)行,也 就是說每經(jīng)過兩次中斷執(zhí)行一次這些程序,執(zhí)行的周期還是 20ms。*/ #in elude < reg52.h > #in elude vintrin s.h> #in clude #in elude un sig ned char TIM0H1; un sig ned char TIM0L1; un

45、sig ned char flag=1; un sig ned char TIM0H2; un sig ned char TIM0L2; void in it(void); sbit PWM 仁P"3; // sbit PWM2=P1A4; //舵機(jī)1短定時器初始化高 8位 //舵機(jī)1短定時器初始化低 8位 //控制舵機(jī)PWM輸出標(biāo)志變量 //舵機(jī)2短定時器初始化高 8位 //舵機(jī)2短定時器初始化低 8位 //定時器初始化函數(shù) 定義舵機(jī)1信號輸出接口 //定義舵機(jī)2信號輸出接口 *********************************************

46、********** 主函數(shù) ******************************************************** ini t(); // 定時器初始化 F1602_i nit(); //1602 初始化 F1602_clear(); //1602 清屏 NUM1=1500; //1.5ms 的高電平舵機(jī)1初值 NUM2=1500; //1.5ms的高電平舵機(jī)2初值 PWM 仁1; //舵機(jī)1的PWMU始設(shè)臵高為電平 gotoxy(1,0); in t_To_char(); display_stri ng(a); //16

47、02顯示舵機(jī)的初始角度 while(1) //保證while連續(xù)執(zhí)行 { key(); //按鍵檢索函數(shù) 短定時器時間為 NUM1 us // void mai n() { TIM0H1=((65536-NUM1)/256); TIM0L1=((65536-NUM1)%256); TIM0H2=((65536-NUM2)/256); TIM0L2=((65536-NUM2)%256); // 短定時器的時間為 NUM2 us /********************************************************* 中斷服務(wù)函數(shù)

48、**********************************************************/ void Timel(void) in terrupt 3 { TH1=0xd8; TL1=0xf0; if(flag==0) { PWM 仁-PWMI; flag=1; //10ms 定時 // 舵機(jī)1PWMH號翻轉(zhuǎn) //舵機(jī)1電平翻轉(zhuǎn)完畢,改變標(biāo)志位 } else

49、 { PWM2=?PWM2; flag=O; } TR0=1; } void TimeO(void) in terrupt 1 { if(flag==1) { TH0=TIM0H2; TL0=TIM0L2; PWM 仁?PWM1; } else //舵機(jī)1PWMH號翻轉(zhuǎn) // 舵機(jī)1翻轉(zhuǎn)完畢, 改變標(biāo)志位 // 波形產(chǎn)生,每舵機(jī) PWM20m反 轉(zhuǎn) // 產(chǎn)生長時間中斷后, 打開小中斷 // 舵機(jī)1的信號控制 // 改變短中斷(舵機(jī) 2)的定時器初值 { TH0

50、=TIM0H1; TL0=TIM0L1; PWM2=?PWM2; } TR0=0; } 〃舵機(jī)1再次翻轉(zhuǎn),形成脈沖信號 // 舵機(jī)2的信號控制 //改變短中斷(舵機(jī) 2)的定時器初值 //舵機(jī)2再次翻轉(zhuǎn),形成脈沖信號 //關(guān)閉短中斷,等待長中斷打開 // 長短中斷交替執(zhí)行,形成 2路脈沖信號 ******************************************************* 鍵盤掃描函數(shù) ******************************************************** void key()

51、 { { un sig ned char key_code; P2=key_sca n[i]; if(P2!=key_sca n[ i]) { delay(20); key_code=P2; while(P2!=key_sca n[ i]); keyma nage(key_code); } i++; if(i>=4) i=0; } 〃臨時變量,存放被按下的按鍵信息 //首先進(jìn)行行掃描 //判斷是否有按鍵按下 //有按鍵按下進(jìn)入if

52、 //延遲,消除抖動 //將按鍵信息送給臨時變量做按鍵處理 //按鍵抬起有效 //進(jìn)入按鍵處理函數(shù) //掃描下一行 //如果掃描結(jié)束,返回第一行繼續(xù)掃描 { ******************************************************* 鍵盤處理函數(shù) **********************************************************/ //鍵盤處理函數(shù)包括兩個部分,分別是矩陣鍵盤地散列轉(zhuǎn)換和鍵盤的數(shù)據(jù)處理 〃鍵盤地散列轉(zhuǎn)換采用根據(jù) P2的值來進(jìn)行不同的鍵的功能定義(見表 4-3-1) } voi

53、d keyma nage( un sig ned char temp) { un sig ned char key=16; switch(temp) { case 0xed: key=O;break; case 0x77: key=1;break; case 0xb7: key=2;break; case 0xd7: key=3;break; case 0x7b: key=4;break; case 0xbb: key=5;break; case 0xdb: key=6;break; case 0x7d: key=7;break; case 0xbd: key=8;break; case

54、 0xdd: key=9;break; } if(temp==0xe7) { NUM仁NUM1 + 10; in t_To_char(); F1602_clear(); delay(200); flag_key=0; x=3; display_stri ng(a); } if(temp==0xeb) { NUM仁NUM1-10; in t_To_char(); F1602_clear(); delay(200); flag_key=0; x=3; display_stri ng(a); delay(20); } if(temp==0x7e) { NUM2=NU

55、M2+10; in t_To_char(); F1602_clear(); delay(200); 〃鍵盤散列轉(zhuǎn)換 // 舵機(jī) 1PWMt調(diào) +10 //將整形數(shù)據(jù)轉(zhuǎn)換為字符串 〃1602清屏 //標(biāo)志按下的不是0-9數(shù)字鍵 〃1602顯示 // 舵機(jī) 1PWMt調(diào) +10 // 舵機(jī) 2PWMt調(diào) +10 flag_key=0; display_stri ng(a);

56、 } if(temp==Oxbe) { NUM2=NUM2-10; in t_To_char(); F1602_clear(); delay(200); flag_key=O; x=3; display_stri ng(a); } if(key>=0&&key<=9) { if(flag_last==1||flag_ca ncel==1) { F1602_clear(); x=3; delay(100); display_stri ng(a); flag_last=0; flag_ca ncel=O; } fla

57、g_key=1; gotoxy(2,x); write_data(key+'O'); delay(200); // 舵機(jī) 2PWM微調(diào)-10 //當(dāng)按下是數(shù)字鍵時候,顯示數(shù)字并傳送 //給舵機(jī)信號 //如果1602顯示到最后一位或者曾經(jīng)按 //下過取消鍵則將重新定位顯示位臵,則 //將這些標(biāo)志清0 〃1602清屏 //重新定位顯示位臵 //將顯示到最后一位標(biāo)志位清 0 //將取消鍵標(biāo)志清 0 //數(shù)字鍵被按下標(biāo)志 //將1602光標(biāo)移動到顯示位臵 //在光標(biāo)處顯示按下的數(shù)字 switch(x) { //檢查當(dāng)前顯示所在位臵,根據(jù)按鍵位臵設(shè)臵舵機(jī)角度 case 3:

58、num1仁num11+key*10;break; // 舵機(jī) 1 角度的十位 case 4 :num11= num11+key;break; // 舵機(jī) 1 角度的個位 case 11 :num22=num22+key*10;break;〃 舵機(jī) 2 角度的十位 case 12 :num22=num22+key;break; // 舵機(jī) 2 角度的個位 } x++; if(x==5) x=11; //如果舵機(jī)1角度顯示位臵顯示完畢,則 //跳到舵機(jī)2顯示顯示舵機(jī)2的角度 if(x>12) flag_last=1; //顯示完畢,設(shè)臵最后標(biāo)志位

59、 } if(temp==Oxde) // K1 確認(rèn)鍵 { f1=(( nu m11+90)*1000)*1.1111+0.5555;〃 舵機(jī) 1 角度轉(zhuǎn)換為脈寬 f2=((num22+90)*1000)*1.1111+0.5555;〃 舵機(jī) 2 角度轉(zhuǎn)換為脈寬 num11=f1; //強(qiáng)制浮點(diǎn)型轉(zhuǎn)換為整形脈寬并賦值給 num22=f2; 〃臨時存貯脈寬變量 } if(n

60、um11>=1000&&n um11<=2000&&n um22>=1000&&nu m22<=2000&& flag_key==1 && flag」a st==1) { //舵機(jī)只能接受1000~2000的脈寬,并且 //保證2個舵機(jī)的角度輸入的是數(shù)字信 //息并且都輸入完畢 〃1602清屏 /將脈寬值賦值給 NUM1 /將脈寬值賦值給NUM2 //賦值完畢將脈寬臨時變量清 0 F1602_clear(); NUM仁n um11; NUM2=num22; in t_To_char(); nu m11=0; num22=0; x=3; delay(100); f

61、lag_key=0; display_stri ng(a); } else { x=3; num11=0; num22=0; F1602_clear(); delay(100); flag_ca ncel=1; display_stri ng(a); gotoxy(2,3); delay(100); display_stri ng("Error!"); } } if(temp==0xee) { F1602_clear(); x=3; delay(100); display_stri ng(a); flag_key=0; } //賦值完畢,將0-9按鍵標(biāo)識清0 〃1602顯示當(dāng)前舵機(jī)的角度 //舵機(jī)角度不符合條件,則顯示出錯 //重新定位顯示位臵 //舵機(jī)脈寬臨時變量清 0 //取消輸入的舵機(jī)角度信息 // 顯示"Error 〃K0取消鍵 〃1602清屏 //重新定位顯示位臵 〃將0-9按鍵清0

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!