


版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、河浙;求A辱創(chuàng)新設計與實踐實訓題目:基于S08單片機的自動尋跡小車設計專業(yè)班級:自動化學生姓名:學 號:指導教師:王威設計地點:2010年12 月 20 日日期:成績:創(chuàng)新設計與實訓任務書學生姓名專業(yè)班級自動化學號題目基于S08單片機的自動尋跡小車設計課題性質其他課題來源自擬指導教師王威主要內容(參數(shù))全國大學生“飛思卡爾”杯智能車競賽是教育部主辦的大學生5大賽事之一,具有較強的綜合訓練作用。本設計基于S08單片機,基于反射式光耦設計自動尋跡小車,主要內容如下:1、設計智能車尋跡電路;2、設計智能車電機驅動及調速電路;3、編寫程序,能夠適應各種賽道。通過本次創(chuàng)新設計使得學生鞏固所學的理論與技能
2、,提高學生的實踐能力和應用能力,初步掌握實際的工程設計方法,設計步驟,為將來的學習與畢業(yè) 設計打下堅實的基礎。任務要求(進度)(包括應具備的條件、圖表等)設計要求:1. 設計基于光電開關的尋跡電路;2. 設計小車主電機驅動及調速電路;3. 編寫主程序,使小車能夠根據(jù)比賽賽道自動尋跡前進;4. 繪制相應的硬件圖紙及軟件流程圖;5. 完成軟件與硬件設計并加以調試;6. 按照要求撰寫創(chuàng)新設計與實踐報告書。主要參考資料1 王威.嵌入式微控制器 S08AW原理與實踐M.北京:北京航空航天大學 出版社,2009.2 陳杰.傳感器與檢測技術M.北京:高教出版社,2004.3 邵貝貝 龔光華.單片機認識與實踐
3、M.北京:北京航空航天大學出版社,2006.4 閻石.數(shù)字電子技術基礎(第三版).北京:高等教育出版社,1989審查意見系(教研室)主任簽字:年月日緒論1. 1設計背景為加強大學生實踐、創(chuàng)新能力和團隊精神的培養(yǎng),促進高等教育教學改革, 受教育部高等教育司委托(教高司函2005201號文,附件1),由教育部高等學 校自動化專業(yè)教學指導分委員會(以下簡稱自動化分教指委)主辦全國大學生智 能汽車競賽。該競賽以“立足培養(yǎng)、重在參與、鼓勵探索、追求卓越”為指導思 想,是以智能汽車為競賽平臺的多學科專業(yè)交叉的創(chuàng)意性科技競賽,是面向全國大學生的一種具有探索性的工程實踐活動,旨在促進高等學校素質教育,培養(yǎng)大學
4、生的綜合知識運用能力、基本工程實踐能力和創(chuàng)新意識,激發(fā)大學生從事科學 研究與探索的興趣和潛能,倡導理論聯(lián)系實際、求真務實的學風和團隊協(xié)作的人 文精神。該競賽分競速賽與創(chuàng)意賽兩類比賽。競速賽是在規(guī)定的模型汽車平臺上,使 用飛思卡爾半導體公司的8位、16位微控制器作為核心控制模塊,通過增加道 路傳感器、電機驅動電路以及編寫相應軟件,制作一部能夠自主識別道路的模型 汽車,按照規(guī)定路線行進,以完成時間最短者為優(yōu)勝。創(chuàng)意賽在統(tǒng)一比賽平臺上, 充分發(fā)揮參賽隊伍想象力,以特定任務為創(chuàng)意目標,完成研制作品,由競賽專家 組觀摩作品現(xiàn)場展示、質疑、現(xiàn)場觀眾投票等環(huán)節(jié),最終決定比賽名次。該競賽 涵蓋了控制、模式識別
5、、傳感技術、電子、電氣、計算機、機械等多個學科知識。 該競賽以飛思卡爾半導體公司為協(xié)辦方,已成功舉辦了五屆,曾得到了原教 育部副部長吳啟迪教授、原高教司張堯學司長及理工處領導、飛思卡爾公司與各 高校師生的高度評價,已發(fā)展成全國26個?。ㄗ灾螀^(qū))、直轄市的300余所高校 廣泛參與的全國大學生智能汽車競賽。 第三、四、五屆連續(xù)被教育部批準列入國 家教學質量與教學改革工程資助項目之一(附件 2,教高函201013號)。飛思 卡爾公司在2010年8月26與國家教育部國際合作交流司簽署了關于 “高等學校 人才培養(yǎng)戰(zhàn)略合作協(xié)議”,此協(xié)議將繼續(xù)贊助全國大學生“飛思卡爾”杯智能汽 車競賽。1. 2設計的意義智
6、能車競賽與教育部已舉辦的數(shù)學建模、電子設計、機械設計、結構設計4大專業(yè)競賽不同,是以迅猛發(fā)展的汽車電子為背景,涵蓋了控制、模式識別、傳 感技術、電子、電氣、計算機、機械等多個學科交叉的科技創(chuàng)意性比賽。引導和激勵學生實事求是、刻苦鉆研、勇于創(chuàng)新、多出成果、提高素質,發(fā)現(xiàn)和培養(yǎng) 一批在學術科技上有作為、有潛力的優(yōu)秀人才。1. 3設計所需的設備采用組委會提供的標準賽車底盤(賽車MATIZ配備標準驅動電機RS-380SH 轉向舵機和可充電蓄電池);單片機FREESCALE8位單片機MC9S08AW®發(fā)評估 板;傳感器采用紅外反射式對管及觸發(fā)電路;電機驅動采用基于 33886芯片的H-Brid
7、ge驅動電路。車模介紹車模:G768電機:RS380-ST/3545,舵機:FUTABA30102總體設計2.1小車系統(tǒng)可分為6個部分:電源管理:穩(wěn)定電壓,使系統(tǒng)電壓穩(wěn)定在要求的電壓范圍光電傳感器:檢測路徑,校正小車在跑道上的位置車速傳感:實時檢測小車當前的速度參數(shù)選擇:根據(jù)小車當前的狀態(tài),確定算法的參數(shù)驅動電機:根據(jù)小車的速度、位置,增減速度轉向電機:控制小車的方向電澹箸理此電代感MCU轉向電機、車速他感丫參數(shù)選扌殺驅動電機2.2 跑道小車跑道寬度50CM中間黑線20mm小車從出發(fā)去出發(fā),跑完一圈后,在起 始線后1米范圍內自動停下來。3硬件電路設計3.1 傳感器的選擇光電式傳感器是利用光電器
8、件把光信號轉換成電信號的裝置。光電式傳感器工作時,先將被測量轉換為光量的變化,然后通過光電器件再把光量的變化轉換為相應的電量變化,從而實現(xiàn)非電量的測量。光電式傳感器的核心(敏感元件)是光電器件,光電器件的基礎是光電效應。本設計采用采用A/D轉換的光電對管紅外光耦傳感器,當發(fā)光二極管由 A- B導通時,會發(fā)出紅外線,經(jīng)小車跑道散射,紅外接收二極管在接收到紅外線時會由C-D導通,從而使OUT1的電壓由+5V123變?yōu)?0.7。V CCV CC1KAOUT 1B尹 UD13.2 車速檢測電動機的測速有很多方法,常見的有測速發(fā)電機測速、霍爾傳感器測速、編 碼器測速、光電碼盤測速等。測速發(fā)電機測速適合大
9、型電機的測速。 霍爾傳感器 測速的方法具有抗干擾能力強,準確可靠地特點,但是測速分度較低,結構也比 較復雜。編碼器測速,不但使用方便,運行可靠穩(wěn)定而且分辨率高,也是目前智 能車大賽中普遍使用的測速裝置,但是價格有點高。我們將著重介紹光電碼盤測 速,這種測速方法比較簡單、容易操作,而且編碼器也是基于光電碼盤測速的原 理。接下來的是電路部分,需要用到槽型光耦,槽型光耦的外形成一個“凹” 字型,一邊是個紅外發(fā)射管另一邊是接收管, 它們都被塑料殼包起來,中間留了 一條很細的窄縫,沒有障礙物時接收管能接受到紅外線, 有東西擋住中間時接收 管就接收不到了。在選擇槽型光耦時中間縫越細小說明管子性能越好。從右
10、圖電路中可以看出沒有遮 擋時,發(fā)射管發(fā)出的光線直接被接收 管接收,接收管導通集電極電位為低 電平,當光線被遮擋時,接收管接受 不到光線,處于截止狀態(tài),集電極為 高電平,后面串了個CD40106B施密 特觸發(fā)器的作用是對信號整形,遮光 物體進入和離開時都有一個過程,這 就使得信號變化也有一個過程,不是規(guī)則的方波,不能直接提供給 MCU加上施 密特觸發(fā)器以后,通過閥值觸發(fā),就變成規(guī)則的電平信號了。將方波信號送入測速芯片CD4040BC可在Q0-Q11管腳輸出小車的速度。3鏈接電路圖、CD4040BC.u-別holoh封裝圖如下:3.3 電源管理通過穩(wěn)壓芯片LM294將電池電壓7.2V將為5V供單片
11、機和光電傳感器,使用一23 7個普通二極管將另一路輸出電壓鉗制到 5.7V向舵機供電。電路圖如下:7.2V3.4 轉向電機1、舵機內部結構:由舵盤、齒輪組、位置反饋電位計、直流電機、控制電 路板等組成2、工作原理:脈寬信號給定參考位置,舵機內部電路通過反饋控制調節(jié)舵 盤角位。舵盤角位由PW控制信號的脈寬決定。3、舵機基本參數(shù):型號:S3010電 壓:4.0 6.0 V角度控制:1°/400us工作速度:0.16 + 0.02堵轉力矩:6.5 + 1.3 Kg.cm3.5 驅動電機電機驅動電路,我們在此使用 MC3388芯片直接驅動 MC3388特性:工作電壓:5-40V導通電阻:12
12、0毫歐姆輸入信號:TTL/CMOS PW頻率: 10KHZ短路保護、欠壓保護、過溫保護等電機外形33SBC Simipllfked AppUcaUdni DlagratmIN50V工 UTMCU OUTOUT33886ouriOUTJMC33886驅動電路FSIN1叱our?PfiND ®AfiND4系統(tǒng)軟件設計在智能車系統(tǒng)的設計中,硬件是基礎,沒有一個好的硬件平臺,軟件就無法 運行。對于智能車系統(tǒng)來說,軟件的核心是控制算法。而完成這些任務的編程語 言有匯編語言和C語言。軟件部分是整個智能車系統(tǒng)的靈魂,在硬件方面各參賽 隊之間大同小異,真正體現(xiàn)各參賽隊智能車的優(yōu)勢和最后決定比賽成績好
13、壞的往 往是軟件部分,尤其是核心控制算法的設計。4.1控制算法PID( Proportional Integral Differential)控制是比例、積分、微分控制的簡稱。在自動控制領域中,PID控制是歷史最久、生命力最強的基本控制方式。PID控制器的原理是根據(jù)系統(tǒng)的被調量實測值與設定值之間的偏差,利用偏差的比例、積分、微分三個環(huán)節(jié)的不同組合計算出對廣義被控對象的控制量。常規(guī)PID控制系統(tǒng)原理框圖PID控制算法可分為位置型和增量型兩種:(1)位置型算法模擬調節(jié)器的調節(jié)動作是連續(xù)的,任何瞬間的輸出控制量u都對應于執(zhí)行機構(如調節(jié)閥)的位置。數(shù)字控制器的輸出控制量也和閥門位置相對應,故稱 為位
14、置型算式(簡稱位置式)。(2)增量型算法增量型算法僅僅是在算法設計上的改進,其輸出是相對于上次控制輸出量的 增量形式,并沒有改變位置型算法的本質,即它仍然反映執(zhí)行機構的位置開度。 如果希望輸出控制量的增量,則必須采用具有保持位置功能的執(zhí)行機構。4.2主程序流程圖主程序流程圖如圖所示。系統(tǒng)首先對設備進行初始化,然后選擇進入?yún)?shù)修 改程序。參數(shù)設定完之后打開中斷,最后循環(huán)執(zhí)行位置速度控制程序。4.3程序的初始化初始化部分包括參數(shù)的讀取、PID初始化、定時器和脈沖計數(shù)器的初始化、 I/O端口的初始化、PWM控制器的初始化和鍵盤顯示控制器 7279的初始化。圖4.2初始化程序流程圖4.4位置速度控制程
15、序首先讀取前方傳感器組的狀態(tài)來判斷賽車和黑線的位置關系,通過該位 置關系給出相應的轉向舵機的轉角和電機的轉速。具體程序流程圖如圖。4.5中斷處理程序中斷處理程序每20毫秒執(zhí)行一次,中斷處理函數(shù)的主要目的是定時讀取脈沖 計數(shù)器的值并把該值反饋給PID控制程序,然后調用PID控制程序。圖給出了程序 流程圖。進入中斷1T清中斷標志T讀取碼盤脈沖值T脈沖計數(shù)寄存器清零1PID速度控制1T返回4.6 PID控制程序系統(tǒng)采用增量式的速度 PID,具體流程圖如圖4.5f程序入口:1T偏差計算r設置調節(jié)死區(qū)1F增量式速度PID計算是否超過最大值?是輸出最大值是否低于最小值?是輸出最小值I返回驅動電機占空比圖4
16、.5 PID控制程序5系統(tǒng)調試5.1開發(fā)工具包括源程序的編程序的開發(fā)是在組委會提供的 CodeWarrior IDE下進行的, 寫、編譯和鏈接,并最終生成可執(zhí)行文件。CodeWarrior 6.2是面向以HC1和S12為CPU勺單片機嵌入式應用開發(fā)軟件 包。包括集成開發(fā)環(huán)境IDE、處理器專家?guī)?、全芯片仿真、可視化參?shù)顯示工具、 項目工程管理器、C交叉編譯器、匯編器、鏈接器以及調試器。5.2調試過程我們使用的是單片機本身配套的 BDM在調試時,把程序編譯下載到S08AC60 單片機內,運行后可通過內存窗口查看程序運行狀況。根據(jù)小車在模擬跑道上的狀況調整參數(shù),完善硬件、軟件設計,最終達到理想的水平
17、。總 結在此份報告中,我主要介紹了智能車準備的基本思路,包括電路、軟件、以 及最重要的控制算法的創(chuàng)新思想。在電路方面,我們以模塊形式分類,在電源管理、電機驅動、舵機驅動、傳 感器、速度檢測,這五個模塊分別設計,在查找資料的基礎上確定合適的最優(yōu)方 案;然后我加以實驗,最后以報告中所提到的形式?jīng)Q定了我們最終的電路。在算法方面,我們使用C語言編程,利用比賽推薦的開發(fā)工具調試程序,經(jīng) 過小組成員不斷討論、改進,終于設計出一套比較通用的,穩(wěn)定的程序。在這套 算法中,我們結合路況調整車速,做到直線加速,彎道減速,保證在最短時間跑 完全程。雖然成功的完成了智能車的設計制作,但是賽車的整體性能還有可提高的環(huán)
18、節(jié),我們在以下方面還有待于更大的提高。 路線識別方面,如果合理的調整紅外 裝置,則可以更遠的探測路線,以便做好彎道前的準備,這樣便可以在直道上更 充分的加速。在循線算法方面,更多的閱讀文獻,查閱資料,可以使得理論更加 成熟,也可以更有效的完善算法。參考文獻1王威嵌入式微控制器S08AW原理與實踐M.北京:北京航空航天大學出 版社,2009.2陳杰傳感器與檢測技術M.北京:高教出版社,2004.3邵貝貝 龔光華.單片機認識與實踐M.北京:北京航空航天大學出版社, 2006.4閻石.數(shù)字電子技術基礎(第三版).北京:高等教育出版社,19895陳懂,劉瑢,金世俊.智能小車的多傳感器數(shù)據(jù)融合.現(xiàn)代電子
19、技術,2005, 第六期6臧杰,閻巖.汽車構造M.北京.機械工業(yè)出版社.20057沈長生常用電子元器件使用一讀通M 北京.人民郵電出版社.20048宗光華機器人的創(chuàng)意設計與實踐M.北京.北京航空航天大學出版 社.20049張偉等.Protel DXP高級應用M.北京.人民郵電出版社.200210張文春.汽車理論M.北京.機械工業(yè)出版社.200511王曉明.電動機的單片機控制M.北京.北京航空航天大學出版社.2002附表1 :硬件電路圖+7.2+5后調試BDMJP?z Kuoo5UL76544C c CSGGD FfDDDDGAGNDFSIN1V+V+OUT1OUT2 DNCPGNDPGNDDN
20、CIN2D1OOPV+OUT2OUT2D2PGNDPGND92”13“15一;fIRQPTD3疋SETPTD2PTF0VSSADPTF1VDDADPTF2PTD1PTF3PTD0PTF4PTE7PTC6PTESPTF7PTE5PTF5PTBlPTF6PTESPTE0PTE2PTE1PTBTTPVTTg RRTTTTTptg3B V Vo+7.2OUTG00uFMC9S08AW60+5U?484039383736353433464544J43度421470OPTOISO1TitleCLEARVCCCLOCKOUTPUTAQABQBCQCDQDPTGNDLOADC.EARVCCCLOCKOUTPU
21、TAQABQBCQCDQDPTGNDLOADSzeNumberRevisionBDate:18-Dec-2010Sheet ofFie:個人十雷學習大四資全部部電路理圖pREVOwnaayDB56附表2 :程序源代碼#include <hidef.h> /* for Enablelnterrupts macro */#include "derivative"" /* include peripheral declarations */#include <math.h>定義舵機變量 *定義數(shù)組,存放12路ad轉化后的值*/int ad_dat
22、a12; /*int ad_add=0;int ad_average=O ;int AD,Turn;int mid_flag,left_close,right_close;charZhuanjiao=180,170,160,150,140,130,121,113,106,100,95,90,85,80,74,67,59,50,40,30,20,10,0;int flag0,flag1,flag2,flag3,flag4,flag5,flag6,flag7,flag8,flag9,flag10,flag11;定義電機變量 *#define Stopl TPM2C0V=2500;PTCD_PTCD
23、6=0;PTFD_PTFD7=0; 能耗#define Stop2 TPM2C0V=1500;PTCD_PTCD6=1;PTFD_PTFD7=0; 反轉int cangshu=6,6,6,5,5,4,4,3,3,0,0,0,0,0,-3,-3,-4,-4,-5,-5,-6,-6,-6,;/char ShuruSudu=35,35,35,35,38,38,40,40,42,42,45,45,45,42,42,40,40,38,38,35,35,35,35;/char Shuruspeed=23,23,23,23,24,25,26,27,28,29,35,35,35,29,28,27,26,25,
24、24,23,23,23,23;/沖岀跑道 char Shuruspeed=12,12,12,13,14,15,16,17,18,19,20,20,20,19,18,17,16,15,14,13,12,12,12;剛好/ char Shuruspeed=8,8,8,7,7,8,9,9,10,11,13,13,13,11,10,9,9,8,7,7,8,8,8;int speed,a,b;int u=0;int v,w;int uk;int m,n;int zw=0,0,0,0,0,0,0,0,0,0,0;int r;int l=0;int circle=0;typedef structint Ne
25、xtPoint;int ThisPoint;/設定目標Desired valueint Kp;/比例常數(shù)Proportional Constint Ki;/積分常數(shù)Integral Constint Kd;/微分常數(shù)Derivative Constint LastError;Error-1int PrevError;Error-2int SumError;/Sums of Errors speedPID ;! £e;ep-pe+ppe-pe=ppe-pe!_ldLOaV=£Biep_pe !(!OOOO_LOSLOaVi!)JOj !£OXO=LOSLOaV !
26、2e;ep-pe+ppe-pe=ppe-pe!_ldL0aV=2Biep_pe !(!OOOO_LOSLOaVi!)JOj !soxo=iosioav ! l,e;ep-pe+ppe-pe=ppe-pe !_ldlOaV=lMep_pe !(!OOOO_LOSLOaVi!)JOj ! 10x0= los ioav ! Oe;ep-pe+ppe-pe=ppe-pe !_ldlOaV=01Biep_pe !(!OOOO_LOSLOaVi!)JOjOe;ep_|'弟昜M半孫旦輟刑翳H 'o B®av野誤/*出!ooxo=iosioav:o=ppe_pe (P!OA)e;ep
27、-;s6 piOA/羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊/!ooxo=iosioav9iav-8av!ddX0=Sl 丄 Odbzav-oav:zlzlX0=H 丄 Odb!ooxo=sosioava/vj:ooxo=odoioav(P!0A);!U|9av P!OA/羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊羊/* !aidto=dd¥ '*/:aidfa Gid旬s!
28、 Gid心is SJ0JJ3 jo siuns/Ijojjiuns ;uiS-jojj3/IJOJJASJd ;UI|,-jojj3/!jojj3;sb| ;uiISUOO 9AneAIJ9a/3 MISUOO |BJ691U|/心M;suoq leuoiyodojd/tdy men|E/ P9JIS9Q卑目君視/IlujOdSjii 丄 mHuQdlxoN MIJQruis jeped 心/* UldSE=dd* */:aids CHdPeedsADC1SC1=0X04;for(;!ADC1SC1_COCO;);ad_data4=ADC1RL;ad_add=ad_add+ad_data4;A
29、DC1SC1=0X05;for(;!ADC1SC1_COCO;);ad_data5=ADC1RL;ad_add=ad_add+ad_data5;ADC1SC1=0X06;for(;!ADC1SC1_COCO;);ad_data6=ADC1RL;ad_add=ad_add+ad_data6;ADC1SC1=0X07;for(;!ADC1SC1_COCO;);ad_data7=ADC1RL;ad_add=ad_add+ad_data7;ADC1SC1=0X08;for(;!ADC1SC1_COCO;);ad_data8=ADC1RL;ad_add=ad_add+ad_data8;ADC1SC1=0
30、X09;for(;!ADC1SC1_COCO;);ad_data9=ADC1RL;ad_add=ad_add+ad_data9;ADC1SC1=0X0A;for(;!ADC1SC1_COCO;);ad_data10=ADC1RL;ad_add=ad_add+ad_data10;ADC1SC1=0X0B;for(;!ADC1SC1_COCO;);ad_data11=ADC1RL;ad_add=ad_add+ad_data11;ad_average= ad_add /7;*if(ad_data0>=ad_average)flag0=1;if(ad_data0<ad_average)fl
31、ag0=0;if(ad_data1>=ad_average)flag 1=300;if(ad_data1<ad_average)flag 1=0;if(ad_data2>=ad_average)flag2=5;if(ad_data2<ad_average)flag2=0;if(ad_data3>=ad_average)flag3=700;if(ad_data3<ad_average)flag3=0;if(ad_data4>=ad_average)flag4=8;if(ad_data4<ad_average)flag4=0;if(ad_data5&
32、gt;=ad_average)flag5=1100;if(ad_data5<ad_average)flag5=0;if(ad_data6>=ad_average)flag6=13;if(ad_data6<ad_average)flag6=0;if(ad_data7>=ad_average)flag7=1500;if(ad_data7<ad_average)flag7=0;if(ad_data8>=ad_average)flag8=17;if(ad_data8<ad_average)flag8=0;if(ad_data9>=ad_average)f
33、lag9=1900;if(ad_data9<ad_average)flag9=0;if(ad_data10>=ad_average)flag10=21;if(ad_data10<ad_average)flag10=0;if(ad_data11>=ad_average)flag11=2300;if(ad_data11<ad_average)flagl 1=0;AD=flag0+flag1+flag2+flag3+flag4+flag5+flag6+flag7+flag8+flag9+flag10+flag11;/*/if(right_close=0)if(AD= 1
34、)Turn=0;mid_fla( if(AD= 301)Turn=1;mid_flag=0;left_close=1;if(AD= 300)if(AD= 305)Turn=3;mid if(AD= 5)if(AD= 705) Turn=5; mid_flag=0;left_close=1;if(AD= 700)Turn=6;mid_flag=0; left_close=1;if(AD= 708)Turn=7;mid_flag=0; left_close=1;if(AD= 8)Turn=8; midif(AD= 1108) Turn=9;mid_flag=1;left_close=0;right
35、_close=0;if(AD= 1100)Turn=10; mid_flag=1;left_close=0;right_close=0if(AD= 1113)Turn=11;mid_flag=1;left_close=0;right_close=0;if(AD=13)Turn=12;mid_flag=1;left_close=0;right_close=0;if(AD= 1513)Turn=13;mid_flag=1;left_close=0;right_close=0;if(left_close=0)if(AD= 1500)Turn=14; mid_flag=0; right_close=1
36、;if(AD= 1517)Turn=15; mid_flag=0;right_close=1;if(AD= 17)Turn=16; mid_flag=0; right_close=1;if(AD= 1917)Turn=17; mid_flag=0; right_close=1;if(AD= 1900)Turn=18; mid_flag=0; right_close=1;if(AD= 1921)Turn=19;mid_flag=0; right_close=1;if(AD= 21)Turn=20; mid_flag=0; right_close=1;if(AD= 2321)Turn=21; mi
37、d_flag=O; right_close=1;if(AD= 2300)Turn=22;mid_flag=0; right_close=1;/* *PID初始化 *void PIDInit(void)/*、O初始化 */sPID.ThisPoint=0;/設定目標Desired valuesPID.Kp=0;/比例常數(shù)Proportional ConstsPID.Ki=0;/積分常數(shù)Integral ConstsPID.Kd=0;/微分常數(shù)Derivative ConstsPID.LastError=0;Error-1sPID.PrevError=0;Error-2sPID.SumError=
38、0;/Sums of ErrorsDjPID.ThisPoint=0;/設定目標Desired value 302DjPID.Kp=1;/比例常數(shù)Proportional ConstDjPID.Ki=1;/積分常數(shù)Integral ConstDjPID.Kd=3;/微分常數(shù)Derivative ConstDjPID.LastError=0;Error-1DjPID.PrevError=0;Error-2DjPID.SumError=0;/Sums of Errors50void lOlnit(void)PTGDD_PTGDD4=0;G4復位按鍵PTGPE_PTGPE4=1;PTGDD_PTGD
39、D3=1;/*G3連接計數(shù)芯片4040清零管腳,高電平清零*/PTGD_PTGD3=0;PTGDD_PTGDD1=1;/*G1拉高蜂鳴器,高電平有效,強驅動*/PTGDS_PTGDS1=1;PTGD_PTGD1=1;PTGD_PTGD1=0;測速計數(shù)輸入*/PTEDD=0x00; /*EPTCDD_PTCDD6=1; /*C6 連接驅動芯片 386 的 IN1*/PTFDD_PTFDD7=1; /* F7 連接驅動芯片 386 的 IN2*/PTCD_PTCD6=0;PTFD_PTFD7=1;時鐘初始化*void ICGInit(void)ICGC 仁0x78; /*fllICGC2=0x20
40、;/*系數(shù)為p=1,外部晶振*/倍頻因子N=8,分頻因子 R=1*/電機舵機初始化*/void servoInit(void)TPM2SC=0x0F;/*TPM2M0D=2500;TPM2C1SC=0x28; /*TPM2C1V=185;總線時鐘128分頻*/舵機初始化-通道0設置邊緣對齊的pwm中斷請求不允許*/TPM2C0SC=0x28; /*TPM2C0V=0;/*/*電機初始化-通道0設置邊緣對齊的設定初始占空比,舵機處于中間位置 */殳延日寸 *pwm中斷請求不允許*/void delay(int de)while(de-) _RESET_WATCHDOG();void delay1
41、(int de)int i=100;while(de-)while(i-)_RESET_WATCHDOG();void delay2(int count)/*int i,j,k;for(i=0;i<count;i+)for(j=0;j<100;j+)for(k=0;k<800;k+)_RESET_WATCHDOG(); /*延時子程序*/復位看門狗計數(shù)器*/溢岀中斷處理*/interrupt VectorNumber_Vtpm3ovf void TPM3OVF_ISR(void) Disablelnterrupts;if(TPM3SC & 0x80)=0x80)TPM
42、3SC_TOF = 0;speed=PTED&0x3F;PTGD_PTGD3=1;計數(shù)器清零PTGD_PTGD3=0;if(Turn>7)&&( Turn<15)l0=1;elsel0=0;if(Turn>14) r=1; if(Turn<8) r=2;zw10=zw9;zw9=zw8;zw8=zw7;zw7=zw6;zw6=zw5;zw5=zw4;zw4=zw3;zw3=zw2;zw2=zw1;zw1=zw0; zw0=l0;EnableInterrupts; 速度PID*/* int speedPIDCalc (speedPID *pp)in
43、t Error,dError;Error=pp->ThisPoint-pp->NextPoint; /偏差 e(k)pp->SumError+=Error;/ 積分 e(1)+e(2)+* dError=Error-pp->LastError; /當前微分pp->PrevError=pp->LastError;pp->LastError=Error; if(w>=1500)|(Turn>14)|(Turn<8)sPID.Kp=80; sPID.Ki=O;sPID.Kd=10;elsesPID.Kp=180; sPID.Ki=O; sP
44、ID.Kd=5;/ 110/ 0/ 10/ 145/ 1/15return (pp->Kp*Erro 葉pp->Ki*pp->SumError/50+pp->Kd*dError);舵機PID*int steerPIDCalc (steerPID *pp)int dError,Error;Error=pp->ThisPoint-pp->NextPoint; /偏差pp->SumError+=Error; / 積分dError=pp->LastError-pp->PrevError; /當前微分pp->PrevError=pp->L
45、astError;pp->LastError=Error;return (pp->Kp*Erro r+pp->Ki*pp->SumError/2500+pp->Kd*dError);舵機控制*void SteerContral(void)int djpid;DjPID.NextPoint=0;DjPID.ThisPoint=ZhuanjiaoTurn; /turnif(v>0)djpid=v;else為黑線位置djpid=101+steerPIDCalc(&DjPID);v=0;TPM2C1V=djpid;a=TPM2C1V;電機控制*void Sp
46、eedContral(void)if(circle>=2)TPM2C0V=2500;PTCD_PTCD6=0;PTFD_PTFD7=0;for(;)_RESET_WATCHDOG();elsesPID.NextPoint=speed;sPID.ThisPoint=ShuruspeedTurn;if(u>0)uk=u;elseuk=speedPIDCalc(&sPID);u=0;TPM2C0V=uk; w=TPM2C0V;起始延時*void Start_Key(void)for(;)if(PTGD_PTGD4=0)delay1(1);if (PTGD_PTGD4=0)dela
47、y2(10);EnableInterrupts;break ;_RESET_WATCHDOG();起始線識別*/void StartLine()if(ad_data7v=30|ad_data8<=30)&&ad_data10>=70&&(ad_data5>=100|ad_data 6>=100)&&(a d_data3v=30|ad_data4<=30)&&ad_data1>=70)circle+ ;PTGD_PTGD6=1;delay(8000);PTGD_PTGD6=0;/* Illivoi
48、d main(void)IOInit();ICGInit();ADCInit();servoInit();PIDInit();/ SOPT_COPE=0;TPM3SC = 0x4F;/*總線時鐘 128 分頻 */TPM3MOD = 2500;Disablelnterrupts;/ EnableInterrupts;Start_Key();for(;)get_data();/StartLine();n=zw10*1024+zw9*512+zw8*256+zw7*128+zw 6 *64+zw5*32+zw4*16+zw3*8+zw2*4+zw1 *2+zw0;m=zw 6*64+zw5*32+zw4*16+zw3*8+zw2*4+zw1*2+zw0;if(m=124)|(m=120)|(m=112)/ /直道入彎if(speed>4)&&(r=1)/ v=TPM2C1V- (Turn-14)*speed;Stop1;if(speed>4)&&(r=2)/ v=TPM2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司福利院慰問活動方案
- 公司福利團建旅游活動方案
- 公司自駕游出行活動方案
- 2025年職業(yè)生涯規(guī)劃與發(fā)展考試試卷及答案
- 2025年應急救援與災難管理考試題及答案
- 2025年新興技術與傳統(tǒng)行業(yè)融合發(fā)展的能力測試試卷及答案
- 2025年水資源管理與可持續(xù)發(fā)展考試題及答案
- 2025年生物醫(yī)學工程專業(yè)綜合考試試題及答案
- 2025年農田水利工程師職業(yè)資格考試試卷及答案
- 2025年量子物理基礎知識與應用考試試題及答案
- 2024北京海淀區(qū)初一(下)期末生物試題和答案
- 《性病防治知識講座》課件
- YY/T 1944-2024醫(yī)用X射線高壓發(fā)生器專用技術條件
- 第10講-動能與動能定理-高一物理同步講義-原卷版
- 國開學習網(wǎng)《數(shù)據(jù)庫運維》形考任務1-3答案
- 2023年中國醫(yī)學科學院基礎醫(yī)學研究所高等學校招聘筆試真題
- 華南理工大學《論文寫作與學術規(guī)范》2021-2022學年第一學期期末試卷
- 2025年中考數(shù)學熱點題型歸納與變式演練(全國)專題09 幾何最值問題(原卷版)
- 六年級20道說理題
- 兩個女兒斷絕關系協(xié)議書范文
- 備品備件保障方案
評論
0/150
提交評論