kLaserCutter - Tự làm máy cắt laser bằng mã nguồn người Việt - Phần 2: Máy cắt laser thành thiết bị IOT

I. Giới thiệu

Như ở bài viết trước trong chuỗi bài viết về máy cắt laser của mình. Chúng ta đã cùng nhau tìm cách dựng một máy cắt bằng chính khả năng sáng tạo của riêng bản thân mỗi người. Hôm nay, mình xin giới thiệu về cách mà mình đã biến chiếc máy cắt của mình thành một thiết bị IOT. Hay ở chỗ, qua bài viết này, bạn có thể biến bất kỳ chiếc máy cắt laser nào (đã được nạp firmware) trở thành một chiếc bị IOT. Thật hay phải không nào? Còn chần chờ gì nữa, hãy bắt nay vào làm thôi.

  1. "In" máy cắt của chính bạn (tầm 2 triệu).
  2. Biến chiếc máy cắt laser thành một thiết bị IOT với Intel Galileo Gen 1 hoặc Gen 2 (+ tầm 3 triệu).

II. Chuẩn bị

1. Phần cứng

STT Tên Hình ảnh Giá tiền
1 Một chiếc máy cắt laser đã được nạp firmware grbl

tự làm

hoặc

tự in

2

Intel Galileo Gen 1 hoặc Gen 2

Khuyên dùng Gen 2 do chạy được hiệu điện thế 12V

2.000.000
3 Cắt mica hộp đựng Intel Galileo và các phần cứng khác 78.000
4 Ốc, vít (3li), lông đền (long den) 3.5li (Xem thêm ở dưới) 20.000
5

Card wifi mini-PCI (full sized)

Có thể lại các tiệm sửa laptop ngoài chợ để mua cũ. Chỉ cần nói họ bán card wifi laptop do Intel sản xuất có kích thước như hình là được

100.000
6 LCD 1602  40.000
7 I2C LCD 20.000
8

Thẻ nhớ microSD 4 GB Class 4 và Adapter

Có thể thay thế Adapter bằng một đầu đọc thẻ nhớ

65.000
9

USB Webcam MJPEG

Có thể tháo webcam từ laptop cũ rồi gắn cổng usb vào

250.000
10 02 Relay 1 kênh 12V 60.000
11 Quạt 12V 50mm (mỗi cạnh) 13.000
12 Test Board hàn 2 mặt 7x9cm 15.000
13 02 nút nhấn công nghiệp bán kính 8mm 10.000
Tổng cộng 2.671.000

Con số tổng cộng này có thể chênh lệch một tí tùy vào chỗ bạn mua

2. Công cụ bổ trợ

  1. 01 Máy khoan hoặc 01 mô tơ khoan (với đầu giữ mũi khoan 3li)
  2. 01 Mũi khoan 3li
  3. 01 kềm tán đinh tán.
  4. 01 cây keo nến (và súng bắn keo nến nếu có thể)
  5. Ốc 3li 12mm (10 con + tán); Ốc 3li 18mm (20con + tán)
  6. Dây LAN (ethernet)

3. Phần mềm

  1. Putty
  2. Rawrite32

III. Các mạch điện tử và chức năng của nó

Lưu ý: Các bạn có thể giữ lại mạch điều khiển laser như trong bài viết trước. Tuy nhiên mạch điều khiển động cơ bước nên thay đổi lại một tí để chế độ tiết kiệm năng lượng có thể hoạt động được.

1. Mạch điều khiển động cơ bước sử dụng module Easy Driver Stepper motor v4.4

Chúng ta sẽ sử dụng một module điều khiển động cơ bước giá cực rẻ trên thị trường (chỉ 70.000 đồng) và hoạt động cực kỳ tốt theo thời gian.

Thường thì động cơ bước trong máy scan có 96 bước / vòng đời (steps/rev), như vậy là không nhiều nên khi ta cắt các chi tiết nhỏ sẽ không được đẹp. Thật may mắn, module easy driver có thể hỗ trợ chúng ta “tăng” số bước của động cơ bước trong máy scan lên gấp 8 lần. Module này hỗ trợ chế độ vi bước mức 1 / 8 (chia nhỏ số bước thành 8 phần) ==> số bước thực được tăng gấp 8.

Ngoài ra, chúng ta có thể thay thế module Easy Driver Stepper bằng module A4988 với khả năng hỗ trợ vi bước 1 / 16. Tức là tăng số bước của động cơ bước lên đến 16 lần, gấp đôi khả năng của module Easy driver stepper. Giá của nó cũng chỉ chênh lệch 10.000 đồng với module Easy driver stepper. Với mạch A4988, chúng ta cần gắn tản nhiệt và gắn chân MS3 vào cực dương để mạch hỗ trợ vi bước 1 / 16.

Sau đây là sơ đồ mạch của module Easy Driver Stepper với Arduino Promini:

Tùy vào màu của dây nối stepper mà chúng ta lựa chọn bảng màu nối cho phù hợp

Các chân STEP, DIR của stepper X và stepper Y lần lượt được gán vào chân digital 2, 5, 3 và 6.

Vì sao mình lại sử dụng Intel Galileo kết nối với relay để điều khiển module này ?

Đây là một thủ thuật nhỏ để tiết kiệm điện, khi máy cắt laser không hoạt động trong một khoảng thời gian chờ nhất định, nó sẽ được chuyển sang chế độ ngủ và chờ. Lúc này, toàn bộ phần cơ cấu chuyển động sẽ được tắt để tránh tình trạng giữ góc quay của máy cắt laser. Nếu để tình trạng giữ góc quay của Intel Galileo, các động cơ bước sẽ rất nóng và sẽ giảm tuổi thọ của Intel Galileo. Nói một cách khác, chính nhờ vào module relay này, chỉ khi nào bạn cắt thì phần cơ mới hoạt động, tiết kiệm rất nhiều năng lượng trong thời gian ngưng hoạt động.

2. Module quạt tản nhiệt điều khiển bằng Relay thông qua Intel Galileo

Vì Intel Galileo được đặt trong hộp kín, ngoài ra vi xử lý của Intel Galileo rất dễ nóng và dễ dàng leo đến 85 độ C chỉ trong vài phút hoạt động. mình đã thử sử dụng tản nhiệt đồng, nhưng vẫn không hiệu quả trong thời gian dài. Vì vậy, mình đã sử dụng quạt 12 V để quạt tản nhiệt cho Intel Galileo khi nhiệt độ của vi xử lý nóng đến 89 độ C và chỉ dừng khi đạt được nhiệt độ 69 độ C.

