《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于STM32單片機(jī)的兩軸圖書錄入系統(tǒng)
基于STM32單片機(jī)的兩軸圖書錄入系統(tǒng)
來源:微型機(jī)與應(yīng)用2014年第4期
盧仁智,劉海濤,劉炎南
(武漢科技大學(xué) 信息科學(xué)與工程學(xué)院,湖北 武漢430081)
摘要: 介紹了一種基于單片機(jī)的兩軸圖書錄入系統(tǒng)的設(shè)計(jì)。最終實(shí)現(xiàn)的錄入系統(tǒng)能夠按照編寫的流程對圖書進(jìn)行翻頁、壓平、拍照等動作?;诖藱C(jī)械可實(shí)現(xiàn)圖書館、檔案館藏書、資料的自動電子化轉(zhuǎn)檔。本機(jī)械全部由單片機(jī)自動控制,避免了人工完成這些機(jī)械的重復(fù)勞動。
Abstract:
Key words :

 摘  要: 介紹了一種基于單片機(jī)的兩軸圖書錄入系統(tǒng)的設(shè)計(jì)。最終實(shí)現(xiàn)的錄入系統(tǒng)能夠按照編寫的流程對圖書進(jìn)行翻頁、壓平、拍照等動作。基于此機(jī)械可實(shí)現(xiàn)圖書館、檔案館藏書、資料的自動電子化轉(zhuǎn)檔。本機(jī)械全部由單片機(jī)自動控制,避免了人工完成這些機(jī)械的重復(fù)勞動。
 關(guān)鍵詞: 圖書錄入;單片機(jī);自動化步進(jìn)電機(jī);氣路

 紙質(zhì)檔案、書籍的電子化轉(zhuǎn)檔一直是比較機(jī)械繁瑣的工作,本文介紹了一種圖書錄入系統(tǒng)的設(shè)計(jì)。該設(shè)計(jì)能夠?qū)⒐潭ㄔ阡浫胛恢蒙系膱D書逐頁翻頁并拍照。目前具有類似功能的機(jī)械在全球并不多見,本設(shè)計(jì)在實(shí)際中有較高的應(yīng)用價值。本設(shè)計(jì)使用STM32[1]單片機(jī)作為控制核心控制機(jī)械的兩大系統(tǒng):運(yùn)動控制系統(tǒng)和氣路控制系統(tǒng)。最終兩部分系統(tǒng)相互配合完成書頁的翻頁、壓平動作。
1 圖書錄入系統(tǒng)框圖
    如圖1所示,整個系統(tǒng)以STM32F103ZET6單片機(jī)為控制核心,它負(fù)責(zé)輸出系統(tǒng)的運(yùn)動控制信號和電磁閥控制信號。單片機(jī)的信號經(jīng)放大電路放大、穩(wěn)壓后輸出到步進(jìn)電機(jī)驅(qū)動器和電磁閥上。步進(jìn)電機(jī)驅(qū)動器接收單片機(jī)的控制信號來操作步進(jìn)電機(jī)運(yùn)動。


    系統(tǒng)的執(zhí)行端為4個步進(jìn)電機(jī)和3個電磁閥。4個步進(jìn)電機(jī)分為兩組分別執(zhí)行水平方向和豎直方向的運(yùn)動。步進(jìn)電機(jī)驅(qū)動接收單片機(jī)的信號,控制步進(jìn)電機(jī)運(yùn)行的具體方向和距離。電磁閥按照單片機(jī)的信號控制由氣泵產(chǎn)生的高壓氣流運(yùn)動,參與圖書的翻頁動作。
2 機(jī)械部分
    機(jī)械部分作為整個系統(tǒng)的支撐,是控制的最終執(zhí)行端。除了固定框架,功能性的機(jī)械有兩個部分:運(yùn)動機(jī)械和氣路。
2.1 運(yùn)動機(jī)械
    運(yùn)動機(jī)械由步進(jìn)電機(jī)、傳動皮帶和運(yùn)動框架組成,在水平方向和豎直方向分別設(shè)置了一對步進(jìn)電機(jī)用來操作水平方向和豎直方向的運(yùn)動。
    給定豎直方向和水平方向步進(jìn)電機(jī)的方向和脈沖數(shù)以后,吸盤可以運(yùn)動到機(jī)械限制允許的任意坐標(biāo)。機(jī)械運(yùn)動的控制通過對步進(jìn)電機(jī)驅(qū)動器設(shè)置對應(yīng)的運(yùn)動方向以及運(yùn)動脈沖數(shù)實(shí)現(xiàn)。
