小車平衡蹺蹺板實驗報告書_第1頁
小車平衡蹺蹺板實驗報告書_第2頁
小車平衡蹺蹺板實驗報告書_第3頁
小車平衡蹺蹺板實驗報告書_第4頁
小車平衡蹺蹺板實驗報告書_第5頁
已閱讀5頁,還剩15頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、得分:上海理工大學光電學院單片機系列實驗總結報告課題名稱:小車平衡蹺蹺板技術類別:控制類小組組長:梁喜東小組成員:唐彬、王波、蘇華聯(lián)系電話mail: beyehz報告日期:2013年7月日上海理工大學光電學院2013版18目 錄一、背景技術11、題目背景12、問題及需求13、特色技術或算法1二、設計內容21、整體方案及CPU資源分配22、關鍵技術點簡介43、算法流程及代碼解釋64、運行效果截圖13三、心得體會151、組員分工152、組員心得163、組長對組員的工作評價16四、下一步計劃17五、經驗、問題及建議17一、背景技術1、題目背景現(xiàn)在大部分人出行基本上是依靠車這

2、一交通工具,當路面上的各種車開始多起來的時候,各種交通事故也就出現(xiàn)了。尤其是在上坡或者下坡的時候如果車速控制不好的話那么各種交通事故就將接踵而至。因此,汽車安全問題越來越受到人們的關注。一輛出色的車首要解決的就是它的安全問題,如果一輛車連駕駛員的安全都不能保障,那么它注定會被淘汰。在此背景下,我們設計并解決了兩輛小車在通過蹺蹺板的過程中的平衡問題,從而解決了小車在爬坡或下坡過程中的安全問題,保證了小車在外界環(huán)境突然改變的情況下依然能夠順利行駛,確保了駕駛員的生命安全。智能小車作為機器人的典型代表,它大致可以分為三大組成部分:傳感器檢測部分、驅動部分、CPU。通過構建智能小車系統(tǒng),培養(yǎng)設計并實現(xiàn)

3、自動控制系統(tǒng)的能力。在實踐過程中,熟悉以單片機為核心控制芯片,設計小車的檢測、驅動和顯示等。并且智能小車的制作和組裝是一門動手能力與創(chuàng)新思維的交叉理念,在操作過程中,能夠使我們明確各種相關設計的要素和原則在整個程序中的地位和作用,從而使我們的綜合設計能力,以及動手能力有很大的提升。2、問題及需求1) 問題:靈敏度與速度的矛盾:實驗要求小車靈敏度高,速度可控,但是當小車速度太慢時,小車無法正常上坡;而當小車速度過快時,靈敏度又高,小車容易在原地快速抖動,也無法上坡并正確的找到平衡點。假平衡:當小車還未到達平衡狀態(tài)時,由于外界環(huán)境影響(小車震蕩,風速等),導致程序判斷錯誤,以為已經到達到平衡狀態(tài),

4、從而出現(xiàn)假平衡。2) 需求:實驗所需元器件及其功能元器件名功能蜂鳴器用來發(fā)出警報聲指示燈用來指示兩小車所處位置的高低狀況紅外接收管循跡實驗所需模塊及其功能模塊名功能ADXL345加速度傳感器模塊(加速度傳感器使用ADXL345的,能實現(xiàn)X,Y,Z三軸的加速度檢測,使用的是IIC控制,能減少單片機的端口使用。5110液晶顯示模塊5110采用串口控制,方便使用,并且可以減少單片機端口使用。1602液晶顯示模塊顯示L298N電機驅動模塊驅動電機串口藍牙模塊通過串口把數據發(fā)送到藍牙模塊,藍牙模塊把數據發(fā)送到手機,在手機顯示數據3、特色技術或算法1)多路循跡:采用四路循跡,即小車前端和后端分別有兩個紅外

5、接收管。前端的紅外接收管用于小車前進時的循跡,后端的紅外接收管用于小車后退時的循跡。這樣前后分別循跡,可以大大提高循跡的準確性和可靠性。2)軟件濾波法:采用中值濾波法,也叫均值濾波法,即每次讀取一組數據(本實驗一次讀取10個數據)存儲下來,對其求均值,將最終得到的均值作為測量值。這樣的方法可以很好地減小由于外界環(huán)境使小車抖動而造成的隨機誤差,從而提高加速度傳感器測得的加速度值的準確度,同時也提高了測量穩(wěn)定性,很好地解決了小車靈敏度和速度之間的矛盾。3)估值法:通過控制與待測量具有一定函數關系的其他變量的值的變化來使得待測量得到改變,從而達到控制待測量變化的效果,這種方法應用于待測量不方便直接控

