open寶貝車(chē)培訓(xùn)-技術(shù)講解_第1頁(yè)
open寶貝車(chē)培訓(xùn)-技術(shù)講解_第2頁(yè)
open寶貝車(chē)培訓(xùn)-技術(shù)講解_第3頁(yè)
open寶貝車(chē)培訓(xùn)-技術(shù)講解_第4頁(yè)
open寶貝車(chē)培訓(xùn)-技術(shù)講解_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

-龍人寶貝Open教育機(jī)器人寶貝車(chē)簡(jiǎn)介雙控制器(C51和AVR)教學(xué)板兩個(gè)連續(xù)旋轉(zhuǎn)的舵機(jī)開(kāi)放的實(shí)驗(yàn)面包板豐富的傳感器配置教學(xué)板內(nèi)容概述建立編程開(kāi)發(fā)環(huán)境安裝調(diào)試讓寶貝車(chē)動(dòng)起來(lái)利用傳感器導(dǎo)航建立編程開(kāi)發(fā)環(huán)境C51單片機(jī)

KeiluVision

AVR單片機(jī)WINAVRISP程序下載SLISP串口調(diào)試工具建立編程開(kāi)發(fā)環(huán)境安裝keil,嘗試建立一個(gè)新的工程建立編程開(kāi)發(fā)環(huán)境安裝ISP下載程序建立編程開(kāi)發(fā)環(huán)境串口調(diào)試工具建立編程開(kāi)發(fā)環(huán)境串口線(xiàn)----連接在電腦的串口,可以通過(guò)單片機(jī)將信息輸出到串口調(diào)試工具中ISP下載線(xiàn)接在電腦的并口上,通過(guò)ISP下載軟件可以將程序下載到單片機(jī)系統(tǒng)調(diào)試接上兩個(gè)伺服舵機(jī)到教學(xué)板的P1_0和P1_1電機(jī)口,進(jìn)行舵機(jī)的調(diào)零系統(tǒng)調(diào)試舵機(jī)的特性如何連接舵機(jī)有三個(gè)連接引腳,一個(gè)+5V的電源,一個(gè)地,以及一個(gè)信號(hào)系統(tǒng)調(diào)試舵機(jī)的特性如何控制在接上+5V電源后,舵機(jī)運(yùn)動(dòng)的速度和方向由脈沖信號(hào)的時(shí)序決定,寶貝車(chē)上使用的舵機(jī)時(shí)序特點(diǎn)是高電平從1.3ms到1.5ms,低電平為20ms時(shí)電機(jī)為順時(shí)針旋轉(zhuǎn),高電平1.5ms到1.7ms電機(jī)逆時(shí)針旋轉(zhuǎn)。高電平持續(xù)1.3ms,低電平持續(xù)20ms,電機(jī)全速順時(shí)針旋轉(zhuǎn)。系統(tǒng)調(diào)試舵機(jī)的特性如何控制高電平持續(xù)1.7ms,低電平20ms,電機(jī)全速逆時(shí)間旋轉(zhuǎn)。高電平持續(xù)1.5ms,低電平20ms,電機(jī)保持不動(dòng)系統(tǒng)調(diào)試關(guān)于調(diào)零為此我們需要做一下工作給單片機(jī)一個(gè)程序,讓接電機(jī)信號(hào)的P1_0和P1_1口按保持不動(dòng)的脈沖輸出高低電平信號(hào)。打開(kāi)電源,使用我們提供的小十字起輕輕的轉(zhuǎn)動(dòng)調(diào)零口,使電機(jī)靜止下來(lái)。剛剛出產(chǎn)的電機(jī)并不能正確的按照時(shí)序工作,需要調(diào)零,調(diào)零就是在給定電機(jī)高脈沖1.5ms的情況下,保持電機(jī)不動(dòng)。讓寶貝車(chē)動(dòng)起來(lái)認(rèn)識(shí)一下AT89S52AT89SC52單片機(jī)由4個(gè)口,P0,P1,P2,P3來(lái)進(jìn)行外圍擴(kuò)展和控制。4個(gè)P口的每個(gè)引腳都可以做普通I/O使用。此外一些引腳還有第二功能。P0和P2口可以組成16位的外部地址總線(xiàn),用于以總線(xiàn)方式擴(kuò)展外部器件。P3口I/O引腳都有地二功能,主要有串口收(RXD)發(fā)(TXD)信號(hào)口;兩個(gè)外部中斷信號(hào)(INT0和INT1)口;外部脈沖計(jì)數(shù)信號(hào)(T0和T1)口等,具體可以參考相關(guān)資料或書(shū)籍。讓寶貝車(chē)動(dòng)起來(lái)準(zhǔn)備好調(diào)零的程序打開(kāi)第二章BothServoClockwise這個(gè)例程#include<BoeBot.h>#include<uart.h>intmain(void){ uart_Init(); //初始化串口