2.2 氣路
    氣路由氣泵、電磁閥、真空閥、吸盤及其升降缸組成。氣泵產(chǎn)生的高壓氣流通過電磁閥、真空閥配合在吸盤處產(chǎn)生吹氣、吸氣氣流,以及通過升降氣缸控制吸盤的升降。
    與吸盤相關(guān)的有4個動作:吸盤上升、吸盤下降、吸盤吸氣和吸盤吹氣。吸盤的上升與下降通過向氣缸的對應(yīng)口吹入高壓氣流來完成,這兩個動作由同一個閥控制。吸盤吹氣動作由吸盤氣流控制閥直接將高壓氣流接入吸盤氣口即可完成。氣路示意圖如圖2所示。

    比較復(fù)雜的是吸盤的吸氣。由于氣泵產(chǎn)生的是高壓氣流,而吸氣需要吸盤處氣壓低于大氣壓,即需要產(chǎn)生負(fù)壓。因此氣路里面用到了真空閥,在真空閥入口吹入高壓氣流則其出口處就能產(chǎn)生低于大氣壓的負(fù)壓。在執(zhí)行其他動作時,負(fù)壓是不必要的,所以在真空閥之前加裝了氣流控制閥控制真空閥入口氣流的通斷。只有在需要吸盤吸氣時氣流控制閥才打開。
2.3 系統(tǒng)相關(guān)電氣設(shè)備的原理
    機(jī)械部分的電氣設(shè)備主要為步進(jìn)電機(jī)和電磁閥,它們是控制信號的最終執(zhí)行端。通過它們對電信號的執(zhí)行來完成單片機(jī)中存儲的動作。步進(jìn)電機(jī)的動作有水平運(yùn)動和豎直運(yùn)動,分別由對應(yīng)方向上的一對步進(jìn)電機(jī)來完成。電磁閥控制的氣路動作有4種,由氣缸控制閥、真空閥氣流控制閥、吸盤氣流控制閥3個電磁閥配合完成。
2.3.1 步進(jìn)電機(jī)的電氣原理
    步進(jìn)電機(jī)是一種按照固定步進(jìn)角轉(zhuǎn)動的無刷式同步電機(jī)。其轉(zhuǎn)角即使沒有反饋也能精確控制,所以常用于開環(huán)系統(tǒng)中進(jìn)行精確的位置控制。步進(jìn)電機(jī)不像有刷直流電機(jī),給以工作電壓就會轉(zhuǎn)動。它有多組齒狀磁極圍繞轉(zhuǎn)子排列。磁極由外部控制電路(如微控制器)控制供電。當(dāng)步進(jìn)電機(jī)工作時,第一組磁極通電,定子齒輪的齒被磁極吸引。齒輪的齒與第一組磁極對齊后,它們會與下一組磁極有一個較小的角度偏差。所以,當(dāng)下一組磁極通電且第一組磁極斷開后,定子齒輪又轉(zhuǎn)動一個微小的角度與當(dāng)前通電的磁極對齊。步進(jìn)電機(jī)轉(zhuǎn)動的過程就是不斷地重復(fù)這個動作。每個微小轉(zhuǎn)動被稱為“步級角”,整數(shù)倍的步級角構(gòu)成一圈完整的旋轉(zhuǎn)。因此步進(jìn)電機(jī)可以按照精確的角度旋轉(zhuǎn)。