6、制的情況。4)多任務實時操作系統(tǒng)RTX51:RTX51可以簡化那些復雜而且時間要求嚴格的工程的軟件設計工作。它有二個不同的版本可以利用,即RTX51Full和RTX51Tiny。本實驗用到的是RTX51Tiny,它是一個RTX51的子集,可以很容易地在沒有任何外部存儲器的單片8051系統(tǒng)上運轉。除了下列例外,RTX51Tiny支持許多在RTX51中的特征。RTX51Tiny僅支持時間片輪轉任務切換和使用信號進行任務切換不支持搶先式的任務切換,不包括消息歷程沒有存儲器池分配程序。RTX51 Tiny是一種實時操作系統(tǒng)(RTOS),可以用它來建立多個任務(函數)同時執(zhí)行的應用。嵌入式應用系統(tǒng)經常有

7、這種需求。RTOS可以提供調度、維護、同步等功能。二、設計內容1、整體方案及CPU資源分配系統(tǒng)整體方案框圖如下:小車1系統(tǒng)方案框圖小車2系統(tǒng)方案框圖系統(tǒng)整體硬件電路圖如下:小車1硬件電路原理圖小車2硬件電路原理圖2、關鍵技術點簡介本系統(tǒng)以STC12C5A60S2芯片為主控芯片,采用加速度模塊(ADXL345),用來測量X軸、Y軸、Z軸的加速度。此外,通過監(jiān)測重力加速度與Y軸的夾角可以測量出蹺蹺板的坡度。總之,通過加速度傳感器模塊可以調節(jié)的速度,使小車在翹翹板上達到平衡。顯示模塊采用LCD(5110和1602兩個模塊),可以實時顯示當前的加速度。采用串口藍牙通信,它能夠將小車的加速度通過藍牙實時

8、的發(fā)送到手機上,實現(xiàn)對小車車速的實時控制。小車的驅動采用L298N電機驅動芯片,采用5V電壓供電。此外,為了使小車沿直線行駛,我們采用了紅外接收管循跡模塊。STC12C5A60S2芯片:STC12C5A60S2/AD/PWM系列單片機是宏晶科技生產的單時鐘/機器周期(1T)的單片機,是高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內部集成MAX810專用復位電路,2路PWM,8路高速10位A/D轉換(250K/S),針對電機控制,強干擾場合。它是增強型8051 CPU,1T,單時鐘/機器周期,指令代碼完全兼容傳統(tǒng)8051。此外,它跟傳統(tǒng)的51

9、單片機相比之下具有以下幾個優(yōu)點:1) 同樣晶振的情況下,速度是普通51的812倍;2) 多了兩個定時器,帶PWM功能;3) 有1K內部擴展RAM,WATCH_DOG和SPI接口。加速度模塊(ADXL345):ADXL345是一款小巧纖薄的低功耗三軸加速度計,可以對高達±16g的加速度進行高分辨率(13位)測量。數字輸出數據為16位二進制補碼格式,可通過SPI(3線或4線)或者I2C數字接口訪問。ADXL345非常適合移動設備應用。它可以在傾斜檢測應用中測量靜態(tài)重力加速度,還可以測量運動或沖擊導致的動態(tài)加速度。它具有高分辨率(4mg/LSB),能夠測量約0.25°的傾角變化。

10、使用ADXL345 等數字輸出加速度計時,無需進行模數轉換,從而可以節(jié)省系統(tǒng)成本和電路板面積。此外,ADXL345是一款小而薄的超低功耗3軸加速度計,分辨率高(13位),測量范圍達±16g。數字輸出數據為16位二進制補碼格式,可通過SPI(3線或4線)或I2C數字接口訪問。ADXL345非常適合移動設備應用。它可以在傾斜檢測應用中測量靜態(tài)重力加速度,還可以測量運動或沖擊導致的動態(tài)加速度。其高分辨率(3.9mg/LSB),能夠測量不到1.0°的傾斜角度變化。該器件提供多種特殊檢測功能。活動和非活動檢測功能通過比較任意軸上的加速度與用戶設置的閾值來檢測有無運動發(fā)生。敲擊檢測功能

