Tính toán thiết kế hệ thống điều khiển

Một phần của tài liệu HD4 nhữ quý thơ nghiên cứu thiết kế mô hình máy viết chữ tự động (Trang 41)

3.3.1 Cơ chế hoạt động:

Hình 3.13 Cơ chế hoạt động

Phần mềm Lightburn cho phép biên dịch xuất file Gcode từ đầu vào ảnh. File Gcode sẽ gửi đến Adruino thông qua phần mềm Universal Gcode sennder.

Adruino điều khiền hoạt động của động cơ bước, servo để tạo ra nét chữ

3.3.2 Phần cứng điều khiển truyền động

Là bộ điều khiển trung tâm và bộ điều khiển ngoại vi.

a) Bộ điều khiển trung tâm: Sử dụng máy tính làm bộ điều khiển trung tâm lưu trữ các file lập trình từ các phần mềm thiết kế và điều khiển như:Lightburn Inkscape, Arduino IE, Universal G-code Sender

b) Bộ điều khiển ngoại vi: Sử dụng Board Arduino Nano làm bộ điều khiển ngoại vi kết nối vưới board CNC Shield V3 và Driver thành bộ điều khiển ngoại vi.

35

Đây là khối điều khiển chính, nó tương tác qua lại giữa máy tính và các khối mạch khác nhằm nhận mã G từ máy tính và kiểm soát toàn bộ hệ thống và xuất tín hiệu điều khiển đến các khối mạch khác.

3.3.3 Phần mềm điều khiển Phần mềm điều khiển Lightburn Phần mềm điều khiển Lightburn

LightBurn là một bố cục ấn tượng, chỉnh sửa cũng như ứng dụng điều khiển cho máy vẽ 2d, máy cắt khắc laser. Nó cho phép bạn nhập các tác phẩm nghệ thuật trong nhiều định dạng tệp hình ảnh và đồ họa vector phổ biến bao gồm PDF, SVG, PNG, JPG, GIF và BMP, v.v. Bạn cũng có thể sắp xếp, chỉnh sửa cũng như tạo các hình dạng vector mới trong trình chỉnh sửa với một số tính năng rất mạnh như thao tác boolean, hàn và chỉnh sửa nút.

LightBurn cho phép áp dụng các cài đặt như tốc độ, sức mạnh, thứ tự vẽ, chế độ hoà sắc, độ sáng và độ tương phản. Ứng dụng này đã được thiết kế để hoạt động với laser của bạn mà không cần sử dụng phần mềm bổ sung.

Nó hỗ trợ các bộ điều khiển dựa trên Ruid, Trocen và GCode. Các bộ điều khiển Gcode được hỗ trợ bao gồm Smoothieware, Grbl, Grbl-LPC và Marlin. Tất cả trong tất cả Light Burn là một bố cục hùng vĩ, chỉnh sửa cũng như ứng dụng điều khiển cho máy vẽ 2d.

36 Tính năng:

- Lightburn quản lí bản vẽ theo các lớp và cho phép chuyển giữa các lớp một cách linh hoạt.

- Chức năng nhân bản đối tượng (clone) rất có ích khi cần sao chép với số lượng lớn hay tạo ra các họa tiết.

- Lightburn hiện đang phát triển tính năng nhận diện hình: đổi từ ảnh bitmap ra các đường nét.

- Cho phép xuất ra nhiều định dạng, Inkscape có thể tạo ra các file EPS, EMF, và các định dạng ảnh bitmap (PNG, JPEG, v.v...)

- Các đối tượng hình vẽ gồm có một số loại đặc biệt: hình sao, đường cong Bézier, gradient màu.

Phương pháp tạo hình quang hợp: - Tạo dữ liệu của file mẫu.

- Dựa vào dữ liệu trên file Lightburn vào các vị trí cần.

- Sau khi viết xong một từ lại nâng viết lên và chuyển qua từ tiếp theo. - Lặp lại các bước 2, 3 cho đến khi viết xong mẫu bài.