2.3.2 電磁閥的電氣原理
    本設(shè)計(jì)中有3個電磁閥,分別是:氣缸控制閥、真空閥氣流控制閥和吸盤氣流控制閥。它們通過接收24 V的0/1信號來控制接入其內(nèi)的氣流的通斷以及方向。
    氣缸控制閥有一個氣流輸入口和兩個氣流輸出口,氣流輸入口輸入的是來自氣泵的高壓氣流,氣流輸出口分別接升降氣缸的上升氣流口和下降氣流口。該閥響應(yīng)0/1信號,當(dāng)信號為1時,輸入口的氣流被導(dǎo)入下降氣流口,則氣缸上部的高壓氣流推動活塞下降;反之,氣流被導(dǎo)入上升氣流口,氣缸下部累積高壓氣體推動活塞上升。
    真空閥氣流控制閥只有一個氣流輸入口和一個氣流輸出口,它的作用是控制入口到出口的氣流的通斷,進(jìn)而控制與其氣流出口相連接的真空產(chǎn)生閥是否產(chǎn)生負(fù)壓。當(dāng)真空閥氣流控制閥信號為1時,出口與入口導(dǎo)通,高壓氣流進(jìn)入真空產(chǎn)生閥,產(chǎn)生負(fù)壓。當(dāng)真空閥氣流控制閥信號為0時,出口與入口斷開,真空產(chǎn)生閥沒有高速氣流通過,無法產(chǎn)生負(fù)壓。
    吸盤氣流控制閥有兩個氣流輸入口一個氣流輸出口,兩個氣流輸入分別為來自氣泵的高壓氣流和來自真空閥的負(fù)壓氣流(只有當(dāng)真空閥氣流控制閥的信號為1時這個口才有負(fù)壓氣流)。氣流輸出口接到吸盤的氣孔上。由此,吸盤氣流閥可根據(jù)電信號控制吸盤的氣流為吸氣還是吹氣。當(dāng)信號為1時,氣流輸出口被連接到高壓氣流輸入口上,吸盤處產(chǎn)生吹氣氣流。當(dāng)信號為0,且真空產(chǎn)生信號為1時,氣流輸出口被連接到負(fù)壓氣流輸入口上,吸盤處產(chǎn)生吸氣氣流。
3 放大電路
    由于單片機(jī)的驅(qū)動能力有限,為了驅(qū)動步進(jìn)電機(jī)集成控制器的光耦合和電磁閥的24 V信號,設(shè)計(jì)了以ULN2003A和TIP127組成的放大電路。放大電路主要分為兩個部分:光耦合驅(qū)動和電磁閥驅(qū)動。
3.1 步進(jìn)電機(jī)驅(qū)動器光耦合驅(qū)動電路
    圖3所示為光耦合驅(qū)動電路,電路的輸入為左邊的P5和P6接口,連接到單片機(jī)的對應(yīng)管腳,管腳分別提供如下信號:4個集成控制器的使能信號E、4個集成控制器的方向信號D和每個方向上步進(jìn)電機(jī)的運(yùn)動脈沖信號PUL,經(jīng)過2003A芯片內(nèi)部的達(dá)林頓管穩(wěn)壓后變換為可驅(qū)動光耦合的信號,通過P1、P2、P3、P4 4個四腳接頭分別接到4個步進(jìn)電機(jī)集成控制器。

3.2 電磁閥驅(qū)動放大電路
    本設(shè)計(jì)采用的所有電磁閥工作在24 V,以24 V為1信號,0 V為0信號。電磁閥驅(qū)動電路中以24 V穩(wěn)壓源作為電磁閥信號源,使用TIP127[2]作為電子開關(guān),使用ULN2003A將單片機(jī)的5 V信號放大到24 V驅(qū)動TIP127開關(guān)。
    通過2.3.2節(jié)可知本設(shè)計(jì)中有3個接收電子信號的電磁閥,分別是氣缸控制閥、真空閥氣流控制閥和吸盤氣流控制閥。每個電磁閥都有一根信號線與地線。實(shí)際電路中,每個閥的信號和地分別與各自TIP127的集電極與公共地相接。整個電磁閥驅(qū)動放大電路圖如圖4所示。

 

 

4 控制核心與軟件設(shè)計(jì)
    本設(shè)計(jì)的控制核心為STM32F103ZET6[3-4]單片機(jī)?;诖藛纹瑱C(jī)運(yùn)行機(jī)械、電磁閥的控制程序以實(shí)現(xiàn)各種不同的運(yùn)動,最終實(shí)現(xiàn)翻書動作。