11、可以檢測任意方向的單振和雙振動作。自由落體檢測功能可以檢測器件是否正在掉落。這些功能可以獨立映射到兩個中斷輸出引腳中的一個。正在申請專利的集成式存儲器管理系統(tǒng)采用一個32級先進先出(FIFO)緩沖器,可用于存儲數據,從而將主機處理器負荷降至最低,并降低整體系統(tǒng)功耗。低功耗模式支持基于運動的智能電源管理,從而以極低的功耗進行閾值感測和運動加速度測量。循跡模塊:小車循跡指的是小車在白色地板上循黑線行走,通常采取的方法是紅外探測法。也可用CCD,CMOS 攝像頭方案。紅外探測法,即利用紅外線在不同顏色的物體表面具有不同的反射強度的特點,在小車行駛過程中不斷地向地面發(fā)射紅外光,當紅外光遇到白色紙質地板

12、時發(fā)生漫反 射,反射光被裝在小車上的接收管接收;如果遇到黑線則紅外光被吸收,小車上的接收管接收不到紅外光。單片機就是否收到反射回來的紅外光為依據來確定黑線的位置和小車的行走路線。L298N電機驅動芯片:L298N是ST公司生產的一種高電壓、大電流電機驅動芯片。該芯片采用15腳封裝。主要特點是:工作電壓高,最高工作電壓可達46V;輸出電流大,瞬間峰值電流可達3A,持續(xù)工作電流為2A;額定功率25W。內含兩個H橋的高電壓大電流全橋式驅動器,可以用來驅動直流電動機和步進電動機、繼電器線圈等感性負載;采用標準邏輯電平信號控制;具有兩個使能控制端,在不受輸入信號影響的情況下允許或禁止器件工作有一個邏輯電

13、源輸入端,使內部邏輯電路部分在低電壓下工作;可以外接檢測電阻,將變化量反饋給控制電路。使用L298N芯片驅動電機,該芯片可以驅動一臺兩相步進電機或四相步進電機,也可以驅動兩臺直流電機。本模塊集成了一個內置的5V供電。當你的驅動電壓為7V-35V的時候,可以使能板載的5V邏輯供電,當使用板載5V供電之后,接口中的+5V供電不要輸入電壓,但是可以引出5V電壓供外部使用串口藍牙通信模塊:ATK-HC05模塊是ALIENTEK生成的一款高性能主從一體藍牙串口模塊,可以同各種帶藍牙功能的電腦、藍牙主機、手機、PDA、PSP等智能終端配對,該模塊支持非常寬的波特率范圍:4800-1382400,并且模塊兼

14、容5V或3.3V單片機系統(tǒng),可以很方便與單片機進行連接。使用非常靈活、方便。ATK-HC05藍牙串口模塊所有功能都是通過AT指令集控制。通過ATK-HC05藍牙串口模塊,任何單片機(3.3V/5V電源)都可以很方便的實現(xiàn)藍牙通信,從而與包括電腦、手機、平板電腦等各種帶藍牙的設備連接。藍牙模塊接收到的數據,將直接顯示在LCD上(僅支持ASCII字符顯示)。同時,我們還可以通過USMART對ATK-HC05藍牙模塊進行AT指令查詢和設置。結合手機端藍牙軟件(藍牙串口助手v1.97.apk),可以實現(xiàn)手機無線控制開發(fā)板(點亮和關閉LED)。顯示模塊:1) 16021602共有16腳接口,并且液晶模塊

15、內部的字符發(fā)生存儲器(CGROM)已經存儲了160個不同的點陣字符圖形,這些字符有:阿拉伯數字、英文字母的大小寫、常用的符號、和日文假名等,每一個字符都有一個固定的代碼,程序在開始時對液晶模塊功能進行了初始化設置,約定了顯示格式。注意顯示字符時光標是自動右移的,無需人工干預,每次輸入指令都先調用判斷液晶模塊是否忙的子程序DELAY,然后輸入顯示位置的地址0C0H,最后輸入要顯示的字符A的代碼41H。2) 51105110成品板,用于單片機、ARM、PLC等等輸出顯示設備,優(yōu)于12864(太貴)和1602(不能顯示漢字和圖片)。該模塊具有以下特點:84x48 的點陣LCD,可以顯示4 行漢字,采

16、用串行接口與主處理器進行通信,接口信號線數量大幅度減少,包括電源和地在內的信號線僅有8條。支持多種串行通信協(xié)議(如AVR 單片機的I、MCS51 的串口模式等),傳輸速率高達4Mbps,可全速寫入顯示數據,無等待時間??赏ㄟ^導電膠連接模塊與印制版,而不用連接電纜,用模塊上的金屬鉤可將模塊固定到印制板上,因而非常便于安裝和更換。LCD 控制器驅動器芯片已綁定到LCD 晶片上,模塊的體積很小。采用低電壓供電,正常顯示時的工作電流在200A 以下,且具有掉電模式。3、算法流程及代碼解釋小車1(采用實時任務管理系統(tǒng)):加速度讀取任務:void ADXL() _task_ 3 char rev;os_w

