




已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
南 陽(yáng) 理 工 學(xué) 院本科生畢業(yè)設(shè)計(jì)(論文) 學(xué) 院: 電子與電氣工程學(xué)院 專 業(yè): 自動(dòng)化 學(xué) 生: 周 虎 指導(dǎo)教師: 徐 源 完成日期 2014 年 5 月南陽(yáng)理工學(xué)院本科生畢業(yè)設(shè)計(jì)(論文) 多自由度串聯(lián)機(jī)械臂的控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) Design of Multivariant Cascade Dof Manipulator Control System 總 計(jì): 30 頁(yè) 表 格: 2 個(gè) 插 圖: 19 幅南 陽(yáng) 理 工 學(xué) 院 本 科 畢 業(yè) 設(shè) 計(jì)(論文)多自由度串聯(lián)機(jī)械臂的控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)Design of Multivariant Cascade Dof Manipulator Control System學(xué) 院: 電子與電氣工程學(xué)院 專 業(yè): 自動(dòng)化 學(xué) 生 姓 名: 周 虎 學(xué) 號(hào): 105090640031 指 導(dǎo) 教 師(職稱): 徐源(講師) 評(píng) 閱 教 師: 完 成 日 期: 南陽(yáng)理工學(xué)院 Nanyang Institute of Technology 多自由度串聯(lián)機(jī)械臂的控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)多自由度串聯(lián)機(jī)械臂的控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)自動(dòng)化專業(yè) 周虎摘 要 本設(shè)計(jì)基于STM32F系列的STM32F103RBT6核心控制芯片,以Keil-MDK uVision4軟件為開(kāi)發(fā)平臺(tái),將嵌入式控制技術(shù)有機(jī)地融入工業(yè)設(shè)備中,設(shè)計(jì)出一款可編程動(dòng)作的機(jī)械臂裝置。該系統(tǒng)主要由電源系統(tǒng)、主控制電路板、驅(qū)動(dòng)電路板、旋鈕及按鍵控制、液晶顯示等硬件電路組成。并且實(shí)現(xiàn)了用單片機(jī)控制機(jī)械臂姿態(tài)調(diào)整,用按鍵實(shí)現(xiàn)角度微調(diào),實(shí)現(xiàn)液晶顯示和限位保護(hù)的功能。本設(shè)計(jì)實(shí)現(xiàn)的機(jī)械臂有操作簡(jiǎn)潔、穩(wěn)定性好、姿態(tài)調(diào)節(jié)精確、運(yùn)動(dòng)軌跡精度高等特點(diǎn)。經(jīng)過(guò)實(shí)驗(yàn)測(cè)試和仿真演示,該系統(tǒng)空間定位誤差5mm,最大定位時(shí)間1s,其各項(xiàng)性能參數(shù)已經(jīng)達(dá)到預(yù)計(jì)要求。關(guān)鍵詞 多自由度串聯(lián)機(jī)械臂;STM32F103RBT6單片機(jī);伺服驅(qū)動(dòng)電路;路徑規(guī)劃Design of Multivariant Cascade Dof Manipulator Control Systemautomation specialty automation specialtyAutomation Specialty ZHOU HuAbstract: This article is based on The STM32F103RBT6 in the series of STM32F as the control core chip and the software of Keil-MDK uVision4 as the development platform. makes Embedded control technology organically integrated into the industrial equipment and design a programmable action of mechanical arm device. This system is mainly consists of hardware circuit of the power system, the main control circuit board, thedriven circuit board, knob and button controller, and liquid crystal display. This system has also realized using MCU to control the attitude control of robot arm ,using the Buttons to implementting fine-tuning and has the function of liquid crystal display and limit protection . The robot arm which realizes in this design , with the characteristic of simple operation, good stability, attitude adjustment, accurate trajectory precision higher. Through the test and simulation, the system of space positioning error is less than 5mm, the largest positioning time is less than 1s and its performance parameters have reached the expected.Key words: Multivariant cascade dof manipulator; STM32F103RBT6 microcontroller; servo drive circuit; path planning目 錄1 引言11.1選題背景與意義11.2國(guó)內(nèi)外研究現(xiàn)狀11.3主要研究工作與論文內(nèi)容安排22 系統(tǒng)整體方案設(shè)計(jì)與關(guān)鍵技術(shù)分析22.1 系統(tǒng)主要工作原理32.2 系統(tǒng)整體設(shè)計(jì)方案32.3 關(guān)鍵技術(shù)分析42.3.1 CCD圖像傳感器分析42.3.2 機(jī)械臂姿態(tài)解算要點(diǎn)43 系統(tǒng)硬件電路的選型及設(shè)計(jì)63.1 核心處理器選型63.2 伺服驅(qū)動(dòng)模塊及電源系統(tǒng)設(shè)計(jì)73.3 主控制電路板設(shè)計(jì)83.4 操作手柄設(shè)計(jì)93.4.1 傳感器選擇93.4.2 濾波電路分析104 系統(tǒng)的軟件設(shè)計(jì)124.1 主程序設(shè)計(jì)124.2 AD采樣濾波程序設(shè)計(jì)134.2.1 濾波原理及工作方式選擇134.2.2 位姿信號(hào)標(biāo)度變換154.2.3 AD數(shù)據(jù)采集的軟件設(shè)計(jì)154.3 TFT液晶屏驅(qū)動(dòng)程序設(shè)計(jì)174.4 上位機(jī)通訊部分軟件設(shè)計(jì)185 系統(tǒng)調(diào)試與結(jié)果分析195.1 系統(tǒng)調(diào)試195.1.1 響應(yīng)速度調(diào)試205.1.2 定位精度調(diào)試215.2 測(cè)試結(jié)果分析22結(jié)束語(yǔ)24參考文獻(xiàn)25附錄26致謝30III1 引言1.1 選題背景與意義很久以來(lái)人們就幻想有一種類似人的機(jī)械,能實(shí)現(xiàn)如人的四肢一樣靈活自由的運(yùn)動(dòng),可以替人們從事一些復(fù)雜的勞動(dòng)。隨著人類認(rèn)識(shí)的不斷深入,和科學(xué)技術(shù)的不斷進(jìn)步,這種夢(mèng)想正逐漸成為現(xiàn)實(shí)。目前機(jī)器人已廣泛應(yīng)用到工業(yè)生產(chǎn)中,從事電焊、弧焊、噴漆、裝配、搬運(yùn)等工作。在汽車行業(yè),電子行業(yè),核工業(yè)和其他工業(yè)部門,服務(wù),娛樂(lè),醫(yī)療器械制造等行業(yè),應(yīng)用在深海里以外,外太空等人類能力極限領(lǐng)域,機(jī)器人扮演一個(gè)重要的不可替代的作用1。串聯(lián)機(jī)械臂的設(shè)計(jì)全面綜合的運(yùn)用了自動(dòng)化專業(yè)學(xué)生在大學(xué)本科階段所學(xué)的各門專業(yè)課知識(shí),理論和實(shí)踐的相互滲透是畢業(yè)設(shè)計(jì)的重要內(nèi)容,可以培養(yǎng)學(xué)生的自動(dòng)化設(shè)備設(shè)計(jì)能力,創(chuàng)新能力,提高學(xué)生的造型能力及理論和實(shí)踐相結(jié)合的設(shè)計(jì)思想,提高分析問(wèn)題和解決問(wèn)題的能力,還可以增強(qiáng)、深入和拓寬有關(guān)控制系統(tǒng)設(shè)計(jì)方面的知識(shí),為以后從事先進(jìn)自動(dòng)化工作打下堅(jiān)實(shí)基礎(chǔ)。該畢業(yè)設(shè)計(jì)還充分考查了學(xué)生,如Protel、Proteus,CAD,Keil-MDK,Matlab等計(jì)算機(jī)輔助軟件的操作能力,是鍛煉學(xué)生動(dòng)手操作能力的一個(gè)難得機(jī)會(huì)。本畢業(yè)設(shè)計(jì)不僅需要書本知識(shí)來(lái)作為指導(dǎo),還必須聯(lián)系實(shí)際現(xiàn)場(chǎng)生產(chǎn),其現(xiàn)實(shí)意義有以下兩大方面:(1)硬件部分及機(jī)械結(jié)構(gòu)設(shè)計(jì)綜合運(yùn)用了數(shù)字電子技術(shù)、模擬電子技術(shù)、電路理論、電力電子技術(shù)、電機(jī)拖動(dòng)和工程制圖等學(xué)科知識(shí),需要學(xué)生對(duì)這幾門學(xué)科的專業(yè)知識(shí)熟練掌握。把本科畢業(yè)設(shè)計(jì)作為學(xué)生各門專業(yè)知識(shí)的考核是很有實(shí)際意義的。作為自動(dòng)化專業(yè)的學(xué)生,熟練運(yùn)用繪圖軟件進(jìn)行電路原理圖創(chuàng)作和PCB印制電路板的設(shè)計(jì)是一項(xiàng)基本的要求,在今后的工作中經(jīng)常會(huì)用到Protel和CAD等繪圖軟件來(lái)進(jìn)行繪圖。本次設(shè)計(jì)就是對(duì)大學(xué)四年學(xué)習(xí)成果的一次驗(yàn)收。(2)控制程序設(shè)計(jì)綜合運(yùn)用了C語(yǔ)言程序設(shè)計(jì)、檢測(cè)技術(shù)與儀表、單片機(jī)原理、自動(dòng)控制技術(shù)、伺服運(yùn)動(dòng)控制、復(fù)變函數(shù)與積分變換、過(guò)程控制與工程設(shè)計(jì)等專業(yè)課程,這幾門學(xué)科的專業(yè)知識(shí)是今后從事自動(dòng)化設(shè)備設(shè)計(jì)制造行業(yè)的基礎(chǔ)。1.2 國(guó)內(nèi)外研究現(xiàn)狀美國(guó)人在20世紀(jì)50年代末,在機(jī)械手和操作機(jī)的基礎(chǔ)上,采用伺服電機(jī)和自動(dòng)控制等技術(shù),研制出有普遍使用性的工業(yè)用自主操作裝置,并把它叫做工業(yè)機(jī)器人;60年代初,美國(guó)研制成功兩種工業(yè)機(jī)器人,并迅速將其投入工業(yè)生產(chǎn)中;1969年,美國(guó)通用汽車公司用21臺(tái)工業(yè)機(jī)器人構(gòu)建了焊接轎車車身的自動(dòng)流水線。從此以后,研發(fā)和使用工業(yè)機(jī)器人開(kāi)始被各工業(yè)發(fā)達(dá)國(guó)家所重視。在高新技術(shù)潮流的推動(dòng)下,隨著改革開(kāi)放的不斷加深,我國(guó)機(jī)器人技術(shù)的開(kāi)發(fā)與研究越來(lái)越得到了政府的正視與扶持?!捌呶濉逼陂g,國(guó)家加大物資投入,對(duì)工業(yè)機(jī)器人及其零部件難于生產(chǎn)等難題進(jìn)行攻克,完成了從教演示到。工業(yè)生產(chǎn)機(jī)器人成套技術(shù)的開(kāi)發(fā),研制出了噴漆、焊接、氬弧焊和運(yùn)輸機(jī)器人。1986年國(guó)家高技術(shù)研究發(fā)展計(jì)劃(863計(jì)劃)逐步落實(shí),智能型機(jī)器人主題緊隨全球機(jī)器人技術(shù)的步伐,經(jīng)過(guò)數(shù)年的開(kāi)發(fā),取得了一系列科研成果,一批又一批的特殊用途機(jī)器人成功地研制出來(lái)。1.3 主要研究工作與論文內(nèi)容安排本文以ST的STM32F103RBT6單片機(jī)為核心,設(shè)計(jì)一套以單片機(jī)為核心的機(jī)械臂控制系統(tǒng),主要由單片機(jī)系統(tǒng)、驅(qū)動(dòng)電路、操作手柄及液晶顯示、指示燈以及報(bào)警電路、檢測(cè)電路、A/D轉(zhuǎn)換電路、伺服單機(jī)及固定裝置等組成。采用操作手柄實(shí)現(xiàn)對(duì)輸出姿態(tài)以及報(bào)警閥值以快慢兩種方式進(jìn)行設(shè)置,輸出由單片機(jī)通過(guò)PWM控制驅(qū)動(dòng)模塊輸出一個(gè)固定角度,工作過(guò)程中的機(jī)械臂各關(guān)節(jié)的工作狀態(tài)(輸出角度、空間偏移量等各種工作狀態(tài))均由單片機(jī)輸出驅(qū)動(dòng)液晶顯示。本文各部分的安排:第一部分介紹了課題的選題背景和意義,分析多自由度機(jī)械臂的發(fā)展現(xiàn)狀,指出了機(jī)械臂的發(fā)展方向。概述了本設(shè)計(jì)所研究的成果,并給出了論文的整體內(nèi)容結(jié)構(gòu)。第二部分介紹了系統(tǒng)的總體方案設(shè)計(jì)。闡述了本系統(tǒng)的總體方案設(shè)計(jì)及一般的多自由度機(jī)械臂的大致構(gòu)造與參數(shù)要求,對(duì)系統(tǒng)中每一個(gè)模塊所做工作進(jìn)行了簡(jiǎn)要的闡述,分析了系統(tǒng)關(guān)鍵性技術(shù)問(wèn)題。第三部分介紹了系統(tǒng)硬件電路設(shè)計(jì),闡述了多自由度機(jī)械臂的基本理論,詳細(xì)介紹了主要器件的電路設(shè)計(jì)及要點(diǎn),如驅(qū)動(dòng)電路,LCD液晶顯示電路以及信號(hào)采集與處理電路等。第四部分介紹了系統(tǒng)的軟件設(shè)計(jì),主要是應(yīng)用Keil-MDK平臺(tái)進(jìn)行的軟件設(shè)計(jì)。詳細(xì)介紹STM32單片機(jī)的編程要點(diǎn)和實(shí)現(xiàn)。第五部分介紹了多自由度機(jī)械臂的軟硬件聯(lián)合調(diào)試,以及綜合調(diào)試。2 系統(tǒng)整體方案設(shè)計(jì)與關(guān)鍵技術(shù)分析機(jī)械臂包括三個(gè)部分:供電模塊、主控制電路以及伺服驅(qū)動(dòng)電路。其中供電模塊是用于將220V的交流電轉(zhuǎn)換為低壓直流電,并使低壓直流電與220V市電隔離開(kāi),分出供整個(gè)系統(tǒng)工作的各路輸出。主控制電路是將操作手柄傳遞的數(shù)字量及模擬了信號(hào)轉(zhuǎn)化為角度及位置信,并通過(guò)PWM接口輸出到伺服驅(qū)動(dòng)電路。伺服驅(qū)動(dòng)電路接收處理后的角度和位置信號(hào),并通過(guò)驅(qū)動(dòng)伺服電機(jī)和機(jī)械機(jī)構(gòu)將其輸出。下面給出基于STM32F103RBT6的多自由度串聯(lián)機(jī)械臂總體方案設(shè)計(jì)。2.1 系統(tǒng)主要工作原理本系統(tǒng)主要由單片機(jī)系統(tǒng)、操作手柄、液晶顯示器、驅(qū)動(dòng)電路、伺服電機(jī)及其機(jī)械支架、等部分組成。其中,操作手柄同時(shí)產(chǎn)生數(shù)字信號(hào)和模擬信號(hào),輸出由單片機(jī)采集通過(guò)PWM控制驅(qū)動(dòng)模塊輸出一個(gè)角度或空間位移。反饋由CCD攝像頭,單片機(jī)系統(tǒng),伺服執(zhí)行機(jī)構(gòu)控制,單片機(jī)通過(guò)A/D采樣CCD輸出電壓并與初始化設(shè)定值對(duì)比,如果存在偏差就調(diào)整輸出量,若越限則發(fā)出報(bào)警信號(hào)并急停。工作中,機(jī)械臂的工作狀態(tài)均由單片機(jī)輸出驅(qū)動(dòng)LCD實(shí)時(shí)顯示,由操作手柄控制進(jìn)行動(dòng)態(tài)姿態(tài)轉(zhuǎn)換。2.2 系統(tǒng)整體設(shè)計(jì)方案系統(tǒng)主要包括主控制板(以STM32F103RBT6中央控制器),電源模塊,驅(qū)動(dòng)模塊,操作手柄,伺服電機(jī)(執(zhí)行機(jī)構(gòu))等部分組成。電源模塊從220V交流市電得電,給整個(gè)系統(tǒng)供電,是整個(gè)控制系統(tǒng)的心臟,通過(guò)每一對(duì)正負(fù)電源線給相應(yīng)的模塊供電。主控制電路板以STM32F103RBT6為核心元件為芯片搭建外圍電路和輸入輸出接口,是整個(gè)控制系統(tǒng)的大腦,通過(guò)各種數(shù)據(jù)線接受傳感器模塊的模擬量信號(hào),發(fā)送控制信號(hào)到相關(guān)的執(zhí)行器模塊。CCD模塊是整個(gè)機(jī)械臂系統(tǒng)的眼睛,為主控板提供當(dāng)前機(jī)械臂的位姿信息及機(jī)械臂所操作對(duì)象的狀態(tài),整個(gè)機(jī)械臂系統(tǒng)構(gòu)成自主閉環(huán)控制。操作手柄是系統(tǒng)為用戶留的接口,可對(duì)機(jī)械臂動(dòng)作簡(jiǎn)單編程。驅(qū)動(dòng)模塊用于驅(qū)動(dòng)所有電機(jī)。整體來(lái)說(shuō),主控通過(guò)驅(qū)動(dòng)模塊來(lái)改變機(jī)械臂的狀態(tài),然后CCD捕獲機(jī)械臂狀態(tài)將信號(hào)再次傳給主控。信號(hào)構(gòu)成閉環(huán),共同完成某項(xiàng)任務(wù)。系統(tǒng)設(shè)計(jì)總體框圖如圖1所示。伺服電機(jī)(機(jī)械臂體)CCD圖像采集模塊驅(qū)動(dòng)模塊控制電源主控制板模塊操作手柄驅(qū)動(dòng)電源圖1 系統(tǒng)設(shè)計(jì)總體框圖2.3 關(guān)鍵技術(shù)分析2.3.1 CCD圖像傳感器分析CCD是一種半導(dǎo)體類元件,可以把光學(xué)影像信息轉(zhuǎn)化為數(shù)字信號(hào)。 在CCD上嵌入的細(xì)微光敏物質(zhì)稱為像素(Pixel)。一塊CCD上含有的像素?cái)?shù)量越多,其采集到的畫面分辨率也就越高。CCD的作用就像相機(jī)底片一樣,不過(guò)它是把光信號(hào)轉(zhuǎn)變成電荷信號(hào)。CCD上整齊排列許多光電二極管,能感應(yīng)各種光線強(qiáng)度,并將光信號(hào)轉(zhuǎn)變成電信號(hào),經(jīng)外部采集放大電路及AD轉(zhuǎn)換電路轉(zhuǎn)換成數(shù)字圖像信號(hào)2。CCD以其優(yōu)異的性能廣泛應(yīng)用于數(shù)碼攝像、天文學(xué)等領(lǐng)域,特別是光學(xué)遙測(cè)技術(shù)、光學(xué)與頻譜望遠(yuǎn)鏡,和高速攝影技術(shù)如Lucky imaging。CCD在錄像機(jī)、數(shù)碼照相機(jī)和數(shù)字掃描儀中應(yīng)用十分廣泛,只不過(guò)攝像機(jī)中采用的是面陣CCD,即x、y兩個(gè)方向同時(shí)用于攝取平面圖像,而掃描儀中使用的是線陣CCD,它只有x一個(gè)方向,y方向掃描由掃描儀的機(jī)械傳動(dòng)裝置來(lái)完成。本設(shè)計(jì)中使用的是面陣CCD。CCD攝像頭的主要工作原理是:以一定的分辨率,按固定時(shí)間間隔掃描的方式采樣圖像上的點(diǎn),當(dāng)掃描到一個(gè)點(diǎn)時(shí),就通過(guò)圖像采集芯片將該點(diǎn)位置圖像的灰度信息轉(zhuǎn)換成與之一一對(duì)應(yīng)的模擬電壓值,然后將此電壓值通過(guò)視頻信號(hào)口輸出。當(dāng)攝像頭掃描完一行時(shí),視頻信號(hào)口就會(huì)輸出有一個(gè)電壓“缺口”,并保持一段時(shí)間,此“缺口”就是常說(shuō)的行同步脈沖信號(hào),它是行掃描完成的標(biāo)志。然后,跳過(guò)一行后,緊接著掃描另一行,以此類推,直到掃描完該場(chǎng)的所有圖像信息,接著就會(huì)出現(xiàn)一段場(chǎng)消隱區(qū)。經(jīng)過(guò)這若干個(gè)消隱脈沖后,某個(gè)脈沖遠(yuǎn)寬于其他的消隱脈沖,這個(gè)脈沖信號(hào)即稱為場(chǎng)同步脈沖,它是掃描更新場(chǎng)的標(biāo)志信號(hào)。攝像頭每秒共掃描25幅圖像,每幅又同時(shí)包含奇場(chǎng)和偶場(chǎng),先掃描奇場(chǎng)在掃描偶場(chǎng),故每秒采集50場(chǎng)信息。即掃描頻率為50Hz。2.3.2 機(jī)械臂姿態(tài)解算要點(diǎn)在一個(gè)空間內(nèi),點(diǎn)的位置可以用x,y,z軸上的偏移量組成的矢量 AP來(lái)表示3,如式1所示??臻g內(nèi)點(diǎn)的表示如圖2所示。 AP=PxPyPz (1)其中:Px, Py, Pz表示點(diǎn)在三個(gè)坐標(biāo)軸上的分量。如果用四個(gè)變量(41)陣列來(lái)表示三維坐標(biāo)系中點(diǎn)P的位置 坐標(biāo)信息,則該陣列稱為三維空間點(diǎn)P的齊次坐標(biāo)表示, 圖2 空間內(nèi)點(diǎn)表示 如公式2所示。 P=PxPyPz1 (2)然后是方位的表示,方位是一個(gè)剛體姿態(tài)的描述4。設(shè)直角坐標(biāo)系中X,Y,Z坐標(biāo)軸的單位向量為i,j,k,用齊次坐標(biāo)來(lái)描述X,Y,Z軸的方向,則有:X=1000,Y=0100,Z=0010 (3)規(guī)定:陣列a,b,c,0T表示某軸(或某矢量)的方向,其中第四個(gè)元素為零,且a2+b2+c2=1;陣列a,b,c,T中第四個(gè)元素為非零元素,用來(lái)表示給定立體空間中某點(diǎn)的位置5。機(jī)械臂的每一個(gè)關(guān)節(jié)均可視為一個(gè)獨(dú)立剛體,如果給出了某剛體上中心點(diǎn)在空間的坐標(biāo)信息和該剛體相對(duì)坐標(biāo)各個(gè)軸的角度,則這個(gè)剛體在該空間內(nèi)是唯一確定的,于是可以用唯一一個(gè)確定的位姿矩陣進(jìn)行描述6。設(shè)OXYZ 為剛體Q所在的坐標(biāo)系,如圖3所示,剛體Q在固定坐標(biāo)系OXYZ中的位置可用齊次坐標(biāo)表示為P=x0y0z01 (4)令n,o,a分別為XYZ 坐標(biāo)軸方向的單位矢量,即 圖3 空間內(nèi)剛體表示n=nxnynz0,o=oxoyoz0,a=axayaz0 (5) 剛體的位姿表示為(44)矩陣:T=n,o,a,p=nxnynz0oxoyoz0axayaz0x0y0z01 (6)3 系統(tǒng)硬件電路的選型及設(shè)計(jì)硬件電路的設(shè)計(jì)主要包括系統(tǒng)主控制電路板,伺服驅(qū)動(dòng)模塊,操作手柄,信號(hào)放大跟隨模塊,上位機(jī)通訊模塊等。下面將介紹幾個(gè)主要模塊的設(shè)計(jì),系統(tǒng)整體電路圖鑒于頁(yè)面限制將在附件1中給出。3.1 核心處理器選型STM32F系列單片機(jī)有3個(gè)檔次:低檔Cortex-M0系列STM單片機(jī)主要有STM32F030/051/072等;中檔Cortex-M3系列STM單片機(jī)主要有STM32F103C8T6/RBT6/R8T6/VET6/ZET6等;高檔Cortex-M4系列STM單片機(jī)主要有STM32F407/429/4397。為搶占8位單片機(jī)機(jī)市場(chǎng),以高性價(jià)比著稱的M0系列新的型號(hào)還在不斷出現(xiàn)。綜合各項(xiàng)指標(biāo)和本系統(tǒng)的要求,STM32F103RBT6是最適合的一款芯片:l 128K的靜態(tài)存儲(chǔ)(FLASH),能夠滿足絕大部分的開(kāi)發(fā)項(xiàng)目需要8。l STM32F103是目前的主流32位Cortex-M3構(gòu)架單片機(jī),使用最多的STM芯片 之一,貨源充足。零售價(jià)僅為12元,批量購(gòu)買直接聯(lián)系代理商可降至10元以下。l 內(nèi)置豐富、強(qiáng)大的功能。幾乎涉及STM芯片的所有功能。l 支持J-LINK仿真,開(kāi)發(fā)調(diào)試非常方便,縮短程序開(kāi)發(fā)周期。l 簡(jiǎn)單易學(xué),官方提供大量的歷程和庫(kù)函數(shù),參照詳細(xì)的中文說(shuō)明書就可以使用。l 內(nèi)部總線頻率72M,滿足大部分產(chǎn)品開(kāi)發(fā)需要。綜合考慮后,由于對(duì)處理器的要求不是突出問(wèn)題,只要有足夠的處理速度,內(nèi)部集成有AD轉(zhuǎn)換器、硬件SPI接口就可以滿足系統(tǒng)要求,所以本系統(tǒng)采用的是意法半導(dǎo)體的32位ARM內(nèi)核CortexM3構(gòu)架微控制器STM32F103RBT69。STM32F103RBT6可以使用內(nèi)部晶振也可以使用外部晶振,考慮到伺服電機(jī)控制對(duì)時(shí)間要求的精準(zhǔn)度及機(jī)械臂定位的精度,本設(shè)計(jì)采用外接晶振對(duì)系統(tǒng)提供工作頻率。同時(shí)還配有32.768K的外部低頻晶振,為系統(tǒng)提供精準(zhǔn)的單位時(shí)基信號(hào)。RBT6與其他更高端芯片相比只是某些外設(shè)資源和引出管腳數(shù)目的不同,在處理速度和中斷響應(yīng)上沒(méi)有什么出入。而且128K的flash完全能夠滿足本系統(tǒng)在程序代碼長(zhǎng)度上的的要求,一個(gè)高級(jí)定時(shí)器兩個(gè)普通定時(shí)器有PWM引出口,而且每個(gè)定時(shí)器都引出了4路PWM,即可以產(chǎn)生12路PWM,滿足本體同至少6路PWM的要求。引出有9路12位ADC引腳,每位都有DMA自動(dòng)傳送功能。只需設(shè)定好DMA的原地址和目標(biāo)地址,數(shù)據(jù)便會(huì)自動(dòng)的將ADC轉(zhuǎn)換結(jié)果賦值給預(yù)先定義的相應(yīng)變量,無(wú)須單片機(jī)干預(yù)。引出兩路串口,USART1作為與上位機(jī)通訊的接口,USART2作為后期擴(kuò)展ZigBee等其他外擴(kuò)功能的接口。單片機(jī)最小系統(tǒng)原理框圖如圖4所示。圖4 STM32F103RBT6單片機(jī)最小系統(tǒng)示意圖3.2 伺服驅(qū)動(dòng)模塊及電源系統(tǒng)設(shè)計(jì)整個(gè)系統(tǒng)工作起來(lái)的時(shí)候電能消耗較大,單路伺服電機(jī)就要有1A2A的驅(qū)動(dòng)電流(不考慮堵轉(zhuǎn)等惡劣情況),考慮到功率元件要考慮一定的余量,所以設(shè)計(jì)電路的時(shí)候每路舵機(jī)用一個(gè)開(kāi)關(guān)電源芯片LM2596單獨(dú)為其供電。一般蓄電池續(xù)航能力不夠,總的電源來(lái)自市電。電源系統(tǒng)框圖如圖5所示。12V開(kāi)關(guān)電源市電舵機(jī)驅(qū)動(dòng)模塊舵機(jī)驅(qū)動(dòng)模塊舵機(jī)驅(qū)動(dòng)模塊舵機(jī)驅(qū)動(dòng)模塊舵機(jī)驅(qū)動(dòng)模塊舵機(jī)驅(qū)動(dòng)模塊圖5 電源系統(tǒng)框圖LM2596開(kāi)關(guān)電源芯片屬于Buck降壓型電源管理單片集成電路,帶負(fù)載能力能達(dá)到3A,同時(shí)電壓調(diào)整率和負(fù)載調(diào)整率等特性也很不錯(cuò),可以滿足大多數(shù)對(duì)高頻噪聲要求不高的場(chǎng)合。有3.3V、5V、12V等固定輸出電壓類別, 也有可調(diào)輸出型,可以得到37V以內(nèi)的各種電壓,輸出電壓的誤差可以不大于4%。內(nèi)部自帶頻率補(bǔ)償環(huán)節(jié)及固定的頻率電路10。開(kāi)關(guān)管振蕩頻率固定為150KHz,振蕩頻率誤差一般在15%的范圍內(nèi),與頻率較低的開(kāi)關(guān)電源芯片相比較,對(duì)輸入電源紋波的要求更小,同時(shí)輸出電壓濾波處理電路也可以大大的簡(jiǎn)化。LM2596電源驅(qū)動(dòng)電路及電路板如圖6所示。自帶有保護(hù)功能(一個(gè)兩級(jí)降頻限流關(guān)斷和一個(gè)在異常情況下掉電的過(guò)溫完全保護(hù)電路)。該器 圖6 LM2596電源驅(qū)動(dòng)電路及電路板件最簡(jiǎn)化時(shí)只需4個(gè)外部元件,可以使用常用的標(biāo)準(zhǔn)電感,這更方便了LM2596的使用,極大地簡(jiǎn)化了開(kāi)關(guān)電源的開(kāi)發(fā)周期和電路的設(shè)計(jì)。3.3 主控制電路板設(shè)計(jì)主控電路板PWM輸出及模擬量采集電路如圖7所示。六自由度機(jī)械臂有六個(gè)伺服圖7 主控板PWM及模擬量接口電路電機(jī),各個(gè)伺服電機(jī)之間相互協(xié)調(diào),同時(shí)工作。這就要求主控電路板要有至少六路的PWM輸出口及輸出狀態(tài)指示。操作手柄能夠?qū)C(jī)械臂的姿態(tài)進(jìn)行調(diào)整,也就是說(shuō)能夠給定六個(gè)伺服電機(jī)的輸出角,所以主控制電路板至少要有六路的模擬量采集接口。考慮到模擬量設(shè)備輸出的模擬量電壓與主控電路板可接受的電源可能會(huì)不匹配,故在電壓采樣接口處加了分壓電阻,已達(dá)到硬件上對(duì)量程變換調(diào)整。每個(gè)模擬量和數(shù)字量接口都留有5V、3.3V和電源負(fù)極的接口,以便于給模擬量或數(shù)字量設(shè)備供電11。接口留有八路模擬量采集,八路數(shù)字量控制(或采集),本次設(shè)計(jì)中使用六路,各預(yù)留兩路便于擴(kuò)展其他功能。3.4 操作手柄設(shè)計(jì)3.4.1 傳感器選擇操作手柄的功能是產(chǎn)生六路伺服電機(jī)的位置信號(hào)并將它們標(biāo)準(zhǔn)化,然后傳送給主控制板,等待主控板處理。每次傳輸數(shù)據(jù)將有六路模擬量信號(hào)產(chǎn)生,各代表六個(gè)伺服電機(jī)的角度或行程。產(chǎn)生的信號(hào)是微弱電壓信號(hào)切在傳輸?shù)倪^(guò)程中容易造成損壞,要經(jīng)過(guò)處理才能被主控板采集。信號(hào)處理電路的要點(diǎn)在與將信號(hào)發(fā)生模塊的信號(hào)強(qiáng)度增大,同時(shí)提高信號(hào)的傳輸效率,將信號(hào)1:1的傳輸?shù)街骺仉娐钒濉F鸬皆龃筝斎胱杩?、減小信號(hào)失真、維持電路結(jié)構(gòu)合理可靠等作用。處理電路如圖8所示。圖8 模擬量信號(hào)處理電路OP07芯片是一款低噪聲,非斬波穩(wěn)零的雙極性(也可單電源供電)集成運(yùn)算放大器電路。由于OP07具有較低的輸入失調(diào)電壓(OP07A最大為25V),所以O(shè)P07在很多應(yīng)用場(chǎng)合不需要額外的輔助調(diào)零電路。OP07同時(shí)具有輸入偏置電流低(OP07A為2nA)和開(kāi)環(huán)增益高(對(duì)于OP07A為300V/mV)等特點(diǎn),這種低失調(diào)、高開(kāi)環(huán)增益的特性使得OP07特別適用于增益較高的測(cè)量設(shè)備信號(hào)放大和傳感器的微弱信號(hào)處理等方面。與機(jī)械臂的每個(gè)關(guān)節(jié)相對(duì)應(yīng)的都有一到兩個(gè)模擬量輸出設(shè)備,這里選擇點(diǎn)位器作為該模擬信號(hào)的發(fā)生元件。操作手柄設(shè)計(jì)思路如圖9所示。因?yàn)殡姍C(jī)運(yùn)動(dòng)導(dǎo)致的是其位置和角度的改變,表現(xiàn)為臂身姿態(tài)的改變,所以再做一個(gè)更簡(jiǎn)化的機(jī)械臂機(jī)械部分作為控圖9 操作手柄設(shè)計(jì)思路制端(手柄),在伺服電機(jī)的位置上裝上電位器。當(dāng)手柄的姿態(tài)發(fā)生變化時(shí),中間關(guān)節(jié)的任何一個(gè)電位器發(fā)生相對(duì)滑動(dòng),都會(huì)將信號(hào)送給主控制板,然后藉由控制伺服電機(jī)來(lái)得到空間相應(yīng)位置上關(guān)節(jié)姿態(tài)的調(diào)整。由于操作者的介入整個(gè)系統(tǒng)構(gòu)成一個(gè)閉環(huán)。3.4.2 濾波電路分析實(shí)際工業(yè)生產(chǎn)中機(jī)械臂執(zhí)行錯(cuò)誤指令的后果不看設(shè)想,為防止操作手柄發(fā)出錯(cuò)誤指令,導(dǎo)致機(jī)械臂誤動(dòng)作,必須要對(duì)操作手柄的輸出信號(hào)進(jìn)行嚴(yán)格處理。以免造成事故和不必要的損失。因?yàn)椴僮魇直l(fā)出的有用信號(hào)都是直流信號(hào),所以在設(shè)計(jì)濾波電路時(shí)可以參考直流穩(wěn)壓電源的去紋波電路。脈動(dòng)系數(shù)(S)=輸出電壓交流部分基波的最大值輸出電壓的直流部分例如:串二極管半波整流,輸出電壓的脈動(dòng)系數(shù)為S=1.57,全波整流和橋式整流得到電壓的脈動(dòng)系數(shù)SO.67。若對(duì)全波和橋式整流電路采用C型濾波電路,其脈動(dòng)系數(shù)S=1(4(RLCT-1)(T為整流輸出的半波脈動(dòng)電壓的周期)。常用的濾波電路分為無(wú)源濾波和有源濾波兩大類。無(wú)源濾波的主要方式有電容濾波、電感濾波和復(fù)式濾波(包括倒電感型、電感電容濾波、電感電容型濾波和阻容型濾波等)。有源濾波的主要形式是有源阻容濾波,也被叫作電子濾波器。直流電中的交流成分的大小用脈動(dòng)系數(shù)來(lái)表示,此值越大,說(shuō)明濾波器的濾波效果越差。一般常用的是電感電容濾波。本設(shè)計(jì)中使用的是無(wú)源濾波電路。無(wú)源濾波器,又稱阻容或電感電容濾波器,是利用電感、電容和電阻等無(wú)源元件的組合設(shè)計(jì)構(gòu)成的濾波電路,可濾除一次或多次諧波,最普通易于采用的無(wú)源濾波器結(jié)構(gòu)是將電容與負(fù)載串并,可對(duì)主要次諧波(3、5、7)構(gòu)成低阻抗旁路;單調(diào)諧濾波器、雙調(diào)諧濾波器、高通濾波器都屬于無(wú)源濾波器。位置信號(hào)采集電路的輸出電壓并非平滑的電壓信號(hào),用示波器檢測(cè)信號(hào)發(fā)生電路的輸出,與直流相差較大,波形中含有較多的交流成分,即帶有紋波。由電容C和電感L所組成的濾波電路的簡(jiǎn)單結(jié)構(gòu)如圖10所示。為獲得比較理想的直流信號(hào),需要利用某些具有儲(chǔ)能作用的元件(如電容、電感等)組成的濾波電路來(lái)濾除整流電路輸出電壓中 圖10 LC濾波電路的基本形式的紋波以獲得穩(wěn)定的電壓信號(hào)。根據(jù)電感電容元件對(duì)交、直流阻抗的不同可設(shè)計(jì)出不同的濾波電路。因?yàn)殡娙萜鲗?duì)直流開(kāi)路,對(duì)交流阻抗小,所以電容應(yīng)并聯(lián)在負(fù)載兩端。電感器對(duì)直流阻抗小,對(duì)交流阻抗大,因此電感應(yīng)與負(fù)載串聯(lián)。改進(jìn)型的有型濾波等,如圖11所示。并聯(lián)的電容器C1在輸入電壓升高瞬間,給電容器充電,可把部分能量存儲(chǔ)在電容器中。而當(dāng)輸入電壓降低時(shí),電容C2兩端電壓以指數(shù)規(guī)律放電,就可以把存儲(chǔ)的能量釋放出來(lái)。經(jīng)過(guò)該濾波向采樣電路提供電壓,采樣電阻上得到的電壓信號(hào)就比較平滑,起到了濾波作用12。如果采用電感濾波,當(dāng)輸入電壓增高時(shí),與負(fù)載串圖11 型濾波聯(lián)的電感L中的電流增加,因此電感L會(huì)存儲(chǔ)部分磁場(chǎng)能量,當(dāng)電流減小瞬間,又將能量以電流形式出來(lái),使采樣電壓變得平滑,因此,電感L也有濾波作用。利用儲(chǔ)能元件電感器的電流不會(huì)突變的特征,在操作手柄電路的信號(hào)輸出電路中串聯(lián)一個(gè)電感,使輸出電壓波形變得平滑。電感具有對(duì)直流阻抗小,交流阻抗大的優(yōu)點(diǎn),因此合適選擇電感量能夠得到很好的濾波效果且直流損失小。電感濾波也有不足,如體積大,成本高等。4 系統(tǒng)的軟件設(shè)計(jì)一旦硬件和機(jī)械的平臺(tái)確定之后剩下的就要看程序能將這個(gè)平臺(tái)發(fā)揮到什么程度了,就像工具一樣,好不好使還要看使用者的能力。一個(gè)好的硬件系統(tǒng)必須要一套好的軟件來(lái)展現(xiàn)它的價(jià)值和魅力。對(duì)于一款產(chǎn)品也是這樣,只有系統(tǒng)軟件做的足夠好,與硬件配合的好,才能得到市場(chǎng)競(jìng)爭(zhēng)優(yōu)勢(shì)。寫控制程序必須要有模塊化的意識(shí),如果寫軟件是沒(méi)有分清模塊,所有軟件寫到一起,就像做硬件時(shí)所有功能模塊都做到一大塊電路板一樣。一旦出了問(wèn)題,將很難快速定位錯(cuò)誤發(fā)生在整個(gè)系統(tǒng)的哪里,要想找出問(wèn)題就要將整個(gè)系統(tǒng)排查一遍。當(dāng)系統(tǒng)比較復(fù)雜時(shí),這將是一個(gè)很大的問(wèn)題。寫一個(gè)系統(tǒng)的軟件時(shí),也有幾種方法的,首先,可以逐個(gè)模塊分開(kāi)來(lái)寫,這樣寫一來(lái)是比較容易檢查錯(cuò)誤,二來(lái)是比較容易系統(tǒng)方案,思路明確。但是,也有它的缺點(diǎn),就是系統(tǒng)各個(gè)模塊間的接口不太容易處理,容易出錯(cuò),而且這樣的錯(cuò)誤一般也都不會(huì)被注意到,所以導(dǎo)致整個(gè)系統(tǒng)的開(kāi)發(fā)周期變長(zhǎng)。另一種方法就是整個(gè)系統(tǒng)都寫在一起,這樣以來(lái)就沒(méi)有什么接口需要處理,但是這樣就出現(xiàn)了另外一個(gè)問(wèn)題,那就是整個(gè)程序都在一起,程序比較長(zhǎng),看起來(lái)很繁鎖,可能想找的東西就找不到,檢查錯(cuò)誤時(shí)也不是很容易。而且由于系統(tǒng)的各個(gè)模塊都堆在一起,所以思路可能會(huì)比較亂。這種方法適合不是太大的系統(tǒng),而且要求程序員的思路比較明確。本系統(tǒng)采用的是分模塊寫的方法。本系統(tǒng)中主要有主程序的設(shè)計(jì),A/D模塊的軟件設(shè)計(jì),通訊程序的設(shè)計(jì),顯示部分程序的設(shè)計(jì)等。部分模塊的程序?qū)⒃诟戒?中給出。4.1 主程序設(shè)計(jì)當(dāng)系統(tǒng)開(kāi)始運(yùn)行之后,首先要進(jìn)行初始化, 主要包括時(shí)鐘的初始化(為CPU各模塊運(yùn)行提供所需的時(shí)鐘),ADC初始化,PWM初始化(包括引腳、頻率、初始占空比等),串行口初始化等,然后進(jìn)行機(jī)械臂各關(guān)節(jié)初始姿態(tài)的設(shè)定,然后就等待系統(tǒng)的中斷,當(dāng)有中斷信息時(shí),系統(tǒng)就將設(shè)定值輸出,然后等待下一次中斷來(lái)臨。全部過(guò)程變量都將顯示在TFT液晶屏(LCD)或上位機(jī)監(jiān)控軟件上13。系統(tǒng)主程序流程圖如圖12所示。圖12 系統(tǒng)主程序流程圖4.2 AD采樣濾波程序設(shè)計(jì)4.2.1 濾波原理及工作方式選擇模擬信號(hào)是大自然中普遍存在的信號(hào),對(duì)于電信號(hào),單片機(jī)不可以直接對(duì)模擬信號(hào)進(jìn)行處理,而是通過(guò)AD轉(zhuǎn)換器將其轉(zhuǎn)換成數(shù)字量再進(jìn)行二次處理,直接轉(zhuǎn)換來(lái)的數(shù)字信號(hào)不能保證數(shù)據(jù)的正確性。因此,通常的做法是先對(duì)數(shù)字信號(hào)進(jìn)行數(shù)字濾波處理,處理結(jié)束后再將數(shù)字信號(hào)恢復(fù)成模擬信號(hào)對(duì)應(yīng)的工程量。模擬信號(hào)往數(shù)字信號(hào)轉(zhuǎn)化一般需要經(jīng)過(guò)采樣、量化、編碼等步驟,而要使得采樣后的數(shù)字信號(hào)又能不失真地恢復(fù)成模擬信號(hào)則要滿足一定的條件,既要選擇合適的軟件濾波算法又要滿足采樣定理的要求。(1) 程序判斷濾波法(又稱限幅濾波法)在實(shí)際生產(chǎn)中,由于采樣現(xiàn)場(chǎng)復(fù)雜,大的隨機(jī)擾動(dòng)或由傳感器、變送器故障所引起的失真,將造成采樣信號(hào)的大幅度跳變,從而導(dǎo)致整個(gè)控制系統(tǒng)的誤動(dòng)作14。對(duì)于此類干擾,通常采用限幅濾波的處理方法對(duì)其進(jìn)行處理。根據(jù)工程經(jīng)驗(yàn)判斷,確定兩次采樣不超過(guò)的最大偏差值,最大偏差設(shè)為A,每當(dāng)檢測(cè)到新數(shù)據(jù)時(shí)判斷:如果本次數(shù)據(jù)與上次數(shù)據(jù)之差A(yù),則本次數(shù)據(jù)無(wú)效,放棄本次數(shù)據(jù),用上次數(shù)據(jù)代替本次數(shù)據(jù)。優(yōu)點(diǎn):能有效克服因現(xiàn)場(chǎng)突發(fā)因素引起的脈沖擾動(dòng)和設(shè)備不穩(wěn)定造成的跳碼現(xiàn)象。缺點(diǎn):無(wú)法抑制規(guī)律性的干擾、平滑度不佳。(2) 中位值濾波法連續(xù)采樣數(shù)據(jù)N次(N取奇數(shù)),把N次采樣值按大小順序排列,取排列后數(shù)組的中間值為本次采樣有效值。優(yōu)點(diǎn):能有效克服因突發(fā)因素引起的波動(dòng)干擾,對(duì)溫度、液位等大慣性控制對(duì)象的被測(cè)參數(shù)有良好的濾波效果。缺點(diǎn):對(duì)流量、速度等小慣性環(huán)節(jié)的參數(shù)不宜。(3) 滑動(dòng)平均濾波法(又稱遞推平均濾波法)把連續(xù)取N個(gè)采樣值存入一個(gè)數(shù)組,數(shù)組的長(zhǎng)度固定為N,每次采樣到一個(gè)新數(shù)據(jù)放入數(shù)組最后位,并舍掉原來(lái)數(shù)組的第一個(gè)數(shù)據(jù).(先進(jìn)先出原則),把數(shù)據(jù)中的N個(gè)數(shù)據(jù)進(jìn)行算術(shù)平均運(yùn)算,就可獲得新的濾波結(jié)果,N值的選取:流量,N=12;壓力:N=4;液面,N=412;溫度,N=14。優(yōu)點(diǎn):對(duì)頻繁有規(guī)律干擾有良好的抑制作用,平滑度高,適用于高頻振蕩的系統(tǒng)。缺點(diǎn):靈敏度低,對(duì)于突然出現(xiàn)的脈沖性干擾的抑制作用不好,存在由于脈沖干擾所引起的采樣數(shù)據(jù)偏差,不適用于脈沖干擾比較嚴(yán)重的場(chǎng)合,比較浪費(fèi)RAM。(4) 一階滯后濾波法一階滯后數(shù)字濾波實(shí)質(zhì)上是利用算式來(lái)實(shí)現(xiàn)模擬電路的RC濾波。RC模擬濾波電路的傳遞函數(shù)為Y(s)X(s)=1Tfs+1 (7)式中,Tf為濾波器時(shí)間常數(shù),且Tf=RC。設(shè)y(k)和y(k)分別為濾波器的輸出和輸入,將式(7)離散化,可得yk=Ayk-1+1-Ayk (8)式中,A= TsTf+Ts,且0A1。式(8)表明,測(cè)量信號(hào)的濾波值為現(xiàn)在的測(cè)量值yk和前一次的濾波值yk-1的加權(quán)和。因而在計(jì)算式只需對(duì)前一次的濾波值儲(chǔ)存。優(yōu)點(diǎn):對(duì)規(guī)律性干擾具有較好的消除作用,適用于干擾頻率較高的場(chǎng)合。缺點(diǎn):相位存在滯后性,靈敏度不高,滯后多少取決于A值大小,消除不了濾波頻率高于采樣頻率1/2的擾動(dòng)信號(hào)。結(jié)合各種濾波算法的優(yōu)缺點(diǎn),最終選擇了先對(duì)采樣信號(hào)進(jìn)行限幅濾波進(jìn)行一次處理,然后再進(jìn)行滑動(dòng)平均濾波(N=30),因?yàn)樵搮?shù)實(shí)時(shí)性較高,且單片機(jī)處理速度足夠快,故滑動(dòng)濾波的N值取得較大。4.2.2 位姿信號(hào)標(biāo)度變換單片機(jī)作為數(shù)字設(shè)備,只能運(yùn)算數(shù)字信號(hào),而我們生活中經(jīng)常遇到的模擬量,像角度,位移等。標(biāo)度變換用于模擬量處理,先通過(guò)傳感器,變送器,轉(zhuǎn)換成便于處理的標(biāo)準(zhǔn)模擬量(05V 4-20mA)模擬量進(jìn)入單片機(jī)的AD轉(zhuǎn)換模塊后轉(zhuǎn)換成16進(jìn)制的數(shù)字量,比如0xffff 也就是十進(jìn)制的65535,他們一一對(duì)應(yīng)且成線性關(guān)系??墒沁@些與我們要的角度和位移等工程量在數(shù)值上是不相符的。假設(shè)用量程是0-100mm,輸出信號(hào)范圍為0-10V的位移傳感器測(cè)量位移,對(duì)單片機(jī)的AD轉(zhuǎn)換模塊進(jìn)行設(shè)置,配置成12位分辯率。那么單片機(jī)采集進(jìn)去的數(shù)字量0與0V對(duì)應(yīng),數(shù)字量2047對(duì)應(yīng)5V輸出,數(shù)字量4095對(duì)應(yīng)10V輸出,標(biāo)度變換就是要把單片機(jī)讀取的數(shù)字量還原為我們便于的物理量。數(shù)字量 0 對(duì)應(yīng)0V對(duì)應(yīng)0mm 數(shù)字量2047對(duì)應(yīng)5V 對(duì)應(yīng)50mm 數(shù)字量 4095 對(duì)應(yīng)10V對(duì)應(yīng)100mm 單片機(jī)讀回來(lái)的數(shù)字量需要進(jìn)行標(biāo)度變換后處理起來(lái)才形象直觀,便于分析處理問(wèn)題。設(shè)某個(gè)關(guān)節(jié)的最大活動(dòng)較為max,最小活動(dòng)角為min,對(duì)應(yīng)單片機(jī)采樣后濾波處理過(guò)的的數(shù)字量分別為Vmax和Vmin,設(shè)當(dāng)前角度為PV,當(dāng)前讀數(shù)為VPV。則有:VPV-VminVmax-Vmin=PV-minmax-min (9)由式可知只要得到精確地VPV就可以推導(dǎo)出關(guān)節(jié)當(dāng)前的角度PV,在單片機(jī)中相關(guān)語(yǔ)句為HR0 = 100*(float)(float)TSum/20-47636-0*80.413)/80.413);4.2.3 AD數(shù)據(jù)采集的軟件設(shè)計(jì)CPU進(jìn)入模數(shù)轉(zhuǎn)換子程序后,先初始化待轉(zhuǎn)換的AD口,轉(zhuǎn)換完成的數(shù)據(jù)會(huì)通過(guò)DMA自動(dòng)傳送到Get_AD數(shù)組,然后通過(guò)30次滑動(dòng)濾波并進(jìn)行標(biāo)度變換后得到操作手柄各關(guān)節(jié)位姿信息目標(biāo)值,將信息傳送給PWM輸出模塊。若標(biāo)度變換后的數(shù)據(jù)不再伺服電機(jī)運(yùn)動(dòng)的范圍,則返回繼續(xù)采樣。數(shù)模轉(zhuǎn)換中斷子程序流程圖如圖13所示。圖13 模數(shù)轉(zhuǎn)換中斷子程序流程圖使用單片機(jī)的PA口實(shí)現(xiàn)對(duì)ADC功能的映射,并且對(duì)端口和ADC首先進(jìn)行初始化,并且發(fā)送字符串。頭文件如下:#include stm32f10x_adc.h#include stm32f10x_rcc.h#define uint unsigned int #define uchar unsigned char#define uint unsigned int #define uchar unsigned charvoid ADC_DeInit(ADC_TypeDef* ADCx)#define RST_1 PORTD|=BIT(0)void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct)void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct)void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState)void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState)void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState NewState)void ADC_ResetCalibration(ADC_TypeDef* ADCx)FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx)void ADC_StartCalibration(ADC_TypeDef* ADCx)FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx)4.3 TFT液晶屏驅(qū)動(dòng)程序設(shè)計(jì)隨著工業(yè)技術(shù)的不斷發(fā)展,人機(jī)界面的開(kāi)發(fā)及應(yīng)用空前火熱,為了具有比較友好的人機(jī)界面,TFT數(shù)字彩屏被廣泛的應(yīng)用,但是TFT彩屏通常都不帶有控制芯片,由STM32驅(qū)動(dòng)液晶屏?xí)r,必須要給TFT配一個(gè)控制芯片,本設(shè)計(jì)使用的是新一代觸摸屏控制器TSC2046。圖14 液晶顯示程序流程圖從性價(jià)比上考慮,TFT屏的價(jià)格與傳統(tǒng)的單色液晶的價(jià)格幾乎不相上下,同尺寸下甚至比一些單色屏還要便宜;就客戶和廠商而言,很多制造商也相繼使用彩色TFT的設(shè)計(jì)方案,以提高顯示效果,提升產(chǎn)品的競(jìng)爭(zhēng)力15。與當(dāng)今科技計(jì)接軌,本設(shè)計(jì)使用了STM32處理器的GPIO口作為液晶接口,掛載TFT數(shù)字屏控制器并結(jié)合DMA傳輸方式驅(qū)動(dòng)RGB數(shù)字屏的方法。DMA屬于直接存儲(chǔ)器傳輸,通常用在外部設(shè)備和存儲(chǔ)器之間或者單獨(dú)存儲(chǔ)器和存儲(chǔ)器之間的高速數(shù)據(jù)傳輸。時(shí)鐘來(lái)自鎖相環(huán),可以做到無(wú)須單片機(jī)干預(yù),數(shù)據(jù)可以通過(guò)DMA迅速地傳送到目標(biāo)地址,這樣就節(jié)省了MCU的資源,方便多任務(wù)做其他操作。本設(shè)計(jì)采用STM32F103RBT6外部掛接TSC2046的靜態(tài)RAM用作顯存,再使用DMA的Memory to Memory模式從外部顯存往GPIO外設(shè)不停地送數(shù)據(jù)來(lái)刷彩屏,無(wú)需單片機(jī)內(nèi)核的干預(yù)。其程序流程如圖14所示。由于驅(qū)動(dòng)RGB接口彩屏對(duì)時(shí)序要求相對(duì)來(lái)說(shuō)比較嚴(yán)格,所以使用STM32103RBT6的高級(jí)定時(shí)器來(lái)產(chǎn)生精準(zhǔn)的時(shí)基信號(hào),以此為最小的時(shí)間單位來(lái)生成相應(yīng)的刷屏?xí)r序,STM32由定時(shí)器來(lái)控制對(duì)TFT顯示信息的循環(huán)掃描,以保證不會(huì)使人有較明顯的視覺(jué)暫留。掃描時(shí), CPU僅僅參與對(duì)DMA,GPIO和顯存的設(shè)置等操作,由DMA控制器來(lái)直接從顯存中讀取要顯示的數(shù)據(jù)并傳送到連接RGB數(shù)字總線上,不停地讀寫。幾乎全部是由DMA控制器來(lái)實(shí)現(xiàn),占用CPU的時(shí)間很少,從而有足夠的時(shí)間來(lái)處理用戶程序16。整個(gè)硬件的輸入設(shè)備有操作手柄、按鍵和觸摸屏。大部分的位姿信息由操作手柄獲得,觸摸屏作為微調(diào)和快捷設(shè)置,按鍵的功能是進(jìn)行報(bào)警參數(shù)設(shè)置、模式切換和急停等。按鍵使用的是獨(dú)立按鍵,也可以用矩陣鍵盤,但是考慮到整體系統(tǒng)軟件的簡(jiǎn)化及另中斷向量的清晰化,過(guò)多的系統(tǒng)延時(shí)花費(fèi)在鍵盤掃描上,是對(duì)系統(tǒng)資源的浪費(fèi),所以在設(shè)計(jì)時(shí),使用了GPIO直接驅(qū)動(dòng)的獨(dú)立按鍵。4.4 上位機(jī)通訊部分軟件設(shè)計(jì)一個(gè)完整的測(cè)控系統(tǒng)還要有上位計(jì)算機(jī)軟件作為人機(jī)交互界面,在本設(shè)計(jì)中使用VB開(kāi)發(fā)了一個(gè)簡(jiǎn)單的上位機(jī)監(jiān)控軟件。一方面作為調(diào)試仿真時(shí)使用的工具,另一方面作為機(jī)械臂狀態(tài)的監(jiān)控軟件。上位機(jī)與下位機(jī)(以主控板為核心的機(jī)械臂硬件和機(jī)械系統(tǒng))通訊時(shí)采用的是自定義的協(xié)議,本來(lái)打算使用工業(yè)標(biāo)準(zhǔn)的ModBus協(xié)議,但考慮到其在讀取模擬量時(shí)的數(shù)據(jù)庫(kù)組態(tài)在VB中實(shí)現(xiàn)起來(lái)稍微有些麻煩,再加上本設(shè)計(jì)的重點(diǎn)在于硬件設(shè)計(jì)而非上位機(jī)設(shè)計(jì),故使用了自定義的協(xié)議。讀下位機(jī)伺服電機(jī)位姿:上位機(jī)發(fā)送:FD+FF 00+CRC校驗(yàn)碼下位機(jī)回復(fù):FD+六個(gè)電機(jī)當(dāng)前狀態(tài)參數(shù)+限位報(bào)警參數(shù)+CRC校驗(yàn)碼若下位機(jī)未響應(yīng)或CRC校驗(yàn)碼有誤,則上位機(jī)每間隔20ms重新發(fā)送請(qǐng)求讀取參數(shù)命令。控制下位機(jī)伺服電機(jī)位姿:上位機(jī)發(fā)送:CA+六個(gè)電機(jī)目標(biāo)狀態(tài)參數(shù)+限位報(bào)警閾值+CRC校驗(yàn)碼下位機(jī)回復(fù): CA+00 FF+CRC校驗(yàn)碼若下位機(jī)未響應(yīng)或CRC校驗(yàn)碼有誤,則上位機(jī)每間隔20ms重新發(fā)送控制命令。每一幀數(shù)據(jù)都必須經(jīng)過(guò)CRC校驗(yàn),以免發(fā)送或接收錯(cuò)誤指令,造成機(jī)械臂的誤動(dòng)作,避免造成不必要的損失。連接上位機(jī)之前要先對(duì)波特率進(jìn)行設(shè)置,保證上下位機(jī)通訊節(jié)拍一致。將下位機(jī)的通訊中斷優(yōu)先級(jí)設(shè)置為最高以便能快速響應(yīng)砂鍋內(nèi)危機(jī)的指令,提高整個(gè)系統(tǒng)的實(shí)時(shí)性和可靠性。STM32串口中斷優(yōu)先級(jí)如下:void NVIC_USART1Configuration(void) NVIC_InitTypeDef NVIC_InitStructure; /* Configure the NVIC Preemption Priority Bits */ NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0); /* Enable the USART1 Interrupt */ NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelSubPriority =
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 文庫(kù)發(fā)布:客艙安全
- 敬老院消防課件
- 醫(yī)療事故案例分析(1112月)
- 教學(xué)課件制作學(xué)習(xí)
- 冰雪課程教學(xué)課件
- 教育技術(shù)課件開(kāi)發(fā)方法
- 教育局人工智能培訓(xùn)課件
- 題型03 控制變量法探究實(shí)驗(yàn)-備戰(zhàn)2020年中考化學(xué)實(shí)驗(yàn)題型特訓(xùn)(原卷版)
- 新疆選品會(huì)活動(dòng)方案
- 【綿陽(yáng)】2025年四川綿陽(yáng)招聘派駐綿陽(yáng)經(jīng)開(kāi)區(qū)機(jī)關(guān)工作人員24人筆試歷年典型考題及考點(diǎn)剖析附帶答案詳解
- 公司授權(quán)子公司簽訂合同委托書正規(guī)范本(通用版)
- 《MEMS技術(shù)及其應(yīng)用》課件
- 煤礦安全生產(chǎn)法律法規(guī)培訓(xùn)課件2023版
- 技術(shù)在外語(yǔ)教育中的應(yīng)用
- 壓縮機(jī)拆除方案上傳
- 污水處理廠安全風(fēng)險(xiǎn)清單
- 卵巢惡性腫瘤護(hù)理查房
- 國(guó)開(kāi)作業(yè)市場(chǎng)營(yíng)銷策劃(本)-本章自測(cè)03參考(含答案)
- 【醫(yī)療】急診預(yù)檢分診專家共識(shí)課件
- 國(guó)家開(kāi)放大學(xué)《農(nóng)村政策法規(guī)》形成性考核(平時(shí)作業(yè))參考答案
- 談判藥品審核備案表
評(píng)論
0/150
提交評(píng)論