基于ATmega16的智能小車控制系統(tǒng)設(shè)計(jì)
引言
當(dāng)前的電動(dòng)小車基本上采取的是基于純硬件電路的一種開(kāi)環(huán)控制方法,這種電動(dòng)小車雖然也具有直線行駛、前進(jìn)、后退、轉(zhuǎn)彎、停車等基本功能,但在某些特殊場(chǎng)合,電動(dòng)小車卻無(wú)法采集到自動(dòng)化控制領(lǐng)域的有用信息。在這種情況下,就需要開(kāi)發(fā)用于自動(dòng)化控制領(lǐng)域的智能小車。為此,本文以ATmega16單片機(jī)為控制核心,用RF2401無(wú)線收發(fā)模塊進(jìn)行遙控通信,同時(shí)用DS18B20進(jìn)行溫度檢測(cè),并采用超聲波等傳感器材來(lái)檢測(cè)信號(hào)和障礙物,最后利用單片機(jī)的串口資源和運(yùn)算、處理能力,開(kāi)發(fā)設(shè)計(jì)了一種智能控制系統(tǒng),從而實(shí)現(xiàn)了小車的測(cè)溫、躲避障礙物等功能。
1總體方案及器件的選取
1.1總體方案
本系統(tǒng)以單片機(jī)為核心,增添其他外圍設(shè)備,如雙電源模塊、超聲波探測(cè)器、顯示模塊、無(wú)線收發(fā)模塊等,以兩個(gè)直流電機(jī)經(jīng)過(guò)減速箱作為驅(qū)動(dòng),通過(guò)主控單元來(lái)處理傳感器上信號(hào),處理數(shù)據(jù)后完成相應(yīng)的操作,以實(shí)現(xiàn)相應(yīng)的功能。小車總體設(shè)計(jì)方案如圖1所示。
圖1 小車總體設(shè)計(jì)方案
1.2器件的選取
本設(shè)計(jì)的車體設(shè)計(jì)由筆者制作。主控芯片采用Atmel公司推出的高性能、高速度、低功耗的ATmega16AVR單片機(jī)作為電動(dòng)車的主控制芯片;電機(jī)選擇使用控制方法較為簡(jiǎn)單的直流減速電機(jī)作為電動(dòng)車的驅(qū)動(dòng)電機(jī);電機(jī)驅(qū)動(dòng)選擇可直接對(duì)電機(jī)進(jìn)行控制,而無(wú)須隔離電路的L298N作為電機(jī)驅(qū)動(dòng)芯片。
系統(tǒng)無(wú)線收發(fā)模塊采用Nordic公司能滿足較大傳輸速率無(wú)線通信需求的NRF24L01芯片;對(duì)于電源的處理,本設(shè)計(jì)采用2節(jié)鋰電池12V來(lái)驅(qū)動(dòng)電機(jī)芯片,然后用7805穩(wěn)壓管來(lái)形成5V電壓給單片機(jī)供電,無(wú)線傳感器NRF24L01的電源用3.3V電壓提供。
2硬件實(shí)現(xiàn)2.1ATmega16單片機(jī)
AVR單片機(jī)是Atmel公司推出的較為新穎的單片機(jī),其顯著的特點(diǎn)為高性能、高速度、低功耗。而ATmega系列是AVR單片機(jī)中的高端產(chǎn)品。單周期可執(zhí)行本指令功能,同時(shí)完成下一條指令的讀取。通常時(shí)鐘頻率用6~16MHz,故最短指令執(zhí)行時(shí)間為250~125ns。還有I/O第二功能,內(nèi)部有時(shí)鐘電路、10BitAD功能,片內(nèi)資源很豐富。
2.2ATmega16最小系統(tǒng)圖
ATmega16單片機(jī)的最小系統(tǒng)如圖2所示。最小系統(tǒng)主要包括晶振電路、電源電路、復(fù)位電路等。
2.3電機(jī)驅(qū)動(dòng)部分
該模塊主要由L298芯片來(lái)控制兩個(gè)電機(jī)的正反轉(zhuǎn),以及改變電機(jī)的轉(zhuǎn)速。L298芯片是一種高壓、大電流雙全橋式驅(qū)動(dòng)器。其中,SENSEA、SENSEB分別為兩個(gè)H橋的電流反饋腳,不用時(shí)可以直接接地。VCC、VS接電源引腳,電壓范圍分別是4.5~7V、2.5~46V,設(shè)計(jì)中VCC端與單片機(jī)電源端共用5V工作電源,VS端獨(dú)立地接9V電源。ENA、ENB為使能端,低電平禁止輸出。IN1、IN2、IN3、IN4為數(shù)據(jù)輸入引腳,OUT1、OUT2、OUT3、OUT4為數(shù)據(jù)輸出引腳。根據(jù)L298N的引腳和輸出引腳的邏輯關(guān)系,將IN1、IN2經(jīng)過(guò)非門連接,IN3、IN4經(jīng)過(guò)非門連接,即IN1和IN2永遠(yuǎn)是相反的,一高一低,IN3、IN4也一樣,通過(guò)改變ENA、ENB就能分別改變左右輪的速度。
在SENSEA、SENSEB端輸出采集電壓信號(hào),再經(jīng)過(guò)LM358運(yùn)放放大,送給ADC處理,即可得到電機(jī)的工作電流,具有過(guò)流保護(hù)功能。圖3所示為系統(tǒng)電機(jī)驅(qū)動(dòng)電路和電流檢測(cè)電路。
2.4穩(wěn)壓電源部分和外接傳感器部分
設(shè)計(jì)時(shí),可采用7805穩(wěn)壓芯片為電路提供穩(wěn)定的5V電壓,1117芯片為電路提供3.3V電壓。由于本系統(tǒng)的電源電路比較簡(jiǎn)單,而且應(yīng)用也比較廣泛,所以本文就不詳細(xì)介紹了。
系統(tǒng)中的傳感器包括溫度傳感器DS18B20、霍爾元件速度傳感器等,其電路都比較簡(jiǎn)單。因此,只需在電路板上預(yù)留3線接口,即電源、接地、數(shù)據(jù)。
2.5顯示部分
本系統(tǒng)使用LCD12864作為電路顯示元件,LCD12864有20個(gè)引腳,圖4所示是LCD12864的驅(qū)動(dòng)電路圖。
本設(shè)計(jì)采用8位數(shù)據(jù)線并行口方式驅(qū)動(dòng),三根控制線為RS(命令/數(shù)據(jù)選擇)、R/W(讀/寫(xiě)控制)、EN(使能端),背光通過(guò)三極管驅(qū)動(dòng),采用PWM來(lái)控制背光亮度。
3小車程序設(shè)計(jì)
小車程序設(shè)計(jì)時(shí),首先進(jìn)行端口初始化,然后進(jìn)行PWM初始化,再NRF24L01初始化,將NRF24L01設(shè)為接收狀態(tài)。收到命令,則執(zhí)行小車的相應(yīng)函數(shù),否則,采集傳感器數(shù)據(jù)。然后設(shè)置NRF24L01為發(fā)射狀態(tài),以發(fā)送數(shù)據(jù)。發(fā)送完畢,再將NRF24L01設(shè)置為接收狀態(tài)。圖5所示是其系統(tǒng)主程序流程圖。
圖5 軟件設(shè)計(jì)主程序流程圖
4結(jié)語(yǔ)
目前,市面上尋跡的、避障的,多傳感器數(shù)據(jù)融合等基于單片機(jī)編程的智能小車已經(jīng)發(fā)展開(kāi)了,用于玩具、大學(xué)生實(shí)踐比賽、工業(yè)數(shù)據(jù)檢測(cè),以及用于生活的智能電動(dòng)小汽車也已有了一定發(fā)展,在充滿環(huán)保、節(jié)能、科技的未來(lái)社會(huì),智能小車的應(yīng)用將無(wú)處不在。
本課題主要研究了多功能智能小車的技術(shù),多功能智能小車的研制課題涉及到機(jī)械電子、傳感器技術(shù)、驅(qū)動(dòng)控制技術(shù)、人工智能等多個(gè)領(lǐng)域的研究及技術(shù)融合。本課題研制的演示系統(tǒng)高度的智能化、人性化,并且具備良好的安全性和環(huán)保性。
20211020_6170329ac29a3__基于ATmega16的智能小車控制系統(tǒng)設(shè)計(jì)