# Giới thiệu sản phẩm > Đồ tự chế >  Chế MPG cho máy CNC 5 trục phay gỗ

## trongbim

Em đang tính làm cái MPG cho con máy đục tượng gỗ 5 trục điều khiển bằng Mach3, để lúc sử dụng đỡ phải chạy đi chạy lại nhiều; thì may quá, tìm được bài hướng dẫn rất chi tiết của bác minhdt. Nhưng ngặt nỗi lại không có cái Bob Chị na thứ 2 để dùng riêng cho MPG, em mới nghĩ là nếu không dùng Bob thứ 2 thì có được không?
Vậy là đi tìm hiểu cách thức giao tiếp của Mach3 với thiết bị bên ngoài qua cổng LPT. Ban đầu chẳng biết gì nên em thử với một đống nút nhấn và con lăn từ con chuột máy tính cũ.


Đây là sơ đồ nối dây em tham khảo từ trang 9w2bsr.com

Cổng  USB để lấy nguồn 5V trực tiếp từ máy tính, không cần dùng nguồn bên ngoài.
Sau một hồi loay hoay thì em nhận ra rằng có thể sử dụng 13 chân: gồm 8 chân màu vàng (Pin2 đến Pin9) và 5 chân màu xanh dương (Pin10, 11, 12, 13, 15) để làm các chân input; 5 chân màu đỏ (Pin1, 14, 16, 17) làm các chân output; còn các chân màu xanh lá cây (Pin18 đến Pin15) là các chân đất.
Thế là bắt đầu cân đo đong đếm xem có thể đưa được những nút nhấn nào lên MPG. Mất gần tuần em mới vẽ được cái sơ đồ nguyên lý.


Dựng mô hình 3D lên SolidWorks cho dễ hình dung. 
Ý định của em là :
13 chân inputs sẽ gồm :
-	5 nút nhấn chọn 5 trục (gộp chung vào 1 công tắc chuyển mạch 5 vị trí)
-	1 nút thay cho nút Tab trên bàn phím để hiển thị MPG ảo trên màn hình máy tính
-	1 nút bật tắt MPG mode
-	1 nút thay đổi Jog Step
-	1 nút set Zero cho các trục
-	1 nút Cycle Start
-	1 nút Feed Hold
-	2 chân phát xung cho tay quay

4 chân outputs sẽ gồm:
-	3 Led lần lượt sáng tương ứng với mỗi Jog step 1; 0.1; 0.01
-	1 Led sáng báo rằng MPG mode đang bật

Ngoài ra còn 1 nút E-stop và 1 nút bên cạnh E-stop dùng để xóa tín hiệu Limit Switch về board khi mà máy chạy gặp giới hạn; 2 nút nhấn này không đi về cổng DB25 mà đi về BOB.

Ý tưởng là thế, cũng gần đủ các chức năng em hay dùng. Bắt tay vào làm xem nó có ra gì không.Đầu tiên là cái vỏ hộp. Tính làm bằng tôn cho nhẹ, nhưng mang cái bản vẽ ở trên kia đi gia công thì không chỗ nào làm cho vì em làm có 1 chiếc. Đành mua cái hộp nhựa về khoan khoan đục đục 1 hồi thành ra thế này.
In tờ giấy rồi cắt dán để dùng tạm, có thời gian nhất định sẽ làm lại đàng hoàng cho em nó.


Dùng 2 cáp 10 ruột mà vẫn thiếu @@
Coi như là đã xong phần cứng.
Do máy tính chỉ có 1 cổng LPT nên em mua thêm 1 card PCI-express to LPT. 
Em cài driver và lấy địa chỉ của nó trong Device Manager điền vào Port Setup trong Mach3 như thế này. Ở đây em dùng Port #1 là cổng điều khiển động cơ các trục, Port #2 là cổng MPG. Vậy nên khi thiếp lập Config, ở cột Port# tất cả sẽ điền là 2.


Tiếp theo là Input Signals.




