freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

舵機的數(shù)字化控制器設計畢業(yè)論文(編輯修改稿)

2025-07-24 15:52 本頁面
 

【文章內(nèi)容簡介】 械部分,其中包括小型直流電機和一個反饋可調(diào)電位器,來組成一個閉環(huán)的舵機控制系統(tǒng),直流電機用H橋芯片LG9110來驅(qū)動,電位器進行角度測量,通過單片機的內(nèi)部A/D轉(zhuǎn)換來反饋實時角度,單片機用PID算法實現(xiàn)角度控制,PID算法的作用為減小系統(tǒng)的超調(diào)和靜差,加快系統(tǒng)的響應速度。上位機通過RS232串口與單片機進行通信,將所設定的角度送到單片機,單片機通過編程產(chǎn)生PWM信號,經(jīng)由LG9110驅(qū)動,控制電機的正反轉(zhuǎn)。電源USART單片機ATmega8L PWM A/DMAX232上位機直流電機LG9110電位器控制流程如下:⑴ 上位機設定90176。到+90176。之間的角度,通過串口發(fā)送到單片機;⑵ 單片機讀取角度v并將其轉(zhuǎn)換成10位二進制數(shù)r;⑶ 電位器測量當前角度,并將結(jié)果送到單片機的A/D轉(zhuǎn)換通道進行轉(zhuǎn)換,轉(zhuǎn)換結(jié)果為10為二進制數(shù)y。⑷ 求r與y的差值作為PD的控制值;⑸ 將PD控制的結(jié)果u送到T1定時器的輸出比較寄存器OCR1A和OCR1B, OC1A和OC1B輸出PWM信號控制舵機的轉(zhuǎn)動;⑹ 當上位機發(fā)送一個命令‘’,單片機即將實時角度(即A/D轉(zhuǎn)換的結(jié)果y)發(fā)送到上位機。 系統(tǒng)硬件設計 系統(tǒng)原理圖 原理圖說明⑴ LG9110為舵機驅(qū)動部分,LG9110驅(qū)動芯片詳細介紹見第四章,輸入端IA、IB分別為定時器T1產(chǎn)生的兩路使舵機正反轉(zhuǎn)的PWM信號,經(jīng)過LG9110內(nèi)部的H橋來驅(qū)動模擬舵機內(nèi)部的直流電機;⑵ J1作為模擬舵機內(nèi)部電位器與系統(tǒng)的連接, 是系統(tǒng)的反饋部分;⑶ ISP為程序下載部分,最常用的是ISP下載方式進行,可以把芯片焊接好以后進行程序?qū)懭耄@極大地方便了程序的修改。ISP串行下載接口有6個信號線。當RESET接地時,所有的程序和數(shù)據(jù)存儲器陣列都可以通過串行SPI總線來下載。該串行接口包括引腳SCK(時鐘信號)、MOSI(輸入)、和MISO(輸出)。如原理圖所示。⑷ J5是系統(tǒng)與串口通信模塊的連接,模塊與系統(tǒng)要共地。⑸ 單片機的PBPB2為PWM信號的輸出端口,PBPBPBPC6為ISP的信號線,另外PC6接10K電阻到VCC為上電復位,PD0、PD1為串口連接,由于A/D轉(zhuǎn)換參考電壓采用VCC所以AREF懸空,PC3舵機反饋信號的A/D轉(zhuǎn)換通道。本章介紹了硬件設計的總體思路,由于系統(tǒng)硬件比較簡單,只有單片機模塊和電平轉(zhuǎn)換模塊,制作也較為簡單,然而細節(jié)問題還是不容小視的,一開始由于沒有考慮到兩個模塊的共地問題而作了不少的無用功,因此我深刻的懂得了每一個細節(jié)部分都要細心,要有耐心的道理。6 系統(tǒng)軟件設計 系統(tǒng)主程序系統(tǒng)硬件電路設計方案確定以后,主要功能將依賴于系統(tǒng)軟件編程來實現(xiàn)??刂葡到y(tǒng)能否正常可靠地工作,除了硬件設計合理外,功能完善的軟件設計是非常關(guān)鍵的。這一部分將詳細闡述本設計方案所需實現(xiàn)的功能、系統(tǒng)軟件資源分配,上位機的設計方案及具體實現(xiàn)方法。 主程序設計要點在論述具體的軟件程序設計之前,先對軟件設計的原則、方法等軟件設計要點作簡要的闡述,這是進行軟件程序設計的依據(jù)和手段。應用程序的主要設計原則是:⑴ 軟件設計與硬件電路設計需綜合考慮。⑵ 軟件設計必須保證系統(tǒng)的各個硬件功能模塊能夠協(xié)調(diào)工作,完成指定的系統(tǒng)功能。⑶ 各項功能程序設計實現(xiàn)模塊化。⑷ 合理規(guī)劃程序存儲區(qū)和數(shù)據(jù)存儲區(qū),為功能的擴展預留空間,方便今后系統(tǒng)的功能完善和軟件升級。⑸ 采取軟件抗干擾措施,保證系統(tǒng)更可靠的運行。 主程序流程圖開始初始化將v 轉(zhuǎn)換成10位二進制數(shù)rT0是否溢出中斷?讀取A/D轉(zhuǎn)換結(jié)果yPID算法,得出控制量uu=0?反轉(zhuǎn)正轉(zhuǎn)是否達到設定角度?停止結(jié)束 主程序流程圖讀取上位機設定的角度v PID子程序流程圖PID入口計算參數(shù)Kp,Kd讀取A/D轉(zhuǎn)換結(jié)果計算差值e1=e0。e0=ry計算控制量 us=kp*e0+kd*(e0e1)u2500u=2500u2500u=2500輸出u退出 PID子程序流程圖 程序設計思路⑴ 首先確定產(chǎn)生PWM信號和定時器中斷所用到的定時器,本設計用定時器T1的相位修正PWM模式來產(chǎn)生PWM信號,用定時器T0來產(chǎn)生溢出中斷,定時時間為4ms。 定時器的詳細說明在第2章。⑵ 確定A/D轉(zhuǎn)換通道,單片機內(nèi)部均為10為逐次逼近型A/D,本設計參考電壓取VCC。A/D轉(zhuǎn)換流程如下:① 初始化相關(guān)寄存器;② 讀取轉(zhuǎn)換結(jié)果;③ 平滑濾波;④ 進行單位制轉(zhuǎn)換。⑶ 確定PID算法,本設計用位置型PD算法 (61)用PID算出的控制量在中斷里與周期變化的數(shù)進行比較從而確定輸出的電平為高還 是低改變PWM信號的占空比,從而控制舵機的正反轉(zhuǎn)。⑷ 串口通信子程序,將串口初始化為:波特率9600、8位數(shù)據(jù)位、1位停止位、無校驗位,單片機發(fā)送采用查詢方式,接收采用中斷方式。對控制指令作如下的規(guī)定: “(AX)” ,“” 指令起始符“(” :表示一條控制指令的開始; 設置地址“A” :A為一個字符,單片機收到該字符,上位機的操作對單片機才有效,改變A即可以控制多路舵機,實現(xiàn)了在線設置地址的目的。 設定角度“X” :X=90度到+90度范圍內(nèi)的數(shù),第一位為符號位,第二位為十位,第三位為個位。 指令結(jié)束符“)” :單片機收到此碼后,知道此條控制指令已結(jié)束。 發(fā)送控制量指令“” :單片機收到此指令后,即將實時角度(即A/D轉(zhuǎn)換的結(jié)果y)發(fā)送到上位機。 PD子程序說明define kd 40 //微分系數(shù)define kp 30 //比例系數(shù)signed long e0,e1,y,r,u,us。 //有符號長整型eeprom long v=0。//用eeprom關(guān)鍵詞將全局變量分配到EEPROM存儲空間中void PID(void){ char i。 y=read_adc(3)。 //讀取A/D轉(zhuǎn)換結(jié)果,A/D轉(zhuǎn)換通道3 e1=e0。e0=ry。 //求偏差值 us=kp*e0+kd*(e0e1)。 //位置型PD算法 if(us2500) us=2500。 //限幅 if(us2500) us=2500。 //限幅 u=us/10。 //得出控制量} 定時器T0中斷說明interrupt [TIM0_OVF] void timer0_ovf_isr(void) // kHz{ static char m=0。 //靜態(tài)變量 asm(sei) TCNT0=50。 // if(++m2) { m=0。 PID()。//調(diào)用PD算法 if(u=0) { OCR1BL=0x00。 OCR1AL=uamp。0xff。} //u大于或等于0,賦值給定時器T1數(shù)值比較else 器OCR1A的低8位,舵機正轉(zhuǎn) { OCR1AL=0x00。 OCR1BL=(u)amp。0xff。} //u小于0,則賦值給定時器T1數(shù)值} 比較器OCR1B的低8位,舵機反轉(zhuǎn)}詳細程序代碼請見附錄。 系統(tǒng)仿真 仿真原理圖本設計系統(tǒng)用proteus 7軟件進行仿真,圖中用L293D作為驅(qū)動芯片,用MOTORSERVO模擬舵機的轉(zhuǎn)動。該仿真采用的程序與實際系統(tǒng)的有些差別,仿真中PD的系數(shù)取Kp=15。Kd=“OK”,錯誤即回顯“Error”。上位機發(fā)送“”即回顯控制量的大小。以此測試所編的程序是否能實現(xiàn)一定的功能。仿真檢驗所編寫的程序是否能實現(xiàn)各個功能,是否能滿足要求,可以通過示波器觀察輸出的PWM信號的占空比的實時變化(本仿真原理圖省略),及其對舵機轉(zhuǎn)動方向和角度的影響,串口通信的仿真檢驗所設置角度的格式是否正確,并觀察控制量u隨著角度的變化而變化,,另外還有電位器實時數(shù)據(jù)的測量。 仿真結(jié)果(發(fā)送格式正確) 仿真結(jié)果(發(fā)送格式錯誤) 上位機目前,在許多單片機應用系統(tǒng)中,上、下位機分工明確,作為下位機核心器件的單片機往往只負責數(shù)據(jù)采集和通信,而上位機通常以基于圖形界面的Windows核心為操作平臺,為便于查詢和保存數(shù)據(jù),還需要數(shù)據(jù)庫的支持,這種應用的核心是數(shù)據(jù)通信,它包括單片機和上位機之間、客戶端和服務器之間以及客戶端和客戶端之間的通信,而單片機和上位機之間數(shù)據(jù)通信則是整個系統(tǒng)的基礎(chǔ)。單片機和PC的通信是通過單片機和PC串口之間的硬件連接實現(xiàn)的。 MSComm控件原理Visual Basic (以下簡稱VB) 是一種功能強大、簡單易學的程序設計語言。它不但保留了原先Basic語言的全部功能,而且還增加了面向?qū)ο蟪绦蛟O計功能。它不僅可以方便快捷地編制適用于數(shù)據(jù)處理、多媒體等方面的程序,而且利用ActiveX控件MSComm還能十分方便地開發(fā)出使用計算機串口的計算機通信程序。MSComm控件提供了兩種處理通信的方式:一種為事件驅(qū)動方式,該方式相當于一般程序設計中的中斷方式。當串口發(fā)生事件或錯誤時,MSComm控件會產(chǎn)生OnComm事件,用戶程序可以捕獲該事件進行相應處理。本文的兩個例子均采用該方式。另一種為查詢方式,在用戶程序中設計定時或不定時查詢MSComm控件的某些屬性是否發(fā)生變化,從而確定相應處理。在程序空閑時間較多時可以采用該方式。 利用MSComm控件實現(xiàn)計算機通信的關(guān)鍵是理解并正確設置MSComm控件眾多屬性和方法。以下是MSComm控件的常用屬性和方法: ⑴ Commport:設置或返回串口號。 ⑵ Settings:以字符串的形式設置或返回串口通信參數(shù)。 ⑶ Portopen:設置或返回串口狀態(tài)。 ⑷ InputMode:設置或返回接收數(shù)據(jù)的類型。 ⑸ Inputlen:設置或返回一次從接收緩沖區(qū)中讀取字節(jié)數(shù)。 ⑹ InBufferSize:設置或返回接收緩沖區(qū)的大小,缺省值為1024字節(jié)。 ⑺ InBufferCount:設置或返回接收緩沖區(qū)中等待計算機接收的字符數(shù)。 ⑻ Input:從接收緩沖區(qū)中讀取數(shù)據(jù)并清空該緩沖區(qū),該屬性設計時無效,運行時只讀。 ⑼ OutBufferSize:設置或返回發(fā)送緩沖區(qū)的大小,缺省值為512字節(jié)。 ⑽ OutBufferCount:設置或返回發(fā)送緩沖區(qū)中等待計算機發(fā)送的字符數(shù)。 ⑾ Output:向發(fā)送緩沖區(qū)發(fā)送數(shù)據(jù),該屬性設計時無效,運行時只讀。 ⑿ CommEvent:這是一個非常重要的屬性。該屬性設計時無效,運行時只讀。一旦串口發(fā)生通信事件或產(chǎn)生錯誤,依據(jù)產(chǎn)生的事件和錯誤,MSComm控件為CommEvent屬性賦不同的代碼,同時產(chǎn)生OnComm事件。用戶程序就可在OnComm事件處理程序中針對不同的代碼,進行相應的處理??丶ㄐ挪襟E:⑴ 加入通信部件,也就是MSComm對象;⑵ 設置通信端口號碼,即Commport屬性;⑶ 設置通信協(xié)議,即HandShaking屬性;⑷ 設置傳輸速度等參數(shù),即Settings屬性;⑸ 設置其他參數(shù),若必要時在加上其他的屬性設置;⑹ 打開通信端口,即PortOpen屬性設成True。⑺ 送出字符串或讀入字符串,使用Input及Output屬性;⑻ 使用完MSComm通信對象后,將通信端口關(guān)閉。即PortOpen屬性設置成False。屬性設置好以后,即可編寫程序代碼,詳細代碼見附錄。 程序編寫、調(diào)試完畢,執(zhí)行菜單“運行/啟動”命令或單擊工具欄快捷按鈕“啟動”運行程序。在發(fā)送區(qū)輸入“(2+60)”,觀察到舵機轉(zhuǎn)到+60度的位置,再輸入“”,接收區(qū)即顯示當前的角度為+61度。‘2’為地址設置,若該位為其他字符,則舵機不轉(zhuǎn)動。 單片機將實時角度發(fā)送到上位機本章對系統(tǒng)所用到的軟件進行了詳細的介紹,是系統(tǒng)從理論到實現(xiàn)的最重要部分,CVAVR的向?qū)Чδ軐幊處砹朔奖悖热鏏/D轉(zhuǎn)換的子程序和串口的接收中斷子程序都由向?qū)刹⒖梢灾苯邮褂玫?,另外用Proteus進行仿真可以直接檢驗編程是否能達到功能指標,為硬件設計省去了不必要的麻煩。利用VB編寫的上位機實現(xiàn)了PC機通過單片機而對舵機進行角度控制,并能通過設置地址選擇多路舵機。 硬件調(diào)試由于本設計硬件比較簡單,分兩個模塊:單片機模塊和電平轉(zhuǎn)換模塊,所以硬件調(diào)試主要是單片機模塊。在電路制作完成后,不要急于上電測試,而首先必須做好以下調(diào)試前的檢查工作。 檢查連線情況:⑴ 經(jīng)常碰到的有錯接(即連線的一端正確,而另一端誤接)、少接(指安裝時漏接的線)及多接(指在電路上完全是多余的連線),等連線錯誤。檢查連線可以直接對照電路原理圖進行,但若電路中布線較多,則可以以元器件(如運放、三極管)為中心,依次檢察查其引腳的有關(guān)連線,這樣不僅可以查出錯接或少接的線,而且也較易發(fā)現(xiàn)多余的線。 ⑵ 為確保連線的可靠,在查線的同時,還可以用萬用表電阻檔對接線作連通檢查,而且最好在器件外引線處測量,這樣有可能查出某些“虛焊”的隱患。 ⑶ 檢查元器件焊接情況:元器
點擊復制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1