標(biāo)題: 光驅(qū)步進(jìn)電機(jī)滑臺(tái)制作繪圖儀 [打印本頁(yè)]

作者: hzxyy    時(shí)間: 2018-4-21 14:17
標(biāo)題: 光驅(qū)步進(jìn)電機(jī)滑臺(tái)制作繪圖儀
        看了許多用廢棄光驅(qū)里面的步進(jìn)電機(jī)滑臺(tái)制作激光雕刻機(jī)帖子,一直想自己做一個(gè)來(lái)的,就搜集了一下材料,改用圓珠筆芯和電磁鐵做個(gè)繪圖筆,參考激光雕刻機(jī)做個(gè)繪圖儀了。以下是制作過(guò)程的幾大步驟,算是個(gè)總結(jié)吧!
◆步進(jìn)電機(jī)基本使用,電機(jī)極性識(shí)別,這個(gè)論壇里面找到的。簡(jiǎn)單說(shuō)來(lái)就是用電池接線,注意轉(zhuǎn)動(dòng)方向,然后記錄下來(lái)此時(shí)電機(jī)接線的正負(fù)極。
◆電機(jī)驅(qū)動(dòng)代碼,論壇里面有的。先能使正轉(zhuǎn)、反轉(zhuǎn);然后再用獨(dú)立按鍵控制其正轉(zhuǎn)、反轉(zhuǎn)。注意不要越界,那個(gè)對(duì)滑塊部分有損害的。
◆行程控制
加入液晶顯示模塊部分代碼,以便顯示執(zhí)行了多少個(gè)拍子。
零點(diǎn)識(shí)別,也就是為了保證滑塊部分不會(huì)移動(dòng)出界。
這個(gè)光驅(qū)架子很早前拆的也不記得當(dāng)時(shí)的行程碰撞開(kāi)關(guān)放哪里去了,后來(lái)就找個(gè)了 紅外對(duì)射模塊 裝上,用卡片擋光的方式來(lái)判斷是否到零點(diǎn)位。
再用獨(dú)立按鍵控制其轉(zhuǎn)動(dòng),到達(dá)最大行程時(shí),記錄下液晶上顯示的最大數(shù)字,把這個(gè)數(shù)字寫(xiě)到單片機(jī)程序代碼里,這樣就可以通過(guò)代碼來(lái)控制節(jié)拍總數(shù),從而保證滑塊不會(huì)超限。
◆拆了另一個(gè)光驅(qū)步進(jìn)電機(jī)驅(qū)動(dòng),這個(gè)有限位開(kāi)關(guān),是銅彈簧片實(shí)現(xiàn)的。
也做了行程控制,這里發(fā)現(xiàn)了前面那個(gè)光驅(qū)架子質(zhì)量低哦。就是圖片里面那個(gè)架子上的,黑色塑料底盤(pán)的。
黑色光驅(qū)架子行程控制在31mm,節(jié)拍總數(shù)是282;后拆的那個(gè)光驅(qū)架子,鐵架子那個(gè),行程在35mm,節(jié)拍總數(shù)控制在502。很明顯鐵架子的比黑色塑料的質(zhì)量好。
這里就出問(wèn)題了,兩個(gè)“分辨率”不一致了。后期影響還挺大了?纯春竺娴膱D就知道了。


◆機(jī)架
用后拆的那個(gè)光驅(qū)盒子做的底盤(pán),找了別人家裝修剩余的木條,作為垂直支架,用M3螺絲塑料柱固定光驅(qū)滑塊等等。
壇里有的人用的塑料、電路板等做的架子,我用的還是木頭,好寒酸吶:(
不要螺絲擰死了,預(yù)留點(diǎn)活動(dòng)空間,后期要反復(fù)多次調(diào)試,以便多次調(diào)整的。
找了個(gè)電磁鐵和圓珠筆芯,筆筒,還有廢舊的LED燈條的鋁板,做了繪圖筆的之間。此處需要多試幾次,保證筆芯盡可能垂直、電磁鐵的行程適當(dāng),保證筆尖剛好能夠接觸到底盤(pán)上的紙面上。


繪圖板,是用鐵片粘到滑臺(tái)上的,就是小學(xué)校門(mén)口賣的那些卡通鐵牌,也有磁貼。剪開(kāi)了兩條磁貼,以便壓住紙片。這個(gè)都是小孩玩具里找出來(lái)的。
每次開(kāi)機(jī)后,步進(jìn)電機(jī)都轉(zhuǎn)動(dòng),滑臺(tái)移動(dòng)到零點(diǎn)位。就是通過(guò) 紅外對(duì)射模塊 和 銅質(zhì)彈簧片 檢測(cè)到的。
改寫(xiě)程序,在定時(shí)器中斷中調(diào)用步進(jìn)電機(jī)的驅(qū)動(dòng)代碼,先賦值后使能。


◆繪圖命令
前面行程測(cè)試了,就用節(jié)拍數(shù)代替將來(lái)設(shè)定的位圖像素?cái)?shù)。即繪圖的位圖尺寸是寬282個(gè)像素、高502個(gè)像素。
繪制命令,其實(shí)就是抬筆、落筆了,在落筆的時(shí)候保持住,再移動(dòng)滑塊,就相當(dāng)于圓珠筆在劃線了。
這個(gè)就是控制電磁鐵了。單片機(jī)IO口一個(gè)控制繼電器,繼電器再連接電磁鐵的電源電路。我的電磁鐵使用的是7.2v直流電。
代碼部分還需要增加移位命令。如X移動(dòng)到120像素點(diǎn)、Y移動(dòng)到354像素點(diǎn)。定位到指定點(diǎn)后,落筆,然后再移動(dòng)筆和底面滑臺(tái)。
八鄰域說(shuō)明。位圖就是點(diǎn)陣圖了。
◆串口通信
基本通信模式,能接收、發(fā)送,參考教程里面的,稍微改動(dòng)了一下。9600
繪制命令約定,例如Draw1203540122;120是X坐標(biāo)值,354是Y坐標(biāo)值,01是指在當(dāng)前位置,X方向減一Y方向不變;22在當(dāng)前位置X方向加一,Y方向加一,以此類推。
◆上位機(jī)程序   分位圖轉(zhuǎn)換程序和串口程序兩部分的。
        位圖轉(zhuǎn)換繪圖命令。約定,位圖只能是24位的,且只是黑白圖。