Ngoài ra, khi Intel Galileo đạt đến nhiệt độ 92 – 93 độ C, thì nó sẽ tự động ngắt điện để bảo vệ hệ thống. Vì vậy, module này được sinh ra cũng là để tránh tình trạng tự ngắt của Intel Galileo khi nhiệt độ quá cao.

Chúng ta sử dụng chân digital 7 (của Intel Galileo) nối với chân điều khiển relay để điều khiển quạt. Trong thiết kế 3D, chúng ta sử dụng quạt máy tính 50mm. bạn có thể tự mình điều chỉnh kích thước quạt cho phù hợp. Tuy nhiên, độ sâu của quạt không nên vượt quá 20mm.

3. Module LCD điều khiển bằng giao thức I2C bằng module I2C LCD PCF8574

Module này được dùng để hiển thị các thông tin như địa chỉ IP trong mạng hay địa chỉ IP ở lớp VPN,… Ngoài ra, máy cắt laser kLaserCutter cũng sẽ thông báo các trạng thái, tọa độ của đầu laser,… thông qua chiếc LCD này.

Trong hình trên, vì không có mô hình module I2C LCD nên mình dùng tạm các chân của LCD để mô tả (thực tế các chân nối đó lấy từ module I2C LCD)

bạn có thể tự thay thế kích thước màn hình cho phù hợp với bản thân (nhớ là điều chỉnh trong file cắt laser nữa nhé).

4. Kết nối promini với Intel Galileo

Bạn sẽ nối cổng RX ở Promini với TX của Intel Galileo và ngược lại. Ngoài ra, bạn sẽ cấp nguồn cho Arduino Promini thông qua chân 5V (vào VCC) và GND nối chúng với nhau. Như vậy, là Intel Galileo đã có thể giao tiếp được với Arduino Promini thông qua giao thức Serial.

bạn cần đặc biệt chú ý đến module này, nếu bạn làm hở kết nối RX và TX giữa Arduino Promini và Intel Galileo, sẽ gây ra hiện tượng truyền dữ liệu không chính xác. Nói một cách nôm na dễ hiểu, đó là hiện tượng “rơi” dữ liệu. Hãy tưởng tượng, bạn muốn điều khiển trục X đi đến vị trí 123.32132 trên hệ trục tọa độ, nhưng qua quá trình truyền dữ liệu, dấu “chấm” đã bị rơi mất ==> grbl hiểu rằng bạn truyền đến tọa độ 12332132 ==> máy hoạt động không chính xác và có thể bị hư nữa!

Để tránh tình trạng bị “rơi” dữ liệu, chúng ta nên dùng mạch đồng 2 mặt như hình dưới để gắn Arduino Promini vào với Intel Galileo.

5. Module nút bấm quản lý máy cắt kLaserCutter

Vì trong thực tế,  bạn đôi lúc muốn dừng máy cắt của mình ngay lập tức, nhưng lại không thể mở điện thoại hay laptop,… và chỉ còn một giải pháp duy nhất là cúp điện toàn bộ hệ thống. Như vậy sẽ gây hư hỏng cho Intel Galileo. Thấy được khả năng đó, mình đã đưa vào module nút bấm gồm 02 nút bấm công nghiệp loại nhỏ có đường kính 16mm để dừng máy cắt trong các trường hợp khẩn cấp. Ngoài ra, tùy vào ngữ cảnh khác nhau mà nó sẽ dừng / chạy lại máy cắt, hay tắt luôn máy cắt và xem địa chỉ IP trong mạng và địa chỉ IP trong lớp VPN.

Nút bấm công nghiệp

Bởi vì chỗ đặt button hơi xa với độ Intel Galileo, vì vậy bạn nên dùng dây dài tầm 40cm để nối dây button.

LƯU Ý: Nút màu xanh nối vô chân số 9, nút màu đỏ nối vô chân số 8.

IV. Bản vẽ 2D của hộp đựng Intel Galileo

Trong phần này, chúng ta sẽ không còn các vấn đề với việc in 3D nữa, thay vào đó, mình sẽ đề cập sâu hơn vào file layout để cắt mica bằng laser (ở tiệm quảng cáo).

Vì hộp đựng Intel Galileo không bị phụ thuộc quá nhiều vào thiết kế phần cứng và mình đã thu hẹp phạm vi và đề xuất những phần cứng mình đã và đang dùng. Vì vậy, các bạn có thể trực tiếp cắt file mà mình đang dùng và không sợ trường hợp không "vừa" nhé.

Các bạn có thể tải miễn phí bản vẽ tại đây, bản vẽ mình lưu trong thư mục layout/galileo and electronic box đó nhé. Trong thư mục đó gồm có 6 file quan trọng đó là front, back, top, bottom, left, right lần lượt là các mặt trước, sau, trên, dưới, trái, phải của kLaserCutter. Để mở được những file này, bạn cần dùng phần mềm Google Layout (một trong 3 sản phẩm của Google Skecth Up).

Sau đây là một vài hình ảnh về mặt cắt của hộp đựng Intel Galileo.

Mặt cắt trước

Ô tròn chính là nơi đặt chiếc quạt tản nhiệt, và phí dưới nó chính là nơi bạn đặt mạch Intel Galileo. Bạn có thể dùng keo nến để dán quạt tản nhiệt lên khung đó, nhớ là gắn sao cho quạt nó thổi vào để tản nhiệt nhanh nhé devil. Ô chữ nhật chính là nơi đặt LCD 1602, mình thiết kế vừa khít òi, bạn chỉ cần nhét vào là cứng ngay, nhưng lỡ nó không vừa thì sao? Lúc nào keo nén chính là phải pháp giành cho bạn.

2 hình tròn bên phải chính là nơi đặt 2 nút nhấn công nghiệp đó bạn hiền. Còn cái ô tròn đè lên ô vuông trái trái chính là nơi bạn luồng dây vào đó!

Mặt cắt phải

Mặt cắt trái

Mặt cắt dưới

Bạn có để ý đến 4 ô tròn nhỏ nhỏ có đường kính 3li ở mỗi góc không? Đó chính là nơi bạn gắn ốc vào để cố định lên máy cắt đó. Gợi ý, hãy dùng mặt cắt dưới này đèn lên bên hông máy cắt của bạn và dùng bút lông hay lấy đồ vặn vít đánh dấu lại, cuối cùng dùng khoan khoan 1 lỗ ở đó!

Mặt cắt sau

Phía sau hình cữ nhật to bạn hãy đặt intel galileo của mình sao cho khớp vào nhé, bởi vì từ chính chỗ đó sẽ là nơi các thiệt bị khác sau này mình phát triển thêm sẽ gắn vào đó đấy. Hiện tại mình chế nó ra để có chỗ gắn dây LAN vào cài đặt ban đầu và có chỗ để gắn camera vào hehe.