17、ait(K_TMO,100,0);LCD_str(5,5,"adxl");/LCD初始狀態(tài)顯示”adxl”while(1) Init_ADXL345();/加速度傳感器模塊初始化 rev=Single_Read_ADXL345(0x00); if(rev!=0xe5) Multiple_Read_ADXL345();/讀取加速度傳感器測試到的值 display_x();/顯示x坐標軸方向的加速度的值 display_y();/顯示y坐標軸方向的加速度的值 else LCD_str(3,3,"error");/若沒有檢測到數據,則顯示”error” rev

18、=Read5();/把連續(xù)讀取到的y坐標軸方向的加速度的10個測量值取平均值然后賦值給rev display_a();/顯示y坐標軸方向的加速度平均值速度調整任務:void PWM_con() _task_ 5 while(1) if(fuhao=-1)/小車處于上坡狀態(tài) if(ay5<=3)/如果測量到的加速度小于等于3%*g時,使兩直流電機的速度占空比值為40 pwml=40;pwmr=40; delayos(10); else if(ay5<5)/ 如果測量到的加速度小于等于5%*g時,使兩直流電機的速度占空比值為180 pwml=180;pwmr=180; else if(

19、ay5<10)/ 如果測量到的加速度小于等于10%*g時,使兩直流電機的速度占空比值為190 pwml=190;pwmr=190; else if(ay5<15)/ 如果測量到的加速度小于等于15%*g時,使兩直流電機的速度占空比值為210 pwml=210;pwmr=210; else if(ay5<20)/ 如果測量到的加速度小于等于20%*g時,使兩直流電機的速度占空比值為220 pwml=220;pwml=220; else if(ay<26)/ 如果測量到的加速度小于等于26%*g時,使兩直流電機的速度占空比值為230 pwml=230;pwmr=230; e

20、lse pwml=220;pwmr=220; else if(fuhao=1)/小車處于下坡狀態(tài),速度控制原理與上坡一樣 if(ay5<=3) pwml=40;pwmr=40; delayos(10); else if(ay5<5) pwml=180;pwmr=180; else if(ay5<10) pwml=200;pwmr=200; else if(ay5<15) pwml=200;pwmr=200; else if(ay5<20) pwml=220;pwml=220; else if(ay<26) pwml=230;pwmr=230; else pw

21、ml=220;pwmr=220; if(ay<=3) beok=1; else beok=0; 循跡任務:void Car() _task_ 1 Lir=1; Rir=1; pwml=240,pwmr=240;/小車一開始沿直線行駛,左右兩個電機的速度占空比值均為240 while(1) if(fuhao=-1)/小車處于上坡狀態(tài) car_go(); if(Lir=1&&Rir=1)/若小車沒有偏離直線軌道,則左右電機的占空比不變 car_free(pwml,pwmr); else if(Lir=0&&Rir=1)/若小車向右偏離了直線軌道,則右邊的電機占

22、空比值增加,使右輪加速,小車向左轉 car_free(pwml,pwmr+10); else if(Lir=1&&Rir=0)/若小車向左偏離了直線軌道,則左邊的電機占空比值增加,使左輪加速,小車向右轉 car_free(pwml+10,pwmr); else car_free(pwml,pwmr);/其他情況兩個電機的占空比均不變 else if(fuhao=1)/小車處于下坡狀態(tài),對電機的控制原理和上坡一樣 car_back(); if(Lir_back=0&&Rir_back=0) car_free(pwml,pwmr); else if(Lir_back

23、=1&&Rir_back=0) car_free(pwml,pwmr+10); else if(Lir_back=0&&Rir_back=1) car_free(pwml+10,pwmr); else car_free(pwml,pwmr); 指示燈任務:void LED() _task_ 6char i; speak=0;/蜂鳴器初始狀態(tài)為不響 while(1) if(beok=1)/當小車找到平衡點 os_wait(K_TMO,10,0);/延時一小段時間if(beok=1)/若小車仍然處于平衡狀態(tài),則紅綠指示燈按一定頻率閃爍 for(i=0;i<4;

24、i+) green=1;red=1; os_wait(K_TMO,20,0); green=0;red=0; os_wait(K_TMO,20,0); else if(fuhao=-1)/若小車沒找到平衡狀態(tài),則當小車處于上坡狀態(tài)時,紅燈亮 red=0; green=1; if(fuhao=1)/ 若小車沒找到平衡狀態(tài),則當小車處于下坡狀態(tài)時,綠燈亮 red=1; green=0; 蜂鳴器任務:void Speak_task() _task_ 7 while(1) if(beok=1)/如果小車找到了平衡點 os_wait(K_TMO,100,0);/延時一段時間 if(beok=1)/若小車