轉(zhuǎn)換成繪圖命令,這個(gè)有點(diǎn)啰嗦,簡(jiǎn)單說(shuō),就是把所有像素掃描一遍,發(fā)現(xiàn)有黑色的像素就生成命令字符串DrawXXXYYY,XXXYYY就是坐標(biāo)值把此像素改成紅色;然后以此像素為中心搜索其周圍的8個(gè)相鄰像素,如發(fā)現(xiàn)有黑色的,那么就在前面命令字符串后追加偏移量(我給XY偏移量都加上了一,這樣就不需要有負(fù)號(hào)了,參考前文示例。
單片機(jī)程序繪圖是再各自減一就能得到正確的偏移量了)。重復(fù)上述過(guò)程,這樣把生成的繪圖命令全部寫(xiě)到文本文件中。一個(gè)位圖文件對(duì)應(yīng)一個(gè)文本文件。
然后再用串口程序讀取此文本命令,每次讀取一行發(fā)送給單片機(jī),單片機(jī)接收到后就返回長(zhǎng)度,執(zhí)行完繪圖命令后發(fā)送Ok回來(lái),串口程序收到Ok后再發(fā)送下一行繪圖命令給單片機(jī)。
如此反復(fù),直至所有行都已經(jīng)發(fā)送完畢。約定每行繪圖命令字符串不超過(guò)252個(gè)字符。






圖上效果看,落筆定位誤差較大,圓珠筆筆尖抖動(dòng)的較大,畫(huà)圖有點(diǎn)類似木版畫(huà)的效果。
估計(jì)是材料和做工粗糙,無(wú)法保證精度和準(zhǔn)確度的。


作者: admin    時(shí)間: 2018-4-21 15:58
好棒的制作,能分享源碼嗎?
作者: luoping121    時(shí)間: 2018-4-23 08:40
頂一下,厲害了
作者: 雪山灰狐    時(shí)間: 2018-4-23 21:02
開(kāi)發(fā)一個(gè)自動(dòng)寫(xiě)作業(yè)機(jī),一定火
作者: qjzyx    時(shí)間: 2018-4-23 23:27
厲害了!能分享源碼嗎??
作者: hzxyy    時(shí)間: 2018-4-24 09:04
本想再整理一下發(fā)的,算了就這么發(fā)了。
位圖轉(zhuǎn)換程序還有缺陷,太簡(jiǎn)單的圖沒(méi)有轉(zhuǎn)換文本的,奇怪!
串口程序,在連續(xù)打印了7,8幅圖像后就暫停了,要得再點(diǎn)擊一下按鈕,才繼續(xù)的,不知何故!
基本都是教程上的代碼照搬過(guò)來(lái)的,所以熟悉教程的話一定容易理解的。

17a光驅(qū)步進(jìn)電機(jī)M1t2.rar

72.24 KB, 下載次數(shù): 133, 下載積分: 黑幣 -5

單片機(jī)程序

BitMap.zip

54.16 KB, 下載次數(shù): 102, 下載積分: 黑幣 -5

位圖轉(zhuǎn)繪圖命令


作者: hualalaxiayu    時(shí)間: 2018-4-24 11:56
謝謝,下載后認(rèn)真學(xué)習(xí)
作者: 轉(zhuǎn)角遇到dogs    時(shí)間: 2018-6-6 21:01
樓主,你的串口程序軟件能發(fā)一下嗎?

作者: hzxyy    時(shí)間: 2018-6-7 10:16
轉(zhuǎn)角遇到dogs 發(fā)表于 2018-6-6 21:01
樓主,你的串口程序軟件能發(fā)一下嗎?