Để máy có thể hoạt động được thì cần phải lập trình, viết mã nguồn (firware) để nạp vào board mạch. Lúc đó máy viết chữ mới có thể hiểu được và làm theo những gì ta ra lệnh.

Máy chỉ có thể hiểu được ngôn ngữ G-code vì thế, lightburn giúp lựa chọn chế độ kiểu chữ phù hợp cho bản vẽ, những yêu cầu về độ phân giải, tốc độ viết,và chuyển những yêu cầu đó thành G-code để ra lệnh cho máy viết chữ.

b) Phần mềm Arduino IDE để điều khiển phần cứng hoạt động

❖ Chức năng

Nhận lệnh Gcode từ PC và biên dịch các lệnh này thành những tín hiệu điều khiển động cơ bước. Các chức năng chính của phần mềm như sau:

37

Giao tiếp UART theo hai chiều (truyền và nhận) để nhận mã lệnh G được gửi từ chương trình điều khiển trên máy tính.

Đọc ghi dữ liệu từ EEPROM. Các ngõ ra I/O dùng để: - Điều khiển động cơ bước. - Điều khiển động cơ trục chính.

- Điều khiển quá trình làm mát phôi khi gia công.

- Điều khiển START, STOP, PAUSE, RESET hoạt động máy - Điều khiển enable hoặc disable hoạt động của mạch driver.

Nhận các sự kiện ngắt từ bên ngoài từ các công tắc giới hạn của trục x, y và z.

Chương trình còn lưu lại các hướng dẫn và thông số cài đặt ($x) trong EEPROM phục vụ cho việc điều khiển động cơ các trục mỗi khi khởi động.

Bảng 3.2 là chức năng các chân I/O được lập trình trong code chương trình và được đưa ra các chân tương ứng trên module Arduino để cho việc kết nối ngoại vi.

Để máy CNC hoạt động tốt đúng theo yêu cầu ngoài việc hiểu kết nối với phần cứng ta cần phải hiểu được cách cài đặt các thông số cho chương trình điều khiển dưới máy CNC. Các lệnh được lập trình cố định bắt đầu là $, các giá trị được lưu vào bộ nhớ EEPROM. Các lệnh gồm có:

$: Dùng hiển thị giúp đỡ.

$$ (view Grbl settings): Xem các cài đặc $x trước đó.

$x=value (save Grbl setting): lưu lại cài đặt mới với giá trị mới là value,

các $x được trình bài trong bảng 4.

~ (cycle start): Có chức năng là Start/Restart.

38

Tất cả các lênh này sẽ được sử dụng và thao tác trên phần mêm điều khiển trên máy tính. Trong đề tài sẽ sử dụng chương trình Universal GcodeSender v1.0.5. Các lệnh này sẽ được nhập tại mục Commond trong tab Commond Mode.

Arduino IDE Arduino (Integrated Development Environment) là một trình soạn thảo văn bản, giúp bạn viết code, kiểm tra lỗi và upload code để nạp vào board mạch arduino.40

Một trương trình viết bởi Arduino IDE được gọi là sketch, sketch được lưu dưới định dạng file.ino.

39 ❖ Lưu đồ chương trình chính:

40

CHƯƠNG 4 KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN

4.1 Kết quả đạt được của đồ án

Do đây là lần đầu tiếp xúc với đề tài này, nên trong quá trình tìm hiểu em đã gặp phải một số khó khăn nhất định. Nhưng dưới sự hướng dẫn nhiệt tình của thầy giáo cộng thêm nỗ lực tìm tòi, nghiên cứu đã giúp em đạt được một số kết quả sau:

4.1.1 Cơ khí

Phần cơ khí đã được chế tạo giống như mô hình thiết kế trên Solidworks, đáp ứng được yêu cầu đã đặt ra cho đề tài

Không gian làm việc thực tế 300x230mm Sản phẩm chạy ổn định, chính xác

Hình 4.1 Sản phẩm thực tế

4.1.2 Điện, điện tử

Hiểu được nguyên lí làm việc của các module trong hệ thống và cách ghép nối chúng như thế nào.

