摘 要: 介紹了一種基于單片機(jī)的兩軸圖書錄入系統(tǒng)的設(shè)計(jì),。最終實(shí)現(xiàn)的錄入系統(tǒng)能夠按照編寫的流程對圖書進(jìn)行翻頁、壓平,、拍照等動(dòng)作,。基于此機(jī)械可實(shí)現(xiàn)圖書館,、檔案館藏書,、資料的自動(dòng)電子化轉(zhuǎn)檔。本機(jī)械全部由單片機(jī)自動(dòng)控制,,避免了人工完成這些機(jī)械的重復(fù)勞動(dòng),。
關(guān)鍵詞: 圖書錄入;單片機(jī),;自動(dòng)化,;步進(jìn)電機(jī);氣路
紙質(zhì)檔案,、書籍的電子化轉(zhuǎn)檔一直是比較機(jī)械繁瑣的工作,,本文介紹了一種圖書錄入系統(tǒng)的設(shè)計(jì)。該設(shè)計(jì)能夠?qū)⒐潭ㄔ阡浫胛恢蒙系膱D書逐頁翻頁并拍照,。目前具有類似功能的機(jī)械在全球并不多見,,本設(shè)計(jì)在實(shí)際中有較高的應(yīng)用價(jià)值。本設(shè)計(jì)使用STM32[1]單片機(jī)作為控制核心控制機(jī)械的兩大系統(tǒng):運(yùn)動(dòng)控制系統(tǒng)和氣路控制系統(tǒng),。最終兩部分系統(tǒng)相互配合完成書頁的翻頁,、壓平動(dòng)作。
1 圖書錄入系統(tǒng)框圖
如圖1所示,,整個(gè)系統(tǒng)以STM32F103ZET6單片機(jī)為控制核心,,它負(fù)責(zé)輸出系統(tǒng)的運(yùn)動(dòng)控制信號和電磁閥控制信號。單片機(jī)的信號經(jīng)放大電路放大,、穩(wěn)壓后輸出到步進(jìn)電機(jī)驅(qū)動(dòng)器和電磁閥上,。步進(jìn)電機(jī)驅(qū)動(dòng)器接收單片機(jī)的控制信號來操作步進(jìn)電機(jī)運(yùn)動(dòng)。
系統(tǒng)的執(zhí)行端為4個(gè)步進(jìn)電機(jī)和3個(gè)電磁閥,。4個(gè)步進(jìn)電機(jī)分為兩組分別執(zhí)行水平方向和豎直方向的運(yùn)動(dòng),。步進(jìn)電機(jī)驅(qū)動(dòng)接收單片機(jī)的信號,控制步進(jìn)電機(jī)運(yùn)行的具體方向和距離,。電磁閥按照單片機(jī)的信號控制由氣泵產(chǎn)生的高壓氣流運(yùn)動(dòng),,參與圖書的翻頁動(dòng)作。
2 機(jī)械部分
機(jī)械部分作為整個(gè)系統(tǒng)的支撐,,是控制的最終執(zhí)行端,。除了固定框架,功能性的機(jī)械有兩個(gè)部分:運(yùn)動(dòng)機(jī)械和氣路,。
2.1 運(yùn)動(dòng)機(jī)械
運(yùn)動(dòng)機(jī)械由步進(jìn)電機(jī),、傳動(dòng)皮帶和運(yùn)動(dòng)框架組成,,在水平方向和豎直方向分別設(shè)置了一對步進(jìn)電機(jī)用來操作水平方向和豎直方向的運(yùn)動(dòng)。
給定豎直方向和水平方向步進(jìn)電機(jī)的方向和脈沖數(shù)以后,,吸盤可以運(yùn)動(dòng)到機(jī)械限制允許的任意坐標(biāo),。機(jī)械運(yùn)動(dòng)的控制通過對步進(jìn)電機(jī)驅(qū)動(dòng)器設(shè)置對應(yīng)的運(yùn)動(dòng)方向以及運(yùn)動(dòng)脈沖數(shù)實(shí)現(xiàn)。
2.2 氣路
氣路由氣泵,、電磁閥,、真空閥、吸盤及其升降缸組成,。氣泵產(chǎn)生的高壓氣流通過電磁閥,、真空閥配合在吸盤處產(chǎn)生吹氣、吸氣氣流,,以及通過升降氣缸控制吸盤的升降。
與吸盤相關(guān)的有4個(gè)動(dòng)作:吸盤上升,、吸盤下降,、吸盤吸氣和吸盤吹氣。吸盤的上升與下降通過向氣缸的對應(yīng)口吹入高壓氣流來完成,,這兩個(gè)動(dòng)作由同一個(gè)閥控制,。吸盤吹氣動(dòng)作由吸盤氣流控制閥直接將高壓氣流接入吸盤氣口即可完成。氣路示意圖如圖2所示,。
比較復(fù)雜的是吸盤的吸氣,。由于氣泵產(chǎn)生的是高壓氣流,而吸氣需要吸盤處氣壓低于大氣壓,,即需要產(chǎn)生負(fù)壓,。因此氣路里面用到了真空閥,在真空閥入口吹入高壓氣流則其出口處就能產(chǎn)生低于大氣壓的負(fù)壓,。在執(zhí)行其他動(dòng)作時(shí),,負(fù)壓是不必要的,所以在真空閥之前加裝了氣流控制閥控制真空閥入口氣流的通斷,。只有在需要吸盤吸氣時(shí)氣流控制閥才打開,。
2.3 系統(tǒng)相關(guān)電氣設(shè)備的原理
機(jī)械部分的電氣設(shè)備主要為步進(jìn)電機(jī)和電磁閥,它們是控制信號的最終執(zhí)行端,。通過它們對電信號的執(zhí)行來完成單片機(jī)中存儲的動(dòng)作,。步進(jìn)電機(jī)的動(dòng)作有水平運(yùn)動(dòng)和豎直運(yùn)動(dòng),分別由對應(yīng)方向上的一對步進(jìn)電機(jī)來完成,。電磁閥控制的氣路動(dòng)作有4種,,由氣缸控制閥、真空閥氣流控制閥,、吸盤氣流控制閥3個(gè)電磁閥配合完成,。
2.3.1 步進(jìn)電機(jī)的電氣原理
步進(jìn)電機(jī)是一種按照固定步進(jìn)角轉(zhuǎn)動(dòng)的無刷式同步電機(jī),。其轉(zhuǎn)角即使沒有反饋也能精確控制,所以常用于開環(huán)系統(tǒng)中進(jìn)行精確的位置控制,。步進(jìn)電機(jī)不像有刷直流電機(jī),,給以工作電壓就會轉(zhuǎn)動(dòng)。它有多組齒狀磁極圍繞轉(zhuǎn)子排列,。磁極由外部控制電路(如微控制器)控制供電,。當(dāng)步進(jìn)電機(jī)工作時(shí),第一組磁極通電,,定子齒輪的齒被磁極吸引,。齒輪的齒與第一組磁極對齊后,它們會與下一組磁極有一個(gè)較小的角度偏差,。所以,,當(dāng)下一組磁極通電且第一組磁極斷開后,定子齒輪又轉(zhuǎn)動(dòng)一個(gè)微小的角度與當(dāng)前通電的磁極對齊,。步進(jìn)電機(jī)轉(zhuǎn)動(dòng)的過程就是不斷地重復(fù)這個(gè)動(dòng)作,。每個(gè)微小轉(zhuǎn)動(dòng)被稱為“步級角”,整數(shù)倍的步級角構(gòu)成一圈完整的旋轉(zhuǎn),。因此步進(jìn)電機(jī)可以按照精確的角度旋轉(zhuǎn),。
2.3.2 電磁閥的電氣原理
本設(shè)計(jì)中有3個(gè)電磁閥,分別是:氣缸控制閥,、真空閥氣流控制閥和吸盤氣流控制閥,。它們通過接收24 V的0/1信號來控制接入其內(nèi)的氣流的通斷以及方向。
氣缸控制閥有一個(gè)氣流輸入口和兩個(gè)氣流輸出口,,氣流輸入口輸入的是來自氣泵的高壓氣流,,氣流輸出口分別接升降氣缸的上升氣流口和下降氣流口。該閥響應(yīng)0/1信號,,當(dāng)信號為1時(shí),,輸入口的氣流被導(dǎo)入下降氣流口,則氣缸上部的高壓氣流推動(dòng)活塞下降,;反之,,氣流被導(dǎo)入上升氣流口,氣缸下部累積高壓氣體推動(dòng)活塞上升,。
真空閥氣流控制閥只有一個(gè)氣流輸入口和一個(gè)氣流輸出口,,它的作用是控制入口到出口的氣流的通斷,進(jìn)而控制與其氣流出口相連接的真空產(chǎn)生閥是否產(chǎn)生負(fù)壓,。當(dāng)真空閥氣流控制閥信號為1時(shí),,出口與入口導(dǎo)通,高壓氣流進(jìn)入真空產(chǎn)生閥,,產(chǎn)生負(fù)壓,。當(dāng)真空閥氣流控制閥信號為0時(shí),,出口與入口斷開,真空產(chǎn)生閥沒有高速氣流通過,,無法產(chǎn)生負(fù)壓,。
吸盤氣流控制閥有兩個(gè)氣流輸入口一個(gè)氣流輸出口,兩個(gè)氣流輸入分別為來自氣泵的高壓氣流和來自真空閥的負(fù)壓氣流(只有當(dāng)真空閥氣流控制閥的信號為1時(shí)這個(gè)口才有負(fù)壓氣流),。氣流輸出口接到吸盤的氣孔上,。由此,吸盤氣流閥可根據(jù)電信號控制吸盤的氣流為吸氣還是吹氣,。當(dāng)信號為1時(shí),,氣流輸出口被連接到高壓氣流輸入口上,吸盤處產(chǎn)生吹氣氣流,。當(dāng)信號為0,,且真空產(chǎn)生信號為1時(shí),氣流輸出口被連接到負(fù)壓氣流輸入口上,,吸盤處產(chǎn)生吸氣氣流,。
3 放大電路
由于單片機(jī)的驅(qū)動(dòng)能力有限,為了驅(qū)動(dòng)步進(jìn)電機(jī)集成控制器的光耦合和電磁閥的24 V信號,,設(shè)計(jì)了以ULN2003A和TIP127組成的放大電路。放大電路主要分為兩個(gè)部分:光耦合驅(qū)動(dòng)和電磁閥驅(qū)動(dòng),。
3.1 步進(jìn)電機(jī)驅(qū)動(dòng)器光耦合驅(qū)動(dòng)電路
圖3所示為光耦合驅(qū)動(dòng)電路,,電路的輸入為左邊的P5和P6接口,連接到單片機(jī)的對應(yīng)管腳,,管腳分別提供如下信號:4個(gè)集成控制器的使能信號E,、4個(gè)集成控制器的方向信號D和每個(gè)方向上步進(jìn)電機(jī)的運(yùn)動(dòng)脈沖信號PUL,經(jīng)過2003A芯片內(nèi)部的達(dá)林頓管穩(wěn)壓后變換為可驅(qū)動(dòng)光耦合的信號,,通過P1,、P2、P3,、P4 4個(gè)四腳接頭分別接到4個(gè)步進(jìn)電機(jī)集成控制器,。
3.2 電磁閥驅(qū)動(dòng)放大電路
本設(shè)計(jì)采用的所有電磁閥工作在24 V,以24 V為1信號,,0 V為0信號,。電磁閥驅(qū)動(dòng)電路中以24 V穩(wěn)壓源作為電磁閥信號源,使用TIP127[2]作為電子開關(guān),,使用ULN2003A將單片機(jī)的5 V信號放大到24 V驅(qū)動(dòng)TIP127開關(guān),。
通過2.3.2節(jié)可知本設(shè)計(jì)中有3個(gè)接收電子信號的電磁閥,分別是氣缸控制閥,、真空閥氣流控制閥和吸盤氣流控制閥,。每個(gè)電磁閥都有一根信號線與地線,。實(shí)際電路中,每個(gè)閥的信號和地分別與各自TIP127的集電極與公共地相接,。整個(gè)電磁閥驅(qū)動(dòng)放大電路圖如圖4所示,。
4 控制核心與軟件設(shè)計(jì)
本設(shè)計(jì)的控制核心為STM32F103ZET6[3-4]單片機(jī)?;诖藛纹瑱C(jī)運(yùn)行機(jī)械,、電磁閥的控制程序以實(shí)現(xiàn)各種不同的運(yùn)動(dòng),最終實(shí)現(xiàn)翻書動(dòng)作,。
4.1 底層函數(shù)
編寫軟件時(shí),,先將底層的功能封裝成函數(shù),如電機(jī)使能,、電機(jī)方向,。最初設(shè)計(jì)時(shí)步進(jìn)電機(jī)脈沖輸出函數(shù)可以用普通I/O輸出,也可以使用PWM模塊直接產(chǎn)生步進(jìn)脈沖,。但是PWM口輸出的脈沖個(gè)數(shù)無法精確控制,,最終方案使用I/O口完成步進(jìn)脈沖輸出。
步進(jìn)脈沖輸出的最底層函數(shù)是void xShift(int delay)函數(shù)[5],,該函數(shù)用來在指定方向上輸出一個(gè)脈沖,,x為H或V分指定水平方向和豎直方向(下同),入口參數(shù)delay決定了脈沖的周期為2×delay×100 ?滋s,。
將這個(gè)函數(shù)封裝可得到運(yùn)動(dòng)算法函數(shù):void xPul(long nPul,,unsigned char dr),該函數(shù)用來執(zhí)行在dr指定的方向上運(yùn)動(dòng)nPul個(gè)脈沖的運(yùn)動(dòng)算法,。為了避免急起急停,,本函數(shù)通過修改每個(gè)Shift( )的周期來實(shí)現(xiàn)速度曲線按梯形變化:保持一定斜率從最低速上升到最高速,維持最高速,,按一定斜率從最高速降到最低速,。
3個(gè)宏量決定了速度曲線的相關(guān)數(shù)據(jù):x_HSDLY最高速度延時(shí)、x_LSDLY最低速度延時(shí),、x_ACCER速度升降速率倒數(shù),。這3個(gè)宏與xPul函數(shù)配合產(chǎn)生周期變動(dòng)的脈沖來控制步進(jìn)電機(jī)按照期望的速度運(yùn)行。
最終會使用到的函數(shù)是void xMove(long wFrom,,long wTo)函數(shù),,該函數(shù)的兩個(gè)參數(shù)指定了運(yùn)動(dòng)的起止點(diǎn)相對于坐標(biāo)原點(diǎn)的脈沖數(shù)。通過起止點(diǎn)各自相對于原點(diǎn)的脈沖數(shù)可以計(jì)算出兩個(gè)信息:從起點(diǎn)運(yùn)動(dòng)到終點(diǎn)需要產(chǎn)生多少個(gè)脈沖,,以及從起點(diǎn)運(yùn)動(dòng)到終點(diǎn)的運(yùn)動(dòng)方向,。這兩個(gè)參數(shù)傳入xPul函數(shù),xPul函數(shù)最終調(diào)用xShift產(chǎn)生具體的脈沖來實(shí)現(xiàn)運(yùn)動(dòng)。xPul函數(shù)產(chǎn)生的速度曲線如圖5所示,。
4.2 動(dòng)作控制主程序
按照設(shè)計(jì)的功能,,機(jī)械在上電后依次完成如下動(dòng)作:
(1)提升玻璃板,運(yùn)動(dòng)到封面上方,;
(2)壓下玻璃板,,為封面拍照;
(3)提升玻璃板,;
(4)運(yùn)動(dòng)到吸取頁面位置,,吸取頁面;
(5)運(yùn)動(dòng)到放下頁面位置,,吹下頁面,;
(6)運(yùn)動(dòng)到拍照位置,壓下玻璃板,,兩個(gè)攝像頭同時(shí)為左右兩頁拍照,;
(7)重復(fù)步驟(3)~步驟(5),直到整本書翻完,。
該系統(tǒng)運(yùn)動(dòng)控制由單片機(jī)輸出使能,、方向以及脈沖信號控制步進(jìn)電機(jī)驅(qū)動(dòng)器從而控制步進(jìn)電機(jī)的啟停、方向以及速度,,氣路控制通過單片機(jī)輸出開關(guān)信號控制氣閥打開或閉合,,從而實(shí)現(xiàn)吸盤升/降以及氣流吹氣或吸氣。通過步進(jìn)電機(jī)與電磁閥的動(dòng)作配合實(shí)現(xiàn)各種實(shí)際的動(dòng)作,,如翻書,、壓平等,從而很好地代替了人工的重復(fù)勞動(dòng),。
參考文獻(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.