Mặt cắt trước

Lưu ý: Các bạn cần chuyển file layout thành file dxf để có thể đưa ra tiệm cắt laser hoặc cắt cnc. Tỉ lệ chuyển đổi là 1:1 và cắt trên vật liệu mica / phíp có độ dày từ 2.5 đến 3 mili mét nhé.

Nếu ở tiệm họ không mở file được thì mình khuyên các bạn download sẵn phần mềm corel về rồi dùng corel mở file dxf lên rồi lưu lại dưới dạng file corel. Sau đó đem file corel ra chỗ cắt laser / khắc cnc.

Nãy giờ các bạn có để ý đến cái cơ cấu chữ T mà mình thiết kế không vậy, hehe. Đó chính là cơ cấu mình học hỏi từ máy in 3d của mình và cơ cấu đó được thiết kế ra để gép các mặt lại với nhau đó! Thành ra bạn không cần phải sử dụng co L để kết nối các mặt lại với nhau nữa rồi hehe

V. Cài đặt phần mềm cho kLaserCutter

1. Cài đặt hệ điều hành IOT Devkit cho Intel Galileo

Để cài đặt hệ điều hành IOT Devkit cho kLaserCutter, chúng ta cần chuẩn bị 2 thứ, đó là:

  • 01 thẻ nhớ micro SD (tối thiểu 2GB, tối đa 32GB).
  • 01 áo thẻ SD (5.000 đồng) hoặc 01 đầu đọc thẻ micro SD (10.000 đồng).

Vì khi cài hệ điều hành cho thẻ SD, thẻ SD sẽ được định dạng lại các phân vùng, nên bạn nên lưu trữ nội dung trên thẻ nhớ của mình trước khi tiến hành các bước tiếp theo.

Sau đó, ta sẽ tải hệ điều hành IOT Dev Kit của Intel phát triển trên nền hệ điều hành Yocto dành cho các board mạch Intel Galileo và Intel Edison tại địa chỉ https://software.intel.com/sites/landingpage/iotdk/board-boot-image.html. Ngoài ra, bạn cần tải thêm phần mềm Rawrite32 tại địa chỉ  để tiến hành cài đặt hệ điều hành IOT Dev Kit lên board Intel Galileo tại địa chỉ http://www.netbsd.org/~martin/rawrite32/download.html.

Sau khi tải hệ điều hành Intel Galileo ta được một file tên là iot-devkit-1.5-i586-galileo.bz2. Ta sẽ dùng phần mềm Rawrite và mở file đó lên.

Đang đọc file

Đọc file xong

Sau đó bạn chọn thẻ SD mà bạn mới gắn vào

Như vậy là chúng ta đã cài đặt hệ điều hành IOT Dev Kit thành công

Công việc cuối cùng của bạn, đó là đặt thẻ nhớ và khe thẻ nhớ của mạch Intel Galileo. Sau đó cắm nguồn, thế là chạy.

2. Truy cập SSH vào Intel Galileo và cập nhập hệ điều hành

Để truy cập vào SSH của Intel Galileo, chúng ta có rất nhiều cách. Trong đó, tác giả đã lựa chọn cách đơn giản nhất để mọi bạn đều có thể làm được. Đó là sử dụng một dây mạng LAN, gắn một đầu vào cổng LAN của Intel Galileo, đầu còn lại gắn vào router Wifi hoặc modem Internet wifi.

Để có thể truy cập vào SSH của Intel Galileo, bạn cần cài đặt cho mình phần mềm SSH Client hoặc telnet, và đơn giản nhất là PuTTY tại địa chỉ http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html.

Tiếp theo, để truy cập vào SSH  của Intel Galileo, ta cần biết Intel Galileo trong mạng có IP là bao nhiêu. Để làm được điều này, chúng ta cần truy cập vào trang quản lý modem hoặc router của mình.

Bạn thử truy cập vào địa chỉ http://192.168.0.1 hoặc http://192.168.1.1 để truy cập vào địa chỉ trang quản lý modem của mình. Nếu đều không được thì hãy nhấn tổ phím Windows + R, và gõ vào hộp thoại dòng chữ “cmd” rồi ấn enter.

Sau đó gõ lệnh “tracert arduino.vn” trong giao diện dòng lệnh. Để ý đến dòng chứa đoạn 192.168., đó chính là địa chỉ trang quản lý modem.

Tuy nhiên, trong một số trường hợp khác, ví dụ như mạng ở ký túc xá hay mạng công ty, bạn cần hỏi người quản lý mạng để biết địa chỉ của galileo, như vậy rất phức tạp. Bạn có thể xem về cách truy cập vào Linux Console trong bài viết http://arduino.vn/bai-viet/457-intel-galileo-vai-meo-voi-intel-galileo-va-he-dieu-hanh-linux-yocto-iot-devkit để đơn giản hóa khi rơi vào trường hợp này.

Trong ví dụ này, địa chỉ IP trang quản lý modem là 192.168.1.1

Chúng ta truy cập vào địa chỉ trang quản lý modem và nhập mật khẩu quản lý. Thường là “admin / admin” hoặc “MegaVNN / MegaVNN”. Mỗi nhà mạng đều có trang quản lý riêng. Tuy nhiên, những năm gần đây, tác giả thấy hai nhà mạng VNPT và FPT đều sử dụng giao diện này, nên sẽ dùng nó để hướng dẫn bạn xem địa chỉ IP của Intel Galileo trong mạng. Nếu bạn sử dụng giao diện khác, thì hãy đọc kĩ hướng dẫn sử dụng model / router wifi và tìm mục “DHCP List” hoặc “Danh sách máy khách” là được.

Bạn click vào mục “Interface Setup” chọn “LAN” và tìm địa chỉ IP của Intel Galileo trong DHCP Table (host name galileo)

Như vậy, khi đã có được địa chỉ IP của Intel Galileo, bạn chỉ việc gõ các thông tin như sau vào PuTTY là được.

Sau đó, click vào nút Open

Khi màn hình dòng lệnh hiện ra, nó sẽ yêu cầu đăng nhập. Chúng ta sử dụng tên đăng nhập là root (không có mật khẩu)

Tiếp đó, ta sẽ thay đổi mật khẩu đăng nhập cho user root (user tối cao – ông trùm – trong thế giới hệ điều hành Linux) bằng câu lệnh passwd (gõ lại lệnh hoặc copy lệnh sau đó nhấn chuột phải vào putty).

Cuối cùng, chúng ta sẽ cập nhật hệ thống phần mềm cho Intel Galileo bằng câu lệnh opkg update && opkg upgrade. Quá trình cập nhật sẽ mất tầm 20 – 30 phút, tùy thuộc vào tốc độ mạng và lớp thẻ mà bạn sử dụng cho Intel Galileo.

