四輪驅(qū)動(dòng)的無(wú)線遙控智能車設(shè)計(jì)與實(shí)現(xiàn)
四輪驅(qū)動(dòng)的無(wú)線遙控智能車設(shè)計(jì)與實(shí)現(xiàn),四輪驅(qū)動(dòng),無(wú)線,遙控,智能,設(shè)計(jì),實(shí)現(xiàn)
本次設(shè)計(jì)的小車?yán)盟欧C(jī)驅(qū)動(dòng),單片機(jī)控制的。小車為機(jī)器人的雛形,由于使用伺服機(jī)控制,其動(dòng)作的精度非常高,用途非常的廣泛,比如可用于較窄的人無(wú)法進(jìn)入的管道進(jìn)行查看,像下水管道,大型工廠的排線管道,軍事上的排除炸彈等等。一、小車系統(tǒng)介紹 控制系統(tǒng)原理如圖1所示: 圖1 電氣控制圖 伺服機(jī)控制系統(tǒng)的控制電路分為以下幾部分:(1)單芯片89C51控制部分的核心元件,采用89C51。(2)伺服機(jī)的接口伺服機(jī)的接口所示如圖2。圖2 伺服機(jī)接口 圖3 按鍵電路 為伺服機(jī)提供電源。(3)控制按鍵電路 按鍵電路如圖3所示。用來(lái)控制小車前進(jìn)、后退、左轉(zhuǎn)、右轉(zhuǎn)。(4)電源電路圖4 電源電路 圖5 晶振電路 圖6 復(fù)位電路電源電路如圖4所示。為單片機(jī)和伺服機(jī)提供電源。(5)晶振電路晶振電路如圖5所示。為單片機(jī)提供脈沖,晶振頻率范圍為1.233HZ。(6)復(fù)位電路復(fù)位電路如圖6所示。使單片機(jī)復(fù)位。二、89C51單片機(jī)的組成1.中央處理器CPU中央處理器簡(jiǎn)稱CPU,是單片機(jī)的核心,用于完成運(yùn)算和控制操作。中央處理器包括運(yùn)算器和控制器兩部分電路。(1)運(yùn)算電路運(yùn)算電路是單片機(jī)的運(yùn)算部件,用于實(shí)現(xiàn)算術(shù)和邏輯運(yùn)算。算術(shù)邏輯單元ALU、累加器、B寄存器、程序狀態(tài)字和兩個(gè)暫存寄存器等都屬于運(yùn)算器電路。運(yùn)算電路以ALU為核心,基本的算術(shù)運(yùn)算和邏輯運(yùn)算均在其中進(jìn)行,包括加、減、乘、除、增量、減量、十進(jìn)制調(diào)整、比較等算術(shù)運(yùn)算,“與”、“異或”等邏輯運(yùn)算,左、右移位和半字節(jié)交換等操作。 (2)控制電路控制電路是單片機(jī)的指揮控制部件,保證單片機(jī)各部分能自動(dòng)而協(xié)調(diào)地工作。程序計(jì)數(shù)器、PC加1寄存器、指令寄存器、指令譯碼器、定時(shí)控制電路以及振蕩電路等均屬于控制電路。1. 內(nèi)部數(shù)據(jù)存儲(chǔ)器內(nèi)部數(shù)據(jù)存儲(chǔ)器包括RAM(128*8)和RAM地址寄存器,用于存放可讀/寫的數(shù)據(jù)。實(shí)際上80C51芯片中共有256個(gè)RAM單元,但其中后128個(gè)單元為專用寄存器,能作為普通RAM存儲(chǔ)器供用戶使用的只是前128個(gè)單元。因此,通常所說(shuō)的內(nèi)部數(shù)據(jù)存儲(chǔ)器是指前128個(gè)單元,簡(jiǎn)稱“內(nèi)部RAM”。2內(nèi)部程序存儲(chǔ)器內(nèi)部程序存儲(chǔ)器包括ROM(4K*8)和程序地址寄存器等。80C51共有4KB掩膜ROM,用于存放程序和原始數(shù)據(jù),因此稱之為程序存儲(chǔ)器,簡(jiǎn)稱“內(nèi)部ROM”3定時(shí)器/計(jì)數(shù)器由于控制應(yīng)用的需要,80C51共有兩個(gè)16位的定時(shí)器/計(jì)數(shù)器,用定時(shí)器/計(jì)數(shù)器0和定時(shí)器/計(jì)數(shù)器1表示,用于實(shí)現(xiàn)定時(shí)或計(jì)數(shù)功能,并以其定時(shí)或計(jì)數(shù)結(jié)果對(duì)單片機(jī)進(jìn)行控制。4. 并行I/O口80C51共有4個(gè)8位并行I/O(P0、P1、P2、P3),以實(shí)現(xiàn)數(shù)據(jù)的并行輸入/輸出。三89C51單片機(jī)的封裝與信號(hào)引腳1.芯片封裝形式80C51有40引腳雙列直插式DIP和44引腳方形扁平式QFP共兩種封裝形式。其中雙列直插式封裝芯片的引腳排列及芯片邏輯符號(hào)如圖7所示。圖7 89C51芯片2.芯片引腳介紹P0.0P0.7 P0口8位雙向口線P1.0P1.7 P1口8位雙向口線P2.0P2.7 P2口8位雙向口線P3.0P3.7 P3口8位雙向口線地址鎖存控制信號(hào)ALE在系統(tǒng)擴(kuò)展時(shí)可作為外部時(shí)鐘或外部定時(shí)脈沖使用。外部程序存儲(chǔ)器讀選通信號(hào)PSEN非在讀外部ROM時(shí)PSEN非有效(低電平),以實(shí)現(xiàn)外部ROM單元的讀操作。訪問(wèn)程序存儲(chǔ)器控制信號(hào)EA非當(dāng)EA非信號(hào)為低電平時(shí),對(duì)ROM的讀操作室針對(duì)外部程序存儲(chǔ)器的;而當(dāng)EA非信號(hào)為高電平時(shí),對(duì)ROM的讀操作是從內(nèi)部程序存儲(chǔ)器開始,并可延續(xù)至外部程序存儲(chǔ)器。復(fù)位信號(hào)RST當(dāng)輸入的復(fù)位信號(hào)延續(xù)2個(gè)機(jī)器周期以上高電平時(shí)即為有效,用于完成單片機(jī)的復(fù)位操作。外接晶體引線端XTAL1和XTAL2當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),XTAL1和XTAL2用于外接石英晶體諧振器和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接入外部時(shí)鐘脈沖信號(hào)。地線Vss+5V電源Vcc3.控制鍵盤電路鍵盤是單片機(jī)不可缺少的人機(jī)交互設(shè)備,鍵盤上的鍵猶如一個(gè)機(jī)械開關(guān),手按下鍵閉合,手放開鍵釋放。單片機(jī)系統(tǒng)中通常使用的鍵盤是價(jià)格便宜的非編碼矩陣式鍵盤。矩陣式鍵盤的鍵排列成矩陣形式,在行與列的每個(gè)交點(diǎn)上對(duì)應(yīng)有一個(gè)鍵。4.消除抖動(dòng)由于按鈕是機(jī)械觸點(diǎn),當(dāng)機(jī)械觸點(diǎn)斷開、閉合時(shí),會(huì)有抖動(dòng),輸入端的波形。這種抖動(dòng)對(duì)于人來(lái)說(shuō)是感覺(jué)不到的,但對(duì)計(jì)算機(jī)來(lái)說(shuō),則是完全能感應(yīng)到的,因?yàn)橛?jì)算機(jī)處理的速度是在微秒級(jí),而機(jī)械抖動(dòng)的時(shí)間至少是毫秒級(jí),對(duì)計(jì)算機(jī)而言,這已是一個(gè)漫長(zhǎng)的時(shí)間了。就是說(shuō)按鈕有時(shí)靈,有時(shí)不靈,其實(shí)就是這個(gè)原因,你只按了一次按鈕,可是計(jì)算機(jī)卻已執(zhí)行了多次中斷的過(guò)程,如果執(zhí)行的次數(shù)正好是奇數(shù)次,那么結(jié)果正如你所料,如果執(zhí)行的次數(shù)是偶數(shù)次,那就不對(duì)了。為使CPU能正確地讀出P1口的狀態(tài),對(duì)每一次按鈕只作一次響應(yīng),就必須考慮如何去除抖動(dòng),常用的去抖動(dòng)的辦法有兩種:硬件辦法和軟件辦法。單片機(jī)中常用軟件法。軟件法其實(shí)很簡(jiǎn)單,就是在單片機(jī)獲得的信息后,不是立即認(rèn)定開關(guān)已被按下,而是延時(shí)10毫秒或更長(zhǎng)一些時(shí)間后再次檢測(cè),如果仍為低,說(shuō)明開關(guān)的確按下了,這實(shí)際上是避開了按鈕按下時(shí)的抖動(dòng)時(shí)間。而在檢測(cè)到按鈕釋放后再延時(shí)5-10個(gè)毫秒。當(dāng)然,實(shí)際應(yīng)用中,對(duì)按鈕的要求也是千差萬(wàn)別,要根據(jù)不一樣的需要來(lái)編制處理程序,但以上是消除鍵抖動(dòng)的原則。三伺服電機(jī)伺服機(jī)是在伺服系統(tǒng)中控制機(jī)械元件運(yùn)轉(zhuǎn)的發(fā)動(dòng)機(jī),是一種補(bǔ)助馬達(dá)間接變速裝置。伺服電機(jī)是可以連續(xù)旋轉(zhuǎn)的電機(jī)械轉(zhuǎn)換器。屬于功率很小的微特電機(jī),以永磁式直流伺服電機(jī)和并激式直流伺服電機(jī)最為常用。伺服電機(jī)可控制速度,位置精度非常準(zhǔn)確。1直流伺服電機(jī)直流伺服電機(jī)的輸出轉(zhuǎn)速與輸入電壓成正比,并能實(shí)現(xiàn)正反向速度控制。具有起動(dòng)轉(zhuǎn)矩大,調(diào)速范圍寬,機(jī)械特性和調(diào)節(jié)特性的線性度好,控制方便等優(yōu)點(diǎn),但換向電刷的磨損和易產(chǎn)生火花會(huì)影響其使用壽命。近年來(lái)出現(xiàn)的無(wú)刷直流伺服電機(jī)避免了電刷摩擦和換向干擾,因此靈敏度高,死區(qū)小,噪聲低,壽命長(zhǎng),對(duì)周圍電子設(shè)備干擾小。而直流力矩伺服電機(jī)(即低速直流伺服電機(jī))可在幾十轉(zhuǎn)/分的低速下,甚至在長(zhǎng)期堵轉(zhuǎn)的條件下工作,故可直接驅(qū)動(dòng)被控件而不需減速。2.伺服機(jī)的選擇本次將利用無(wú)線電遙控飛機(jī).遙控船上一定會(huì)用到的伺服機(jī)當(dāng)作驅(qū)動(dòng)器,結(jié)合89C51單片機(jī)來(lái)設(shè)計(jì)一個(gè)簡(jiǎn)易的伺服機(jī)控制系統(tǒng) ,此系統(tǒng)可以以簡(jiǎn)易的電路連接配合驅(qū)動(dòng)器程序,可以精確的控制伺服機(jī)動(dòng)作,凡是需要以單片機(jī)控制想要拉動(dòng)或是做簡(jiǎn)易的機(jī)械式傳動(dòng)的機(jī)構(gòu)設(shè)計(jì)都可能有機(jī)會(huì)使用到它。 直流伺服電動(dòng)機(jī)的特點(diǎn):電阻大,機(jī)械特性軟。線性;滑動(dòng)接觸;火花干擾;慣性大;體積大;相對(duì)價(jià)高。本次采用的規(guī)格如圖8:電壓扭矩速度5V44.4 oz-in.0.23 sec/606.0V56.9 oz-in.0.16 sec/60尺寸重量1.6 x 0.8 x 1.4 in.1.3 oz.圖8 伺服機(jī)規(guī)格圖3伺服機(jī)的改裝一般玩具遙控模型店中所購(gòu)得的標(biāo)準(zhǔn)伺服機(jī)只能轉(zhuǎn)動(dòng)180度,用途有限,為了做更多的應(yīng)用實(shí)驗(yàn),經(jīng)幾個(gè)伺服機(jī)的改裝步驟,使伺服機(jī)可以轉(zhuǎn)動(dòng)360度,適合用于遙控車上作為推動(dòng)車論轉(zhuǎn)動(dòng)用。標(biāo)準(zhǔn)伺服機(jī)由于動(dòng)作角度有限,因此在機(jī)構(gòu)旋轉(zhuǎn)軸上有阻擋越位的凸點(diǎn),同時(shí)也利用可變電阻的移位來(lái)偵測(cè)所轉(zhuǎn)動(dòng)的角度,了解起動(dòng)作原理后,要將起改裝為360度轉(zhuǎn)動(dòng)便不困難了。拆開伺服機(jī)在改裝前再仔細(xì)看其各個(gè)零件相關(guān)的特殊位置,特別是旋轉(zhuǎn)軸的凸點(diǎn),及可變電阻的高度,是改裝過(guò)程中要修改的部分。注意整個(gè)可變電阻高度已經(jīng)降下來(lái)了,因此當(dāng)齒輪轉(zhuǎn)動(dòng)時(shí)并不會(huì)帶動(dòng)可變電阻轉(zhuǎn)動(dòng),使得回授信號(hào)為固定,當(dāng)送出控制信號(hào)后馬達(dá)可以一直往某個(gè)方向正轉(zhuǎn)或是反轉(zhuǎn)。整個(gè)改裝步驟說(shuō)明如下:(1) 將伺服機(jī)螺絲松開,小心取出各個(gè)部分零件及齒輪,并依序防止整齊,方便稍后組裝回去。(2) 小型馬達(dá)要推出來(lái)時(shí),要以小改錐稍微由外向內(nèi)施力推出,電路板比較脆弱,小心折斷。(3) 以斜口鉗剪斷所示的凸點(diǎn),并以小刀修平。(4) 將變電阻用按入凹槽就可以了。(5) 將改裝的零件結(jié)合各式齒輪完整組裝回去。在改裝后凸點(diǎn)不見(jiàn)了,而可變電阻中間的旋轉(zhuǎn)柄降低了,因此在伺服機(jī)轉(zhuǎn)動(dòng)時(shí)也不會(huì)帶動(dòng)可變電阻轉(zhuǎn),因此控制器偵測(cè)不到端點(diǎn),只要單片機(jī)不斷地送出適當(dāng)?shù)拿}沖信號(hào),便可以使伺服機(jī)不斷地正轉(zhuǎn)或是反轉(zhuǎn)一直持續(xù)下去,不會(huì)只轉(zhuǎn)動(dòng)180度便卡住了。由于其體積小設(shè)計(jì)上采用特殊集成電路設(shè)計(jì),在松開螺絲后小心將其零件分解,可以看到其內(nèi)部零件:(控制芯片、小型直流馬達(dá)、轉(zhuǎn)換齒輪、旋轉(zhuǎn)軸、回授可變電阻)伺服機(jī)以5V電源便可以推動(dòng),控制方式是以脈沖調(diào)制/解調(diào)的方式來(lái)控制。其外部3個(gè)引腳如下:黑色:GND 地線紅色:5V電源線(位置在中間)白色:控制信號(hào)四小車底座組成驅(qū)動(dòng)器:以改裝過(guò)的伺服機(jī)當(dāng)驅(qū)動(dòng)器件。輪子:為了配合現(xiàn)成的伺服機(jī)機(jī)構(gòu)連接,以現(xiàn)成的飲料瓶蓋來(lái)改裝。前輔輪:以現(xiàn)成的圓形物體代替。連接座:用來(lái)固定伺服機(jī)用,以現(xiàn)成的“L”鐵座來(lái)連接。車體底盤:以不銹鋼板來(lái)組裝。螺絲包:做各部分零件的組裝及固定。前輪改裝:1.準(zhǔn)備兩塊長(zhǎng)方形的鋁片 (長(zhǎng):8CM 寬:1.5CM)2.一套四驅(qū)車導(dǎo)輪3.兩個(gè)墊片組裝成如圖9、圖10:圖9 小車底部組裝圖圖10 小車控制部分組裝圖八伺服車外形電池使用4只,可用一般電池測(cè)試,但使用充電電池較省錢。左右伺服機(jī)接線會(huì)影響車子行進(jìn)方向,若方向不對(duì)請(qǐng)自行對(duì)調(diào)調(diào)整。由于車子采用后輪驅(qū)動(dòng),因此重心要擺在后方,電池放在后方底座。組裝成如圖11:圖11 小車整體圖一小車工作流程圖在主控程序循環(huán)中掃描是否有按鍵,若有按鍵則做相對(duì)應(yīng)的功能處理,若按下K1鍵車體做前進(jìn)展示,若按下K2鍵車體做后退展示,若按下K3鍵車體左轉(zhuǎn)展示,若按下K4鍵車體做右轉(zhuǎn)展示。所有按鍵動(dòng)作都是等按鍵放開來(lái)才開始執(zhí)行車體動(dòng)作。小車工作流程圖如圖12:圖12 流程圖二小車控制程序由于伺服車上伺服機(jī)的安裝是在左右兩側(cè),伺服機(jī)正反轉(zhuǎn)與前進(jìn)方向剛好相反,前面理論上說(shuō)明的前進(jìn),應(yīng)該是左伺服機(jī)正轉(zhuǎn)且右伺服機(jī)也正轉(zhuǎn),不過(guò)實(shí)際上控制程序是伺服機(jī)1正轉(zhuǎn)控制,伺服機(jī)2反轉(zhuǎn)控制。因此控制程序車體前進(jìn)部分設(shè)計(jì)如下。Go_for:; 車體前進(jìn)Mov r3,#ts; 設(shè)置計(jì)數(shù)次數(shù)J1:call pu_for; 伺服機(jī)1正轉(zhuǎn)控制Djnz r3,j1; 伺服機(jī)2反轉(zhuǎn)控制Ret其他3個(gè)方向的動(dòng)作原理一樣1.指令詳解DELAY:延遲子程序LED_BL:工作指示閃爍PU_BACK:伺服機(jī)1反轉(zhuǎn)控制PU_FOR:伺服機(jī)1正轉(zhuǎn)控制DEMO_FOR:伺服機(jī)正轉(zhuǎn)展示DEMO_BACK:伺服機(jī)反轉(zhuǎn)展示DEL:0.1ms延遲子程序PUR_BACK:伺服機(jī)2反轉(zhuǎn)控制PUR_FOR:伺服機(jī)2正轉(zhuǎn)控制GO_FOR:車體前進(jìn)GO_BACK:車體后退GO_LEFT:車體左轉(zhuǎn)GO_RIGHT:車體右轉(zhuǎn)2.程序清單equ 3; 伺服機(jī)正轉(zhuǎn)時(shí)間常數(shù)deb equ 25; 伺服機(jī)反轉(zhuǎn)時(shí)間常數(shù)ts equ 18; 脈沖信號(hào)個(gè)數(shù)k1 equ p0.3; 按鍵1引腳定義k2 equ p0.4; 按鍵2引腳定義k3 equ p0.5; 按鍵3引腳定義k4 equ p0.6; 按鍵4引腳定義wled equ p3.7; 工作指示燈引腳定義pul equ p1.7; 伺服機(jī)1控制線pur equ p1.6; 伺服機(jī)2控制線start:clr pul; 送出低電平至伺服機(jī)clr pur;call led_bl; led閃動(dòng),表示程序開始執(zhí)行l(wèi)oop:jb k1,x1; 未按下K1鍵則繼續(xù)掃描jnb k1,$; 等按鍵放開來(lái)call led_bl;call go_for; 車體前進(jìn)jmp loop; 繼續(xù)循環(huán)執(zhí)行x1:jb k2,x2; 未按下K2鍵則繼續(xù)掃描jnb k2,$; 等按鍵放開來(lái)call led_bl;call go_bac; 車體后退jmp loop; 繼續(xù)循環(huán)執(zhí)行X2:jb k3,x3; 未按下K3鍵則繼續(xù)掃描Jnb k3,$; 等按鍵放開來(lái)call led_bl;call go_left; 車體左轉(zhuǎn)jmp loop; 繼續(xù)循環(huán)執(zhí)行x3:jb k4,x4; 未按下K4鍵則繼續(xù)掃描jnb k4,$; 等按鍵放開來(lái)call led_bl;call go_right; 車體右轉(zhuǎn)jmp loop; 繼續(xù)循環(huán)執(zhí)行x4:jmp loop; 繼續(xù)循環(huán)執(zhí)行delay: 延時(shí)子程序mov r6,#32h d1:mov r7,#64hdjnz r7,$djnz r6,d1djnz r5,delayretled_bl: 工作指示燈閃爍mov r4,#02hl0:cpl wled; 位反向mov r5,#05h; 延遲50mscall delay;djnz r4,l0;setb wled;LED OFFretpu_back:setb pul; 伺服機(jī)反轉(zhuǎn)控制,送出高電平mov r4,#deba1:call deldjnz r4,a1clr pul; 送出低電平call loop1retpu_for:setb pul; 伺服機(jī)正傳控制,送出高電平mov r4,#deab1:call deldjnz r4,b1clr pul; 送出低電平call loop2ret del:mov r5,#01h; 0.1秒延時(shí)子程序delay1: mov r6,#02hf1:mov r7,#11hdjnz r7,$djnz r6,f1djnz r5,delayretpur_back:setb pur; 伺服機(jī)反轉(zhuǎn)控制,送出高電平mov r4,#debg1:call deldjnz r4,g1clr pur; 送出低電平call loop1retpur_for:setb pur; 伺服機(jī)正傳展示,送出高電平mov r4,#deah1:call deldjnz r4,h1clr pur; 送出低電平call loop2retloop1:mov r4,#0c5hl:call deldjnz r4,lretloop2:mov r4,#0afhl1:call deldjnz r4,l1retgo_for: 車體前進(jìn)mov r3,#tsj1:call pu_backcall pur_fordjnz r3,j1retgo_back: 車體后退mov r3,#tss1:call pu_forcall pur_backdjnz r3,s1retgo_right: 車體右轉(zhuǎn)mov r3,#tsm1:call pu_backcall pur_backdjnz r3,m1retgo_left: 車體左轉(zhuǎn)mov r3,#tsq1:call pu_forcall pur_fordjnz r3,q1retend元 件 清 單元件名稱規(guī)格數(shù)量備注實(shí)驗(yàn)板50*701電阻1K7電容20PF2電容10uF1發(fā)光二極管紅色1發(fā)光二極管綠色1晶振12MHZ1芯片89C511底座40引腳1電源接插件2腳4電源接插件3腳2按鈕5伺服機(jī)FUTABA S30032電池接線盒2干電池5號(hào)4前輪2小車底座117
收藏