• 3D列印服務
  • COSPLAY 3D 建模
  • #maker+t=market
  • 1
  • 2
  • 3

DIY CNC Machine.Taipei 造訪社團 » Arduino

原文網址 Shelandy Ting
2020-03-04 15:02:47

某空間有人留下小型CNC雕刻機,但是沒有控制器,想用最少的金錢讓他動起來。聽說用印表機埠的控制會比用usb好。我可以找到一個有parallel port 的舊電腦(或是arduino 樹莓派之類的單板機)來接控制卡。請問
*是去對岸買parallel port 的GRBL控制卡:CNC(X/Y/spindel +x/y/z 限位 ) 接 控制卡 接 電腦 印表機埠 這樣就硬體可以動了嗎?(還是有其他要接的硬體?)
*採購卡時有沒有啥要注意的地方(早期某個設計有雷,或是某個卡便宜又大碗...
*有沒有人閒置控制卡要出清的?


原文網址 石小川
2019-10-03 19:28:13

使用Python語言做自動控制的方法 - I 軟體篇

[語法簡單明瞭]

Python語法簡單易學,最重要的是還有大量功能強大的免費模組可下載,其強大的應用層面已經發展到令人不可忽視的重要地位,甚至NASA也拿來當作航太人機介面的控制語言。早期接的專案我都是用Assembly、C、C++、C#等設計自動控制系統,這幾年我很多是改用Python來撰寫,好處是取得系統傳回的資料後,可很容易且快速的結合各種海量模組演算法發展出很專業的人工智慧機器。

[Python是跨平台語言]

Python本身沒有支援特定硬體控制的功能,也正因為如此它才能夠跨平台,但這不是原罪,相反的卻是它的優點,換句話說,在x86、Arm、Arduino、PC、手機或平板等不同的作業系統環境下,相同的程式皆可以很容易互相移植過去正常執行,這 print('免費資源 + 免費的模組 + 簡單易學') 根本是一場世界革命,能不紅嗎!

綜合以上講了一大堆,無非就是要說服工程師們是該改變自已接受世界脈動的時候了,我也不例外,以此共勉之!

[軟體開發]

接下來進入主題談論如何用Python開發一個多軸的CNC平台,會舉這個CNC專題當作例子是因為在我眼裡,CNC其實就是一個機器人,我的經驗是~只要搞懂CNC軟硬體知識後,無論是自駕車、四軸無人機或是工具機皆是囊中物,至於想要用它做些甚麼,端看你無限的想像力而定!

因為Python沒有直接存取硬體的介面,我的方法是用Python當作主程式,將底層存取硬體的API程式(動態連結程式庫 DLL)封裝成Python可調用的格式即可,如此一來多年使用C++/C#寫的程式庫都可引用了。因為程式很長, 為免洗板我簡略敘說過程如下:

(A). 封裝DLL程式庫成PyCNC.py 模組,其中 class __IMC_Pkg()就是封裝成類別的名稱, 將來Python與機器溝通的介面就是依靠這項。

#---------------------------------------------------------------------------

# 這是被呼叫的模組 : PyCNC.py

#---------------------------------------------------------------------------

# 需引用ctypes

import ctypes

import ctypes.wintypes

#------------------------------------------------------------------------------

class __IMC_Pkg():

def __init__(self):

self.ptr = ctypes.WinDLL('IMC_Pkg.dll') # _stdcall

#---------------------------------------------------------------------------

def Open(self, netcardId, imcId):

self.ptr.PKG_IMC_Open.argtypes = (ctypes.c_int, ctypes.c_int)

self.ptr.PKG_IMC_Open.restype = ctypes.POINTER(ctypes.c_voidp)

return self.ptr.PKG_IMC_Open(netcardId, imcId) #---------------------------------------------------------------------------

def Close(self, handle):

self.ptr.PKG_IMC_Close.argtypes = (ctypes.POINTER(ctypes.c_voidp), )

self.ptr.PKG_IMC_Close.restype = ctypes.c_int

return self.ptr.PKG_IMC_Close(handle)

#---------------------------------------------------------------------------

def MoveAbs(self, handle, pos, startvel, tgvel, wait, axis):

self.ptr.PKG_IMC_MoveAbs.argtypes = (ctypes.POINTER(ctypes.c_voidp), ctypes.c_int, ctypes.c_double, ctypes.c_double, ctypes.c_int, ctypes.c_int) self.ptr.PKG_IMC_MoveAbs.restype = ctypes.c_int

return self.ptr.PKG_IMC_MoveAbs(handle, pos, startvel, tgvel, wait, axis)

#---------------------------------------------------------------------------

def MoveAbs_P(self, handle, pos, startvel, tgvel, wait, axis): # P 輔助座標

self.ptr.PKG_IMC_MoveAbs_P.argtypes = (ctypes.POINTER(ctypes.c_voidp), ctypes.c_int, ctypes.c_double, ctypes.c_double, ctypes.c_int, ctypes.c_int) self.ptr.PKG_IMC_MoveAbs_P.restype = ctypes.c_int

return self.ptr.PKG_IMC_MoveAbs_P(handle, pos, startvel, tgvel, wait, axis)

.

.

(B). 主程式motion.py 要引用也很簡單, 只要加上PyCNC.py模組,就可以調用IMC_Pkg所有的功能

#---------------------------------------------------------------------------

# 這是主程式 : motion.py

#---------------------------------------------------------------------------

from CNC import PyCNC

IMC_Pkg = PyCNC.__IMC_Pkg()

#---------------------------------------------------------------------------

if(self.gHandle != None):

IMC_Pkg.Close(self.gHandle)

self.gHandle = IMC_Pkg.Open(netcardId, imcId)

if(self.gHandle != None): #//if(IsOpen())

if(IMC_Pkg.InitCfg(self.gHandle) != 0):

self.nAxis = IMC_Pkg.GetNaxis(self.gHandle) # 取得設備支援軸數

p, self.Position = self.GetPosition(3)

(C). 建議開發環境安裝Anaconda開發包, 在設計Python程式時可少走很多冤枉路,為了相容以前DLL程式庫,我是下載Anaconda3 - 32bit - Python3.7.3版本。

p.s. (1). IMC3xx/IMC4xx系列運動控制卡所有函數(IMC_Pkg.dll)我都有封裝成PyCNC.py以方便Python呼叫,有興趣的朋友可加入我臉書討論。

((2). 圖-1. 八軸運動+I/O+AD/DA控制卡應用圖例

圖-2. motion.py 主程式的視窗介面

影片-1. 使用motion.py 展示CNC軸控,也順便Demo飛行搖桿控制3軸及發射雷射

影片-2. 電腦執行motion.py情形

影片-3. 使用motion.py 執行G-Code,用雷射雕刻一個正圓

(3). 下回有機會再補上 : "使用Python語言做自動控制的方法 - I I 硬體篇"及 "使用Python語言做自動控制的方法 - I I I 通信篇" (UART、USB、TCP/IP)兩篇才算完整,並且教導大家如何組裝一台三軸運動控制平台的知識(機械結構及控制電路的接法),對於想創業設計自已機器的朋友不要錯過了。在臉書不適合長篇大論所以只能簡單敘述,總感覺見樹不見林,當然我也有開相關的指導課程,有興趣的朋友可上我臉書或私訊我。

Wei-Hsiung Huang
2019-10-03 19:48:42

Nice..

便宜十塊錢
2019-10-03 19:49:49

Python好用+1
我幫公司做一個簡易Web資訊看板
用一台PLC+乙太模組做收集各產線資訊
(我很懶得拓樸一大堆通訊線,跑RS485 To Zigbee)
由乙太模組把資訊先推到ModbusTCP層
再由Python讀ModbusTCP把讀到的值推到前端Web上
簡易的產能看板
跨平台真的好用

吳小東
2019-10-03 22:16:58

深深認同

石小川
2019-10-03 23:30:37

good job! 這是很好的應用, 以前接工廠資料收集器專案, 通信用RS232, 十台一大捆線, 現在看太不可思議了, 哈哈^^

便宜十塊錢
2019-10-03 23:57:01

石小川 我收集的PLC有做類心跳封包,只對有開機的機台通訊,不然Timeout會拖慢速度,越多台沒開越慢,所有的數值都在各機台PLC處理好,再收集
另外還有外加自動紀錄(5天)+控制各站自動歸零(各站開機時規零)

便宜十塊錢
2019-10-04 00:08:16

這個是第一個有線通訊(4台)
現在在做的無線(9台)快好了
規劃排點位跟處理問題較麻煩 ?

石小川
2019-10-04 12:12:53

感謝分享, 在關燈無人工廠掘起後, 機台間的通信越來越重要了, 大大的技術應該很有潛力, 我還停留在十幾年前TCP/IP抓封包技術, 有機會再請教您^^


原文網址 戴健吉
2017-09-14 22:28:25

大家好小弟最近有要自己組一台cnc,最近為了控制板,或控制器很傷腦,在這的前輩門,可以給我一些建意嗎?我的行程是4米X1.5米X1米。我的想法是要用arduino加驅動器,或是選擇mach3,目前我只知到這兩個。之前有問過國明內的軸卡都還要自己寫vb, c#。希望各位給我一些的意見。在這自己以有組好的前輩都用哪些軸控呢。希望大家能不吝嗇為小弟賜教。謝謝大家。

戴健吉
2017-09-14 22:37:34

還有未來想升級五軸。

Blue Hwang
2017-09-14 22:39:03

有專門mach3的卡,他是用pc當控制器,搜尋 「維宏」雕刻機

林志強
2017-09-14 22:41:27

這麼大一台
一定很壯觀

Hidibe G-power
2017-09-14 22:45:04

可以考慮脫機控制,會比較穩定,維宏控制卡也是不錯的選擇

Michael Lin
2017-09-14 22:47:09

如果自己過去沒有自己組成功過,自己也沒有加工設備,做這麼大台的機械,勸你放棄這個念頭.... 建議由小的開始吧...

柯統海
2017-09-14 22:54:45

No arduini

楊宗訓
2017-09-14 22:58:14

M3確定可以支援五軸...但這麼大台...想想就好有挑戰

尤宏耀
2017-09-14 23:20:53

如果是鋁擠型,組好可能只能銑保麗龍....

Michael Lin
2017-09-14 23:25:31

搞這麼大,是想做什麼用途的?

盧修圻
2017-09-14 23:41:05

不要想自己寫了,要動手軟硬韌體都要懂,牽扯的部分太多,到時光tune就tune死你,要最省事mach3卡買下去學著用,第一台就這麼大,組裝誤差可能會大到你想把機器砸了,還有自組不一定會比較省,量具有的沒的買一買也不少錢,脫機控制,除非手寫code,要用cam算要綁後處理,你要用arduino這也是一個大問題,總之不建議啦

Crab Chen
2017-09-14 23:46:24

arduino掛步進馬達控制板,可接受cnc碼跑3d列印,跑跑銑床會有什麼問題嗎?

Chou Herman
2017-09-15 00:26:22

我在想新手需要玩這麼大嗎?因為至少會想升級二…三次,加上修修改改,材料成本爆增一倍以上。好用不好用還不知道?@@

蔡小恩
2017-09-15 01:07:33

機架買現成的,電控自己來可能比較簡單…

陳郁斌
2017-09-15 01:28:29

先仔細衡量自己的能力,對自組機台的把握度到幾成,組的出來不代表就能用哦!有很多是你必須一開始就考慮進去的,1.你的預算。2.剛性。3.傳動方式。4.三軸馬達挑選。5.限位開關型式選用。6.集塵?。

陳郁斌
2017-09-15 01:34:03

以上只是機構的部分,電控的部分也是一門學問,這是過來人給你的小小建議啦!我大大小小做了不少台,像你說的行程,我還不敢挑戰,所以你要評估好哦! 加油

Morakot Lee
2017-09-15 08:08:25

建議 不要螺桿 光桿
建議 滾珠螺桿 滾珠滑塊

劉大城
2017-09-15 09:19:17

昨天用arduino的玩具弄的xd

劉大城
2017-09-15 09:23:05

戴大,我也想組一台2萬之內的cnc+雷雕,能工作30*40铣軟金屬的,要一起研究嗎?

劉大城
2017-09-15 09:33:19

機架想淘這台,24kg的...

柯統海
2017-09-15 10:46:50

先從龍門開始設計 有新竹的朋友嗎

吳水豚
2017-09-15 23:14:24

買買買,打鐵趁熱,骨架要硬

Mach Chuang
2017-09-16 12:08:21

如果這是市調....那4米X1.5米X1.....用Mach3就算是用伺服馬達驅動不管鋁機架或鑄鐵機架一樣會失步,因為Mach3內部是英制運算也沒有螺桿誤差補償,建議用脫機系統,國產"億圖"可以考慮,有現成的系統不須自己編寫

Tim Chang
2017-09-16 23:57:22

講到樓主都不敢回了......


原文網址 Cheton Wu
2016-06-20 12:50:51

https://github.com/cheton/cnc
A web-based CNC milling controller for the Arduino running Grbl. It runs on an Raspberry Pi or a laptop computer that you have Node.js installed, connecting to the Arduino over a serial connection using a USB serial port, a Bluetooth serial module, or a Serial-to-WiFi module like XBee or USR-WIFI232-T.

翻譯年糕


原文網址 夏瑀
2016-03-21 22:33:02

已售出
私人出售!!
42型步進馬達 1.3A 0.52n/m * 3
a4988 驅動版2A StepStick 兼容Arduino * 4 個(紅色附散熱片)
聯軸器
D8-d5 夾緊式* 3 個
以上因為覺得馬達買小了想換57型,驅動塊是買錯的,馬達只有上驅動去模擬沒實際使用,這樣全部$1300,高雄可以約地方面交,可小刀

蔣益民
2016-03-21 22:36:14

要標注一下私人出售


原文網址 Justin Case
2016-02-17 14:21:05

Hello. Thank you for letting me join. I'm from Canada and am looking for information and components on converting a manual carver/duplicator to CNC operation. My goal is to use open-source software and Arduino/RasPi .
Is it okay to post in English?

翻譯年糕


原文網址 蔣益民
2016-02-05 00:22:16

暫停 -0:13 其他視覺設定 進入浮動視窗模式 點擊放大 取消靜音 -0:13 暫停 取消靜音 其他視覺設定 進入浮動視窗模式 點擊放大 點擊可展開 蔣益民 triangle-down triangle-up share 分享 你好像無法播放這段影片。如果是的話,請重新啟動瀏覽器。 關閉 由 蔣益民 張貼 3,092 次觀看 3,092 次觀看 ‎ 蔣益民 ‎ 發文到 Arduino.Taipei 2016年2月5日

玩玩CNC手輪搭配ARDUINO控制伺服化步進馬達XD

詹智發
2016-02-05 01:39:14

MPG呢

Star Lin
2016-02-05 07:55:39

手輪這個好讚!
請問大大這顆步進馬達是雙突軸加編碼器?
驅動版是有編碼器輸入?
之前也很想買這種步進。

Devon Hsin
2018-01-03 01:11:21

沒認錯的話,這顆驅動不需要編碼器,是靠電流監測有無失步

鉛筆壹
2018-01-03 08:46:54

把手輪和馬達連起來不就是編碼器的反饋了,沒看到梗嗎?XD

蔣益民
2018-01-03 09:51:24

這顆馬達是伺服化步進,是有編碼器回饋的

Devon Hsin
2018-01-03 09:54:40

嗯嗯,我果然認錯了XD

Allen Chang
2018-01-03 10:08:38

步進伺服

Pleahen Miao
2018-01-04 18:08:33

所以我說這個要幹嘛(XD

Huang Shihchu
2018-01-28 15:36:30

能否說明接線與pin關係嗎?


原文網址 鄭鴻旗
2016-01-11 11:54:59

討論
關於雕刻主軸

最近比較有時間,所以又開始想要動工 cnc 計畫。之前停下來的是因為主軸的問題,因為成本與精細度的考量,所以就採用 400w 的有刷馬達+er11 夾頭,但是測試之後覺得整隻主軸太重了,而且也沒有加減速的控制模組配合 arduino + grbl 。昨天一邊找資料重新看看有沒其他的解法的時候,看到這個網友的設計。
http://www.thingiverse.com/thing:911424/#files

他的設計是,用電變+無刷馬達+皮帶+C10 ER11A 100L 等,構成主軸,這設計應該比400w 的減輕很多,另外因為他是用 3d 列印的零件來組合,只是這樣的設計不知道可不可行,如果只針對 pcb 雕刻這功能的話?

都是掏寶來的零件,雕刻主軸成本應該可以在 1000 左右。

口丁 cnc 製作紀錄:
https://openlabtaipei.hackpad.com/Cyclone-PCB-Factory-zHiXB…

蔡富名
2016-01-11 12:17:56

呵呵

陳鈞瑋
2016-01-11 14:32:06

建議不要用列印件當主軸本體,軸承選用也很重要

鄭鴻旗
2016-01-11 14:34:03

er11 長軸是用 3 個608-2S 軸承,放在列印件裡面

蔡富名
2016-01-11 16:51:01

這種東西,打掉重練最快哈哈哈哈哈哈

謝宗勳
2016-01-12 10:18:49

用列印件很快就變形偏掉了,至少用鋁件.


原文網址 Star Lin
2015-12-17 09:51:32

4軸自動挖洞,
但是請問如果要畫圓X.Y軸同時動作是靠什麼方式去動作?
還有大大知道伺服馬達的控制資料嗎?
是不是跟步進一樣??
我是使用
顯示LCD Arduino due
控制板 Arduino mega2560
驅動 TB6560
步進 2相4線42步進


原文網址 Star Lin
2015-12-17 08:24:54

這是我跟朋友做的無線控制步進馬達,
目前可以控制雕刻內置的數字或4軸自動挖洞,
但是請問如果要XY軸同時動作是靠什麼方式去動作?
還有大大知道伺服馬達的控制資料嗎?
是不是跟步進一樣??
我是使用
顯示LCD Arduino due
控制板 Arduino mega2560
驅動 TB6560
步進 2相4線42步進

Star Lin
2015-12-17 11:22:03

謝謝
不過還很多功能還沒弄出來,
正在想想棒法!

陳鈞瑋
2015-12-17 12:33:09

厲害

蔡則昌
2015-12-17 15:43:41

來看看 我的臉書 大家都住在 台中市

蔣益民
2015-12-17 16:28:52

影像定位功能mach3有