循跡小車設計(附代碼)_第1頁
循跡小車設計(附代碼)_第2頁
循跡小車設計(附代碼)_第3頁
循跡小車設計(附代碼)_第4頁
循跡小車設計(附代碼)_第5頁
已閱讀5頁,還剩1頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、基于單片機的智能尋跡小車一方案設計與論證1.1控制模塊 采用STC89C52單片機設計中采用了一款十分常用的51系列單片機作為處理器,特點是價格低廉、使用方便,且可與其他處理器進行通訊。系統時鐘:晶振頻率1/12,本設計采用12M晶振,因此系統時鐘為1us。I/O口資源:4個通用8位準雙向I/O口(P0、P1、P2、P3,其中P3為特殊功能口)。通訊:一對全雙工串行通訊口(P3.0、P3.1),可與其他單片機或上位機進行通訊。中斷:2個外部中斷(/INT0、/INT1),2個定時器中斷(T0、T1),1個串行通訊中斷,共5個中斷資源并有2級中斷優先級可供配置。ROM:該單片機提供8K的ROM供

2、用戶編寫程序。1.2 尋黑膠帶方案方案一、可見光發光二級管組成的發射-接收電路。這種方案的缺點在于其他環境光源會對光敏二極管的工作產生很大干擾,一旦外界光亮條件改變,很可能造成誤判和漏判;雖然采取超高亮發光管可以降低一定的干擾,但這又將增加額外的功率損耗。方案二、反射式紅外發射-接收器。由于采用紅外管代替普通可見光管,可以降低環境光源干擾,大大減小了誤判和漏判的可能性。經過比較選擇方案二。電機的選擇和控制方案一:采用電阻網絡或數字電位器調整電動機的分壓,從而達到調速的目的。但是電阻網絡只能實現有級調速,而數字電阻元件價格比較昂貴。更主要的問題在于一般電動機的電阻比較小,但電流比較大;分壓不僅降

3、低了效率,而且實現很困難。方案二:采用繼電器對電動機的開或關進行控制,通過開關的切換對電動機的轉速進行控制,此方案的優點是電路比較簡單,缺點是繼電器的響應時間慢,機械結構易損壞,壽命較短、可靠性不高。方案三:采用由達林頓管組成的H型PWM電路。用單片機控制達林頓管使之工作在占空比可調的開關狀態,精準調整電動機轉速。這種電路由于工作在管子的飽和截至狀態下,效率非常高;H型電路保證了可以簡單的實現轉速的控制;電子開關的速度很快,穩定性也較之繼電器高的多,是一種廣泛采用的PWM調速技術。經過比較選擇方案三。二硬件電路設計2.1反射式紅外發送接收對管的使用本設計采用的是tcrt5000反射式光電傳感器

4、,原理圖如下,傳感器采用高發射功率紅外光電二極管和高靈敏光電晶體管組成,輸出信號經施密特電路整形,穩定可靠。其工作電壓為DC3V5.5V,推薦工作電壓為5V,檢測距離為1mm8mm,焦點距離為2.5mm。傳感器檢測到黑線輸出為高電平,發光二極管為熄滅狀態;檢測到白色時輸出低電平,發光二極管被點亮。2.2 電源模塊小車的供電采用的是由兩節輸出電壓為3.7的可充電鋰電池串聯的電池組,選用鋰電池的原因在于鋰電池可以多次充電,輸出電流大可保證電機正常工作2.3 電機驅動電路 小車采用兩輪驅動,另外一個為萬向輪,為了使小車靈活運動,要求小車在速度和方向上能夠大范圍調整。為此我們選擇了控制可靠、便于單片機

5、控制的脈寬調制專用集成電路L298N,一片L298N可驅動兩個直流電機。L298N為Multiwatt15封裝,工作電壓最高為50V,通過電流達5A。既可以與整個系統使用同一電源,又有足夠的輸出電流驅動電機。L298N驅動芯片上集成有5V穩壓芯片,可從L298N上連線給單片機及紅外對管供電。我們用單片機產生PWM波,通過調節占空比來控制電機的轉速。A、B連接小車的左電機,C、D連接小車的右電機。左右電機速度相同時可實現小車的前進或后退;速度不同時可實現小車的轉彎;當兩個電機反向等速運轉時,小車可原地轉圈。循跡控制程序設計 整體電路如下:車前從左至右安裝3個紅外發送接收對管。(白色輸出0,黑色輸

6、出1)ABC設定111全速直行010110減速左轉1,100減速左轉2011減速右轉1,001減速右轉2000減速后退101不可能出現 NY開始在黑線上嗎?前進維持方向控制左右電機調整方向源代碼如下:#include<reg52.h>#define uchar unsigned char#define uint unsigned intuchar x3,x4;uint zkb1,zkb2,t=0;sbit d0=P10; /*d1到d3為控制電機的輸出口*/sbit d1=P11;sbit d2=P12;sbit d3=P13;sbit d5=P15; /*d5到d7為紅外信號輸入

7、口*/sbit d6=P16;sbit d7=P17;sbit ENA=P00; /*定義使能端ENA ENB接口*/sbit ENB=P01;void qianjin() /前進d0=0;d1=1;d2=0;d3=1;zkb1=50;zkb2=50;void back() d0=1; d1=0; d2=1; d3=0; zkb1=40; zkb2=40; void turn_left1() /1級左轉d0=0;d1=0;d2=0;d3=1; zkb1=0;zkb2=30;void turn_left2() /2級左轉d0=0;d1=0;d2=0;d3=1;zkb1=0;zkb2=50;voi

8、d turn_right1() /1級右轉 d0=0;d1=1;d2=0;d3=0;zkb1=30;zkb2=0;void turn_right2()/2級右轉 d0=0;d1=1;d2=0;d3=0;zkb1=50;zkb2=0;void xunji() /*檢測到黑線輸出為高電平1,檢測到白色為低電平0*/if(d5=1&&d6=1&&d7=1)|(d5=0&&d6=1&&d7=0)qianjin();if(d5=0&&d6=0&&d7=0) back(); if(d5=0&&d

9、6=1&&d7=1)/右邊壓黑線turn_right1();if(d5=0&&d6=0&&d7=1)turn_right2();if(d5=1&&d6=1&&d7=0) /左邊壓黑線 turn_left1();if(d5=1&&d6=0&&d7=0) turn_left2();void init()/初始化函數; TMOD=0X01;TH0=(65536-100)/256; /設置計時時間長度100usTL0=(65536-100)%256;ET0=1;EA=1;TR0=1;ENA=1;ENB=1;d0=0;d1=1;d2=0;d3=1;void main() init();while(1) /主函數等待中斷請求; xunji();void time0() i

溫馨提示

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

評論

0/150

提交評論