激光雕刻機(jī)系統(tǒng)設(shè)計
激光雕刻機(jī)系統(tǒng)設(shè)計,激光雕刻,系統(tǒng),設(shè)計
激光雕刻機(jī)系統(tǒng)設(shè)計
摘要:隨著我國的技術(shù)的不斷的發(fā)展,我國的技術(shù)已經(jīng)在很多的方面都得到了一定的成就,例如在激光雕刻方面的技術(shù),已經(jīng)得到很多大的成就,激光雕刻技術(shù)隨著時代的發(fā)展,日新月異,其應(yīng)用的范圍也是十分的廣泛。激光雕刻是以數(shù)控為基本,激光加工為媒介的一種加工方法,它的特點是和所雕刻材料的表面沒有直接接觸,不會受到機(jī)械運(yùn)動的影響,表面也不會變形。
本文采用Arduino單片機(jī)和Delphi語言設(shè)計和實現(xiàn)了一個可直接進(jìn)行雕刻的激光雕刻機(jī)系統(tǒng)。本系統(tǒng)的設(shè)計中主要包括的模塊為串口通信模塊、中央處理模塊、電機(jī)驅(qū)動模塊、激光器驅(qū)動模塊、機(jī)械傳動結(jié)構(gòu)模塊、外型框架模塊等部分,具有弱光定位、在非金屬物體表面燒刻出由計算機(jī)傳輸?shù)膱D案、重復(fù)雕刻、印章陰陽雕刻等功能。
系統(tǒng)主要采用Arduino UNO型單片機(jī)構(gòu)成中央處理系統(tǒng)模塊,通過串口通信模塊與上位機(jī)軟件進(jìn)行通信,利用上位機(jī)軟件對雕刻機(jī)系統(tǒng)完成包括手動進(jìn)行前后左右移動、開關(guān)激光器、自動雕刻圖案等功能。機(jī)械傳動結(jié)構(gòu)部分采用3D打印技術(shù)制作而成的滑塊,通過與步進(jìn)電機(jī)的結(jié)合,實現(xiàn)高精度的傳動。
關(guān)鍵詞:單品機(jī);系統(tǒng)設(shè)計;激光雕刻
Abstract: along with our country the development of technology, the technology of our country has been in a lot of aspects have been some achievements, such as in the aspects of laser engraving technology, has been a lot of great achievements, laser engraving technology with the development of the times, it should be with the change rapidly, the scope is very wide. Laser engraving is a CNC basic, a processing method of laser processing for the media, it is not in direct contact with the surface of the carving material, will not be affected by the mechanical movement, the surface will not be deformed.
In this paper, using Arduino microcontroller and Delphi language design and implementation of a laser engraving machine can be carved directly. The design of this system mainly includes the module of serial communication module, central processing module, motor drive module, laser driver module, mechanical structure module, machine frame modules, with weak light localization in non metallic surface burn carved by computer transmission patterns, carving, engraving and other repeated seal function of yin and yang.
The system mainly uses the Arduino UNO Type MCU central processing system via serial communication module, communication module and PC software, including complete manually move around, switch and automatic laser carving patterns and other functions of the engraving machine system using PC software. Mechanical transmission part of the use of 3D printing technology produced by the slider, and through the combination of stepper motor to achieve high-precision transmission.
Key words: single product machine; system design; laser engraving
目錄
引言 1
1 設(shè)計要求 2
1.1 畢業(yè)設(shè)計題目 2
1.2 設(shè)計的主要功能 2
2 工作原理和系統(tǒng)結(jié)構(gòu) 2
3 硬件設(shè)計 3
3.1 系統(tǒng)總電路圖 3
3.2 控制和數(shù)據(jù)處理模塊 4
3.3 串口通信電路 10
3.4 電機(jī)驅(qū)動模塊 15
3.5 激光管驅(qū)動模塊 18
3.6 機(jī)械傳動結(jié)構(gòu)模塊 19
3.6.1 3D打印件 19
3.6.2 二相四線步進(jìn)電機(jī) 21
3.6.3 亞克力面板 24
3.6.4 滑臺 24
4 系統(tǒng)軟件設(shè)計 26
4.1 Arduino IDE介紹 26
4.2 Delphi7軟件簡介 26
4.3 系統(tǒng)主程序設(shè)計 27
4.4 各個模塊的軟件設(shè)計 28
4.3.1 系統(tǒng)初始化模塊 28
4.3.2 控制協(xié)議分析模塊 29
4.3.3 指令任務(wù)執(zhí)行模塊 31
4.4 上位機(jī)控制軟件設(shè)計與實現(xiàn) 34
5 系統(tǒng)測試 36
5.1 測試工具和環(huán)境 36
5.2 激光雕刻機(jī)整機(jī)調(diào)試 36
5.3 測試流程 37
6 總結(jié) 40
致 謝 41
參考文獻(xiàn) 42
引言
激光在20世紀(jì)60年代問世之后,在生產(chǎn)中很快得到了應(yīng)用,而后,對其相關(guān)的基本理論研究不斷的加深。各種各樣的激光器逐步的發(fā)展起來,使得激光的應(yīng)用領(lǐng)域也不斷的被拓寬,規(guī)模也逐漸的被擴(kuò)大,產(chǎn)生的社會與經(jīng)濟(jì)效益也更加的顯著。激光技術(shù)得到了各個科技發(fā)達(dá)國家的高度重視,并且也得到了許多發(fā)展中國家的高度重視,同時也給與了大量的投入。在二十世紀(jì)的科學(xué)技術(shù)發(fā)展中,新興科技之一的激光技術(shù)成為了那個時代重要的發(fā)展標(biāo)志。而自二十世紀(jì)八十年代至今,激光技術(shù)被全球的很多國家及政府作為國家級別的建設(shè)發(fā)展計劃。例如, 英國的阿維爾計劃, 美國的激光核聚變計劃,日本的激光研究五年計劃等。因為這些計劃的實施使得激光技術(shù)迅速的發(fā)展起來,并且形成了一個生氣盎然的新興產(chǎn)業(yè)。大量的學(xué)科技術(shù),多樣的生產(chǎn)水平因為激光技術(shù)的發(fā)展而得到了提高。
激光技術(shù)作為高新的加工工藝,廣泛的被用來進(jìn)行雕刻切割的處理,同時其得到了非??焖俚陌l(fā)展。由于激光雕刻切割技術(shù)的機(jī)械傳動結(jié)構(gòu)搭建起來方便靈巧,并且低噪,低損耗,高精度,擁有廣泛的適用性,對于控制軟件的開發(fā)設(shè)計十分方便易于控制。因為在高能量激光聚焦后,能夠?qū)⒈患庸ぜ查g氣化,以此獲得雕刻切割的效果,這樣被加工的材料表面受到的影響較小,不會造成加工材料的刮痕或變形等,加工的縫隙也較小,尤其是對亞克力材料,切口較為整齊,無接觸的加工所以不會產(chǎn)生加工接觸力,無刀具的損耗,無模具,工件也無需特別裝夾。而對激光雕刻技術(shù)的原理學(xué)習(xí)了解,及如何實現(xiàn)高精度雕刻等等,可以促進(jìn)激光雕刻產(chǎn)業(yè)的發(fā)展。因此,激光雕刻機(jī)系統(tǒng)的設(shè)計是讓更多人接觸到激光雕刻技術(shù)的一項重要課題。
市面上動輒幾千上萬的激光雕刻切割機(jī)器是普通人無法輕易嘗試的,這對于那些想要接觸激光技術(shù)的人們來說,無疑是一道很高的門檻,而本設(shè)計的激光雕刻機(jī)系統(tǒng),將激光雕刻技術(shù)從工業(yè)大型設(shè)備轉(zhuǎn)變?yōu)榧矣眯⌒驮O(shè)備,降低了激光雕刻技術(shù)的學(xué)習(xí)成本,使得更多有興趣的人參與到激光雕刻技術(shù)的學(xué)習(xí)研究中。通過開發(fā)傻瓜型的控制軟件,將機(jī)械傳動部分小型化,采用功率較小的激光器,使得激光雕刻機(jī)變得簡便易攜帶,操作也極為簡單,同時也支持使用CNC機(jī)床的Gcode控制代碼,因而能夠?qū)Ρ緳C(jī)器進(jìn)行二次開發(fā)學(xué)習(xí)。
1 設(shè)計要求
1.1 畢業(yè)設(shè)計題目
激光雕刻機(jī)的系統(tǒng)設(shè)計與實現(xiàn)
1.2 設(shè)計的主要功能
本設(shè)計以Arduino UNO型單片機(jī)為核心,制作一個激光雕刻機(jī)的設(shè)計和實現(xiàn)的主要功能如下:
(1) 實現(xiàn)弱光定位,通過PWM的調(diào)節(jié),將激光的強(qiáng)度降至一個較低的數(shù)值,以便于雕刻前的定位設(shè)置。
(2) 在非金屬的物體表面燒刻出由計算機(jī)傳輸?shù)膱D案,由上位機(jī)的控制軟件發(fā)送指令至單片機(jī)進(jìn)行動作。
(3) 支持重復(fù)雕刻,在一次雕刻完成之后,雕刻機(jī)會自動返回雕刻初始位置,此時不移動電機(jī)位置,直接生成指令,可以再次在同樣的位置進(jìn)行雕刻,以達(dá)到修補(bǔ)首次雕刻時未出雕刻效果的部分區(qū)域。
(4) 支持印章的陰陽雕刻,在光敏墊或部分膠皮材質(zhì)上進(jìn)行印章的雕刻,雕刻成型后即可上油墨進(jìn)行蓋印。
(5) 可通過電腦端軟件控制進(jìn)行手動的上下左右移動,開光激光器等行為。
(6) 使用由Arduino UNO型單片機(jī)構(gòu)成的中央處理模塊,完成對指令的發(fā)送接收,數(shù)據(jù)的處理以及進(jìn)行控制。
2 工作原理和系統(tǒng)結(jié)構(gòu)
根據(jù)設(shè)計的要求,本課題的激光雕刻機(jī)的系統(tǒng)設(shè)計與實現(xiàn)主要系統(tǒng)分為六個模塊:串口通信模塊、中央處理模塊、電機(jī)驅(qū)動模塊、激光器驅(qū)動模塊、機(jī)械傳動結(jié)構(gòu)模塊、外型框架模塊,系統(tǒng)結(jié)構(gòu)如圖2-1所示。
圖2-1 系統(tǒng)結(jié)構(gòu)框圖
1) 中央處理模塊
主要采用Arduino UNO型單片機(jī)設(shè)計,為本設(shè)計的核心模塊,主要負(fù)責(zé)對其他部分進(jìn)行數(shù)據(jù)處理和控制。
2) 串口通信模塊
采用PL2303HXD芯片,對RS232電平與USB電平進(jìn)行轉(zhuǎn)換,負(fù)責(zé)電腦與單片機(jī)的實時通信傳輸。
3) 電機(jī)驅(qū)動模塊
該模塊使用了L9110S電機(jī)驅(qū)動芯片,該芯片主要是為了控制和驅(qū)動電機(jī)而設(shè)計。該芯片有兩個TTL/CMOS兼容電平的輸入,故每驅(qū)動一個步進(jìn)電機(jī),則需要兩枚L9110S芯片來提供二相四線步進(jìn)電機(jī)所需要的線序脈沖。
4) 激光器驅(qū)動模塊
使用SS8050 NPN型三極管構(gòu)建控制激光器的開關(guān)電路,單片機(jī)通過發(fā)送高低電平信號,來控制三極管的通斷。
5) 機(jī)械傳動結(jié)構(gòu)模塊
由3D打印件、二相四線步進(jìn)電機(jī)、亞克力面板組成,亞克力面板作為底板承載支架與電機(jī),3D打印件與步進(jìn)電機(jī)接合之后,步進(jìn)電機(jī)能夠帶動3D打印件進(jìn)行移動,以此達(dá)到機(jī)械傳動的目的。
6) 外型框架模塊
外型框架模塊主要使用亞克力面板,通過螺絲的接合,制成搭載機(jī)械傳動結(jié)構(gòu)模塊和電路板等物件的支架。
3 硬件設(shè)計
3.1 系統(tǒng)總電路圖
由Arduino UNO型單片機(jī)構(gòu)成的中央處理模塊;由PL2303HXD構(gòu)成的串口通信模塊,四枚L9110S電機(jī)驅(qū)動芯片構(gòu)成電機(jī)驅(qū)動模塊;SS8050 NPN三極管構(gòu)成激光器驅(qū)動電路,系統(tǒng)總電路圖如圖3-1所示。
圖3-1 系統(tǒng)總電路圖
3.2 控制和數(shù)據(jù)處理模塊
控制和數(shù)據(jù)處理模塊采用Arduino UNO型單片機(jī)構(gòu)成,由于Arduino單片機(jī)擁有運(yùn)算能力較強(qiáng),并且軟件編程控制方便,功耗低,體積小、I/O口資源豐富、內(nèi)置A\D模數(shù)轉(zhuǎn)換、通用性強(qiáng)和成本較低等優(yōu)點。通過外界變壓器提供的+5V電壓供電,有源晶振輸入時鐘,控制模塊能夠正常工作;通過與串口通信模塊連接上位機(jī),可實現(xiàn)程序的下載,支持在線調(diào)試程序,并能使用上位機(jī)軟件給單片機(jī)發(fā)送指令,從而控制各個模塊正常工作??刂坪蛿?shù)據(jù)模塊電路如圖3-2所示。
圖3-2 控制與數(shù)據(jù)處理模塊
Arduino,是一個開源的軟硬件平臺,通過對AVR單片機(jī)的二次封裝開發(fā),簡化了單片機(jī)引腳的使用,并且有專用的開發(fā)編程語言。
這個著名的開源硬件項目,誕生于意大利的一所設(shè)計學(xué)校。馬西莫的學(xué)生經(jīng)常抱怨找不到一個物美價廉好用的單片機(jī)來對機(jī)器人進(jìn)行控制。之后,馬西莫和朋友大衛(wèi)討論了這個問題,他們決定設(shè)計自己的電路板,并邀請學(xué)生大衛(wèi)梅利斯設(shè)計編程語言。一個星期后,設(shè)計完成。電路板被命名為Arduino,來自學(xué)生經(jīng)常去附近的一個酒吧。聰明的馬西莫認(rèn)為開源能夠產(chǎn)生更廣泛的傳播效應(yīng),給Arduino帶來更多的關(guān)注。于是,他將設(shè)計數(shù)據(jù)發(fā)布到網(wǎng)上。正如馬西莫所設(shè)想的那樣,在短短幾個月的時間,Arduino的發(fā)展快速增長,而且充滿激情的愛好者也提出了很多改進(jìn)電路和程序語言的建議。
表3-1 主要性能參數(shù)
工作電壓
1.8V-5.5V
外部供電電壓
7V-12V
最大外部供電電壓(不推薦)
20V
數(shù)字輸入/輸出口
14
PWM
6
10位ADC
8 / 6(DIP)
單個輸入/輸出管腳的直流電流值
40mA
3.3V管腳直流電流值
50mA
Flash Memory
32KB
SRAM
2KB
EEPROM
1KB
時鐘頻率
16MHz
16位定時器 / 計數(shù)器
1
8位定時器 / 計數(shù)器
2
RTC
YES
SPI
2
UART
1
TWI
1
WDT
1(帶獨(dú)立片內(nèi)振蕩器)
外部中斷
24
睡眠模式
6種
硬件乘法器
YES
片內(nèi)振蕩器
YES
引腳電平中斷/喚醒功能
YES
掉電檢測
YES
上電復(fù)位
YES
模擬比較器
YES
工作溫度范圍:
-40℃至85℃
Arduino UNO單片機(jī)兩種封裝引腳如圖3-3和圖3-4及其功能:
圖3-3 TQFP32型封裝
圖3-4 PDIP28型封裝
(1) VCC:數(shù)字電路的電源
(2) GND:地
(3) 數(shù)字端口(D1..D13)
D1至D13是arduino經(jīng)過重新封裝之后進(jìn)行編號的管腳,具有正常的數(shù)字輸入輸出功能,它的工作電壓為5V,每一個I/O口能夠接入與輸出的最大電流為40毫安,同時也內(nèi)置了20至50K的上拉電阻(默認(rèn)為不連接狀態(tài))。除此之外,有部分管腳具有其他特定的功能。
1 D0、D1引腳:D0為串口信號RX,D1為串口信號TX,它們與串口通信芯片相連接,為串口信號的接收提供TTL電壓。
2 D2、D3引腳:外部中斷觸發(fā)引腳。
3 D3、D5、D6、D9、D10、D11引腳:能夠輸出PWM脈沖。
4 D10(SS)、D11(MOSI)、D12(MISO)、D13(SCK):SPI通信接口。
(4) 模擬端口(A0..A5)
A0至A5是ADC輸入管腳,在單片機(jī)內(nèi)部配置有一個10位的ADC寄存器,用于將讀入的模擬數(shù)據(jù)進(jìn)行處理,將其轉(zhuǎn)變?yōu)閿?shù)字,便于用戶對數(shù)據(jù)進(jìn)行處理。
(5) RESET
復(fù)位輸入引腳。低于最低時間低閾值長會導(dǎo)致系統(tǒng)復(fù)位。脈沖持續(xù)時間小于復(fù)位之間的閾值。
(6) XTAL1是晶振的輸入端。
(7) XTAL2是晶振的輸出端。
(8) AVCC
AVCC為模擬A口與模數(shù)轉(zhuǎn)換器提供了電壓,若是ADC尚未進(jìn)行工作,則AVCC與電源VCC進(jìn)行連接。
(9) AREF:進(jìn)行A/D模數(shù)轉(zhuǎn)換時需要的基準(zhǔn)電壓輸入引腳。
(10) 晶體振蕩器
如圖3-5所示,石英的晶體與陶瓷諧振器一般常常被用來制作該振蕩器。
圖3-5 ?晶體振蕩器連接圖
若是要震得到的幅度完滿,則需要對熔絲位CKOPT進(jìn)行一定的程序編譯工作。對于噪聲環(huán)境與需要驅(qū)動第二時鐘緩沖器的情況來說該模式非常適用,并且該模式的頻率范圍很寬[1]。
若CKOPT沒有被進(jìn)行編程,則振蕩器輸出幅度會變得比較小。這樣就會降低器件的功耗,但是也因為這樣,就導(dǎo)致了頻率范圍縮小,也不能夠再運(yùn)行別的時鐘緩沖器。就諧振器而言,沒有得到程序編譯的CKOPT,其最大的頻率是8兆赫茲,而經(jīng)過程序編譯之后則可以達(dá)到16兆赫茲。無論采用的是諧振器或晶體,兩個電容的值要求相等,它們的值也可能取決于環(huán)境中的各項雜質(zhì)參數(shù)[1]。
表3-2 晶體振蕩器工作模式
CKOP
TCKSEL3..1?
頻率范圍?(MHz)
電容C1和C2的推薦使用范圍(pF)
1
101(1)
0.4?-?0.9
–
1
110
0.9?-?3.0
12?-?22
1
111
3.0?-?8.0
12?-?22
0
101,?110,?111
1.0?≤
12?-?22
晶體振蕩器器擁有三種不同的工作模式,這三種不同的工作模式每一個都有一個最優(yōu)的頻率范圍。通過對CKSEL3..1的進(jìn)行一定的設(shè)定也會影響到振蕩器的工作模式,如表3-2所示[1]。
如圖3-6所示,由于芯片采用了哈弗結(jié)構(gòu),并且具有單獨(dú)分立的數(shù)據(jù)與程序總線,因此得到了最高的性能與并行性。程序存儲器中的指令流水線通過各級運(yùn)行。每當(dāng)CPU執(zhí)行一條命令時也會讀取下一條的命令,單時鐘周期運(yùn)行指令由此得到實現(xiàn)[11]。
在芯片的內(nèi)部,通用工作寄存器被設(shè)計在快速訪問寄存器中,而當(dāng)你需要對其進(jìn)行訪問的時候只需要一個時鐘周期,因此ALU操作能夠在一個時鐘周期內(nèi)進(jìn)行的想法得以變?yōu)楝F(xiàn)實。當(dāng)有兩個相等的操作數(shù)在進(jìn)行ALU操作的時候,它們的寄存器被訪問,然后就會執(zhí)行操作,將得到的結(jié)果發(fā)送回來,在這樣的一次操作,也只需要一個時鐘周期的時間。間接尋址寄存器指針能夠?qū)?shù)據(jù)空間進(jìn)行尋址,提高地址運(yùn)算的效率,并且使用存儲器的地址指針時,也可以利用其中一個指針來為其進(jìn)行查找表的工作[11]。
寄存器之間、寄存器與常數(shù)之間的運(yùn)算可以使用ALU操作進(jìn)行,單寄存器也能夠進(jìn)行ALU操作。在進(jìn)行ALU之后,狀態(tài)寄存器就能獲取并顯示新的結(jié)果。有無條件的跳轉(zhuǎn)與指令的調(diào)用產(chǎn)生了程序的流通,以此能夠?qū)φ麄€地址空間進(jìn)行直接尋址的操作[1]。
引導(dǎo)程序區(qū)、應(yīng)用程序區(qū)存在于程序存儲器空間中,他們都具有特定的鎖定位以及讀寫的保護(hù)。引導(dǎo)程序區(qū)中可以進(jìn)行應(yīng)用程序區(qū)的SPM指令編寫。在堆棧中保存了中斷以及子程序被調(diào)用時的程序計數(shù)器。而通用數(shù)據(jù)SRAM的大小也影響了置身其中的堆棧的大小。
一個便于使用的中斷模塊被設(shè)計在芯片之中。控制寄存器會被設(shè)計在輸入輸出的空間里,而全局中斷使能位被設(shè)計在狀態(tài)器中。任何一個中斷都會在中斷的向量表里面獲得一個單獨(dú)分立的中斷向量,如果優(yōu)先級越來越低,那么就說明了它的地址越來越高。
圖3-6 芯片結(jié)構(gòu)方框圖
3.3 串口通信電路
本設(shè)計中采用PL2303HXD作為單片機(jī)與上位機(jī)之間的通信連接。PL2303HXD自身的TXD和RXD引腳與單片機(jī)的PD0(RXD)和PD1(TXD)進(jìn)行連接,以實現(xiàn)數(shù)據(jù)的傳輸。串口通信電路如圖3-7所示。
圖3-7 串口通信電路
在市面上有許多集成了RS232-USB接口的轉(zhuǎn)換器,而我選擇了PL2303HXD來設(shè)計串口通信模塊。這塊芯片能夠使用了USB的接口,并且是一個全雙工異步的串口通信設(shè)備,它的內(nèi)部配置有振蕩器,USB的控制與收發(fā)器,兼容UART協(xié)議,而為了能夠讓USB與RS232之間信號的轉(zhuǎn)變也只是需要對外圍電路加裝若干顆電容器便能夠完成需求。由于它的外圍電路體積小,因此可以方便的內(nèi)嵌進(jìn)各種各樣的電路及設(shè)備中,同時它也可以自動完成數(shù)據(jù)接收與發(fā)送的工作,令技術(shù)員不需要再考慮其他的設(shè)計[2]。
大多數(shù)的操作系統(tǒng)都能夠安裝上PL2303HXD的驅(qū)動程序,在電腦上可以顯示為傳統(tǒng)的COM口,也能夠讓基于COM口的應(yīng)用輕松的轉(zhuǎn)變成USB口的應(yīng)用程序,而且通訊波特率能夠達(dá)到6mb/s。它具有低功耗的睡眠與工作模式,對于手持設(shè)備是一個非常好的選擇。PL2303HXD具有的特點包括:完全兼容USB協(xié)議;能夠?qū)Σㄌ芈蔬M(jìn)行編程設(shè)置;可以設(shè)置不同的輸出電壓,以此來滿足各種電壓的應(yīng)用需求;雙向數(shù)據(jù)緩沖可以調(diào)節(jié)并且有512字節(jié)大??;內(nèi)部有默認(rèn)的ROM,也能夠使用外置的E2PROM對設(shè)備的相關(guān)信息進(jìn)行存儲[2]。
PL2303HXD主要性能參數(shù):
1.?兼容USB規(guī)范2.0??
2.?芯片內(nèi)設(shè)計有USB?1.1收發(fā)器?
3.?對RS232串行接口有良好支持?
1)?全雙工發(fā)送器TxD和接收器RxD
2)?RTS,CTS,DTR,DSR,DCD和RI的作用為調(diào)制解調(diào)控制?
3) 5至8個數(shù)據(jù)位
4)?具有各種握手模式?
6)?奇偶判錯,幀錯誤和串行中斷檢測?
7)?可編程波特率從75bps到6?Mbps?
8)?外部的RS232驅(qū)動下降控制?
9)?獨(dú)立的串行接口電源?
4.?寬廣的流量控制機(jī)制?
1)?自動與CTS?/?RTS流控制?
2)?自動使用的XON?/?XOFF流量控制?
3)?入站數(shù)據(jù)緩沖區(qū)溢出檢測??
5.?可配置的512個字節(jié)雙向數(shù)據(jù)緩沖器?
1)?256字節(jié)的輸出緩沖區(qū)和256字節(jié)的輸入緩沖區(qū)?
2)?128字節(jié)的輸出緩沖區(qū)和384字節(jié)的輸入緩沖區(qū)?
6.?具有喚醒的功能,通過遠(yuǎn)程控制相關(guān)調(diào)制信號的輸入
7.?四個通用的I/O口
8.?外部的EEPROM可以用于機(jī)器運(yùn)行時對配置的存儲??
9.?驅(qū)動程序支持各大主流操作系統(tǒng)??
10. 獲得了微軟驅(qū)動程序認(rèn)證
11. 小尺寸的28引腳SSOP封裝
圖3-8 PL2303HXD引腳圖
各個引腳的功能解釋如表3-3中所述。
表3-3 各個引腳功能
引腳?
名字?
類型?
引?腳?描?述?
1
TXD
輸出?
數(shù)據(jù)輸出到串口;?
2?
DTR_N?
輸出?
準(zhǔn)備數(shù)據(jù)終端,低電平有效;?
3?
RST_N?
輸出?
發(fā)送請求,低電平有效;?
4?
VDD_325?
電源?
IC電源,串口電壓是多少V,那么串行端口就是多少V;
5?
RXD?
輸入?
串口數(shù)據(jù)輸入;?
6?
RI_N?
輸入/輸出
串行端口(環(huán)指示器);?
7
GND?
電源?
接地;?
8?
NC??
?
無連接
9?
DSR_N?
輸入/輸出
串行端口(數(shù)據(jù)集就緒)?
10?
DCD_N?
輸入/輸出
串行端口(數(shù)據(jù)載波檢測)?
11?
CTS_N?
輸入/輸出
串行端口(清除發(fā)送)?
12?
SHTD_N?
輸出?
控制RS232收發(fā)器關(guān)機(jī)?
13?
EE_CLK?
輸入/輸出串行
EEPROM時鐘?
14?
EE_DATA?
輸入/輸出
串行EEPROM數(shù)據(jù)?
15?
DP?
輸入/輸出
USB端口D+信號?
16?
DM?
輸入/輸出
USB端口D-信號?
17?
VO_33??
常規(guī)
3.3V電源輸出?
18?
GND??
接地?
19?
NC??
無連接?
20?
VDD_5?
電源?
USB端口的5V電壓電源?
21?
GND??
接地?
22?
GP0?
輸入/輸出
通用I/O引腳0?
23?
GP1?
輸入/輸出
通用I/O引腳1?
24
NC??
無連接
25?
GND_A??
模擬地鎖相環(huán)?
26?
PLL_TEST?
輸入?
鎖相環(huán)測試
27?
OSC1?
輸入?
晶體振蕩器輸入?
28?
OSC2?
輸入/輸出
晶體振蕩器輸出
3.4 電機(jī)驅(qū)動模塊
本電機(jī)驅(qū)動模塊采用L9110S電機(jī)驅(qū)動芯片,驅(qū)動電路如圖3-9所示。
圖3-9 電機(jī)驅(qū)動電路
其主要工作原理為:L9110S與單片機(jī)IO口進(jìn)行連接,單片機(jī)收到上位機(jī)發(fā)送的指令后,依據(jù)單片機(jī)的內(nèi)部程序給L9110S芯片輸送相應(yīng)的電平,一枚L9110S芯片包含兩路輸入、兩路輸出引腳,而一個二相四線步進(jìn)電機(jī)則需要兩個L9110S組成四路端口來完成對步進(jìn)電機(jī)線序的輸出。
在本設(shè)計中采用的L9110S芯片是一枚能夠?qū)﹄姍C(jī)進(jìn)行控制與驅(qū)動的芯片,它的內(nèi)部包含了相應(yīng)的分立電路器件,具有兩組輸入輸出端口,減少了外圍電路的設(shè)計,以此降低了成本,同時也讓系統(tǒng)安全性能有了顯著的上升。兩個輸入端配置了TTL/CMOS,以此兼容電平,它們被設(shè)計在了芯片的內(nèi)部,具有不錯的抗干擾特性;而在輸出端部分,每一個輸出端能夠輸出大約800毫安的電流,以供對電機(jī)正反向轉(zhuǎn)動的直接驅(qū)動,瞬間峰值電流能夠達(dá)到2安;這枚芯片在各種電機(jī)或電磁器件上能夠進(jìn)行穩(wěn)定無風(fēng)險的驅(qū)動,這是由于它的內(nèi)部安裝了鉗位二極管,使得芯片的輸出飽和壓降的值變得更小,令驅(qū)動時可能會造成的不良影響得以降低[3]。
L9110主要性能參數(shù):
1. 寬電壓的范圍:2.5V至12V;?
2. 每一個輸出端能夠持續(xù)輸出800毫安的電流;????
3. 飽和壓降的值比較低;?
4. CPU可以直接進(jìn)行連接,電平輸出兼容TTL/CMOS
5. 輸出內(nèi)置鉗位二極管,適用于感性負(fù)載;????
6. 在芯片內(nèi)部集成了控制與驅(qū)動功能;????
7. 管腳具有高壓保護(hù);????
8. 能夠正常進(jìn)行工作的溫度為:從零下20攝氏度至80攝氏度。?
L9110相關(guān)的電氣性能介紹如表3-5中所示。
表3-5 電氣性能
符?號?
參?數(shù)??
最?小
典?型?
最?大?
單?位
最大Vcc
電源電壓
2.2?
5
12
伏特
最大Iout??
輸出的電流
-
800?
1000
毫安?
VHin
輸入的高電平
2.2
5
12
伏特
VLin
輸入的低電平
0
0.45
0.6?
伏特
最大Pd?
允許電源消耗
-
-
800
毫瓦
Topr?
能操作溫度?
-35
25?
80
攝氏度
L9110的封裝如圖3-10所示,本設(shè)計中采用的是SOP8型號封裝。
圖3-10 L9110封裝圖
圖3-11 L9110引腳圖
L9110的引腳如圖3-11所示,表3-4為引腳功能的介紹。
表3-4 引腳功能介紹
序號?
符號?
功能?
1?
OA?
A路輸出管腳
2?
VCC?
電源電壓?
3?
VCC?
電源電壓?
4?
OB?
B路輸出管腳
5?
GND??
地線
6?
IA?
A路輸入管腳?
7?
IB?
B路輸入管腳?
8?
GND?
地線
引腳在接收信號時的波形如圖3-12所示。
圖3-12 引腳波形圖
L9110引腳之間的電平邏輯關(guān)系如表3-5所述。
表3-5 電平邏輯關(guān)系
IA
IB
OA
OB
H
L
H
L
L
H
L
H
L
L
L
L
H
H
L
L
3.5 激光管驅(qū)動模塊
在本設(shè)計中,使用的是100mW的藍(lán)紫光激光器,采用SS8050 NPN型三極管作為控制通斷的開關(guān)電路,驅(qū)動電路如圖3-13所示。
圖3-13 激光器驅(qū)動電路
在驅(qū)動電路中提供了兩路輸出,分別并聯(lián)了四個8050三極管,因而支持升級大功率的激光管。單片機(jī)的I/O口連接8050三極管基極進(jìn)行通斷控制,D10引腳控制通斷的一路為激光的負(fù)極,在設(shè)計的過程中,由于單片機(jī)在利用ICSP燒寫B(tài)oootlader的時候需要使用到D11引腳,而電路中產(chǎn)生的漏電流影響到了該I/O口的電平,進(jìn)而影響燒寫,故D11引腳控制通斷的一路改為激光的正極,以避免上述情況的發(fā)生。
之所以選用SS8050三極管,是因為其是大眾普遍使用的一種NPN型晶體三極管,我們可以在各種各樣的電路設(shè)計中看到它,它的使用范圍非常的廣泛,而在本設(shè)計中主要作用為開關(guān)電路。
圖3-14 8050三極管TO-92封裝圖
在本設(shè)計中,處于對電路板的體積上的考慮,所以采用了的8050 三極管,它的封裝為SOT23,如圖3-15所示。
圖3-15 8050三極管SOT-23封裝圖
8050的主要性能參數(shù):
1. 類型:開關(guān)型;
2. 極性:NPN;
3. 材料:硅;
4. 集電極電流max:0.45 A;
5. 直流電增益:10 to 60;
6. 功耗:625 mW;
7. 集電極-發(fā)射極電壓max:24;
8. 特征頻率:150 MHz
9. PE8050 類型為NPN型三極管 耐壓值30V 最大電流1.4A
10. 3DG8050 類型為NPN型三極管 耐壓值25V 最大電流1.4A
11. 2SC8050 類型為NPN型三極管 耐壓值25V 最大電流1.4A
12. MC8050 類型為NPN型三極管 耐壓值25V 最大電流650mA
13. CS8050 類型NPN型三極管 耐壓值25V 最大電流1.4A
3.6 機(jī)械傳動結(jié)構(gòu)模塊
本模塊主要由3D打印件、二相四線步進(jìn)電機(jī)、亞克力面板組成,通過3D打印的滑塊與步進(jìn)電機(jī)的結(jié)合,從而達(dá)到步進(jìn)電機(jī)帶動滑塊移動的目的。機(jī)械傳動結(jié)構(gòu)分為X軸滑臺與Y軸滑臺,X軸裝載激光管進(jìn)行橫向的左右移動,Y軸上有置物面板,被雕刻物放置于面板上,進(jìn)行縱向的前后移動,以此完成雕刻的功能。
3.6.1 3D打印件
在設(shè)計中,3D打印件包括有滑塊、支撐與別子,分別為圖3-16、圖3-17、圖3-18所示。3D打印普遍使用的是ABS或PLA材料進(jìn)行打印,即將數(shù)字模型逐層切片,一層一層進(jìn)行打印,也有部分廠商已經(jīng)開發(fā)出了可以使用其他材質(zhì)進(jìn)行打印的3D打印機(jī)。由于它能夠快速的得到模型實物,因此對產(chǎn)品原型機(jī)的各個零件設(shè)計起到了十分重要的作用。
本設(shè)計中,通過使用soildworks 3D建模軟件,對機(jī)械傳動結(jié)構(gòu)模塊中的部分零件進(jìn)行了3D建模,再由3D打印機(jī)熱堆疊打印出來。
同時,本設(shè)計中3D打印部件所使用的材料為PLA材質(zhì),即通常所說的聚乳酸,這種材料是一種最近新興的生物可降解材料,它充分使用了可以再生的植物資源,例如玉米等所提煉得到的淀粉原料制作而成,其機(jī)械性能良好。PLA這種材料除了上述的可降解特性,同時也有屬于自己的特性。一般來說,傳統(tǒng)舊時所使用的生物可降解材質(zhì),它們的透光度,物理強(qiáng)度,對氣候變化的抗力都不如普通使用的塑料材質(zhì)。然而,PLA材料卻具有比傳統(tǒng)生物可降解材料更好的透光性,物理強(qiáng)度與良好的延展與抗拉強(qiáng)度,這就讓它成為了各種產(chǎn)品廣泛使用的材料。
圖3-16 3D打印滑塊結(jié)構(gòu)
圖3-17 3D打印支撐結(jié)構(gòu)
圖3-18 3D打印別子結(jié)構(gòu)
3.6.2 二相四線步進(jìn)電機(jī)
本設(shè)計中使用的是二相四線步進(jìn)電機(jī),如圖3-19所示。
圖3-19 二相四線步進(jìn)電機(jī)
本設(shè)計中使用的是二相四線步進(jìn)電機(jī)。從總體而言,所謂步進(jìn)電機(jī),就是以每一次的轉(zhuǎn)動角度作為一步,通過單片機(jī)發(fā)送相應(yīng)的脈沖,得到相應(yīng)的角度位移,就是“步距角”,以此來對步進(jìn)電機(jī)進(jìn)行控制。在步進(jìn)電機(jī)非過載狀態(tài)停止時,它的位置、頻率以及速度通常受到脈沖的數(shù)量控制,而不會因為負(fù)載產(chǎn)生變化。所以,精確定位可以利用脈沖數(shù)對角度的位移進(jìn)行控制,并且脈沖的頻率也可以對步進(jìn)電機(jī)的速度進(jìn)行調(diào)整。
普遍的,大部分的步進(jìn)電機(jī)接線都可以通過線的顏色進(jìn)行區(qū)分,又因為步進(jìn)電機(jī)的生產(chǎn)廠家的不同,導(dǎo)致了線色的不完全相同,因此,需要利用萬用表對步進(jìn)電機(jī)的引腳進(jìn)行檢測,確定線序。步進(jìn)電機(jī)的內(nèi)部結(jié)構(gòu)就如圖3-20所顯示的那樣,A與A-是相通的,B與B-是相通的。所以,A與A-是一個組,B與B-則是另外一個組。
圖3-20 步進(jìn)電機(jī)內(nèi)部構(gòu)造圖
步進(jìn)電機(jī)的靜態(tài)相關(guān)參數(shù)如下[4]:
1. 相數(shù):通常用m來表示這個參數(shù),它指的是線圈在不一樣的磁場里相應(yīng)產(chǎn)生的對數(shù)。
2. 靜轉(zhuǎn)矩:當(dāng)電機(jī)在額定靜電效果時,電機(jī)沒有旋轉(zhuǎn)運(yùn)動,電機(jī)軸鎖緊扭矩。
3. 拍數(shù):一般使用n進(jìn)行表示,它指的是由于周期性的變化,其相應(yīng)磁場中則應(yīng)該有的脈沖數(shù)量,或者也可以表示為它轉(zhuǎn)過一個齒距角應(yīng)該要有的脈沖數(shù)量。
4. 定位轉(zhuǎn)矩:它指的是在我們沒有給電機(jī)進(jìn)行加電的時候,轉(zhuǎn)子本身的鎖定力矩。
5. 步距角:它指的是,我們通過控制系統(tǒng)每次發(fā)送一個脈沖信號之后,電機(jī)進(jìn)行轉(zhuǎn)動的角度。用θ表示,θ的結(jié)果通常等于360度乘以(轉(zhuǎn)子齒數(shù)量?*運(yùn)行拍數(shù)),若以二相50齒的步進(jìn)電機(jī)進(jìn)行舉例,那么運(yùn)行步距角四個節(jié)拍是1.8度(一般叫作整步),八拍為0.9度(一般叫作半步)。
步進(jìn)電機(jī)動態(tài)指標(biāo)術(shù)語[4]:
1. 步距角精度:這是一個誤差值,它的存在是由于電機(jī)每次轉(zhuǎn)動一圈產(chǎn)生的實際的和理論中計算出來的值之間的一個差值而得到??梢酝ㄟ^一個比例的計算來進(jìn)行表示,即是誤差除以步距角再乘以百分比。不同的運(yùn)行拍數(shù)這個數(shù)值不同,當(dāng)以四拍運(yùn)行的時候應(yīng)該小于4%左右,當(dāng)八拍運(yùn)行的時候應(yīng)該小于16%左右。
2. 失步:當(dāng)理論上應(yīng)該產(chǎn)生的步數(shù)與步進(jìn)電機(jī)實際運(yùn)轉(zhuǎn)時產(chǎn)生的步數(shù)不同時,則認(rèn)為失步。
3. 失調(diào)角:這是一個角度,是由于轉(zhuǎn)子與定子之間齒軸線產(chǎn)生了差值,所以只要步進(jìn)電機(jī)在工作,就一定會出現(xiàn)失調(diào)角,即使是細(xì)分也沒有辦法消除。
4. 最大空載起動頻率:可以認(rèn)為是在沒有負(fù)載的情況下,步進(jìn)電機(jī)以特定的驅(qū)動方式、電壓及電流中所能夠產(chǎn)生的最高的轉(zhuǎn)動頻率。
5. 運(yùn)行矩頻特性:通過一定的要求測試出來的情況中,可以獲得一個在轉(zhuǎn)動時輸出力矩與頻率之間關(guān)系的曲線,這條曲線就是通常我們所說的運(yùn)行矩頻特性,這條曲線在步進(jìn)電機(jī)大部分的動態(tài)曲線中顯得尤為重要,通常也以此作為依據(jù)對步進(jìn)電機(jī)的使用進(jìn)行選擇。
6. 電機(jī)正反轉(zhuǎn)控制:電機(jī)的時序為12-23-34-41時為正向轉(zhuǎn)動,而時序變?yōu)?1-34-23-12則是反向轉(zhuǎn)動。
步進(jìn)電機(jī)的主要特點[4]:
1. 步進(jìn)電機(jī)的精度誤差不會產(chǎn)生累積,通常就是說在每一步表現(xiàn)出來的結(jié)果與理論計算出來應(yīng)該到達(dá)的位置和之前的每一步產(chǎn)生的誤差都是沒有任何關(guān)系的,例如步進(jìn)電機(jī)步距角1.8°,精度5%的話,就是每一步的實際到達(dá)的位置和理論上應(yīng)該到達(dá)的位置之間的角度誤差范圍在步距角的5%之內(nèi),也就是每一步所在位置和理論位置的角度偏差在0.09°之內(nèi)。
2. 電機(jī)表面可以承受的最高溫度。
首先,不可控的過度高溫就會使得電機(jī)產(chǎn)生退磁的現(xiàn)象,因此而影響到力矩,使其下降或是失步,所以,對于步進(jìn)電機(jī)來說,它所能夠承受的上限溫度受制于不同的磁性材料的退磁點,對于大部分的材料來說,它們的退磁點通常在120攝氏度以上,也有超過這一數(shù)值的材料,可以達(dá)到190攝氏度,六七十?dāng)z氏度的表面溫度對于電機(jī)的運(yùn)行是很正常的,不需要擔(dān)心電機(jī)因為高溫運(yùn)行而損壞。
3. 電機(jī)的力矩隨著轉(zhuǎn)速的降低而上升。
在電機(jī)工作時,電機(jī)內(nèi)部產(chǎn)生一個反向電動勢,它的頻率越低,產(chǎn)生的反向電動勢則越小,由于它的存在,電機(jī)的速度減少下降,則力矩就會上升。
4. 電機(jī)的速度高過一定數(shù)值之后就會產(chǎn)生嘯聲,同時也沒有辦法正常運(yùn)轉(zhuǎn),而將速度降低之后,就可以正常啟動工作。
因為具有明顯的特點,步進(jìn)電機(jī)在這個科技不斷發(fā)展,各種技術(shù)不斷興起的時代起到了不可替代的作用。在未來,經(jīng)過一定的研發(fā)努力,步進(jìn)電機(jī)的使用領(lǐng)域會得到不斷的拓寬,變得更為廣泛。
步進(jìn)電機(jī)的主要特性[4]:
1. 驅(qū)動步進(jìn)電機(jī)能夠操作的驅(qū)動信號必須是一個脈沖信號,當(dāng)沒有脈沖時,步進(jìn)電機(jī)處于靜止,若添加一個合適的脈沖信號將是在一個角度(稱為步角)轉(zhuǎn)動。頻率正比于旋轉(zhuǎn)速度和脈沖。
2. 通常3X16個脈沖才能使三相的電機(jī)完成一圈的正常轉(zhuǎn)動,這是因為它的步進(jìn)角為7.5度,所以在使用的過程中需要充分考慮編程。
3. 在很多場合中需要即時的對步進(jìn)電機(jī)進(jìn)行控制,而它的即時啟動與急停能力就能滿足需求。
4. 為了對步進(jìn)電機(jī)的轉(zhuǎn)向進(jìn)行變化,則需要調(diào)整相應(yīng)的時序。
3.6.3 亞克力面板
在設(shè)計中,用亞克力面板分別切割制成了滑臺底板與載物面板,如圖3-21和圖3-22所示。
圖3-21 滑臺底板
圖3-22 載物面板
3.6.4 滑臺
滑臺由以上介紹過的3D打印件、二相四線步進(jìn)電機(jī)、亞克力面板組成。分別分為X軸滑臺和Y軸滑臺,兩個滑臺的結(jié)構(gòu)基本相同,不同處在于,X軸上滑塊搭載的是由別子固定的激光管,而Y軸的滑塊上搭載的則是載物面板。由于設(shè)計的局限性,滑臺的移動并不是同步的,而是先做橫向運(yùn)動,再做縱向運(yùn)動。
圖3-23 X軸滑臺
圖3-24 Y軸滑臺
3.7 外型框架模塊
外型的框架結(jié)構(gòu)同樣采用亞克力面板切割制作,并用不銹鋼螺絲螺母結(jié)合。
圖2-25 外框框架
4 系統(tǒng)軟件設(shè)計
4.1 Arduino IDE介紹
Arduino IDE是Arduino的軟件編程平臺,由于其開源的特性,使得開發(fā)者可以方便的通過這樣的開發(fā)環(huán)境對自己作品進(jìn)行開發(fā)設(shè)計,同時IDE也具有良好的UI設(shè)計,所使用的編程語言也是類C風(fēng)格,任何對C語言有一定基礎(chǔ)的開發(fā)者都可以對其輕松上手使用,而對于新手來說,入門的門檻也降低許多。由于Arduino的開源收獲了大量的開發(fā)者分享的庫文件,在制作作品或是學(xué)習(xí)使用的過程中就能省去了需要自己編寫庫文件的麻煩,從而加快了產(chǎn)品的開發(fā)時間。
Arduino的IDE界面僅有六個按鈕,分別為編譯、上載、建立新程序、打開程序、保存程序、及串口監(jiān)視器,簡便的界面使得初學(xué)者能夠更容易的對軟件進(jìn)行操作,而不會產(chǎn)生誤解及疑惑,而面對那些功能繁復(fù),有著許多眼花繚亂按鈕的強(qiáng)大軟件來說,更適合新手的使用,有利于培養(yǎng)并延續(xù)初學(xué)者的興趣與信心。
4.2 Delphi7軟件簡介
Delphi7.0是美國一家叫做寶藍(lán)的公司設(shè)計開發(fā)的一個功能十分強(qiáng)大的編程軟件,因為具有了可視化的編程環(huán)境,在使用過程中,就可以方便快捷的應(yīng)用各種內(nèi)嵌的組件,因為了有了大量的組件,讓開發(fā)人員能夠快速對應(yīng)用程序進(jìn)行設(shè)計與搭建,同時也能夠依據(jù)自己的需求,重新修改編寫相應(yīng)的組件[5]。
業(yè)界普遍稱呼Delphi為第四代編程語言,因為它非常的易用,開發(fā)效率高,擁有大量的內(nèi)嵌組件,功能強(qiáng)大。相對其他的語言,比如VC語言,它更為易學(xué),更容易掌握,但是功能上絕不差于VC[5]。
同時,Delphi中還提供了各種開發(fā)工具,包括了圖像的編輯,數(shù)據(jù)庫的處理,組件的編寫,有各種各樣的應(yīng)用對于數(shù)據(jù)庫的開發(fā)。另外,Delphi也可以自己的用戶安裝別的工具,這使得它的使用變得更為廣泛,這就是Delphi這個工具在行業(yè)內(nèi)所具有的極大的優(yōu)勢[5]。
Delphi在數(shù)據(jù)庫方面也有著突出優(yōu)勢,能夠讓用戶得到了更強(qiáng)大的數(shù)據(jù)庫功能,例如:各種數(shù)據(jù)庫結(jié)構(gòu)的適應(yīng),從服務(wù)器/客戶端模式到多層次的數(shù)據(jù)結(jié)構(gòu)模式,更為高效率的數(shù)據(jù)庫管理系統(tǒng)及引擎;更為強(qiáng)大的數(shù)據(jù)分析工具,以及海量的企業(yè)組件[5]。
4.3 系統(tǒng)主程序設(shè)計
該系統(tǒng)采用了模塊化的軟件編程,即所謂的模塊化設(shè)計意味著程序編寫開始時是先通過所需要的主函數(shù)、子函數(shù)、子過程之類的框架將整個控制軟件的主要流程和結(jié)構(gòu)進(jìn)行表達(dá),并安排定義調(diào)試好每一個框架間的輸入、輸出鏈接關(guān)系,而不是通過一個項將上位機(jī)的控制命令及相應(yīng)的語句寫入。為了獲得一系列算法來描述功能塊作為一個單元是逐步細(xì)化的結(jié)果,并充當(dāng)一個單元塊的編程的方法中,實現(xiàn)其算法稱為模塊化。
通過模塊化進(jìn)行編譯的程序有著許多十分容易看到的好處,在一個軟件開發(fā)的期間,完整的模塊化的設(shè)計能夠十分方便與順暢的對編程的實現(xiàn),使得其在實現(xiàn)過程中能夠一直保持清晰的思路,減少潛伏的BUG,而在維護(hù)的期間,也有利于其他人的理解。
本系統(tǒng)的下位機(jī)軟件設(shè)計使用的編程語言是Arduino的類C語言,該語言是在原有C語言的基礎(chǔ)上,重新封裝定義,其優(yōu)點在于僅需掌握少數(shù)幾個指令,稍微了解C語言就可以輕松上手,快速應(yīng)用,指令的可讀性強(qiáng)。同時,由于其開源的特性,不需要像傳統(tǒng)的C51單片機(jī)那樣,需要自己編譯大量的類庫,而是可以直接使用他人分享的庫文件,因此,在作品的設(shè)計的過程中能夠更快的開發(fā)出原型機(jī)。
軟件設(shè)計包含的環(huán)境名稱:電腦端的操作系統(tǒng)環(huán)境為64位Windows 7,單片機(jī)的編程開發(fā)平臺、以及程序下載使用的都是Arduino IDE,電腦端控制軟件開發(fā)的平臺是使用了Delphi7。
主程序模塊通常所應(yīng)該做到的事情就是在機(jī)器啟動之后對整個控制系統(tǒng)進(jìn)行初始化以及對整體的軟件系統(tǒng)的框架進(jìn)行一定的構(gòu)建,首先是機(jī)器與電腦端進(jìn)行通信連接,并在電腦端的界面顯示OK,確認(rèn)連接成功,然后對各個I/O口進(jìn)行初始化設(shè)置,再等待上位機(jī)的指令,進(jìn)行下一步的操作。本設(shè)計的流程圖如圖4-1所示。
圖4-1 主程序流程圖
4.4 各個模塊的軟件設(shè)計
4.3.1 系統(tǒng)初始化模塊
1) 在Arduino軟件體系中,需要先對單片機(jī)的I/O口等各項功能進(jìn)行初始化設(shè)置,因此系統(tǒng)初始化模塊的主要工作為對整機(jī)的引腳等進(jìn)行初始化,系統(tǒng)在進(jìn)行初始化設(shè)置時的模塊程序流程圖如圖4-2所示。
圖4-2 系統(tǒng)初始化模塊流程圖
2) 系統(tǒng)初始化模塊的核心代碼如下所示:
void setup() {
Serial.begin(9600); //設(shè)置串口波特率
pinMode(laser_pin, OUTPUT); //設(shè)置激光器控制I/O口狀態(tài)
digitalWrite(laser_pin,LOW);//設(shè)置激光器控制I/O口為低電平
myStepper1.setSpeed(32); //步進(jìn)電機(jī)的轉(zhuǎn)速設(shè)置
myStepper2.setSpeed(32);
Serial.println("start!"); //串口打印start
}
4.3.2 控制協(xié)議分析模塊
1) 由于需要上位機(jī)軟件的協(xié)作,因此對上位機(jī)軟件部分與單片機(jī)硬件部分進(jìn)行了協(xié)議約定,該模塊的主要工作為將串口掃描獲取到的數(shù)據(jù)進(jìn)行分析,判斷是否符合協(xié)議指令,符合則執(zhí)行相應(yīng)指令,不符合則再次進(jìn)行串口掃描。本設(shè)計中的控制協(xié)議分析模塊的程序流程圖如圖4-3所示。
圖4-3 控制協(xié)議分析模塊流程圖
2) 控制協(xié)議分析模塊的核心代碼如下所示:
switch(utra_char)
{
case ';': //機(jī)器匹配連接指令
cmd_code = NONE; //若匹配,則返回OK
utra_buffer = "";
Serial.println("ok");
break;
case 'X': //移動X軸滑臺指令
cmd_code = MOVE_X;
utra_buffer = "";
Serial.println("cmd_x");
break;
case 'Y': //移動Y軸滑臺指令
cmd_code = MOVE_Y;
utra_buffer = "";
Serial.println("cmd_y");
break;
case 'S': //設(shè)定移動速度指令
cmd_code = SET_SPEED;
utra_buffer = "";
Serial.println("cmd_s");
break;
case 'L': //設(shè)定激光器指令
cmd_code = SET_LASER;
utra_buffer = "";
Serial.println("cmd_l");
break;
}
4.3.3 指令任務(wù)執(zhí)行模塊
1) 本模塊的主要工作為執(zhí)行獲取解析后的協(xié)議指令,通過完成各項指令,使雕刻機(jī)正常工作,指令任務(wù)執(zhí)行模塊的流程圖如圖4-4所示。
圖4-4 指令任務(wù)執(zhí)行模塊流程圖
2) 指令任務(wù)執(zhí)行模塊的核心代碼如下所示:
switch(cmd_code)
{
case MOVE_X: //X、Y軸滑臺移動執(zhí)行指令
case MOVE_Y:
if(utra_buffer.length() == 5)
{
int l_dir;
move_step = hextoint(utra_buffer[0]) << 12 | hextoint(utra_buffer[1]) << 8 | hextoint(utra_buffer[2]) << 4 | hextoint(utra_buffer[3]);
l_dir = 1;
if(0 == hextoint(utra_buffer[4]))
l_dir = -1;
{
if(cmd_code == MOVE_X)
myStepper1.step(l_dir * move_step);
else
myStepper2.step(l_dir * move_step);
}
utra_buffer = "";
Serial.print("move:");
Serial.println(move_step);
}
break;
case SET_SPEED: //速度設(shè)置執(zhí)行指令
if(utra_buffer.length() == 2)
{
move_speed = hextoint(utra_buffer[0]) << 4 | hextoint(utra_buffer[1]);
if(move_speed > 0)
{
myStepper1.setSpeed(move_speed);
myStepper2.setSpeed(move_speed);
}
utra_buffer = "";
Serial.print("speed:");
Serial.println(move_speed);
}
break;
case SET_LASER: //激光器設(shè)置執(zhí)行指令
if(utra_buffer.length() == 2)
{
open_laser = hextoint(utra_buffer[0]) << 4 | hextoint(utra_buffer[1]);
if(0 == open_laser)
digitalWrite(laser_pin,LOW);
else
if(255 == open_laser)
{
digitalWrite(laser_pin,HIGH);
}
else
{
analogWrite(laser_pin,open_laser);
}
utra_buffer = "";
Serial.print("laser:");
Serial.println(open_laser);
}
break;
}
4.4 上位機(jī)控制軟件設(shè)計與實現(xiàn)
本設(shè)計中所
收藏
編號:2690211
類型:共享資源
大?。?span id="n1l7ntd" class="font-tahoma">20MB
格式:ZIP
上傳時間:2019-11-28
5
積分
- 關(guān) 鍵 詞:
-
激光雕刻
系統(tǒng)
設(shè)計
- 資源描述:
-
激光雕刻機(jī)系統(tǒng)設(shè)計,激光雕刻,系統(tǒng),設(shè)計
展開閱讀全文
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
裝配圖網(wǎng)所有資源均是用戶自行上傳分享,僅供網(wǎng)友學(xué)習(xí)交流,未經(jīng)上傳用戶書面授權(quán),請勿作他用。