龍雪 楊澤雨 溫建成
摘要:基于攝像機遠程操作技術(shù),利用單片機控制步進電機,建立攝像鏡頭的電力驅(qū)動系統(tǒng)。此系統(tǒng)節(jié)約了經(jīng)濟成本,通過人機交互閉環(huán)系統(tǒng)、模塊化等方法,進一步提高了系統(tǒng)的通用性,使其可以應(yīng)用于工程。
關(guān)鍵詞:步進電機;單片機;驅(qū)動;電路設(shè)計
中圖分類號:TB851;TP311.1? 文獻標志碼:A? 文章編號:1671-0797(2022)01-0059-05
DOI:10.19514/j.cnki.cn32-1628/tm.2022.01.016
0? ? 引言
導(dǎo)彈武器和航天飛行器在試驗階段要模擬各種機械沖擊,而發(fā)射點火、飛行過程中預(yù)定功能部件的分離和分系統(tǒng)試驗往往必須在幾秒鐘內(nèi)完成,因此需要高速攝像系統(tǒng)進行記錄和分析。高速攝像機采用的是美國Phantom公司的V12型號,每秒鐘拍攝速度可達6 000幀。目前工作中使用的高速攝像系統(tǒng)采用的攝影鏡頭卡口為Nikon F卡口,這是一種20世紀八九十年代應(yīng)用的機械攝影鏡頭,鏡頭的變焦和調(diào)焦都是手動調(diào)節(jié),通過觀察取景器進行構(gòu)圖和對焦。但是,在某些特定環(huán)境,例如真空環(huán)境或者惡劣環(huán)境下應(yīng)用高速攝像機時,需要對攝像系統(tǒng)進行密封防護,這就造成接觸鏡頭困難。自動鏡頭價格昂貴,為了降低成本,解決手動鏡頭操作不便這一具體問題,設(shè)計出了可以對老式手動機械鏡頭進行電力驅(qū)動的系統(tǒng),使之可以適應(yīng)新的特定工作環(huán)境。
由單片機來控制步進電機的應(yīng)用非常廣泛,目前在現(xiàn)代軍事、精密機械加工、航天航空等領(lǐng)域此類應(yīng)用已經(jīng)越來越深入。用80C51單片機來控制步進電機的轉(zhuǎn)動,進而驅(qū)動鏡頭調(diào)焦環(huán)的扭轉(zhuǎn),可以實現(xiàn)自動/半自動調(diào)焦的功能。
1? ? 系統(tǒng)硬件設(shè)計
1.1? ? 基于單片機的控制系統(tǒng)設(shè)計
單片機是整個電路設(shè)計中的核心裝置,其主要功能為產(chǎn)生脈沖,從而控制步進電機工作。設(shè)計可以用軟、硬件結(jié)合的方式,傳統(tǒng)的環(huán)形分配器由軟件部分替代,可以提高效率,使單片機實現(xiàn)最優(yōu)控制?;趩纹瑱C的強大功能,可以設(shè)計出外圍電路,由外圍電路產(chǎn)生脈沖,控制步進電機,并處理電機驅(qū)動電流檢測模塊檢測到的電流值[1],再將檢測內(nèi)容通過數(shù)碼管顯示出來。
系統(tǒng)的核心采用51系列單片機,完成測距數(shù)據(jù)判讀、步進電機控制、反饋信號比較等工作。外圍電路包括AD/DA轉(zhuǎn)換、數(shù)據(jù)指示、手動輸入接口、電機驅(qū)動等。利用專業(yè)的電機驅(qū)動模塊L298構(gòu)成整個系統(tǒng)的驅(qū)動單元。控制步進電機轉(zhuǎn)動的脈沖信號電流是通過單片機的軟件部分進行編程輸出的,步進電機的旋轉(zhuǎn)角度與脈沖的個數(shù)成正比[2]。步進電機可以進行正向、反向轉(zhuǎn)動調(diào)節(jié),其轉(zhuǎn)動方向與勵磁脈沖產(chǎn)生順序有關(guān)。
單片機同時負責(zé)處理安全模塊中驅(qū)動電流檢測模塊反饋的電流值[3],并利用數(shù)碼管將電機轉(zhuǎn)速、轉(zhuǎn)動方向顯示出來。本系統(tǒng)采用了較為常見的五線四相步進電機,以實現(xiàn)對鏡頭調(diào)焦環(huán)的驅(qū)動。根據(jù)選定的步進電機相數(shù),確定80C51單片機所需的相位信息。一般的步進電機需要12 V左右的電壓,對額定電壓的要求不高,但需要8 A左右的電流,因此要在單片機和步進電機之間增加隔離電路和放大電路,以實現(xiàn)系統(tǒng)預(yù)期功能。
單片機的控制系統(tǒng)框圖如圖1所示。
1.2? ? 系統(tǒng)整體設(shè)計模型
系統(tǒng)組成還包括測距器、編碼盤、反饋電路、手動調(diào)節(jié)接口和相關(guān)支撐結(jié)構(gòu)等。其中測距器與鏡頭同軸安裝,采用超聲波或激光測距模塊,為鏡頭驅(qū)動系統(tǒng)提供數(shù)據(jù)支持,步進電機經(jīng)過齒輪減速和扭矩放大后,通過橡膠齒輪驅(qū)動鏡頭的變焦環(huán)和聚焦環(huán),在步進電機的輸出輪上加裝編碼盤,輸出輪的編碼盤與鏡頭機械調(diào)焦環(huán)上的距離標尺應(yīng)存在對應(yīng)關(guān)系,安裝前通過確定場景對距離和視角進行標校,找出每種鏡頭存在的不同的對應(yīng)關(guān)系,通過分支程序進行選擇,以適應(yīng)不同的鏡頭工作。測量出旋轉(zhuǎn)的角度,經(jīng)過A/D轉(zhuǎn)換后作為反饋輸入至單片機,以形成閉環(huán)控制系統(tǒng)。系統(tǒng)整體設(shè)計框圖如圖2所示。
1.2.1? ? 系統(tǒng)輸入/輸出單元
系統(tǒng)輸入的功能是便于設(shè)置調(diào)節(jié)步進電機的系統(tǒng)參數(shù),使系統(tǒng)操作更為靈活方便,輸入設(shè)備可以使用鍵盤。顯示設(shè)備選用數(shù)碼管,用于顯示當(dāng)前的控制狀態(tài)和電機運行狀態(tài)。
1.2.2? ? 通信電路
通信電路是控制單片機與計算機通信、用來編程的電路部分,通常包括USB接口轉(zhuǎn)串行通信電路、標準串行通信電路、看門狗模塊等,本設(shè)計中采用成熟的電路模塊。
1.2.3? ? 測距單元
在實際應(yīng)用中,需要測量得到試驗件到攝像機靶面的距離。
本文選擇HC-SR04超聲波測距模塊進行測量輸入,超聲波測距的優(yōu)勢在于其指向性好[4],可以傳輸較遠距離,不容易受周圍環(huán)境影響,傳播時間易于計算。同時,超聲波傳感器模塊還具有結(jié)構(gòu)簡單、性能可靠、成本低、易于集成的特點[5],因而在工程中應(yīng)用廣泛。
如圖3所示,超聲波測距模塊包括超聲波發(fā)射單元及超聲波接收單元等。作為核心的控制系統(tǒng),單片機在測量過程中輸出一個約40 kHz的脈沖信號,驅(qū)動超聲波發(fā)射器發(fā)出超聲波脈沖[6],同時通過單片機計時器進行計時。超聲波遇到目標后反向回傳,超聲波接收器接收到空氣中回傳的超聲波,計時器停止計時。此時可知超聲波從發(fā)射到接收的時間參數(shù)t,進一步可計算出傳播距離,即鏡頭靶面到目標的距離。HC-SR04超聲波測距模塊如圖4所示。
超聲波測距模塊的工作原理:通過設(shè)定好的單片機I/O口給HC-SR04超聲波測距模塊的觸發(fā)口發(fā)送一個不小于10 μs的高電平信號,超聲波測距模塊收到觸發(fā)信號后會通過發(fā)射端口發(fā)送8個40 kHz的方波信號,同時檢測是否有信號返回,當(dāng)有信號返回時,通過超聲波測距模塊的ECHO端口輸出一個高電平信號,從ECHO端口檢測到的高電平信號的持續(xù)時間即超聲波信號從發(fā)射端到被測量物體由發(fā)射到返回的時間,由此可利用以下公式計算從超聲波模塊到被測量物體的距離:
超聲波在空氣中的傳播速度與當(dāng)前環(huán)境溫度有關(guān),環(huán)境溫度每升高1 ℃,聲速約加快0.6 m/s,表1給出了超聲波聲速與環(huán)境溫度的關(guān)系。由于本文只涉及常溫環(huán)境,所以只列出了-10~40 ℃的數(shù)據(jù)。
超聲波測距模塊的觸發(fā)接在單片機的P2.1管腳上,ECHO接在單片機的P3.2管腳上,以下是全局變量中關(guān)于測距模塊的管腳定義:
sbit Trig=P2^1;? ? //超聲波模塊管腳定義
sbit Echo=P3^2;
通過對環(huán)境溫度與超聲波速度的關(guān)系進行擬合計算,可以得到以下經(jīng)驗公式:
V=331.4+0.607×T
式中:V為當(dāng)前環(huán)境溫度聲速;T為當(dāng)前環(huán)境溫度。
1.2.4? ? 步進電機
步進電機是將電脈沖信號轉(zhuǎn)變?yōu)榻俏灰苹蚓€位移的開環(huán)控制元件[7],本系統(tǒng)選擇四相八拍步進電機28BYJ-
48。使用脈沖控制步進電機運行,如果控制脈沖連續(xù)施加,步進電機也會不間斷運行。四相步進電機可以在不同的通電方式下運行,本系統(tǒng)選用的步進電機按如下方式運行,即正轉(zhuǎn)時為A-AB-B-BC-C-CD-D-DA順序,反轉(zhuǎn)時為DA-D-CD-C-BC-B-AB-A。通電控制脈沖的順序決定了A、B、C、D相何時通電和斷電。每發(fā)一個脈沖給步進電機,它就轉(zhuǎn)一步,步進電機的轉(zhuǎn)速與兩個脈沖的間隔時間有關(guān),間隔越短則步進電機轉(zhuǎn)得越快。因此,調(diào)整單片機發(fā)出脈沖的頻率,就可以對步進電機進行調(diào)速設(shè)置。
1.2.5? ? 驅(qū)動電路
步進電機的驅(qū)動選用達林頓驅(qū)動器ULN2003。由于單片機接口信號需經(jīng)過放大后才能連到相應(yīng)的電機接口,因此通過ULN2003起到信號放大的作用。當(dāng)鍵盤發(fā)出前進或后退指令后,經(jīng)過單片機的處理,發(fā)出高速脈沖給步進電機的驅(qū)動電路,步進電機根據(jù)脈沖數(shù)精確運轉(zhuǎn)。
本文中,28BYJ-48型步進電機采用四相五線制,通過ULN2003驅(qū)動芯片連接到80C51單片機的P1.4~P1.7輸出管腳上,采用四相八拍工作方式,以下給出四相定義全局變量:
sbit A1=P1^4;
sbit B1=P1^5;
sbit C1=P1^6;
sbit D1=P1^7;
單片機驅(qū)動步進電機的基本原理:從單片機的輸出管腳按需要發(fā)送方波脈沖信號,經(jīng)過ULN2003芯片放大后驅(qū)動電機旋轉(zhuǎn)。本文中選用80C51單片機P1口的4、5、6、7四個管腳輸出方波信號,A1、B1、C1、D1為定義好的全局變量。Stop_flag為停止按鍵按下信號。
步進電機的速度計算公式為:
運轉(zhuǎn)速度=(脈沖頻率×60/步進電機分割數(shù))/減速比64
步進電機分割數(shù)=360/6.625
四相八拍步進電機運行時,N=8;齒距角:Qz=2π/Z,其中Z為轉(zhuǎn)子的齒數(shù);步距角(為轉(zhuǎn)子走一步轉(zhuǎn)過的角度):Qn=Qz/N=2π/NZ=360/(8×50)=0.9°,則步進電機轉(zhuǎn)一圈所需步進數(shù):360/0.9=400。
1.2.6? ? 反饋電路
反饋電路由光柵碼盤、光柵識別器和光電轉(zhuǎn)換電路構(gòu)成,碼盤是反饋單元重要的組成部分,是一種測量角位移的數(shù)字編碼器,光柵識別器檢測碼盤轉(zhuǎn)過的步數(shù),通過轉(zhuǎn)換電路變換后,將測量到的鏡頭轉(zhuǎn)角反饋給單片機。
2? ? 系統(tǒng)軟件程序設(shè)計
硬件平臺設(shè)計完畢后,需要根據(jù)硬件電路對單片機進行系統(tǒng)編程,以滿足操作和控制需求,保證各部分電路可以根據(jù)控制信號正常進行工作。
步進電機應(yīng)用C語言程序設(shè)計流程圖如圖5所示。利用實驗板上的獨立按鍵控制步進電機正轉(zhuǎn)、反轉(zhuǎn)、加速、減速。驅(qū)動方式采用一相勵磁,即4條信號線每次只有一個為高電平,在實驗板數(shù)碼管上象征性地顯示轉(zhuǎn)速。
以下給出步進電機驅(qū)動的核心程序:
void GoRun(K,T_delay)
{
kk=1;
While(kk<=K)//運行總步數(shù)
{
if(stop_flag==1)
{
A1=0;B1=0;C1=0;D1=0;
return;
}
switch (step_index)
{
case 0:A1=1;B1=0;C1=0;D1=0;break;
case 1:A1=1;B1=1;C1=0;D1=0;break;
case 2:A1=0;B1=1;C1=0;D1=0;break;
case 3:A1=0;B1=1;C1=1;D1=0;break;
case 4:A1=0;B1=0;C1=1;D1=0;break;
case 5:A1=0;B1=0;C1=1;D1=1;break;
case 6:A1=0;B1=0;C1=0;D1=1;break;
case 7:A1=1;B1=0;C1=0;D1=1;break;
default:break;
}
if(turn==0)
{
step_index++;
delaynms(T_delay(kk));
kk++;
if(step_index>7)step_index=0;
}
else
{
step_index--;
delaynms(T_delay(kk));
kk++;
if(step_index<0)step_index=7;
}
}
}
以下給出超聲波測距的核心程序:
Get_distance()
{
uint time;
Trig=1;
delay_20us();
Trig=0;
while(!Echo);
succeed_flag=0;
TH0=0;
TL0=0;
TR0=1; ? //計數(shù)器0打開
EX0=1; //外部中斷0打開
while(TH0<234) ;//延時60MS
TR0=0;
EX0=0;
if(succeed_flag==1)
{
time=time_H*256+time_L;
distance=time*(331.4+0.607*T)/2;
}
if(succeed_flag==0)
{
distance=1;
}
return distance;
}
3? ? 電機負載程度分析
電機負載與減速器、傳動部分和鏡頭調(diào)焦環(huán)的阻尼有關(guān)。
機械鏡頭的調(diào)焦環(huán)是安置在鏡頭外側(cè)與鏡頭外徑尺寸相當(dāng)?shù)囊粋€旋轉(zhuǎn)部件,不同的鏡頭尺寸不同,通常從最近對焦距離調(diào)整至無窮遠需轉(zhuǎn)動180°~270°。
使用Nikon AF80-200 mm攝影鏡頭,橡膠齒輪為117齒,步進電機齒輪為14齒,電機傳動比為1:8.4。本文鏡頭從焦距最遠端至最近端旋轉(zhuǎn)約108°,步進電機旋轉(zhuǎn)約160轉(zhuǎn)。
4? ? 試驗結(jié)果
電力驅(qū)動系統(tǒng)全圖和試驗現(xiàn)場照片分別如圖6和圖7所示,在試驗現(xiàn)場溫度為25.6 ℃、測量距離為3.16 m的情況下,電機運動步數(shù)為5 568步,此過程用時14 s。
5? ? 結(jié)語
本文詳細介紹了基于單片機控制步進電機的手動鏡頭電力驅(qū)動系統(tǒng),系統(tǒng)可在密封罩內(nèi)使用,以應(yīng)對特殊環(huán)境。采用80C51單片機作為控制核心,利用其將按鍵電路和顯示電路結(jié)合起來,組成一個操作方便、交互性強的控制系統(tǒng)。系統(tǒng)軟件采用C語言編程,具有易維護性,可以根據(jù)用戶不同需求對軟件進行少量修改,使系統(tǒng)功能得到進一步改善,使用、維護成本低于自動鏡頭。另外,將來如采用激光測距模塊取代超聲波測距模塊,則能進一步擴大系統(tǒng)適用范圍,比如在真空及水下環(huán)境應(yīng)用,此方面的研究具有實際工程意義,可以進一步深入開展。
[參考文獻]
[1] 毛學(xué)英.基于單片機控制步進電機電路的設(shè)計[J].電腦知識與技術(shù),2014,10(9):2104-2106.
[2] 許艷玲,張保,朱紅勇,等.基于單片機的步進電機控制系統(tǒng)及串行通信設(shè)計[J].現(xiàn)代機械,2008(5):56-57.
[3] 賈志成,李春爽.基于單片機控制步進電機的小車位移研究[J].電機與控制應(yīng)用,2013,40(2):34-38.
[4] 李飛,陳喜春.超聲波測距模塊的設(shè)計與實現(xiàn)[J].電子技術(shù),2011,38(1):27-28.
[5] 超聲波測距儀的設(shè)計與實現(xiàn)[EB/OL].(2012-12-03)[2021-09-10].https://wenku.baidu.om/view/52eb4fcd6237ee06eff9aef8941ea76e58fa4abe.html.
[6] 郭天祥.新概念51單片機C語言教程:入門、提高、開發(fā)、拓展全攻略[M].北京:電子工業(yè)出版社,2012.
[7] 郗小鵬,馮立強.步進電機跟蹤伺服系統(tǒng)的設(shè)計[J].現(xiàn)代電子技術(shù),2011,34(23):121-122.
收稿日期:2021-09-16
作者簡介:龍雪(1988—),女,北京人,工程師,研究方向:光學(xué)測量技術(shù)。