串口程序
這個(gè)是測(cè)試程序,有其他內(nèi)容的。
作為繪圖指令發(fā)送程序,其實(shí)就是逐行發(fā)送就可以了。
我的程序里面有其他內(nèi)容,實(shí)際只需要用到其中幾步。
步驟是:
指定串口;
指定文本文件;
點(diǎn)擊 逐行發(fā)送;
等待完成了。

串口發(fā)送程序.zip

24.71 KB, 下載次數(shù): 76, 下載積分: 黑幣 -5

串口發(fā)送程序


作者: abc496587489    時(shí)間: 2018-6-10 20:05
分享一下資料吧
作者: wis98    時(shí)間: 2018-7-21 11:10
分享一下資料好嗎
作者: qzyhlf    時(shí)間: 2019-1-25 11:53
頂一下,厲害了
作者: zxc753111    時(shí)間: 2019-3-1 15:57
樓主能給個(gè)聯(lián)系方式么
作者: 墨言007    時(shí)間: 2019-5-5 19:23
樓主能分享一下程序嗎?
作者: hzxyy    時(shí)間: 2019-5-9 16:31
下載吧,應(yīng)該夠用的了
作者: wakaYG    時(shí)間: 2019-5-16 16:27
樓主好厲害
作者: 鉆研旋律    時(shí)間: 2019-5-23 00:48
頂起來(lái),學(xué)習(xí)一下代碼
作者: hzxyy    時(shí)間: 2019-5-23 17:32
@ YJGG 應(yīng)該是可以改成 電路板雕刻機(jī) 的,前提是機(jī)械部件得精確些;不過(guò),我后來(lái)沒(méi)再做了
作者: ihoyrtsm    時(shí)間: 2019-5-24 13:41
下載學(xué)習(xí)
作者: huangrs    時(shí)間: 2019-6-13 22:28
hzxyy 發(fā)表于 2019-5-9 16:31
下載吧,應(yīng)該夠用的了

試下行不行,謝謝
作者: ttaniscy    時(shí)間: 2019-9-5 10:50
高手,佩服佩服
作者: RamPaGe3    時(shí)間: 2019-11-7 16:24
樓主好厲害 學(xué)習(xí)了
作者: RamPaGe3    時(shí)間: 2019-11-7 16:54
hzxyy 發(fā)表于 2018-4-24 09:04
本想再整理一下發(fā)的,算了就這么發(fā)了。
位圖轉(zhuǎn)換程序還有缺陷,太簡(jiǎn)單的圖沒(méi)有轉(zhuǎn)換文本的,奇怪!
串口程 ...

樓主  您好 你生成bitMap怎么生成的 能告訴原理嗎?
或者有相關(guān)帖子嗎?
作者: hzxyy    時(shí)間: 2019-11-9 15:59
RamPaGe3 發(fā)表于 2019-11-7 16:54
樓主  您好 你生成bitMap怎么生成的 能告訴原理嗎?
或者有相關(guān)帖子嗎?

這個(gè)你百度一下吧?位圖基礎(chǔ)知識(shí)了。
我是用系統(tǒng)自帶的畫(huà)圖軟件轉(zhuǎn)換的。
作者: wuxianbest    時(shí)間: 2020-4-21 22:53
樓主。請(qǐng)問(wèn)你用的啥步進(jìn)電機(jī)驅(qū)動(dòng)?
我用A4988光驅(qū)步進(jìn)電機(jī)容易發(fā)熱。你這個(gè)長(zhǎng)時(shí)間工作,光驅(qū)步進(jìn)電機(jī)發(fā)熱么?
作者: 葉恒義    時(shí)間: 2020-4-25 10:40
這個(gè)很好,是開(kāi)發(fā)孩子智力的好工具。
作者: 米花卷    時(shí)間: 2020-4-29 01:12
這么復(fù)雜,完全沒(méi)看懂,還是用手吧
作者: hzxyy    時(shí)間: 2020-4-29 10:33
wuxianbest 發(fā)表于 2020-4-21 22:53
樓主。請(qǐng)問(wèn)你用的啥步進(jìn)電機(jī)驅(qū)動(dòng)?
我用A4988光驅(qū)步進(jìn)電機(jī)容易發(fā)熱。你這個(gè)長(zhǎng)時(shí)間工作,光驅(qū)步進(jìn)電機(jī)發(fā)熱 ...

具體什么型號(hào),沒(méi)查過(guò)的;發(fā)熱是有的,似乎不嚴(yán)重,好久不用了
作者: 346712182    時(shí)間: 2020-7-14 18:56
我看被人都用3D打印的固定件 很簡(jiǎn)潔,可以考慮改進(jìn)下
作者: kunpengpeng    時(shí)間: 2020-7-31 17:47
高手,高手。
作者: wshong2005    時(shí)間: 2021-9-21 23:41
感謝高手




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1