3. Cài đặt kLaserCutter

Việc cài đặt kLaserCutter vô cùng đơn giản, chỉ cần thực hiện vài dòng lệnh (sau khi đã truy cập vào SSH với user root).

git clone https://github.com/ngohuynhngockhanh/kLaserCutter.git 
cd kLaserCutter && ./setup.sh

Như vậy quá trình cài đặt đã hoàn tất, rất đơn giản phải không nào.

Tuy nhiên, nếu bạn có một card wifi thì chúng ta cần cài đặt mạng wifi. Xem thêm tại bài viết Kết nối wifi cho Intel galileo bằng card wifi (cổng mini PCI). Một khi đã cài đặt xong, bạn chỉ cần nhấn giữ vào nút màu xanh là nó sẽ hiện ra địa chỉ IP trong lớp mạng của mình, không cần phải mất công ở bước 2 nữa. cool

VI. Cài đặt kLaserCutterCotnroller – Phần mềm điều khiển máy cắt kLaserCutter

Để điều khiển máy cắt kLaserCutter, bạn có 02 lựa chọn, đó là: sử dụng trình duyệt Web của máy tính, laptop, điện thoại để đều khiển, hoặc sử dụng thiết bị thông minh sử dụng hệ điều hành Android như điện thoại thông minh và máy tính bảng.

1. Điều khiển trên máy tính (desktop / laptop) hay bất cứ thiết bị nào hỗ trợ trình duyệt web

Với kLaserCutterController phiên bản web, chúng ta có thể điều khiển máy cắt kLaserCutter ở mọi nơi bằng bất cứ thiết bị nào.

Để có thể sử dụng phần mềm, bạn cần chuẩn bị một trong ba trình duyệt sau: Cốc cốc, Mozilla Firefox và Google Chrome. Trong đó, tác giả khuyên dùng Mozilla Firefox.

Có 02 cách để sử dụng máy kLaserCutter bằng phần mềm kLaserCutterController phiên bản web.

  • Cách 1: Sử dụng miễn phí tại http://klasercutter.app.arduino.vn/#/tab/dash 
  • Cách 2: Tải về và dùng miễn phí (cả offline và online) tại http://klasercutter.app.arduino.vn/kLaserCutterController.zip 
    • Khi tải về, bạn chỉ cần giải nén ra ở bất kỳ thư mục nào và click đúp chuột vào file index.html (hoặc chuột phải ==> Open with… ==> Google Chrome / FireFox / Cốc cốc).

Giao diện diện chính của chương trình lúc chưa cài địa chỉ IP kLaserCutter

Bạn sẽ thiết đặt lại địa chỉ máy cắt IP với port 9090 (mặc định)

Sau đó quay lại bảng điều khiển và  kirigami (SVG), và… 

2. Điều khiển trên thiết bị thông minh dùng hệ điều hành Android

Để cài đặt kLaserCutterController, bạn nên sử dụng phần mềm quét QR code trên thiết bị và quét mã trên hoặc truy cập vào địa chỉ sau https://play.google.com/store/apps/details?id=com.ionicframework.k574783 để cài đặt phần mềm.

Với phần mềm trên điện thoại, ngoài những chức năng được hỗ trợ của phiên bản Web, bạn còn được hỗ trợ thêm một chức năng đặc biệt: đó là, cập nhập trạng thái mà không cần trực tiếp mở phần mềm (tiết kiệm băng thông 3G). Nói nôm na, đó là, khi bạn truy cập vào một mạng Internet (bất kỳ), điện thoại của bạn sẽ được cập nhật trạng thái mới nhất của máy kLaserCutter. Điều đó, giúp cho bạn không phải tốn thời gian bật phần mềm, không phải tốn băng thông xem giả lập và camera. Chỉ cần truy cập vào Internet thì mọi trạng thái sẽ cập nhật tức thì trong thời gian thực. Và, đặc biệt hơn nữa, đó là trong cả 2 phiên bản (trình duyệt và Android), tất cả trạng thái của thiết bị này sẽ được đồng bộ với thiết bị khác trong mạng (Internet) đang kết nối với máy cắt. Điều đó đã giúp máy cắt kLaserCutter tránh được các xung đột điều khiển (ví dụ người A dùng thiết bị A đang cắt, người B dùng thiết bị B thấy thế nên không cắt và đợi thông báo kết thúc thì người B vào).

Và đây là giao diện điều khiển của kLaserCutterController phiên bản dành cho hệ điều hành Android.

3. Tư tưởng thiết kế giao diện của kLaserCutterController

Giao diện của kLaserCutter hướng đến sự đơn giản tuyệt đối, với chỉ 2 nút. Một nút là chọn file, và nút còn lại là tiến hành cắt. Bên cạnh đó, là sự hài hòa với những thiết kế logic kéo theo, đem lại trải nghiệm tốt nhất cho bạn. Ngoài ra, bạn có thể “đi sâu hơn” để thiết đặt và điều khiển bằng tay tọa độ của máy chủ phù hợp với bản thân của mình.

Với giao diện đơn giản nhưng gói gém đầy đủ thông tin, hứa hẹn sẽ đem lại những trải nghiệm mới lạ cho bạn. Hãy thử khám phá sâu hơn nhé. Tác giả sẽ hướng dẫn sử dụng chi tiết cách “đi sâu hơn” ở những phần sau.

VII. Hướng dẫn sử dụng và thiết đặt

1. Hướng dẫn sử dụng và thiết đặt kLaserCutterController

Vì sao, tác giả lại hướng dẫn sử dụng kLaserCutterController trước khi hướng dẫn sử dụng máy cắt kLaserCutter?

Bởi vì, nó đơn giản hơn và bạn thường chỉ cần biết cách sử dụng controller là đủ, vì kể từ phần sau, tác giả sẽ dần đi sâu vào từng phần trong hệ thống, bao gồm những khó khăn, giải pháp và quan trọng nhất là vì sao nó có mặt ở đó.

a. Làm quen với giao diện

Với kLaserCutterController, bạn sẽ được trải nghiệm cảm giác “đơn giản đến bất ngờ” như lúc mà bạn Mỹ nói về thế hệ Ipod đầu tiên của Apple. Tác giả chỉ sử dụng đúng tối đa 02 nút cho mỗi ngữ cảnh. Nói một cách nôm na, ở mỗi ngữ cảnh bạn sẽ có tối đa 02 lựa chọn, như vậy sẽ dễ dàng hơn rất nhiều – bởi vì bạn sẽ không bị rối bởi một giao diện với vô số các nút bấm. Và xuyên suốt trong quá trình sử dụng kLaserCutter, các câu hỏi mà máy hỏi lại bạn chỉ có 2 lựa chọn “Có” hoặc “Không”.