25、仍然處于平衡狀態(tài),則蜂鳴器按一定頻率發(fā)出報警聲 speak=1; os_wait(K_TMO,10,0); speak=0; os_wait(K_TMO,100,0); else speak=0;/若延時之后小車沒有處于平衡狀態(tài),則說明平衡還沒找到,蜂鳴器不響 else speak=0;/若沒找到平衡點,蜂鳴器不響 小車2:主程序流程圖中斷程序流程圖4、運行效果截圖小車1:小車單獨找到平衡點用一個小鐵錘打破小車原有的平衡小車重新找到平衡點小車2:小車單獨找到平衡點小車平衡被黑色膠帶打亂小車重新找到平衡三、心得體會1、組員分工組長梁喜東:負責系統(tǒng)框架的搭建,設計方案的討論及匯總,組員的分工協(xié)調,

26、系統(tǒng)軟件設計。組員唐彬:負責項目主要電路板的繪制與焊接,以及大部分報告的書寫,并協(xié)助老師擔任四個組的小隊長,和管理創(chuàng)新實驗室供同學們焊接電路板與調試程序。組員王波:調試各個模塊,軟件程序的編寫,流程圖的制作。組員蘇華:負責報告的書寫,輔助電路設計,焊接電路。2、組員心得組長梁喜東:要管理好一個團隊,不僅需要組長的領導,更需要組員的協(xié)作與配合。只有這樣才能讓團隊發(fā)揮作用。作為組長,也要多聽聽組員的意見和想法,多讓組員參與設計與討論,提供工作效率。對組員的分工要明確,這樣才會讓大家有針對性去做自己的事,共同協(xié)調完成設計。組員唐彬:雖然已經不是第一次組隊做項目了,但是仍然在這次的團隊合作中學到了很多

27、東西。經過這次的項目合作,我有以下幾點心得體會:1) 好的團隊很重要??吹狡渌暮枚嘟M基本上都是組長一個人在辛苦,我深深的感覺到了我們組的凝聚力和每個組員的認真態(tài)度。而且因為我們幾個都是老朋友,因此合作起來很默契。而有一部分同學是第一次合作,磨合期也需要一段時候,就大大的影響了他們的辦事效率。2) 合理的分工很重要。一個組每個人都有自己的長處,要根據不同組員的長處合理的安排每個人的任務,這樣才能達到事半功倍的效果。3) 溝通交流很重要。雖然每個人都有自己的任務,但是如果每個人只做自己的事,而不和組員交流溝通,那我們做的東西也不可能是優(yōu)秀的,只要我們相互交流,才能對整個項目進行全面的了解。就拿我

28、寫報告為例,如果我不和梁喜東還有王波溝通,我就不會知道整個程序的流程和我們用到的特色技術有哪些,如果我不和他們溝通,我也不可能知道他們用的是哪些端口,我就不能很好的畫電路圖和系統(tǒng)圖。組員王波:做任何事,要理清思路,各個擊破。另外作為小組的一員一定要懂得協(xié)調其他組員的工作,而且只有懂得了合作,才能收到最大的效益,才能學到更多的知識。組員蘇華:首先,我想說無論結果怎么樣,我很高興能夠有這樣親手做東西的這樣的一個經歷。它使我能夠將平時在課本上學到的理論知識運用到實踐中。比如說聲音模塊,我們是用555定時器產生的占空比為50%的PWM波。如果將兩個不同頻率的PWM波疊加起來驅動蜂鳴器就會產生“滴滴”的聲音。其次,在和大家一起做東西的過程中我還收獲了團隊的友誼,我們四個人一起做東西,一起努力,當遇到問題或者困難的時候,我們一起討論,相互鼓勵,這個過程真的很珍貴,很值得回味。3、組長對組員的工作評價組長對組員唐彬的評價:唐彬的分工,同時也兼具了組長的秘書工作,幫助組長協(xié)調工作的安排,提出很多有用的想法和意見。做事細心,善于及時發(fā)現(xiàn)團隊的毛病并及時糾正。組長對組員王波的評價:對工作熱心,全身心

溫馨提示

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

評論

0/150

提交評論