4.1 底層函數(shù)
    編寫軟件時,先將底層的功能封裝成函數(shù),如電機(jī)使能、電機(jī)方向。最初設(shè)計(jì)時步進(jìn)電機(jī)脈沖輸出函數(shù)可以用普通I/O輸出,也可以使用PWM模塊直接產(chǎn)生步進(jìn)脈沖。但是PWM口輸出的脈沖個數(shù)無法精確控制,最終方案使用I/O口完成步進(jìn)脈沖輸出。
    步進(jìn)脈沖輸出的最底層函數(shù)是void xShift(int delay)函數(shù)[5],該函數(shù)用來在指定方向上輸出一個脈沖,x為H或V分指定水平方向和豎直方向(下同),入口參數(shù)delay決定了脈沖的周期為2×delay×100 ?滋s。
    將這個函數(shù)封裝可得到運(yùn)動算法函數(shù):void xPul(long nPul,unsigned char dr),該函數(shù)用來執(zhí)行在dr指定的方向上運(yùn)動nPul個脈沖的運(yùn)動算法。為了避免急起急停,本函數(shù)通過修改每個Shift( )的周期來實(shí)現(xiàn)速度曲線按梯形變化:保持一定斜率從最低速上升到最高速,維持最高速,按一定斜率從最高速降到最低速。
    3個宏量決定了速度曲線的相關(guān)數(shù)據(jù):x_HSDLY最高速度延時、x_LSDLY最低速度延時、x_ACCER速度升降速率倒數(shù)。這3個宏與xPul函數(shù)配合產(chǎn)生周期變動的脈沖來控制步進(jìn)電機(jī)按照期望的速度運(yùn)行。
    最終會使用到的函數(shù)是void xMove(long wFrom,long wTo)函數(shù),該函數(shù)的兩個參數(shù)指定了運(yùn)動的起止點(diǎn)相對于坐標(biāo)原點(diǎn)的脈沖數(shù)。通過起止點(diǎn)各自相對于原點(diǎn)的脈沖數(shù)可以計(jì)算出兩個信息:從起點(diǎn)運(yùn)動到終點(diǎn)需要產(chǎn)生多少個脈沖,以及從起點(diǎn)運(yùn)動到終點(diǎn)的運(yùn)動方向。這兩個參數(shù)傳入xPul函數(shù),xPul函數(shù)最終調(diào)用xShift產(chǎn)生具體的脈沖來實(shí)現(xiàn)運(yùn)動。xPul函數(shù)產(chǎn)生的速度曲線如圖5所示。

4.2 動作控制主程序
    按照設(shè)計(jì)的功能,機(jī)械在上電后依次完成如下動作:
    (1)提升玻璃板,運(yùn)動到封面上方;
    (2)壓下玻璃板,為封面拍照;
    (3)提升玻璃板;
    (4)運(yùn)動到吸取頁面位置,吸取頁面;
    (5)運(yùn)動到放下頁面位置,吹下頁面;
    (6)運(yùn)動到拍照位置,壓下玻璃板,兩個攝像頭同時為左右兩頁拍照;
    (7)重復(fù)步驟(3)~步驟(5),直到整本書翻完。
    該系統(tǒng)運(yùn)動控制由單片機(jī)輸出使能、方向以及脈沖信號控制步進(jìn)電機(jī)驅(qū)動器從而控制步進(jìn)電機(jī)的啟停、方向以及速度,氣路控制通過單片機(jī)輸出開關(guān)信號控制氣閥打開或閉合,從而實(shí)現(xiàn)吸盤升/降以及氣流吹氣或吸氣。通過步進(jìn)電機(jī)與電磁閥的動作配合實(shí)現(xiàn)各種實(shí)際的動作,如翻書、壓平等,從而很好地代替了人工的重復(fù)勞動。
參考文獻(xiàn)
[1] 李寧.基于MDK的STM32處理器開發(fā)應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2008.
[2] 程琤.單片機(jī)原理與應(yīng)用系統(tǒng)開發(fā)[M].北京:機(jī)械工業(yè)出版社,2011:1-9.
[3] 王景景.單片機(jī)原理及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2010.
[4] 肖看,李群芳.單片機(jī)原理、接口及應(yīng)用:嵌入式系統(tǒng)技術(shù)基礎(chǔ)(第2版)[M].北京:清華大學(xué)出版社,2010.
[5] 譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2005.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。