41

Tốc độ viết 40-45 kí tự/ phút với cỡ chữ 13

Tốc độ di chuyển bút có thể điều chỉnh từ 1-60mm/s, sản phẩm làm việc ổn định và hiệu quả ở khoảng 20-30mm/s

4.1.3 Phần mềm điều khiển

Nắm rõ tính năng cách sử dụng của các phần mềm. Có thể xử lý văn bản hình ảnh để xuất file Gcode, điều khiển máy hoạt động. Tuy nhiên chỉ dừng lại ở mức độ cơ bản chưa thực sự chuyên sâu về phần mềm

42

Bên cạnh những kết quả đạt được thì mô hình vẫn tồn tại nhiều giới hạn như sau

Khi viết đôi lúc bút vẫn bị dính nét

Phần cơ cấu gá bút trục Z chỉ có thể gá bút vuông góc 90 độ so với mặt giấy Phần đi dây của sản phẩm chưa thực sự gọn gàng

Do giới hạn về phần mềm nên sản phẩm chỉ có 1 số lượng font chữ nhất định

4.2 Phương hướng phát triển

Máy viết chữ tự động có ý nghĩa rất lớn về lĩnh vực sản xuất, giáo dục…Việc làm chủ và ứng dụng vào những lĩnh vực này vẫn còn nhiều hạn chế nhất định. Qua đề tài này em mong muốn sử dụng kiến thức đã học được trong thời gian sinh viên để thực hiện việc tiếp cận với công nghệ và xu hướng của thế giới.

Qua đồ án này em xin đề xuất một số hướng phát triển cho hệ thống: Có thể viết được ngay chữ và hình ảnh nhận diện được qua camera

Kết nối bluetooth truyền hình ảnh từ điện thoại và các thiết bị không dây khác để vẽ.

Phát triển nhiều font chữ nghệ thuật

Sản phẩm có thể biến thành một chiếc máy khắc lazer mini một cách đơn giản bằng việc thay thế cơ cấu gá bút thành đầu khắc lazer.

43

KẾT LUẬN

Sau thời gian hai tháng nỗ lực tìm hiểu và nghiên cứu, đến nay nhóm đồ án đã nắm được cơ sở lý thuyết điều khiển NC áp dụng vào máy viết chữ, nắm được các bước chế tạo một sản phẩm từ việc lên ý tưởng, mô phỏng đến lắp ráp hoàn thiện. Đồ án như một bước đệm nhỏ trong sự phát triển của xu hướng tự động hóa, hiện đại hóa hiện nay, phục vụ trực tiếp cho đời sống sinh hoạt và sản xuất của con người.

Từ sản phẩm “Quạt điện thông minh” đã nghiên cứu nhóm đồ án muốn nghiên cứu, phát triển sản phẩm hơn trong tương lai với những tính năng tiện lợi và hiện đại hơn, phát triển thêm app trên điện thoại. Qua đó giúp sản phẩm dễ dàng sử dụng, nâng cao hiệu suất đáp ứng nhu cầu xã hội hiện nay.

Sau thời gian nỗ lực tìm hiểu, nghiên cứu và hoàn thiện đồ án, đến nay đồ án tốt nghiệp đã được hoàn thành đúng hạn với sự cố gắng của nhóm trong khả năng làm việc chung và phân chia nhiệm vụ về việc tìm hiểu sản phẩm, ứng dụng và chế tạo thành công sản phẩm thực tế. Bằng những kiến thức đã được trang bị ở trường và tìm hiểu một số tài liệu tham khảo có liên quan đến vấn đề đang nghiên cứu, nhóm sinh viên đã cố gắng trình bày đồ án một cách ngắn gọn và đầy đủ nhất. Tuy nhiên do trình độ còn hạn chế, kinh nghiệm thực tế còn chưa nhiều nên đề tài của nhóm còn có nhiều khiếm khuyết. Qua đây, nhóm mong muốn nhận được ý kiến đóng góp của các thầy cô giáo và các bạn sinh viên để đồ án của nhóm ngày càng hoàn thiện hơn.