printf("TheLEDsconnectedtoP1_0andP1_1areblinking!\n"); while(1) { P1_0=1; //P1_0輸出高電平

P1_1=1; //P1_1輸出高電平

delay_nus(1300); //延時(shí)500ms P1_0=0; //P1_0輸出低電平

P1_1=0; //P1_1輸出低電平

delay_nms(20); //延時(shí)20ms }}讓寶貝車(chē)動(dòng)起來(lái)分析這個(gè)程序頭文件#include<BoeBot.h>包含了兩個(gè)延時(shí)函數(shù)#include<uart.h> 包含了串口的驅(qū)動(dòng)串口初始化uart_Init();初始化串口控制部分控制部分在一個(gè)while(1)下的無(wú)限循環(huán)中讓寶貝車(chē)動(dòng)起來(lái)根據(jù)時(shí)序?qū)懗绦蜃岆姍C(jī)引腳為高電平

P1_0

=

1;

P1_1

=

1;讓高電平1.5ms(1500us)

delay_nus(1500);讓電機(jī)引腳為低電平

P1_0

=

0;

P1_1

=

0;讓低電平保持20ms

delay_nms(20);循環(huán)

讓寶貝車(chē)動(dòng)起來(lái)關(guān)于單片機(jī)C語(yǔ)言編程基于C語(yǔ)言的單片機(jī)編程除了要遵守C語(yǔ)言的語(yǔ)法外,針對(duì)不同單片機(jī)的特點(diǎn),對(duì)C語(yǔ)言做了一些擴(kuò)展。如:對(duì)存儲(chǔ)區(qū)間定義的關(guān)鍵字data,bdata,idata,pdata,xdata。對(duì)中斷行為的關(guān)鍵字?jǐn)U展interrupt

位變量,可重入關(guān)鍵字等程序中使用P1_0來(lái)表示P0口的第一個(gè)引腳,這是因?yàn)槌绦虬腁T89X52.H這個(gè)頭文件中將引腳的地址通過(guò)宏定義成容易記憶的符號(hào),單片機(jī)的其他器件也是這樣表示的,具體請(qǐng)參考AT89X52.H這個(gè)頭文件,以及相關(guān)資料。讓寶貝車(chē)動(dòng)起來(lái)調(diào)零將代碼考到我們新建的工程中,修改程序中延時(shí)函數(shù)參數(shù)1300為1500,編譯程序。將生成的.HEX文件下載到單片機(jī)。將電源開(kāi)關(guān)打開(kāi)到2,用十字起分別調(diào)整兩個(gè)電機(jī)的調(diào)零口,直到電機(jī)完全不轉(zhuǎn)動(dòng)為止。根據(jù)安裝手冊(cè)安裝好寶貝車(chē),接下編寫(xiě)程序來(lái)讓車(chē)完成前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)等基本運(yùn)動(dòng)。讓寶貝車(chē)動(dòng)起來(lái)編寫(xiě)基本運(yùn)動(dòng)程序目標(biāo)分析由于兩個(gè)電機(jī)對(duì)稱(chēng)安裝,只要是兩個(gè)是兩個(gè)輪子想相反的方向以相同的速度運(yùn)動(dòng),車(chē)就會(huì)像一個(gè)方向像運(yùn)動(dòng)。語(yǔ)言實(shí)現(xiàn)使右邊電機(jī)順時(shí)針旋轉(zhuǎn),向P1_0口輸出連續(xù)的高電平為1.3ms低電平為20ms的脈沖信號(hào)使左邊電機(jī)逆時(shí)針旋轉(zhuǎn),向P1_1口輸出連續(xù)的高電平為1.7ms低電平為20ms的脈沖信號(hào)讓寶貝車(chē)動(dòng)起來(lái)編寫(xiě)程序修改之前的調(diào)零程序的電機(jī)控制部分重新編譯程序,并將生產(chǎn)的.HEX文件下載到單片機(jī) P1_0=1; //P1_0輸出高電平