Ở đây em dùng 11 nút nhấn từ OEM Trig #1 đến OEM Trig #11. Như ảnh trên thì OEM Trig #1 sẽ tương đương với Pin4 trên cổng DB25. Các bác có thể tùy chỉnh theo ý mình cho phù hợp.

Tiếp theo là Output Signals (điều khiển 4 Led) thiết lập như sau


Cái này các bác cũng có thể tùy chỉnh theo ý mình. Do em nối dây không theo thứ tự các con Led trên MPG và do code điều khiển ở phía sau nên mới lung tung như vậy.

Tiếp theo là System Hotkeys.


Bảng OEM Code của Mach3 các bác search google là ra ngay. Em điền các giá trị OEM Code tương ứng của 11 nút nhấn vào Trigger # 1 đến 11. Trong đó có Trigger#11 điền giá trị 301 (301 là một giá trị đăc biệt – Trigger Macro). Khi ta ấn nút nào được gán giá trị này, một chương trình con sẽ được Mach3 khởi chạy. Và chương trình con này là do người dùng tự lập trình. Vì vậy em sẽ dùng cái nút đặc biệt này làm nút Set Zero cho từng trục.

Đến đây là cái MPG đã nhận các nút bấm và tay quay điểu khiển được các trục rồi. Riêng chỉ có nút Set Zero là chưa hoạt động và 4 con Led là chưa sáng.
Em sẽ tách riêng làm 2 phần để giải quyết từng phần cho gọn.

*1.	Set Zero cho từng trục*
Đầu tiên em tạo 2 file .m1s với nội dung như sau (tạo 2 file .txt rồi đổi đuôi thành .m1s).
M299.m1s
-------------------------
SetTRiggerMacro 300
-------------------------

M300.m1s
-------------------------
Sub Main()
If IsActive (OEMTRIG2) and getoemled (59) Then
dooembutton (1008)                             
End If

If IsActive (OEMTRIG2) and getoemled (60) Then
dooembutton (1009)                               
End If

If IsActive (OEMTRIG2) and getoemled (61) Then   
dooembutton (1010)                               
End If

If IsActive (OEMTRIG2) and getoemled (62) Then   
dooembutton (1011)                               
End If

If IsActive (OEMTRIG2) and getoemled (63) Then   
dooembutton (1012)                               
End If
End Sub
-------------------------
Save lại rồi copy cả 2 vào thư mục : _C:\Mach3\macros\Mach3Mill_
Tiếp theo vào General Config trong Mach3 và thêm M299 vào dòng Initialization String.


Mục đích của việc này là yêu cầu Mach3 chạy Macro M299 khi khởi động chương trình. Trong M299 ta đã gán M300 là Trigger Macro (Nút đặc biệt mang giá trị 301). Kết quả là khi ta nhấn nút mang giá trị 301 đó, chương trình trong M300 sẽ tự động chạy. Đó là chương trình set Zero.

*2.	Điều khiển Led*
Trước tiên em tạo 1 file có tên là “macropump.m1s” với nội dung như sau:
------------
If GetOemDRO(828)=1 and GetOemLED(15) Then
DoOEMButton (233)          DoOEMButton (236)
DoOEMButton (238)          End If

If GetOemDRO(828)=0.1 And GetOemLED(15) Then
DoOEMButton (235)          DoOEMButton (234)          DoOEMButton (238)         
End If

If GetOemDRO(828)=0.01 and GetOemLED(15) Then
DoOEMButton (237)        
DoOEMButton (234)         
DoOEMButton (236)         End If

If GetOemLED(57) Then
ActivateSignal(OutPut1)
Else
DeActivateSignal(OutPut1)
End If
------------------
Save lại rồi copy vào thư mục: _C:\Mach3\macros\Mach3Mill_
Tiếp theo vào General Config trong Mach3 và đánh dấu tick vào dòng Run Macro Pump.




Xong rồi tắt Mach3 đi và bật lại để nó cập nhật chương trình. Bây giờ là 4 con Led đã sáng theo ý muốn rồi.
Phần này em không biết giải thích thế nào cho dễ hiểu, các bác muốn tìm hiểu thêm thì có thể google mấy từ khóa này là hiểu ngay: macro pump Mach3, GetOEMLED, GetOEMDRO.