44

TÀI LIỆU THAM KHẢO

[1] Nguyễn Anh Tuấn, Cơ sở kỹ thuật CNC, Đại học Sư phạm kỹ thuật – Tp Hồ Chí Minh, tháng 04 năm 2001.

[2] Nguyễn Xuân Hùng, Trần Ngọc Bình, Động cơ bước – Kỹ thuật điều khiển và ứng dụng, Nhà xuất bản khoa học và kỹ thuật Hà Nội.

[3] Nguyễn Trọng Hiệp, Chi tiết máy tập 2, NXB Giáo Dục, 2003

[4] Phạm Quang Huy, Lê Cảnh Trung, Lập trình điều khiển với Adruino, NXB Khoa học và kĩ thuật, 2014

[5] https://www.instructables.com

[6] http://www.arduino.cc/

[7] http://www.google.com.vn

45

PHỤ LỤC

1. Chức năng các chân I/O trong chương trình và các chân tương ứng trên module Arduino.

Hình 4.3 Sơ đồ chân Adruino nano

Bảng 5 Chức năng các chân Adruino nano

Thứ tự

chân Tên Pin Kiểu Chức năng

1 D1 / TX I / O

Ngõ vào/ra số Chân TX-truyền dữ liệu

46

Chân Rx-nhận dữ liệu 3 RESET Đầu vào Chân reset, hoạt động ở mức thấp

4 GND Nguồn Chân nối mass

5 D2 I / O Ngõ vào/ra digital 6 D3 I / O Ngõ vào/ra digital 7 D4 I / O Ngõ vào/ra digital 8 D5 I / O Ngõ vào/ra digital 9 D6 I / O Ngõ vào/ra digital 10 D7 I / O Ngõ vào/ra digital 11 D8 I / O Ngõ vào/ra digital 12 D9 I / O Ngõ vào/ra digital 13 D10 I / O Ngõ vào/ra digital 14 D11 I / O Ngõ vào/ra digital 15 D12 I / O Ngõ vào/ra digital 16 D13 I / O Ngõ vào/ra digital

17 3V3 Đầu ra Đầu ra 3.3V (từ FTDI)

18 AREF Đầu vào Tham chiếu ADC

19 A0 Đầu vào Kênh đầu vào tương tự kênh 0 20 A1 Đầu vào Kênh đầu vào tương tự kênh 1 21 A2 Đầu vào Kênh đầu vào tương tự kênh 2

22 A3 Đầu vào Kênh đầu vào tương tự kênh 3 23 A4 Đầu vào Kênh đầu vào tương tự kênh 4

47

24 A5 Đầu vào Kênh đầu vào tương tự kênh 5 25 A6 Đầu vào Kênh đầu vào tương tự kênh 6 26 A7 Đầu vào Kênh đầu vào tương tự kênh 7

27 + 5V Đầu ra hoặc đầu vào

+ Đầu ra 5V (từ bộ điều chỉnh On-board) hoặc

+ 5V (đầu vào từ nguồn điện bên ngoài) 28 RESET Đầu vào Chân đặt lại, hoạt động ở mức thấp

29 GND Nguồn Chân nối mass

48 2. Động cơ bước

Bảng 6 Danh sách động cơ bước NEMA thường gặp được phân loại dựa trên thông số kích thước bên ngoài.

Loại A (mm) B (mm) C D (mm) NEMA 11 28,2 23 Bu-lông M2.5 5 NEMA 14 35,2 26 Bu-lông M3 5 NEMA 17 42,3 31 Bu-lông M3 5 NEMA 23 56,4 47,1 Bu-lông 5,5 6,35 NEMA 34 86 69,6 Bu-lông 5,5 14 NEMA 42 110 89 Bu-lông 8,5 19

49 3. Bản vẽ lắp sản phẩm

50 4.Sơ đồ nguyên lý

51 5.Sơ đồ giải thuật

52 6. Code chương trình:

#include <Servo.h> #include <AFMotor.h>