delay_nus(1300); //延時(shí)500ms P1_0=0; //P1_0輸出低電平

P1_1=1; //P1_1輸出低電平 delay_nus(1500); P1_1=0; //P1_1輸出高電平

delay_nms(20); //延時(shí)20ms讓寶貝車(chē)動(dòng)起來(lái)建立一個(gè)向前的運(yùn)動(dòng)函數(shù)供以后使用函數(shù)命名為ForwardvoidForward(void){ P1_1=1; delay_nus(1700); P1_1=0; P1_0=1; delay_nus(1300); P1_0=0; delay_nms(20);}讓寶貝車(chē)動(dòng)起來(lái)編寫(xiě)其他運(yùn)動(dòng)程序,并且封裝成函數(shù)要讓小車(chē)以不同方式運(yùn)動(dòng),只需要通過(guò)調(diào)整信號(hào)高電平脈沖時(shí)間,以控制電機(jī)以不同的方向和速度運(yùn)動(dòng)即可.左轉(zhuǎn),只要兩個(gè)高電平同為1300,再通過(guò)控制脈沖周期的次數(shù)來(lái)決定小車(chē)左轉(zhuǎn)的速度.右轉(zhuǎn),只要兩個(gè)高電平同為1700,再通過(guò)控制脈沖周期的次數(shù)來(lái)決定小車(chē)右轉(zhuǎn)的速度.后退剛好與前進(jìn)相反即可讓寶貝車(chē)動(dòng)起來(lái)用FOR語(yǔ)句控制轉(zhuǎn)動(dòng)角度程序在for中執(zhí)行26次,使小車(chē)左轉(zhuǎn)約90度voidLeft_Turn(void){inti;for(i=1;i<=26;i++) { P1_1=1; delay_nus(1300); P1_1=0; P1_0=1; delay_nus(1300); P1_0=0; delay_nms(20); }}讓寶貝車(chē)動(dòng)起來(lái)總結(jié)在編寫(xiě)程序的時(shí)候我們新明確任務(wù),再逐步分解成我們?nèi)菀资褂玫恼Z(yǔ)言描述的任務(wù)。現(xiàn)在我們擁有了幾個(gè)可以使小車(chē)運(yùn)動(dòng)的函數(shù)。我們可以把這些函數(shù)組織起來(lái),做成一個(gè)運(yùn)動(dòng)的頭文件,以供以后使用。形成自己的函數(shù)庫(kù),在編寫(xiě)程序的時(shí)候,我們可以把一些好用的小模塊編寫(xiě)成通用的函數(shù),以供需要時(shí)使用。最后再來(lái)看一個(gè)完整的例子ForwardLeftRightBackward在開(kāi)始下一部分之前單片機(jī)C語(yǔ)言編程的一些特點(diǎn)總結(jié)While(1),很多時(shí)候我們希望單片機(jī)能夠連續(xù)的做一些事情,如讓電機(jī)運(yùn)動(dòng),不斷的掃描I/O口以檢測(cè)信號(hào),通常在做完一些變量聲明,以及初始化工作后我會(huì)將控制程序放在一個(gè)無(wú)限循環(huán)中。Delay函數(shù),單片機(jī)很多時(shí)候都會(huì)用到這個(gè)函數(shù)以等待一些事情完成,或按照某個(gè)時(shí)序控制I/O。利用傳感器導(dǎo)航有了基本的運(yùn)動(dòng)基礎(chǔ),現(xiàn)在需要讓小車(chē)通過(guò)傳感器來(lái)感知外部的世界,并完成智能的運(yùn)動(dòng)。下面的內(nèi)容包括以下幾個(gè)方面通過(guò)外部信息來(lái)進(jìn)行智能的運(yùn)動(dòng)的構(gòu)思使用紅外探測(cè)傳感器完成紅外線(xiàn)避障總結(jié)利用傳感器導(dǎo)航1、感知外部信息2、分析處理信息3、做出智能決策4、執(zhí)行決策利用傳感器導(dǎo)航使用紅外線(xiàn)探測(cè)器感知外部信息紅外線(xiàn)探測(cè)器的原理紅外線(xiàn)接收器像機(jī)器人的眼睛,它能夠“看見(jiàn)”

