吳蓬勃,張金燕,王拓,孫會(huì)澤,南陪鈞,于逸龍,劉慧,劉濤
(1.石家莊郵電職業(yè)技術(shù)學(xué)院,河北石家莊,050021;2.河北工程技術(shù)學(xué)院,河北石家莊,050091)
隨著疫情的常態(tài)化[1],許多高校的實(shí)踐課程無法正常在線下開展,需要在線上進(jìn)行或者線上、線下同步進(jìn)行。另一方面,在實(shí)踐過程中,經(jīng)常存在物品損壞的情況,影響了正常教學(xué)開展。
本文以單片機(jī)課程為例,以智能小車為載體,論述了如何通過Proteus 虛擬仿真和實(shí)物相結(jié)合的方式進(jìn)行單片機(jī)課程教學(xué)的過程[2~4]。
智能小車組成,如圖1 所示。智能小車主要面向單片機(jī)的初級(jí)入門人員,所以選擇了較為簡(jiǎn)單、經(jīng)典、可進(jìn)行軟件仿真的STC89C52。智能小車的外部設(shè)備主要包括:黑線循跡、紅外避障和超聲波測(cè)距傳感器;LCD 顯示單元;直流電機(jī)驅(qū)動(dòng)模塊和4 路直流電機(jī);同時(shí),采用串口連接藍(lán)牙模塊,實(shí)現(xiàn)與手機(jī)或者PC 的通信。
圖1 智能小車組成
單片機(jī)最小系統(tǒng)與電機(jī)驅(qū)動(dòng)單元硬件電路圖,如圖2所示。單片機(jī)最小系統(tǒng),包括:復(fù)位、時(shí)鐘電路、P0 口上拉電阻、用戶按鍵和串口選擇端子;其中,通過串口選擇端子實(shí)現(xiàn)了串口的復(fù)用,計(jì)算機(jī)可通過CH340(USB 轉(zhuǎn)串口芯片)與單片機(jī)實(shí)現(xiàn)串口通信、串口程序燒寫以及藍(lán)牙模塊調(diào)試。
圖2 單片機(jī)最小系統(tǒng)與電機(jī)驅(qū)動(dòng)單元硬件電路圖
電機(jī)驅(qū)動(dòng)部分,通過L293D 實(shí)現(xiàn)四路電機(jī)的驅(qū)動(dòng)。L293D 為推挽四通道驅(qū)動(dòng)器,工作電壓4.5V ~36V,電流最大600mA,內(nèi)部有2 路H 橋,可以同時(shí)驅(qū)動(dòng)2 路電機(jī)運(yùn)動(dòng)。通過1 腳EN1 可開啟第一路H 橋,通過2腳IN1、7 腳IN2 可控制3 腳OUT1、6 腳OUT2 的高低電平,OUT1 和OUT2 控制左側(cè)的兩路并聯(lián)直流電機(jī)運(yùn)動(dòng);通過9 腳EN2 可以開啟第2 路H 橋,通過OUT3和OUT4 控制右側(cè)兩路并聯(lián)直流電機(jī)運(yùn)動(dòng)。
圖3為單片機(jī)最小系統(tǒng)與電機(jī)驅(qū)動(dòng)單元的Proteus仿真圖,除了單片機(jī)與L293D 驅(qū)動(dòng)電路外,還增加了四路直流電機(jī)(需設(shè)置為6V 電壓)。在編寫好單片機(jī)電機(jī)驅(qū)動(dòng)程序后,可以通過Proteus 仿真電路驗(yàn)證程序的邏輯功能,為程序在實(shí)車上的正常運(yùn)行奠定基礎(chǔ),有利于進(jìn)行軟硬件故障排查和降低車輛的電機(jī)損耗。
圖3 單片機(jī)最小系統(tǒng)與電機(jī)驅(qū)動(dòng)單元仿真圖
黑線循跡單元硬件電路圖,如圖4 所示。智能小車包括左右2 路黑線循跡單元,主要采用反射型光電探測(cè)器RPR220 實(shí)現(xiàn)黑線和白色地面的識(shí)別。RPR220 通過砷化鎵發(fā)光二極管向外發(fā)射紅外光,通過高靈敏度硅平面光電三極管接收反射光,如遇到黑色物體,則光電三極管將接收到很少的反射光,其自身的電阻值將增加;如遇到白色或者淺色物體,則有更多的紅外光被接收到,其自身的阻值將減小。RPR220 的光電三極管與電阻R6(以左循跡為例,見圖4)對(duì)5V 進(jìn)行分壓,地面黑白顏色的變化,將導(dǎo)致R6 上端電壓發(fā)生變化,R6 上端電壓與電位器R1 電壓送入LM358AD 進(jìn)行電壓比較,從而向外輸出高低電平,單片機(jī)通過IO 口讀取該信號(hào),從而判斷小車循跡傳感器下面是黑線還是白色地面。實(shí)際中,可通過電位器R1 和R9 調(diào)節(jié)黑線探測(cè)距離。
圖4 黑線循跡單元硬件電路圖
左右兩路黑線循跡單元的Proteus 仿真電路,如圖5所示。仿真圖中,采用了與實(shí)物RPR220 功能相近的仿真元件ALS-PT19 來模擬光的變化,在右側(cè)的輸出端,通過直流電壓表可觀察輸出信號(hào)的電壓值。通過圖5 可知,左循跡單元設(shè)置的光線較強(qiáng),循跡電路輸出電壓為0.02V;右側(cè)循跡單元設(shè)置的光線較弱,循跡電路輸出電壓為5.00V。需要注意一點(diǎn),仿真中LM358 輸出端信號(hào)較弱,需要添加2個(gè)非門增加信號(hào)強(qiáng)度,才可以被單片機(jī)正常識(shí)別。
圖5 黑線循跡單元仿真圖
紅外避障單元硬件電路與黑線循跡(如圖4)類似,區(qū)別在于傳感器從RPR220 更換為紅外發(fā)射管和紅外解碼器,在此不再贅述。紅外避障單元Proteus 仿真電路,如圖6所示,基本原理與黑線循跡相同,紅外傳感器采用了光敏電阻TORCH_LDR。在圖6 中,左側(cè)避障傳感器前方?jīng)]有障礙物,反射回來的光線較少,紅外避障電路輸出5.00V 電壓;右側(cè)避障傳感器前方有障礙物,紅外避障電路輸出0.00V電壓。
圖6 紅外避障單元仿真圖
超聲波測(cè)距與LCD 顯示單元仿真電路,如圖7 所示,主要包括:HCSR04 超聲波測(cè)距模塊和LM016L 液晶顯示模塊。通過HCSR04 的距離(單位為cm)調(diào)節(jié)按鈕,可模擬超聲波模塊到物體的距離,通過單片機(jī)的程序處理后,在LM016L 液晶模塊上顯示實(shí)際測(cè)量距離。實(shí)際中距離的測(cè)量值是存在誤差的,這一現(xiàn)象在仿真中也得到了體現(xiàn);通過不斷優(yōu)化程序,使得仿真中距離的測(cè)量值接近實(shí)際值,從而提高了在真實(shí)小車上超聲波測(cè)距的準(zhǔn)確率。
圖7 超聲波測(cè)距與LCD 顯示仿真圖
智能小車的軟件部分包括:直流電機(jī)調(diào)速和運(yùn)動(dòng)控制、黑線循跡、紅外避障、超聲波測(cè)距與LCD 顯示。其中,直流電機(jī)調(diào)速通過定時(shí)器產(chǎn)生PWM 波實(shí)現(xiàn),直流電機(jī)運(yùn)動(dòng)控制、黑線循跡、紅外避障和LCD 顯示主要通過IO 口的控制與檢測(cè)實(shí)現(xiàn)。本部分重點(diǎn)對(duì)超聲波測(cè)距進(jìn)行介紹。
超聲波測(cè)距的時(shí)序圖,如圖8 所示。單片機(jī)通過IO 口向超聲波測(cè)距模塊的觸發(fā)引腳TR 發(fā)送最少10μs 的高電平脈沖,然后,超聲波測(cè)距模塊內(nèi)部的單片機(jī)會(huì)通過升壓電路向外發(fā)射8 個(gè)40kHz 的脈沖信號(hào);超聲波遇到前方障礙物會(huì)產(chǎn)生反射回波,回波經(jīng)超聲波測(cè)距模塊處理后,通過ECHO 引腳向外輸出一定寬度的高電平脈沖。單片機(jī)通過測(cè)量ECHO 引腳輸出脈沖信號(hào)的寬度,即可計(jì)算出小車到前方障礙物的實(shí)際距離。
圖8 超聲波測(cè)距時(shí)序圖
超聲波測(cè)距軟件流程圖,如圖9 所示。首先初始化用于脈沖測(cè)量的定時(shí)器,向超聲波測(cè)距模塊的TR引腳發(fā)送15μs 的高電平脈沖;然后,判斷回波引腳ECHO 是否為高電平,如果為高電平,則證明回波脈沖開始出現(xiàn),此時(shí)開啟定時(shí)器;當(dāng)ECHO 引腳變低時(shí),說明回波脈沖已經(jīng)結(jié)束,此時(shí)關(guān)閉定時(shí)器。根據(jù)定時(shí)器的計(jì)數(shù)值Count,結(jié)合晶振頻率Fosc 和聲波在空氣中的傳播速度,即可計(jì)算出相應(yīng)的距離。
圖9 超聲波測(cè)距軟件流程圖
圖10為智能小車黑線循跡和超聲波測(cè)距的實(shí)際效果。
圖10 智能小車測(cè)試效果
本文基于虛擬仿真與實(shí)物相結(jié)合的方法,設(shè)計(jì)了一套智能小車系統(tǒng),實(shí)現(xiàn)了虛擬仿真與實(shí)物硬件電路的映射;通過虛擬仿真驗(yàn)證了軟件功能,有利于線上教學(xué)的開展,有利于實(shí)車驗(yàn)證時(shí)的故障排查和降低車輛的硬件損耗。為當(dāng)前疫情常態(tài)化下單片機(jī)課程的實(shí)踐教學(xué),提出了一套切實(shí)可行的方案。