#define LINE_BUFFER_LENGTH 512

char STEP = MICROSTEP;

// Vị trí Servo cho Lên và Xuống const int penZUp = 120;

const int penZDown = 50;

// Servo trên PWM pin 10 const int penServoPin = 10;

// Nên phù hợp với các bước của DVD, nhưng không quá quan trọng ở đây const int stepsPerRevolution = 48;

// tạo đối tượng servo để điều khiển một servo Servo penServo;

// Khởi tạo các bước cho trục X và Y bằng cách sử dụng các chân Arduino này cho cầu H L293D

AF_Stepper myStepperY (stepPerRevolution, 1); AF_Stepper myStepperX (stepPerRevolution, 2);

/ * Cấu trúc, biến toàn cục * / điểm cấu trúc {

53 phao y;

float z; };

// Vị trí hiện tại của tiêu đề struct point actuatorPos;

// Cài đặt bản vẽ, sẽ được float StepInc = 1;

int StepDelay = 1; int LineDelay = 0; int penDelay = 50;

// Động cơ bước đi 1 milimet.

// Sử dụng bản phác thảo thử nghiệm để đi 100 bước. Đo độ dài đoạn thẳng. // Tính số bước trên mm. Điền vào đây.

float StepsPerMillimeterX = 100.0; float StepsPerMillimeterY = 100.0;

// Vẽ giới hạn rô bốt, tính bằng mm

// OK để bắt đầu. Có thể tăng lên đến 50 mm nếu được hiệu chỉnh tốt. float Xmin = 0; float Xmax = 200; float Ymin = 0; float Ymax = 300; float Zmin = 0; float Zmax = 1;

54 float Xpos = Xmin;

float Ypos = Ymin; float Zpos = Zmax;

// Đặt thành true để nhận đầu ra gỡ lỗi. boolean verbose = false;

// Cần giải thích // G1 để di chuyển

// G4 P300 (đợi 150 mili giây) // M300 S30 (bút xuống) // M300 S50 (bút lên)

// Loại bỏ bất cứ thứ gì có dấu ( // Bỏ bất kỳ lệnh nào khác!

/ ********************** * void setup () - Khởi tạo *********************** / void setup () { // Cài đặt Serial.begin (9600); penServo.attach (penServoPin); penServo.write (penZUp); chậm trễ (100);

55 myStepperX.setSpeed (600);

myStepperY.setSpeed (600);

// Đặt & di chuyển đến vị trí mặc định ban đầu // TBD

// Thông báo !!!

Serial.println ("Máy cắt CNC mini còn sống và đang hoạt động!"); Serial.print ("Phạm vi X là từ"); Serial.print (Xmin); Serial.print ("to"); Serial.print (Xmax); Serial.println ("mm."); Serial.print ("Phạm vi Y là từ"); Serial.print (Ymin); Serial.print ("to"); Serial.print (Ymax); Serial.println ("mm."); } / ********************** * void loop () - Vòng lặp chính *********************** / void loop () {

56 chậm trễ (100);

dòng ký tự [LINE_BUFFER_LENGTH]; ký tự c;

int lineIndex;

bool lineIsComment, lineSemiColon;

lineIndex = 0;

lineSemiColon = false; lineIsComment = false;

trong khi (1) {

// Tiếp nhận nối tiếp - Chủ yếu từ Grbl, hỗ trợ thêm dấu chấm phẩy while (Serial.available ()> 0) {

c = Serial.read ();

if ((c == '\ n') || (c == '\ r')) {// Đã đến cuối dòng

if (lineIndex> 0) {// Dòng hoàn tất. Sau đó thực hiện! line [lineIndex] = '\ 0'; // Chấm dứt chuỗi

nếu (dài dòng) {

Serial.print ("Đã nhận:"); Serial.println (dòng); }

processIncomingLine (line, lineIndex); lineIndex = 0;

} khác {

Một phần của tài liệu HD4 nhữ quý thơ nghiên cứu thiết kế mô hình máy viết chữ tự động (Trang 41)