郭興龍
(廣州市市政職業(yè)學(xué)校,廣東廣州 510507)
在科技技術(shù)更新日異月新的情況下,終身學(xué)習(xí)觀念已經(jīng)深入人心,學(xué)習(xí)對于人們來說已經(jīng)必不可少了。但是,人們還是比較傾向于既能夠體驗(yàn)樂趣,又能夠?qū)W到專業(yè)知識的學(xué)習(xí)方法。本系統(tǒng)小車的制作,就是讓學(xué)習(xí)者在制作過程中,不僅體驗(yàn)制作樂趣,又學(xué)習(xí)了較強(qiáng)的專業(yè)知識,集趣味性、專業(yè)性于一體,其可行性是可以驗(yàn)證的。學(xué)習(xí)者完成該項(xiàng)目之后,電路板還可以擴(kuò)展制作其它科技作品,為后續(xù)的可持續(xù)學(xué)習(xí)提供素材。在制作完成過程中,學(xué)習(xí)者能夠詳細(xì)的了解電子元器件焊接技術(shù)、單片機(jī)技術(shù)、PCB板制作、傳感器技術(shù)、通信技術(shù)、電機(jī)控制技術(shù)、PWM控制理論以及上位機(jī)軟件應(yīng)用等的知識[1],為今后的學(xué)習(xí)工作的深入發(fā)展,打下良好基礎(chǔ)?;谶@一出發(fā)點(diǎn),本文詳細(xì)介紹了遙控小車的設(shè)計(jì)與制作過程。
本小車系統(tǒng),主要由遙控發(fā)射板和接收驅(qū)動板兩部分組成,接收驅(qū)動板安裝在小車底盤上,底盤采用左右一個輪子和車架尾部一個萬向輪的三角支撐結(jié)構(gòu)。輪子由T130的直流電動機(jī),經(jīng)過1:48變速后帶動,系統(tǒng)控制左右電機(jī)的轉(zhuǎn)速不一樣,存在一個轉(zhuǎn)速差,從而實(shí)現(xiàn)小車的不同角度的轉(zhuǎn)向控制。整個系統(tǒng)采用可充電電池供電的模式。
系統(tǒng)以NF-04-MI-2.4G無線模塊作為通訊介質(zhì),以STC15W408AS為核心控制器,其系統(tǒng)框圖如圖1所示。發(fā)送板單片機(jī)利用自帶的AD功能,對兩向手柄搖桿電位器的電壓信號進(jìn)行采樣,按一定周期將AD數(shù)據(jù)和按鍵等信息,通過2.4G模塊發(fā)送出去。接收板的2.4G模塊,接收到有效信息之后,接收板單片機(jī)通過查詢的方式,將信息讀取出來。單片機(jī)再結(jié)合避障傳感器信號,利用PWM技術(shù)控制左右兩個電機(jī)正反轉(zhuǎn)運(yùn)動轉(zhuǎn)速,從而實(shí)現(xiàn)小車的各種運(yùn)動狀態(tài)控制。PC機(jī)端上位機(jī)軟件,通過RS232串口與接收板、發(fā)送板通訊連接,將獨(dú)立的地址碼下載到單片機(jī)[2],保存在單片機(jī)的EEROM,這樣,發(fā)送板和接收板地址一樣,就可以通訊連接上,并且保證不同的小車,地址碼不一樣,相互不干擾,能夠獨(dú)立控制。
圖1 遙控小車系統(tǒng)原理框圖
小車硬件設(shè)計(jì),包括主要元器件選型和電路設(shè)計(jì)等部分。
STC15W408AS單片機(jī)是深圳宏晶公司生產(chǎn)一款低成本、低功耗、超高速的、具有ISP功能的8051內(nèi)核單片機(jī),最高工作頻率可以達(dá)到33 MHz,芯片采用SOP-16封裝,I/O口達(dá)到14個管腳,具有1路SPI、3路PWM、8路ADC、3個定時器和1個USART串口,8 kB的flash存儲器容量,512字節(jié)的SRAM和5 kB的EEPROM等資源,工作電壓是2.5~5.5V,內(nèi)部集成了晶振電路、看門狗電路和復(fù)位電路,芯片功能豐富,使用方便,開發(fā)靈活,完全能夠滿足小車控制要求[3]。該芯片具有的ISP在線下載功能,可以通過串口,直接將編譯器生成的可執(zhí)行HEX文件燒錄到單片機(jī),可以多次燒錄,開發(fā)方便。
NF-04-MI-2.4G無線模塊是一款基于BK245芯片設(shè)計(jì)的2.4G無線通信模塊,該模塊采用SPI接口模式,具有高穩(wěn)定性,高性價比,抗干擾強(qiáng),低輻射,性價比高等優(yōu)點(diǎn)。該模塊集成了發(fā)送、接收等鏈路層,有效數(shù)據(jù)量可達(dá)32字節(jié),數(shù)據(jù)收發(fā)全部自動完成,收發(fā)自動產(chǎn)生應(yīng)答信號。發(fā)送時,內(nèi)置CRC校驗(yàn)碼自動生成,接收數(shù)據(jù)時,CRC自動校驗(yàn),能夠檢測數(shù)據(jù)的有效性。該模塊還可以設(shè)置重復(fù)發(fā)送的時間和次數(shù)。單片機(jī)和無線模塊,通過SPI接口相連,接口簡單,傳輸速率快,易于開發(fā)。其主要特點(diǎn)參數(shù)如下:
(1)支持GFSK/FSK等通用調(diào)制方式,支持六通道數(shù)據(jù)收發(fā);
(2)支持2Mbit/s/1Mbit/s/250kbit/s等數(shù)據(jù)速率;
(3)頻點(diǎn)多達(dá)126點(diǎn),實(shí)現(xiàn)多點(diǎn)通信和跳頻通信需要;
(4)內(nèi)部集成高PSRR的LDO;
(5)寬電源電壓范圍:1.9~3.6 V;
(6)功耗低,平均發(fā)射電流低至110 mA;
(7)接收靈敏度:-96dBm@250 kbit/s;
(8)最高發(fā)射功率:+7dBm。
其通訊數(shù)據(jù)包格式如表1所示。
表1 數(shù)據(jù)包格式
其中,引導(dǎo)碼是固定格式的,地址碼3~5字節(jié),由用戶設(shè)置,成套的設(shè)備地址碼必須一樣,否則通訊信息無效。通訊包控制位由相應(yīng)寄存器設(shè)置,控制通訊方式。有效數(shù)據(jù)可由用戶根據(jù)需要,決定數(shù)據(jù)量字節(jié)數(shù),數(shù)據(jù)滿足需要即可,如果數(shù)據(jù)量較大,通訊時間相應(yīng)增加。CRC校驗(yàn)碼,在發(fā)送模式下,由系統(tǒng)自行計(jì)算產(chǎn)生,并且自動發(fā)送;在接收模式下,系統(tǒng)根據(jù)接收的數(shù)據(jù)自動核對校驗(yàn)碼,如果校驗(yàn)碼不對,接收的數(shù)據(jù)將被舍棄。
為了同時滿足單片機(jī)和無線模塊同時工作,提高芯片工作穩(wěn)定性,發(fā)送板的工作電壓統(tǒng)一采用3.3 V。發(fā)送板主要由兩節(jié)五號電池供電,電池電壓經(jīng)過升壓芯HT7733S轉(zhuǎn)換之后,電壓穩(wěn)定在3.3 V,滿足系統(tǒng)工作要求。HT7733S是一款低噪聲,低紋波的同步型DC-DC升壓轉(zhuǎn)換芯片,采用SOT-23封裝,啟動電壓低至0.7 V,轉(zhuǎn)換效率可達(dá)80%,輸出電壓誤差范圍為±2.5%,輸出電流可達(dá)100 mA。外圍電路簡單,只需要搭配一個10μH的功率電感即可,如圖2所示。
圖2 HT7733S電源設(shè)計(jì)電路
遙控小車動力常用兩個130直流電機(jī),其額定工作電壓是5 V,工作電壓范圍是3~9 V,空載電流是130 mA,小車一般使用可充電鎳鎘電池組,標(biāo)稱電壓是7.2 V,為滿足單片機(jī)和無線模塊電源需要,采用AMS1117-3.3電源芯片設(shè)計(jì)電路。AMS1117-3.3芯片是一款低功耗、低紋波的線性穩(wěn)壓電源集成模塊,采用SOT-223封裝,輸入電壓范圍為4~15 V,輸出電壓3.3 V,輸出電流可達(dá)1 A,電路簡單、可靠,能夠完全滿足電路設(shè)計(jì)要求。電路設(shè)計(jì)如圖3所示。
圖3 驅(qū)動板電源設(shè)計(jì)
小車的運(yùn)動,主要是由兩個130直流有刷電動機(jī)驅(qū)動,電機(jī)驅(qū)動采用MX612E芯片,其內(nèi)部采用H橋電路結(jié)構(gòu)設(shè)計(jì),電流內(nèi)阻低,內(nèi)部集成了N溝道和P溝道的功率MOSFET管,工作電壓范圍為2~9.6 V,工作可持續(xù)電流達(dá)1.4 A,峰值電流可達(dá)2.5 A,具有過熱保護(hù)功能,比較適合驅(qū)動線圈、馬達(dá)等感性負(fù)載。其功能圖框如圖4所示。
圖4 MX612E原理結(jié)構(gòu)圖
如圖4所示,OUTA和OUTB接直流電動機(jī),VCC是邏輯控制電源,VDD是電機(jī)電源。INA和INB是控制電機(jī)的正反轉(zhuǎn)的邏輯輸入,連接到單片機(jī)的I/O口管腳。根據(jù)INA和INB輸入值,決定該芯片的工作狀態(tài),其真值表如表2所示。
表2 真值表
MX612E芯片四種工作狀態(tài)如圖5所示。
當(dāng)INB或者INA為邏輯高電平的時候,另外一邊輸出PWM信號,直流電動機(jī)在導(dǎo)通和剎車模式之間切換,電機(jī)轉(zhuǎn)速將受到PWM信號占空比控制,達(dá)到穩(wěn)定平滑調(diào)速效果。在剎車模式下,馬達(dá)儲存的能量通過低邊的NMOS管快速釋放。此外,如果PWM信號工作頻率過低,在PWM占空比較低的情況下,電機(jī)由剎車模式進(jìn)入導(dǎo)通模式下,會導(dǎo)致電機(jī)出現(xiàn)無法平滑轉(zhuǎn)動的情況。為減小電機(jī)噪音,PWM信號頻率控制在10 kHz~50 kHz的范圍之內(nèi)。
圖5 MX612E的四種工作模式
避障傳感器,主要采用紅外傳感器檢測,由紅外發(fā)光二極管和接收二極管組成。紅外發(fā)射二極管發(fā)射波長約為940 nm的紅外線,如沒有遇到障礙物,紅外線將散射出去,遇到障礙物,紅外線被障礙物反射回來,光敏二極管接收到紅外線后,根據(jù)紅外線的光輻照度,其內(nèi)阻發(fā)生變化。
紅外傳感器避障利用此原理,電路設(shè)計(jì)如圖6所示,發(fā)射管不斷發(fā)出紅外線,接收管與電阻串聯(lián),連接到電壓運(yùn)放的同相端,當(dāng)接收管接收紅外線之后,內(nèi)部導(dǎo)通,使同相端輸入電壓,與反相端電壓比較,輸出信號傳輸?shù)絾纹瑱C(jī)。調(diào)整電位器,可以調(diào)節(jié)紅外傳感器的檢測距離。
圖6 避障紅外傳感器電路設(shè)計(jì)
遙控小車發(fā)送板,為提高通訊可靠性,NF-04-MI-2.4G模塊采用250 kbit/s的通訊速率,地址碼為5字節(jié),CRC校驗(yàn)為2字節(jié),重復(fù)發(fā)送次數(shù)是3次,通訊有效數(shù)據(jù)是5字節(jié)。通過計(jì)算,完成一次發(fā)送的時間約為0.48 ms,為保證CPU具有足夠的時間處理,采用10 ms的周期通訊一次。發(fā)送板單片機(jī)對兩個搖桿電位器進(jìn)行連續(xù)電壓采樣,為提高數(shù)據(jù)的有效性,數(shù)據(jù)經(jīng)過平均值處理。10 ms的周期,采用定時器控制,定時時間一到,單片機(jī)將搖桿的AD數(shù)據(jù)、按鍵等信息發(fā)送出去。如果發(fā)送失敗,無線模塊自動重發(fā),若超過了設(shè)置的重復(fù)次數(shù),單片機(jī)讀取到發(fā)送失敗的信息后,指示燈以1 Hz的頻率閃爍,如果通訊成功,以25 Hz的頻率閃爍。程序設(shè)計(jì)流程圖如圖7所示。信號的AD采樣,采用中斷方式,采樣實(shí)時性要求不高,為降低CPU工作負(fù)荷,采樣周期是540時鐘,采樣次數(shù)達(dá)到15次之后,取平均值作為一次有效數(shù)據(jù),其工作流程圖如圖8所示。
圖7 發(fā)送程序流程圖
圖8 AD采樣流程圖
接收驅(qū)動板采用查詢控制方式。主函數(shù)不斷查詢無線模塊,檢測是否接收到有效信息。如果沒有檢測到有效信息或者通訊失敗,程序?qū)㈦妱訖C(jī)做停機(jī)處理。如果接收到有效信息,根據(jù)AD采樣到的數(shù)據(jù),決定小車的運(yùn)動狀態(tài)。電機(jī)的轉(zhuǎn)速,由AD數(shù)據(jù)經(jīng)過運(yùn)算,利用單片機(jī)自帶的PWM發(fā)送控制寄存器,產(chǎn)生PWM信號,直接控制直流電動機(jī)的轉(zhuǎn)速,從而使小車速度平滑控制,系統(tǒng)采用開環(huán)的控制方式。驅(qū)動板接收程序流程圖如圖9所示。
系統(tǒng)初始化部分程序:
Timer0Init();
InitADC();
InitPCA();
Read_ADDRESS();
NF_04_MI_Init();
單片機(jī)STC15W408AS的PWM輸出,主要是由PCA模塊產(chǎn)生。PCA含是一個16位定時/計(jì)數(shù)器,其內(nèi)部結(jié)構(gòu)如圖所示,其時基可以是系統(tǒng)時鐘SYSclk、定時器0溢出和外部輸入ECI(P1.2),通過設(shè)置CMOD和CCON寄存器來選擇[3]。
為了提高電機(jī)控制的平滑度,PWM控制采8位的控制方式,其頻率是:
fPWM=PCA時基頻率/256
為提高系統(tǒng)處理速度,單片機(jī)采取內(nèi)部時鐘,沒有經(jīng)過分頻,其工作時鐘頻率是18.432 MHz的。PCA時基采用SYSclk/4,由上式計(jì)算:
fPWM=18 kHz,該頻率滿足電機(jī)控制的頻率范圍。
PWM控制初始化程序:
圖9 接收程序流程圖
CCON=0; //初始化PCA控制寄存器
CMOD=0x0a; //設(shè)置PCA時鐘源sysclk/4
CL=0; //復(fù)位PCA計(jì)數(shù)寄存器
CH=0;
PCA_PWM0=0x00;//PCA模塊工作于8位PWM
PCA_PWM1=0x00;PCA_PWM2=0x00;
為了防止不同的遙控小車控制信號相互干擾控制,為每個無線模塊分配個地址,利用VB6.0開發(fā)平臺,開發(fā)上位機(jī)軟件。串口通訊編程主要基于MSComm控件實(shí)現(xiàn)數(shù)據(jù)發(fā)送和接收,傳輸協(xié)議由用戶自定義。地址碼由軟件生成,其中,班級、學(xué)號等信息由下拉控件選擇,軟件按照一定的規(guī)程,生成不一樣的地址碼。串口通訊幀格式由引導(dǎo)碼、數(shù)據(jù)和校驗(yàn)碼組成,引導(dǎo)碼固定,數(shù)據(jù)是班級、學(xué)號變換組成,校驗(yàn)碼是幀之前所有數(shù)據(jù)的累加和后,取低兩位字節(jié)。
MSComm串口控件初始化程序:
Private Sub ComInit()
Dim TempTxt As String
On Error GoTo Comm_Error
MSComm1.CommPort = Val(Right(Combo1.Text,1))
MSComm1.Settings=Val(Combo2.Text)&",M,8,1"
MSComm1.InputMode=comInputModeBinary
MSComm1.InBufferCount=0
MSComm1.RThreshold=7
MSComm1.PortOpen=True
Exit Sub
MSComm串口控件發(fā)送數(shù)據(jù)程序:
MSComm1.InBufferCount=0
MSComm1.OutBufferCount=0
SendData(0)=&H55
SendData(1)=&HAD
SendData(2)=&H65
SendData(3)=Combo3.ListIndex*3+100
SendData(4)=Val(Combo4.Text)+43
SendData(5)=Val(Combo4.Text)+77
SendData(6) = (CLng(SendData(0)) +CLng(SendData(1))
+CLng(SendData(2))+CLng(SendData(3))+CLng(SendData(4))
+CLng(SendData(5)))Mod 256
MSComm1.Output=SendData
經(jīng)過制作試驗(yàn),本系統(tǒng)遙控小車,能夠?qū)崿F(xiàn)前進(jìn)、后退和轉(zhuǎn)向等狀態(tài)控制,遇到障礙物,能夠及時停下來,在空曠地方,有效遙控范圍達(dá)到70多米。其中PWM控制的應(yīng)用,使小車的運(yùn)行速度可連續(xù)調(diào)節(jié),特別是在轉(zhuǎn)彎的過程中,通過調(diào)節(jié)兩個輪子轉(zhuǎn)速差,可以控制轉(zhuǎn)向的大小,提升了用戶操控性體驗(yàn)性,克服了傳統(tǒng)的小車轉(zhuǎn)彎要么不轉(zhuǎn)、要么全轉(zhuǎn),轉(zhuǎn)向角度無法控制的弊端。通過上位機(jī)軟件,每套系統(tǒng)小車設(shè)置不一樣的地址后,多部小車同時運(yùn)行,沒有出現(xiàn)相互控制或者干擾的現(xiàn)象。小車驅(qū)動續(xù)航能力,根據(jù)電池容量大小不一樣而不同。不足之處是,小車出于成本考慮,沒有使用傳感器檢測將電機(jī)轉(zhuǎn)速反饋給單片機(jī),采用開環(huán)控制,在運(yùn)行過程中,一旦某一邊輪子負(fù)載過重,小車就偏離了原先路徑。整體上,遙控小車的功能基本上達(dá)到預(yù)期效果。
參考文獻(xiàn):
[1]李全利.單片機(jī)原理及接口技術(shù)[M].北京:高等教育出版社,2009.
[2]徐愛鈞.keil C51單片機(jī)高級語言應(yīng)用編程技術(shù)[M].北京:電子工業(yè)出版社,2015.
[3]宏晶科技公司官網(wǎng).STC15W404AS系列資料.http://www.stcmcu.com/[EB/OL].
[4]深圳市安信可科技有限公司.NF-04-MI無線模塊資料.https://www.ai-thinker.com/home[EB/OL].
[5]深圳市嘉立創(chuàng)科技發(fā)展有限公司.芯片資料.http://www.sz-jlc.com/home/index.html[EB/OL].
[6]重慶中科芯億達(dá)電子有限公司.MX612E芯片資料.http://mixic.com.cn/[EB/OL].
[7]李俊.Visual Basic 6.0程序設(shè)計(jì)與應(yīng)用教程[M].北京:電子工業(yè)出版社,2013.