b. Chọn và cắt file svg đầu tiên

Sau khi nhấn vào nút chọn tệp vào chọn được tệp dumbbell.svg (dự phòng), chúng ta sẽ có thêm một nút mới tên là Bắt đầu, chỉ cần chọn nút đó là quá trình cắt sẽ diễn ra.

Giao diện đơn giản với 02 nút

Câu hỏi đặt ra là, nếu bạn nhấn giữ vào nút “Bắt đầu” thì chuyện gì sẽ xảy ra? Liệu nó chỉ đơn thuần xem hành động đó là một hành động click bình thường?

Tác giả đã thiết kế một chức năng “ẩn” ở đây, khi bạn nhấn giữ vào nút “Bắt đầu” thì sẽ có một bảng chọn hiện ra hỏi “số lượng lượt cắt”. Vì sao lại có chức năng ẩn này? Vì mỗi máy cắt khác nhau sẽ có đầu laser diode khác nhau, nghĩa là, có người có laserr diode mạnh vài W, nhưng có bạn chỉ sở hữu diode mạnh vài trăm mW. Nói một cách khác, nếu dùng laser diode công suất chỉ vài trăm mW nhưng muốn cắt giấy dày thì bạn phải cắt nhiều lần (nếu không muốn đổi laser diode). Vì nó không phổ biến trong thực tế (thường thì bạn sẽ đầu tư mua laser diode lớn hơn 500mW – có thể cắt được ngay trong lần đầu tiên) nên tác giả để nó là chức năng ẩn.

Bởi vì, bạn đã nhấn nút bắt đầu, nghĩa là họ muốn cắt, nhưng lại hiện ra biến này thì làm sao? Không sao cả, chỉ cần nhấn nút “Cancel” là quá trình cắt sẽ diễn ra bình thường (cắt 1 lượt).

c. Tiến hành cắt laser

Khi bạn nhấn vào nút “Bắt đầu”, quá trình cắt sẽ diễn ra. Trong quá trình đó, bạn chỉ có 02 sự lựa chọn (trên toàn bộ các thiết bị kết nối), đó là lệnh: “Tạm dừng” và lệnh “Hủy”.

Khi đang trong quá trình khắc ảnh (raster), nó cũng tương tự với quá trình cắt ảnh (vector), cũng chỉ có 2 nút. Nhưng đặc biệt với chế độ raster, bạn có thể xem chính xác ảnh mình đang cắt và xem qua camera, để tránh việc nhìn trực tiếp vào laser (vô cùng nguy hiểm)!

Khi nhấn nút “Tạm dừng”, nút “Tạm dừng” sẽ mất đi và thay thế vào đó là nút “Chạy tiếp”. Trong quá trình dừng, đèn laser sẽ tắt (nếu đang bật), động cơ bước sẽ được bật để giữ vị trí bàn cắt.

d. Hủy quá trình cắt

Để hủy quá trình cắt, bạn chỉ cần nút vào nút Hủy. Máy cắt kLaserCutter sẽ tự động làm những việc bên dưới như di chuyển bàn cắt lại vị trí ban đầu, tắt laser,…

Trước khi quá trình cắt dừng lại, máy sẽ có một thông báo bạn. Hỏi họ có thực sự muốn dừng quá trình cắt này hay không?

Khi hủy quá trình cắt, giao diện của chương trình sẽ quay lại giao diện tổng quan.

e. Thiết đặt nâng cao

Trong giao diện này, ngoài các ô thiết đặt địa chỉ của máy cắt laser như địa chỉ của kLaserCutter. Bạn có thể thay đổi tốc độ cắt, số lần cắt mặc định,… Trong đó có 3 tham số lựa chọn có-không đó là:

  • Xem camera.
    • Tùy chọn bật tắt việc xem video trên thiết bị mà bạn đang sử dụng.
  • Render SVG.
    • Thể hiện ảnh SVG sẽ cắt (nếu có thể).
  • Ghi nhớ thiết bị.
    • Tùy chọn việc nhận thông báo (chỉ hoạt động trên thiết bị Android).

Render SVG

Không render SVG

Ngoài ra, ở trang thiết đặt thông báo, bạn có thể xem tải máy chủ và nhiệt độ của Intel Galileo.

VIII. Hướng dẫn cài đặt sâu vào kLaserCutter

Bạn cần truy cập vào SSH PuTTY  trước khi tiến hành tiến sâu vào hệ thống. Ngoài ra, bạn cần biết một ít về linux và ngôn ngữ C/C++ (biết thêm về Javascript là một lợi thế to lớn).

Trước tiên, bạn sẽ được tìm hiểu về các tham số dòng lệnh trong kLaserCutter. Từ đó, có thể lựa chọn cho mình những tham số phù hợp với máy của bản thân.

Tham số

Chức năng

Mặc định

feedRate

Tốc độ cắt (mm/s).

Kiểu dữ liệu: Số tự nhiên.

Nếu truyền vào số -1 thì hệ thống sẽ tự động đặt tốc độ cắt là 300mm/s hoặc sử dụng tốc độ đã được thiết đặt trước đó.

-1

LCDcontroller

Tên mã IC được dùng trong mạch I2C LCD. Kiểu dữ liệu: Chuỗi.

Các mã có thể được sử dụng là một trong các mã sau: HD44780, JHD1313M1, LCM1602, LCD1602, LCM1602IIC, LCD2004, PCF8574A, PCF8574AT, PCF8574T, PCF8574.

PCF8574

serverPort

Cổng được dùng để điều khiển kLaserCutter

Kiểu dữ liệu: Số tự nhiên

9090

maxFileSize

Kích thước file tối đa mà Intel Galileo có thể xử lý.

Kiểu dữ liệu: Số tự nhiên (đơn vị byte)

Mặc định: 1.5MB

1572864

maxCPUTemp

Ngưỡng nhiệt độ tối đa mà Intel Galileo phải chịu, sau đó quạt tản nhiệt sẽ được bật.

Kiểu dữ liệu: Số tự nhiên (độ C)

88

minCPUTemp

Ngưõng nhiệt độ tối thiểu để tắt quạt tản nhiệt.

Kiểu dữ liệu: Số tự nhiên (độ C)

73

maxQueue

Số lượng phần tử tối đa có thể có trong hàng đợi Gcode.

Kiểu dữ liệu: Số tự nhiên.

Khuyên dùng: Nên đặt trong khoảng 17 – 23

20

minQueue