980nm波長(zhǎng)的紅外線(xiàn)通過(guò),接收器里面還帶一個(gè)濾波器,接受38.5KHZ的電信號(hào)。接收到信號(hào)后引腳電平由高變低。(10)紅外線(xiàn)發(fā)射器在接通電源之后發(fā)射980nm波長(zhǎng)的紅外線(xiàn),所以只要使發(fā)射器一秒鐘發(fā)射38,500次的紅外光就能得到接收器能識(shí)別的信號(hào)。利用傳感器導(dǎo)航認(rèn)識(shí)需要使用的電子元器件紅外線(xiàn)接收器、發(fā)射器三極管利用傳感器導(dǎo)航在面包板上搭建好電路利用傳感器導(dǎo)航編寫(xiě)紅外線(xiàn)探測(cè)器驅(qū)動(dòng)使用紅外線(xiàn)探測(cè)器只要使紅外線(xiàn)發(fā)射器以38.5khz發(fā)射紅外線(xiàn)即可。從時(shí)序來(lái)分析,只要按照下面的時(shí)序來(lái)變化引腳電平利用傳感器導(dǎo)航參照調(diào)零的程序來(lái)寫(xiě)紅外發(fā)射驅(qū)動(dòng)紅外線(xiàn)觸發(fā)信號(hào)接在P1_3上面發(fā)射完成馬上檢查紅外線(xiàn)接收器信號(hào)紅外線(xiàn)接收器件接在P1_2上這樣就完成了一次收發(fā)過(guò)程!for(counter=0;counter<38;counter++){ P1_3=1; delay_nus(13); P1_3=0; delay_nus(13);}irDetectLeft

=

P1_2state();利用傳感器導(dǎo)航delay_nus函數(shù)的不精確性由于調(diào)用函數(shù)本身是要消耗時(shí)間,所以為了有更精確,我們要修改一下程序的延時(shí)部分。Int

i

=

39;While(--i)

{RightLaunch=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();RightLaunch=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}_nop_();在intrins.h這個(gè)頭文件中。表示執(zhí)行一條空指令。使用一連串的_nop_();來(lái)代替delay_nus();即可。記住加入instrins.h這個(gè)頭文件。利用傳感器導(dǎo)航完整的函數(shù)voidIRLaunch(unsignedcharIR){intcounter;if(IR=='L') for(counter=0;counter<38;counter++)//左邊發(fā)射

{LeftLaunch=1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();LeftLaunch=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}if(IR=='R')。。。。。。。。。。

利用傳感器導(dǎo)航測(cè)試你的紅外線(xiàn)傳感器編譯程序,下載程序到教學(xué)板。打開(kāi)串口調(diào)試程序,連接串口線(xiàn)利用傳感器導(dǎo)航寫(xiě)出完整的程序現(xiàn)在我們將運(yùn)動(dòng)部分的函數(shù)加到程序中來(lái)按照之前的構(gòu)思一步步完成程序感知外部信息處理得到的信息

IRLaunch('R');//右邊發(fā)射

irDetectRight=RightIR;//右邊接收

IRLaunch('L');//左邊發(fā)射

irDetectLeft=LeftIR;//左邊接收利用傳感器導(dǎo)航寫(xiě)出完整的程序分析并處理得到的信息并作出決策得到的信息是左邊和右邊的紅外線(xiàn)接收器的狀態(tài)左邊紅外線(xiàn)信號(hào)右邊紅外線(xiàn)信號(hào)外部狀態(tài)分析行為策略11兩邊都沒(méi)有檢測(cè)的信號(hào)前方?jīng)]有障礙物。前進(jìn)10右邊有障礙物左轉(zhuǎn)一定角度01左邊有障礙物右轉(zhuǎn)一定角度00兩邊(前方)有障礙物后退一段距離,轉(zhuǎn)180度利用傳感器導(dǎo)航寫(xiě)出完整的程序執(zhí)行決策主要在決策的條件下執(zhí)行之前的運(yùn)動(dòng)函數(shù)就可以了,這里我們用了一組if

…..

else

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論