|
看了許多用廢棄光驅(qū)里面的步進(jìn)電機(jī)滑臺(tái)制作激光雕刻機(jī)帖子,一直想自己做一個(gè)來的,就搜集了一下材料,改用圓珠筆芯和電磁鐵做個(gè)繪圖筆,參考激光雕刻機(jī)做個(gè)繪圖儀了。以下是制作過程的幾大步驟,算是個(gè)總結(jié)吧!
◆步進(jìn)電機(jī)基本使用,電機(jī)極性識(shí)別,這個(gè)論壇里面找到的。簡(jiǎn)單說來就是用電池接線,注意轉(zhuǎn)動(dòng)方向,然后記錄下來此時(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í)的行程碰撞開關(guān)放哪里去了,后來就找個(gè)了 紅外對(duì)射模塊 裝上,用卡片擋光的方式來判斷是否到零點(diǎn)位。
再用獨(dú)立按鍵控制其轉(zhuǎn)動(dòng),到達(dá)最大行程時(shí),記錄下液晶上顯示的最大數(shù)字,把這個(gè)數(shù)字寫到單片機(jī)程序代碼里,這樣就可以通過代碼來控制節(jié)拍總數(shù),從而保證滑塊不會(huì)超限。
◆拆了另一個(gè)光驅(qū)步進(jìn)電機(jī)驅(qū)動(dòng),這個(gè)有限位開關(guān),是銅彈簧片實(shí)現(xiàn)的。
也做了行程控制,這里發(fā)現(xiàn)了前面那個(gè)光驅(qū)架子質(zhì)量低哦。就是圖片里面那個(gè)架子上的,黑色塑料底盤的。
黑色光驅(qū)架子行程控制在31mm,節(jié)拍總數(shù)是282;后拆的那個(gè)光驅(qū)架子,鐵架子那個(gè),行程在35mm,節(jié)拍總數(shù)控制在502。很明顯鐵架子的比黑色塑料的質(zhì)量好。
這里就出問題了,兩個(gè)“分辨率”不一致了。后期影響還挺大了?纯春竺娴膱D就知道了。
IMG_20180408_065001.jpg (3.8 MB, 下載次數(shù): 112)
下載附件
2018-4-21 14:08 上傳
◆機(jī)架
用后拆的那個(gè)光驅(qū)盒子做的底盤,找了別人家裝修剩余的木條,作為垂直支架,用M3螺絲塑料柱固定光驅(qū)滑塊等等。
壇里有的人用的塑料、電路板等做的架子,我用的還是木頭,好寒酸吶:(
不要螺絲擰死了,預(yù)留點(diǎn)活動(dòng)空間,后期要反復(fù)多次調(diào)試,以便多次調(diào)整的。
找了個(gè)電磁鐵和圓珠筆芯,筆筒,還有廢舊的LED燈條的鋁板,做了繪圖筆的之間。此處需要多試幾次,保證筆芯盡可能垂直、電磁鐵的行程適當(dāng),保證筆尖剛好能夠接觸到底盤上的紙面上。
IMG_20180420_093206.jpg (4.67 MB, 下載次數(shù): 98)
下載附件
2018-4-21 14:09 上傳
繪圖板,是用鐵片粘到滑臺(tái)上的,就是小學(xué)校門口賣的那些卡通鐵牌,也有磁貼。剪開了兩條磁貼,以便壓住紙片。這個(gè)都是小孩玩具里找出來的。
每次開機(jī)后,步進(jìn)電機(jī)都轉(zhuǎn)動(dòng),滑臺(tái)移動(dòng)到零點(diǎn)位。就是通過 紅外對(duì)射模塊 和 銅質(zhì)彈簧片 檢測(cè)到的。
改寫程序,在定時(shí)器中斷中調(diào)用步進(jìn)電機(jī)的驅(qū)動(dòng)代碼,先賦值后使能。
IMG_20180420_093233.jpg (4.86 MB, 下載次數(shù): 108)
下載附件
2018-4-21 14:09 上傳
◆繪圖命令
前面行程測(cè)試了,就用節(jié)拍數(shù)代替將來設(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)。
八鄰域說明。位圖就是點(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)單說,就是把所有像素掃描一遍,發(fā)現(xiàn)有黑色的像素就生成命令字符串DrawXXXYYY,XXXYYY就是坐標(biāo)值把此像素改成紅色;然后以此像素為中心搜索其周圍的8個(gè)相鄰像素,如發(fā)現(xiàn)有黑色的,那么就在前面命令字符串后追加偏移量(我給XY偏移量都加上了一,這樣就不需要有負(fù)號(hào)了,參考前文示例。
位圖轉(zhuǎn)換程序.JPG (180.04 KB, 下載次數(shù): 99)
下載附件
2018-4-21 14:13 上傳
單片機(jī)程序繪圖是再各自減一就能得到正確的偏移量了)。重復(fù)上述過程,這樣把生成的繪圖命令全部寫到文本文件中。一個(gè)位圖文件對(duì)應(yīng)一個(gè)文本文件。
然后再用串口程序讀取此文本命令,每次讀取一行發(fā)送給單片機(jī),單片機(jī)接收到后就返回長(zhǎng)度,執(zhí)行完繪圖命令后發(fā)送Ok回來,串口程序收到Ok后再發(fā)送下一行繪圖命令給單片機(jī)。
如此反復(fù),直至所有行都已經(jīng)發(fā)送完畢。約定每行繪圖命令字符串不超過252個(gè)字符。
串口.JPG (143.3 KB, 下載次數(shù): 93)
下載附件
2018-4-21 14:13 上傳
IMG_20180420_102403.jpg (4.72 MB, 下載次數(shù): 87)
下載附件
2018-4-21 14:09 上傳
IMG_20180420_120604.jpg (5.75 MB, 下載次數(shù): 100)
下載附件
2018-4-21 14:09 上傳
IMG_20180420_120711.jpg (5.73 MB, 下載次數(shù): 98)
下載附件
2018-4-21 14:09 上傳
圖上效果看,落筆定位誤差較大,圓珠筆筆尖抖動(dòng)的較大,畫圖有點(diǎn)類似木版畫的效果。
估計(jì)是材料和做工粗糙,無法保證精度和準(zhǔn)確度的。
|
評(píng)分
-
查看全部評(píng)分
|