Số lượng phần tử tối thiểu phải có trong hàng đợi Gcode.

Kiểu dữ liệu: Số tự nhiên.

Khuyên dùng: Nên đặt trong khoảng từ 4 - 6

4

maxDistance

Quãng đường tối đa mà các câu lệnh Gcode vẽ nên

Khuyên dùng: Nên đặt trong khoảng từ 6 - 8

8

minDistance

Quãng đường tối thiểu cho phép Intel Galileo gửi thêm câu lệnh Gcode đến Grbl

Khuyên dùng: Nên đặt trong khoảng từ 5–7

6

mjpg

Truyền tất tần tật các tham số liên quan đến mjpg streamer

Kiểu dữ liệu: Chuỗi JSON

Các tham số:

  • port: cổng được mở để stream video
  • resolution: kích thước khung hình mặc định
  • fps: Tốc độ khung hình (chỉ khi nào format được nhận là YUVU)
  • quality: Chất lượng khung hình (chỉ khi nào format được nhận là YUVU)
  • format: Chuẩn dữ liệu sẽ được lấy ra (auto / YUVU / MJPG).

Chương trình sẽ tự động kiểm tra thông số của Camera và lựa chọn các thông số phù hợp cho format.

Ví dụ: --mjpg='{"port":9090}'

{"port":8080,

"resolution" :"320x240",

"fps" :          "5", "quality":"50","format":"auto"}

maxCoorX

Độ dài hành trình tối đa của bàn cắt X.

Kiểu dữ liệu: Số tự nhiên (đơn vị mm)

320

maxCoorY

Độ dài hành trình tối đa của bàn cắt Y.

Kiểu dữ liệu: Số tự nhiên (đơn vị mm)

315

resolution

Tỉ lệ phân giải file ảnh thành tệp gcode để khắc ảnh.

Kiểu dữ liệu: Số thực dương.

Giới hạn: 0.1 – 5

3.543285714

intervalTime1

Khoảng thời gian giữa mỗi lần kiểm tra kết nối với mạch Arduino Promini (grbl).

Kiểu dữ liệu: Số tự nhiên.

Đơn vị: mili giây (ms)

10000

intervalTime2

Khoảng thời gian giữa mỗi lần kiểm tra trạng thái của webcam. Mỗi lần kiểm tra, hệ thống sẽ tự tìm định dạng tốt và chất lượng hình ảnh và tốc độ cao nhất có thể được của webcam.

Kiểu dữ liệu: Số tự nhiên.

Đơn vị: mili giây (ms)

10000

intervalTime3

Khoảng thời gian giữa mỗi lần kiểm tra tọa độ của đầu cắt laser theo thời gian thực.

Kiểu dữ liệu: Số tự nhiên.

Đơn vị: mili giây (ms)

800

intervalTime4

Khoảng thời gian giữa mỗi lần kiểm tra server load và nhiệt độ CPU của Intel Galileo.

Kiểu dữ liệu: Số tự nhiên.

Đơn vị: mili giây (ms)

30000

intervalTime5

Khoảng thời gian giữa mỗi lần kiểm tra sự nghỉ của máy, nếu máy đang dừng quá thời gian này thì sẽ đưa máy vào chế độ ngủ để tiết kiệm điện.

Kiểu dữ liệu: Số tự nhiên

Đơn vị: giây (s)

60

intervalTime6

Khoảng thời gian giữa mỗi lần cập nhật trạng thái LCD. Mỗi lần cập nhật này có thể cập nhật server load hiện tại hay tọa độ của laser.

Kiểu dữ liệu: Số tự nhiên

Đơn vị: mili giây (ms)

10000

 

ionicAppId

[For dev] Đối với lập trình viên, muốn tự làm cho mình một phiên bản kLaserCutterController của riêng mình thì hãy điều chỉnh lại ionicAppId

Kiểu dữ liệu: Chuỗi

 

privateApiKey

[For dev] Đối với lập trình viên, muốn tự làm cho mình một phiên bản kLaserCutterController của riêng mình thì hãy điều chỉnh lại privateApiKey

Kiểu dữ liệu: Chuỗi

 

Để truyền đạt những tham số mới, bạn nên thử nghiệm nó trước ở SSH để chắc chắn mọi thứ hoạt động đúng như ý của mình. Đồng thời, qua qua trình đó, bạn sẽ xem được các log hệ thống, từ đó hiểu hơn về những gì đang diễn ra trong máy cắt kLaserCutter của mình.

Vì kLaserCutter sẽ tự động khi khởi động và tự bật lại khi bị lỗi trong quá trình sử dụng. Nên trước khi debug và thử thay đổi các tham số, bạn cần tắt chế độ tự khởi động script kLaserCutter bằng cách chạy câu lệnh sau:

$ kill `ps | grep -v grep | grep SVG | awk '{print $1}'`

Sau đó, chạy câu lệnh bash shell sau để tắt chương trình kLaserCutter đang chạy trong hệ thống (nên của tiến trình là svg2gcode).

 $ kill `ps | grep svg2gcode | grep -v grep | awk '{print $1}'`

Cuối cùng là di chuyển đến thư mục cài đặt kLaserCutter lúc cài đặt (thường thì bạn sẽ lưu ở ~/kLaserCutter/ hoặc /home/kLaserCutter), sau đó khởi chạy script svg2gcode.js với các tham số.

$ cd /home/kLaserCutter
$ ./svg2gcode.js --maxCPUTemp 10 --minCPUTemp 10

Với câu lệnh trên thì quạt trong kLaserCutter sẽ bật liên tục và không bao giờ tắt.

Sau khi đã debug thỏa thích và thử từng tham số dòng lệnh và cảm thấy ưng ý, bạn sửa file ./bin/checkSVG2gcodealive.sh với những tham số dòng lệnh ở dòng chứa lệnh chạy ./svg2gcode.js, lấy ví dụ ở trên, ta sẽ sửa thành.

cd $DIR && cd ../ && ./svg2gcode.js --maxCPUTemp 10 --minCPUTemp 10 > /dev/null 2>&1 &

Cuối cùng, ta lưu file lại và khởi động lại kLaserCutter bằng lệnh

$ init 6

kLaserCutter sẽ khởi động lại và chạy đúng như những gì mà bạn yêu cầu.

IX. Mô hình hệ thống kLaserCutter và điều khiển qua mạng

1. Vì sao lựa chọn Intel Galileo Gen 1 / 2 và Arduino Promini