Đây là video em test tổng thế tất cả các nút:




Nhờ có bài viết rất chi tiết của bác minhdt mà em hoàn thành được 1 cái MPG đầu tay, tuy không phải đầy đủ tiện nghi nhưng trước mắt là cũng đủ dùng cho em. Em sẽ theo dõi 1 thời gian để hoàn thiện thêm. Mong nhận được nhiều gạch đá từ các bác  :Big Grin:

----------

aiemphuong, anhcos, CKD, cnclaivung, CQV, dohieu3000, duonghoang, elenercom, elkun24, Fusionvie, Gamo, haignition, hoangmanh, huanpt, huyquynhbk, Minh Phúc, Minh Phi Nguyen, Nam CNC, nhatson, QuyND, sieunhim, solero, trungga, VuongAn, vusvus

----------


## huyquynhbk

thanks bác đã chia sẻ. e đang có mạch 4.2.1 của machviet, bjo rảnh cũng hí hoáy 1 tí.hehe

----------

trongbim

----------


## hoangmanh

Một bài hướng dẫn quá đầy đủ cảm ơn bác đã chia sẻ

----------

trongbim

----------


## aiemphuong

sắp có chiện mần...

----------

trongbim

----------


## trongbim

> thanks bác đã chia sẻ. e đang có mạch 4.2.1 của machviet, bjo rảnh cũng hí hoáy 1 tí.hehe


em chưa dùng mạch đó bao giờ, nhưng thấy nó có tích hợp sẵn MPG trên board rồi thì phải

----------


## trongbim

> sắp có chiện mần...


nhỏ gọn thế này mới thích chứ, khi nào em phải kiếm lại cái vỏ khác mới được hehe

----------


## elkun24

Bác phấn đấu biến Mach3 trở thành hệ điều khiển vòng kín nữa là tuyệt vời ạ  :Big Grin:

----------

trongbim

----------


## CKD

Quá good rồi, nhưng mình có góp ý thế này.
Port dùng để điều khiển motor nên là LPT onboard, ổn định hơn nhiều so với cái exPCI LPT

----------

trongbim

----------


## trongbim

> Bác phấn đấu biến Mach3 trở thành hệ điều khiển vòng kín nữa là tuyệt vời ạ


đến được đó thì còn phải tốn nhiều cơm lắm bác ạ  :Big Grin: 




> Quá good rồi, nhưng mình có góp ý thế này.
> Port dùng để điều khiển motor nên là LPT onboard, ổn định hơn nhiều so với cái exPCI LPT


may quá có bác chỉ giáo, em cũng phân vân vị trí 2 cái đó có ảnh hưởng gì không

----------


## congmanhtb

Đây là sản phẩm của em sau khi đọc bài viết này

----------

CKD, huyquynhbk, trongbim, VuongAn

----------


## sieunhim

thank bác chủ. bài viết rất hay và chi tiết.

----------


## trongbim

> Đây là sản phẩm của em sau khi đọc bài viết này


Dân chuyên nghiệp có khác, bác làm đẹp quá hehe

----------


## sieunhim

mấy công tắc xoay kia mua ở đâu các bác nhỉ. gọi tên nó sao chỉ e với, cũng đang muốn diy 1 cái  :Big Grin: , tks all

----------


## nhatson

> mấy công tắc xoay kia mua ở đâu các bác nhỉ. gọi tên nó sao chỉ e với, cũng đang muốn diy 1 cái , tks all


sì gòn thì ra tiệm Sơn Từ, nằm ngay góc lý thường kiệt + nhật tảo

----------

sieunhim

----------


## sieunhim

> sì gòn thì ra tiệm Sơn Từ, nằm ngay góc lý thường kiệt + nhật tảo


tks bác để e dzọt ra đó, mang cái hình cho nó nhanh  :Big Grin:

----------


## VuongAn

> Đây là sản phẩm của em sau khi đọc bài viết này


Bác có thể cho em xin file printer 3D cái vỏ được ko ạ.
Email em là: vuonganquoc@gmail.com
Thanks bác

----------