Trên thị trường có rất nhiều board mạch hệ thống nhúng như Raspberry Pi, Beagle board, Arduino Yún,… với giả rẻ hơn Intel Galileo khá nhiều, nhiều board chỉ có giá bằng ½ giá của Intel Galileo (tại thị trường Việt Nam). Vậy tại sao tác giả lại sử dụng Intel Galileo làm board mạch hỗ trợ chính cho kLaserCutter?

  • Thứ nhất, Intel Galileo là board mạch duy nhất trên thị trường máy tính nhúng hỗ trợ cổng mini PCI full sized. Đây là một lợi thế cho các dự án IOT (kLaserCutter là một dự án như thế). Bởi vì nó cho phép giảm chi phí đầu tư  cho hệ thống và hơn hết đó chính là vấn đề nguồn điện. Khi sử dụng một router thu wifi riêng rồi truyền dữ liệu qua cổng LAN, có một vấn đề cực kỳ ngán, đó là lọc nhiễu nguồn điện cho nó. Bởi vì, khi điều khiển động cơ bước từ chế độ tiết kiệm điện sang chế độ hoạt động. Có sự điều động điện lớn và có thể gây nhiễu tín hiệu, khiến phần mềm điều khiển hoạt động không chính xác. Nhưng thật may mắn, với cổng mini PCI và một card wifi từ xác laptop đã chết từ lâu đã khiến mọi thứ với kLaserCutter sống dậy và hoạt động tốt và không hề bị nhiễu vì Intel Galieo đã làm rất tốt việc này, và chúng ta có thể gắn ăng-ten âm tường vào khung nhôm của kLaserCutter. Đặc biệt hơn nữa, với card wifi driver, tác giả không cần phải lo nghĩ đến vấn đề diện tích khi dùng wifi router nữa!
  • Thứ hai, Intel Galieo giao tiếp IO ở mức 5V, rất tiện trong việc giao tiếp với các thiết bị ngoại vi phổ biến trên thị trường như mạch Arduino Promini 5V, LCD, I2C LCD, điều khiển laser,… Điều này đã rút ngắn rất nhiều thời gian cho tác giả, trước đây, trong dự án kBOT với board mạch Raspberry Pi, tác giả rất ngán vấn đề 3.3V và 5V này. Nó làm mọi thứ trông thật “phù nề”.
  • Thứ ba, Intel Galileo chạy NodeJS rất mượt (không như trên Raspberry Pi 2 dev B) và hỗ trợ thư viện điều khiển các cổng GPIO thông qua NodeJS. Đó là môi trường mà tác giả thích nhất khi thiết kế phần mềm trên hệ thống nhúng.

 Vậy còn Arduino Promini? Tại sao tác giả không sử dụng các board mạch Arduino khác, hay một vi điều khiển khác?

  • Thứ nhất, Arduino là môi trường lập trình điện tử miễn phí và phổ biến nhất trong giới nghệ sĩ điện tử.
  • Thứ hai, thư viện grbl là một thư viện điều khiển máy CNC miễn phí cực kì mạnh mẽ và đã được phát triển bởi cộng đồng nguồn mở được hơn 6 năm nay (từ năm 2009). Và thư viện này được phát triển dành riêng cho Arduino.
  • Thứ ba, Arduino Promini cực kì nhỏ gọn, giao tiếp ở mức 5V hỗ trợ đầy đủ mọi tính năng của dòng Arduino Classic và điều khiển máy CNC cực kì mượt theo đánh giá của cộng đồng Arduino quốc tế.

2. Mô hình hệ thống kLaserCutter

Hãy tưởng tượng kLaserCutter như là một người nghệ sĩ cắt giấy làm thuê cho chúng ta. Là một người nghệ sĩ cắt giấy, hắn phải biết cắt thật nét,cũng phải biết sáng tạo và hơn thế nữa, hắn phải biết nghe lời. Khi hắn nhận được lệnh phải cắt một tấm ảnh đã được thiết kế sẵn, hắn phải sáng tạo, xem cắt như thế nào cho hợp lý, cắt như thế nào cho nhanh để chủ nhân có được món hàng ngon nhất. Khi đã nghĩ xong, hắn đợi lệnh và sẽ cắt chính xác đến từng mili mét theo những gì người chủ muốn. Và tuyệt nhiên, hắn phải nghe lời, từng li từng tí và tự động làm hài lòng chủ nhân nhất có thể bằng cách tự làm việc độc lập.

Thật vậy, với thuật toán sắp xếp vị trí nào cắt trước, vị trí nào cắt sau, giúp cho kLaserCutter tiết kiệm rất nhiều thời gian thay vì phải di chuyển liên tục cắt rời rạc nhau. Ngoài ra, kLaserCutter cắt cực kỳ chính xác nhờ vào cơ cấu truyền động, giữ trục và cơ cấu điều khiển. Một điểm tuyệt vời hơn bao giờ hết, đó là khả năng nghe lời của bạn. Bạn có thể ở mọi nơi và ra lệnh cho kLaserCutter thông qua Internet bằng các thiết bị điện tử hỗ trợ trình duyệt web hay thiết bị thông minh.

Khái quát hóa hơn nữa, kLaserCutter gồm có 3 phần chính:

  • Hệ thống “não” (vi xử lý trung tâm) là Intel Galileo, đại diện cho trí thông minh – thuật toán – nghe lệnh.
  • Hệ thống “tay và dao” (Arduino, cơ cấu truyền động, laser,…), đại diện cho sự khéo tay – sắc nét – nghệ sĩ.
  • Hệ thống “tai, mắt” (wifi – internet, camera,…), đại diện cho sự giao tiếp giữa người với máy – sự trung thành.

Với sự thống nhất về mô hình đó, cho chúng ta một chiếc kiềng 3 chân vững chắc, và chỉ cần thiếu ít nhất 1 trong 3 “chân” này, kLaserCutter sẽ chỉ là một đống nhôm, nhựa vô tri vô giác.

Mô hình hệ thống gồm 3 mảng lớn (Controller, Intel Galileo và Arduino)

3. kLaserCutter là một thiết bị IOT

Vì kLaserCutter là một thiết bị điện tử được kết nối vào Internet để phục vụ và hỗ trợ nhu cầu cắt nghệ thuật của mình. Nên kLaserCutter là một thiết bị IOT.

Vậy làm thế nào để có thể điều khiển kLaserCutter thông qua mạng Internet?

Trong những phần trước, tác giả chỉ nói đến việc điều khiển máy cắt thông qua mạng Wifi nội bộ trong nhà. Vậy chưa thế là IOT được. Để trở thành một thiết bị IOT, kLaserCutter cần được nối mạng Internet. Và bây giờ, bạn sẽ được hướng dẫn đưa kLaserCutter ra ngoài thế giới ảo!

Trước tiên, tác giả sẽ giới thiệu các port mà kLaserCutter đang sử dụng (mặc định).

  • 8080: Port stream hình ảnh từ Camera. Nó giúp cho các phần mềm điều khiển khác như OpenRemote / OpenHAB có thể xem kLaserCutter thông qua API của họ.
  • 9090: Port server kLaserCutter. Nó được mở ra để đón nhận và truyền dữ liệu giữa máy chủ (kLaserCutter) và máy khách (kLaserController).

Để có thể đưa kLaserCutter nối vào mạng Internet, bạn chỉ cần cho phép modem / wifi router bật chế độ Port Fordwarding với địa chỉ IP trang mạng LAN của kLaserCutter cùng với 2 port trên.

Tùy vào modem internet / router wifi mà bạn sẽ tìm trong hướng dẫn sử dụng cách mở Port Fordwarding. Trong ví dụ tới đây, tác giả đã thử nghiệm mở Port Fordwarding trên modem Internet của hai nhà mạng VNPT và FPT.

Bạn sẽ truy cập vào trang quản lý modem / router của mình. Trong ví dụ này là: 192.168.1.1 (thường là 192.168.0.1). Sau đó chọn tab Advanced Setup ==> NAT ==> chọn Virtual Server như hình dưới.

Sau đó, bạn sẽ lần lượt thêm các port vào danh sách này. Thay địa chỉ IP 192.168.1.105 bằng địa chỉ IP  của kLaserCutter trong mạng Wifi. Vì bạn chỉ cần mở các port là 9090 và 8080, tức là 2 port riêng lẻ và không liền kề nhau, nên bạn cần thêm vào 2 lần như hình trên. Ngoài ra, ta có thể thay giá trị tại Start Port Number bằng 8080 để mở một dải port từ 8080 ==> 9090. Tuy nhiên, cách này không an toàn về bảo mật mạng, vì khi làm như vậy, chính chúng ta tạo ra một lỗ hổng để hacker có thể lợi dụng truy cập vào mạng.

Như vậy, ta đã có thể truy cập đến kLaserCutter bằng địa chỉ IP của mình ở lớp Internet. Bạn có thể xem địa chỉ IP Internet của mình tại http://whatismyip.com. Sau đó dùng địa chỉ IP đó như là địa chỉ của kLaserCutter thay cho địa chỉ trong lớp mạng 192.168.

Nhưng khỗ nổi, địa chỉ IP ngoài Internet liên tục được các nhà mạng làm mới (để chúng ta phải đăng ký thêm dịch vụ IP tĩnh thì mới làm những việc như vầy được). Nhưng thật may mắn, hiện này, hầu hết các modem Internet đều hỗ trợ dịch vụ Dynamic DNS, một dịch vụ cho phép chúng ta cấu hình một DNS từ bên thứ 3 cập nhập địa chỉ IP của modem. Nói một cái nôm na, thay vì sử dụng một địa chỉ IP dài ngoằn, khó nhớ, ta sẽ dùng một tên miền miễn phí được trỏ DNS tới địa chỉ IP dài ngoằn ấy – bằng một dịch vụ miễn phí tên DDNS (Dynamic DNS).

Để làm được điều đó, bạn cần đăng ký một tài khoản miễn phí tại địa chỉ http://noip.com. Cách thức đăng ký thực sự rất dễ dàng nên tác giả sẽ không đề cập đến ở đây và đi tiếp đến vấn đề “tạo một tên miền và giải pháp trỏ tự động DNS cho tên miền ấy đến địa chỉ IP ở nhà”. 

Bạn chọn mục Hosts / Redirects ==> Manage Hosts ==> Add A Host để tiến hành tạo cho kLaserCutter một tên miền.

Cài đặt tham số Hostname là tên subdomain của tên domain noip.me phía sau. Và cuối cùng, bạn chọn Host Type là DNS Host (A) và nhấn nút Add Host là xong.

Tiếp theo, công việc cuối cùng, đó là bật dịch vụ DDNS trong modem Internet để nó tự động cập nhật lại DNS của địa chỉ tên miền ta vừa lập.

Bạn di chuyển vào trang quản lý modem Internet và truy cập vào tab Access Management à DDNS và cập nhật thông tin được yêu cầu.

Ví dụ về những thông số cần nhập

Một tài khoản ở no-ip.org có thể tạo miễn phí được 3 host (3 subdomain), như vậy, bạn có thể điều khiển được 3 máy kLaserCutter ở 3 mạng khác nhau. Còn nếu chung một mạng thì ta chỉ cần chỉnh các thông số port mjpg và server port là có thể tạo một máy mới rồi.

$ ./svg2gcode.js --serverPort 9091 --mjpg='{"port":8081}'

Với câu lệnh trên được thiết đặt trong tệp ./bin/checkSVG2gcodealive.sh sẽ giúp kLaserCutter khởi động máy chủ điều khiển ở port 8081 và máy chủ phát mjpg (máy chủ phát camera) ở port 9091.

X. Kết luận

Mình đã hoàn thành và chia sẻ cho các bạn cách làm ra máy kLaserCutter và cách mình biến nó thành một thiết bị IOT. Đây cũng là bài viết cuối cùng trong chuỗi hướng dẫn xây dựng máy cắt kLaserCutter của mình. Trong tương lai, sẽ có những bài hướng dẫn mới mở rộng ra hoặc đơn giản là giảm chi phí đi vài lần, mong các bạn đón đọc.

Bonus

lên
21 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Bộ điều khiển PID - ứng dụng phần 2 - xe dò line dùng thuật toán PID

Tiép nối bài viết về xe dò line cảm ơn Đỗ Hữu Toàn đã viết hộ mình phần 4. hôm nay mình sẽ làm cho chiếc xe dò line đi mượt và có hồn hơn 

lên
34 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Làm hiệu ứng LED nhấp nháy rượt đuổi nhau đơn giản với 5 LED

Nhằm mang đến một ví dụ vui về các đèn LED, mình đã viết bài này. Hi vọng, các newbie cảm thấy thích thú với những gì Arduino làm được và cùng chúng tớ phát triển Arduino. Đây là một ví dụ cực kì dễ vì vậy đừng ngại gì mà không lắp thử, bạn nhé!

lên
14 thành viên đã đánh giá bài viết này hữu ích.

Giao tiếp giữa hai mạch Arduino bất kỳ

Giao tiếp giữa mạch Arduino là rất quan trọng, vì có nhiều dự án phức tạp và việc lập trình trên 1 Arduino là điều không thể. Hôm nay, mình sẽ hướng dẫn bạn cách giao tiếp giữa 2 mạch Arduino bất kỳ bằng việc sử dụng thư viện Serial Command.

lên
22 thành viên đã đánh giá bài viết này hữu ích.