3.7.4. Lưu đồ thuật toán chế độ Autohome:
Sinh viên thực hiện: Trần Văn Mới Người hướng dẫn: ThS. Dương Quang Thiện
3.7.5. Lưu đồ thuật toán di chuyển các trục:
CHƯƠNG 4: PHẦN MỀM ĐIỀU KHIỂN VÀ KẾT QUẢ
4.1. Thiết lập thông số phần cứng:
Để máy hoạt động cần phải có vi điều khiển để điều khiển hoạt động của máy, để điều khiển có thể điều khiển chính xác các thiết bị phần cứng trong máy cần phải có firmware phù hợp với các thông số phù hợp tương thích với phần cứng của máy. Đối với mô hình máy in 3D, sử dụng firmware Marlin là firmware phổ biến nhất dễ dàng tùy biến các thông số để phù hợp với các cấu hình phần cứng của các loại máy in 3D khác nhau. Các thông số cần thiết lập cho firmware bao gồm: thiết lập thông số board mạch, cảm biến nhiệt, các thông số cho động cơ bước, bộ đùn nhựa, đầu dò (nếu có), thông số bộ PID điều khiển tốc độ động cơ,
Thiết lập thông số baudrate: Để việc truyền và nhận giữ liệu được đồng bộ thì giữa vi điều khiển và phần mềm giao tiếp phải cùng một thông số baudrate. Baudrate là thông số chỉ số bit truyền trong 1s. Để thiết lập thông số baudrate, thay đổi chỉ số của dòng lệnh thành thông số baudrate cần thiết lập. Một số thông số có thể sử dụng như 9600, 11250, 25000, …
#define BAUDRATE 115200 //Arduino mega 2560
Thiết lập thông số về board mạch: Có nhiều board mạch có thể sử dụng để điều khiển máy in 3D như RAMPS, MELZI, … mỗi board mạch sẽ có thông số thiết lập khác nhau để tương thích với firmware. Thiết lập thông số board mạch trong dòng lệnh dưới:
#ifndef MOTHERBOARD //Chọn board
#define MOTHERBOARD BOARD_RAMPS_14_EFB
#endif
Thiết lập số lượng đầu phun: Thay đổi số lượng đầu phun trong dòng lệnh sau: #define EXTRUDERS 1
Thiết lập dây nhựa:
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
Thiết lập giá trị cảm biến nhiệt: tương tự như thiết lập thông số board mạch thì mỗi loại cảm biến nhiệt có 1 giá trị khác nhau, firmware marlin hỗ trợ tối đa 3 cảm biến nhiệt cho đầu phun nhựa và 1 cảm biến nhiệt cho bàn nhiệt.
Sinh viên thực hiện: Trần Văn Mới Người hướng dẫn: ThS. Dương Quang Thiện
#define TEMP_SENSOR_0 60
Thiết lập tọa độ di chuyển cho máy: để máy motor quay đúng chiều theo hệ tọa độ thì ta cần phải thiết lập thông số trong firmware. Dùng phương pháp thử sai để thiết lập các thông số này. Cho các trục tọa độ di chuyển theo một phương nhất định, nếu trục tọa độ di chuyển ngược hướng thì thay đổi câu lệnh từ True thành False hoặc ngược lại. Thiết lập tọa độ máy trong các câu lệnh ở dưới:
#define INVERT_X_DIR false #define INVERT_Y_DIR false #define INVERT_Z_DIR true #define INVERT_E0_DIR false
Thay đổi hướng về home của 3 trục tọa độ: Trước khi máy bắt đầu in thì các trục tọa độ phải về gốc tọa độ để gia nhiệt cho đầu phun, bàn nhiệt, … Để các trục di chuyển về gốc tọa độ phù hợp ta cần thiết lập hướng di chuyển cho các trục. Phương pháp thiết lập tương tự như thiết lập tọa độ di chuyển cho máy, nếu hướng về home không mong muốn thì đổi giá trị từ -1 thành 1 hoặc ngược lại. Các thông số được thiết lập trong các câu lệnh sau:
#define X_HOME_DIR 1 #define Y_HOME_DIR -1 #define Z_HOME_DIR -1
Thiết lập không gian làm việc cho máy: Cần phải giới hạn không gian làm việc của máy theo như phần cứng đã thiết kế là lắp đặt. Các thiết lập về không gian làm việc của máy được thay đổi ở những câu lệnh dưới đây:
#define X_MAX_POS 300 #define X_MIN_POS 0 #define Y_MAX_POS 300 #define Y_MIN_POS 0 #define Z_MAX_POS 250 #define Z_MIN_POS 0
Thiết lập tốc độ về home: Thông số thiết lập tốc độ khi đưa các trục về gốc tọa độ, thay đổi các thông số trong câu lệnh:
#define HOMING_FEEDRATE_XY (50*60) #define HOMING_FEEDRATE_Z (4*60)
Thiết lập các thông số về tốc độ tối đa và gia tốc tối đa của các trục trong các câu lệnh sau:
#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 } //
(mm/sec)
#define DEFAULT_MAX_ACCELERATION { 2000, 2000, 100, 8000 } Thiết lập module LCD: Nếu sử dụng LCD để giao tiếp điều khiển máy in ta thay đổi thiết lập trong firmware bằng cách thêm dòng lệnh sau trong firmware:
#define REPRAP_DISCOUNT_SMART_CONTROLLER
Thiết lập thông số step/mm: Đây là thông số quan trọng nhất khi điều khiển, nó xác định giá trị số vòng quay cần thiết của động cơ để vít me hoặc đai dịch chuyển được 1mm. Để thiết lập các thông số này cần thực hiện qua 2 bước:
Bước 1: Tính toán sơ bộ giá trị step/mm. Bước 2: Tinh chỉnh lại các thông số. Tính bước với trục Vitme:
A4988 thì m = 1/16
Từ tất cả các thông số trên α, λ, m ta có thể tính được bước B (bước/mm) (steps/mm)
B = 360/(α*λ*m) (4.1)
Động cơ bước có α = 1.8°; trục vitme bước ren 8mm; và dùng module điều khiển là A4988 thì ta tính được bước là:
B = 360/{1.8*8*(1/16)} = 400 (steps/mm) (4.2)
Tính bước với dây đai: Để tính toán ta cần biết:
Thông số bước răng λ (mm) của dây đai Số răng của puly R (răng)
Từ tất cả các thông số trên α, λ, R, m ta có thể tính được bước B (bước/mm) (steps/mm)
Sinh viên thực hiện: Trần Văn Mới Người hướng dẫn: ThS. Dương Quang Thiện
B = 360/(α*λ*R*m) (4.3)
Động cơ bước có α = 1.8°; đai GT2 bước răng 2mm; Puly GT2 20 răng; module điều khiển là A4988.
B = 360/(1.8*2*20*(1/16)) = 80 (steps/mm) (4.4)
Số bước/mm lý thuyết đối với bộ đùn nhựa. Số bước/mm lý thuyết: LT = (360/(A*B*E))/(pi*G) = (360/(1.8*1/16*1)/(3.14*11) = 92.6 (steps/mm) (4.5) Trong đó: A là 1.8 B là 1/16 với A4988
E là tỉ số truyền của truyền động bánh răng, tính theo công thức E = Số răng bánh răng to/Số răng bánh răng nhỏ.
Trên các bộ đùn nhựa không sử dụng bánh răng truyền động thì E = 1. Pi = 3.14 (số pi).
G: đường kính puli hoặc bulông tời nhựa, được ghi rõ trong link sản phẩm hoặc bạn đọc có thể đo trực tiếp bằng thước kẹp, G = 11.
Sau khi có các giá trị cần thiết, thiết lập lại các thông số trong các dòng lệnh sau: #define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 92.6 }
4.2. Phần mềm tạo mẫu 3D:
4.2.1. Giới thiệu phần mềm Autocad:
Hiện nay có rất nhiều phần mềm để tạo mẫu 3D chuyên nghiệp trên máy tính như Solidworks, Bricscad, Infinite Design … Có rất nhiều sự lựa chọn, nhưng chúng em quyết định sử dụng phần mềm Autocad để tạo mẫu. Phần mềm Autocad mọi người cũng đã biết đến nhiều, thông dụng và tiện lợi.
AutoCAD (viết tắt của Automatic Computer Aided Design) là một ứng dụng phần mềm được phát triển bởi Autodesk cho phép thiết kế và soạn thảo với sự hỗ trợ máy tính (CAD). Phần mềm này được sử dụng để tạo bản vẽ 2D và 3D, cho phép người dùng khái niệm hoá các ý tưởng, tạo ra các thiết kế và bản vẽ theo mức độ chính xác kỹ thuật cần thiết. Thậm chí, AutoCAD có thể thực hiện tính toán và mô phỏng
thiết kế nhanh chóng trên một loạt các ngành công nghiệp. Bởi những lĩnh vực này khi sử dụng CAD sẽ giúp người dùng tạo ra những bản thiết kế để sáng tạo theo mong muốn cá nhân, đồng thời còn hỗ trợ các bước kỹ thuật khác được thực hiện chính xác và tốt hơn.
Hình 4.1: Logo phần mềm Autocad
4.2.2. Một vài lệnh tạo mẫu nhanh trên Autocad:
Trước khi vào dựng hình, chúng ta phải chuyển giao màn hình làm việc từ Autocad 2D sang 3D bằng cách:
− Trên thanh trạng thái status bar của Autocad, chọn biểu tượng tùy chọn
− Chọn mục 3D basics như hình
Sau khi chọn như trên, trên thanh Ribbon của AutoCAD sẽ chuyển đổi sang giao diện thiết kế 3D như sau:
Sinh viên thực hiện: Trần Văn Mới Người hướng dẫn: ThS. Dương Quang Thiện
Lệnh Box:
Là lệnh được sử dụng để tạo một khối hộp 3D với kích thước dài x rộng x cao
Ngoài ra, trong danh sách của công cụ Box trên thanh Ribbon còn chứa nhiều hình dạng khác nhau mà bạn có thể sử dụng:
Lệnh Extrude:
Lệnh tắt là EXT được tạo khối 3D từ một đối tượng/đường 2D
Lệnh Revolve:
Sử dụng để tạo khối tròn xoay bằng cách xoay đối tượng 2D theo một trục nằm cùng mặt phẳng đối tượng.
Nếu đối tượng 2D có biên dạng khép kín ta có thể tạo ra khối (solid) hoặc mặt, nếu biên dạng hở ta chỉ có thể tạo được bề mặt (Surface)
Sinh viên thực hiện: Trần Văn Mới Người hướng dẫn: ThS. Dương Quang Thiện
Lệnh intersect:
Sử dụng để tạo ra một đối tượng bằng cách cắt lấy phần giao giữa các đối tượng được chọn
Lệnh Subtract:
Sử dụng tạo ra một đối tượng bề mặt hoặc khối bằng cách loại bỏ đi phần giao nhau của đối tượng gốc với đối tượng được chọn.
Lệnh Union:
Sử dụng để kết hợp các đối tượng bề mặt hoặc khối để tạo thành một đối tượng duy nhất
Lệnh Presspull:
Sử dụng để tạo vật rắn hoặc bề mặt 3D bằng cách nhấp vào biên dạng của đối tượng
Lệnh này thường được sử dụng để thay đổi kích thước của khối hoặc mặt 3D theo các phương khác nhau.
Sinh viên thực hiện: Trần Văn Mới Người hướng dẫn: ThS. Dương Quang Thiện
4.3. Phần mềm điều chỉnh các thông số in:
4.3.1. Giới thiệu phần mềm Ultimaker Cura:
Cura là một ứng dụng cắt lớp cho máy in 3D mã nguồn mở. Ultimaker Cura hoạt động bằng cách cắt tệp mô hình của người dùng thành các lớp và tạo mã g-code cụ thể cho máy in. Sau khi hoàn thành, G-code có thể được gửi đến máy in để sản xuất đối tượng vật lý.
Phần mềm nguồn mở tương thích với hầu hết các máy in 3D để bàn có thể làm việc với các tệp ở các định dạng 3D phổ biến nhất như STL, OBJ, X3D, 3MF cũng như các định dạng tệp hình ảnh như BMP, GIF, JPG và PNG.
Hình 4.2: Màn hình làm việc phần mềm Ultimaker Cura
4.3.2. Các thông số cơ bản cần hiệu chỉnh:
Để cài các thông số cho máy in chọn vào: Settings -> Printer -> Manage Printers... Sẽ ra giao diện như sau:
− X Y Z là kích thước lớn nhất mà máy in được hay là kích thước hoạt động của máy.
− Xmin Xmax Ymin Xmax là khoản cách an toàn tính từ biên của bàn in
(Mình để 0 hết vì muốn kích thước in đúng bằng kích thước bàn).
− Build plate shape là hình dán bàn in (Với máy thường là hình chữ nhật với
máy delta thì hình tròn).
− Chọn Origin at centter nếu muốn gốc tọa độ tại tâm bàn in.
− Chọn Heated bed nếu bạn có sử dụng bàn nhiệt cho máy in.
− G-code flavor là chọn firmware mà bạn dùng cho máy in (Mình dùng
marlin nên chọn nó).
− Gantry Height là khoản cách từ đầu in tới bánh răng của bộ đùn nhựa
Sinh viên thực hiện: Trần Văn Mới Người hướng dẫn: ThS. Dương Quang Thiện
− Nozzle Size là kích thước mũi in của máy.
− Compatible material diameter là đường kính sợi nhựa dùng để in.
− Extruder Start Gcode và Extruder End Gcode là 2 đoạn Gcode mà bạn
muốn chèn vào lúc bắt đầu và kết thúc khi dùng Extruder 1 (Thường dùng cho máy in dùng nhiều đầu in).
− Layer Height: là độ cao mỗi lớp in.
− Initial Layer Height: là độ cao lớp in đầu tiên (Thông số này thường quyết
định nhựa có bám bàn tốt không và lớp đầu tiên in có mịn hay không).
− Các thông số còn lại như Line Width là độ rộng của một đường nhựa in ra,
thường bằng kích thước mũi in (Nếu muốn nhựa in ra dày hơn hay thưa hơn thì có thể tăng giảm nó).
− Wall Thickness: Độ dày thành của chi tiết in ra (Mũi in mình 0.4 mình cài
đặt là 1,2 thì thành in ra là 3 lớp nhựa - Có thể cài đặt trực tiếp số lớp ở Wall line count).
− Top/ Bottom Thickness: Độ dày của lớp trên cùng và lớp dưới cùng chi
tiết (Layer Height trên mình để 0.2 và mình cài đặt mà 0.8 thì số lớp in là 4 lớp - Có thể cài đặt trực tiếp ở Top Layer hoặc Bottom Layer).
Sinh viên thực hiện: Trần Văn Mới Người hướng dẫn: ThS. Dương Quang Thiện
− Infill Density như là thông số về độ đặc của vật thể, càng cao thì chi tiết in
ra càng đặc nhưng thời gian in rất lâu, bù lại độ cứng của chi tiết cao.
− Infill Pattern là dạng lưới bên trong chi tiết hay là hình dạng của infill
(muốn độ cứng cao thì để Triangles, muốn thời gian in nhanh thì để Lines).
Tab Material là chỉnh các thông số liên quan tới nhựa in:
− Printing Temperature là nhiệt độ in (với nhựa PLA thường 195 và với
nhựa ABS thường 240).
− Flow là lượng nhựa in đùn ra khi in (nếu bạn muốn lượng nhựa đùn ra
nhiều hơn hay ít hơn tại vị trí nào thì tăng lên).
− Nếu chọn vào Enable Retaction thì đồng ý rút nhựa in lại khi chuyển tiếp
Sinh viên thực hiện: Trần Văn Mới Người hướng dẫn: ThS. Dương Quang Thiện
Tab Speed chỉnh tốc độ hoạt động của máy in:
− Print Speed tốc độ in (tốc độ càng cao thì in càng nhanh, nhưng cơ khí
máy phải đủ vững nếu không rất dễ trật bước hoặc chi tiết in ra xấu không mịn).
− Infill speed tốc độ in của infill.
− Wall speed tốc độ in của thành vật thể.
− Travel speed tốc độ di chuyển không của đầu in.
− Initial Layer speed tốc độ in của lớp đầu tiên (tốc độ chậm nhựa in dễ dính
Bạn chọn vào Generate Support để bật chức năng tự tạo support của Cura.
− Support Placement là vùng được tạo support: Nếu để Everywhere thì tất cả
các vùng của chi tiết có góc lớn hơn Support Overhang Angle sẽ được tạo support. Nếu để Touching Buildplate thì các vùng phía ngoài của vật thể có góc lớn hơn Support Overhang Angle mới được tạo support.
− Support Pattern là hình dạng của support tương tự như của infill.
− Support Density là độc đặc của support cũng tương tự như của infill.
− Để dễ gỡ support ra khỏi chi tiết sau khi in các bạn nên tăng thông số
Support X/Y Distance lên vì nếu để support tạo ra gần chi tiết quá sẽ bị dính với chi tiết in nên khó gỡ ra.
Sinh viên thực hiện: Trần Văn Mới Người hướng dẫn: ThS. Dương Quang Thiện
4.3.3. Các kiểu chạy nhựa:
Hình 4.3: Kiểu Grid (trái) và kiểu Triangles (phải)
Hình 4.4: Kiểu Tri – Hexagon (trái) và kiểu Cross 3D (phải)
Mỗi kiểu in có ưu và nhược khác nhau, tùy thuộc vào mẫu vật muốn in, chất lượng nhựa, kết cấu cơ khí máy in và độ bền bỉ của sản phẩm mà chọn kiểu in phù hợp với nhu cầu.
4.4. Các bước hoàn thành sản phẩm in cơ bản:
Bước 1: Tạo mô hình CAD 3 chiều:
Bước đầu tiên trong quy trình in 3D là thiết kế, tạo mô hình CAD cho đối tượng cần in bằng cách sử dụng phần mềm Autocad 3D… Nhà thiết kế có thể dùng tập tin CAD đã được tạo trước đó hoặc tạo mới sao cho phù hợp với mục đích tạo mẫu. Đối với các loại kỹ thuật RP khác nhau, quá trình này đều giống nhau.
Sinh viên thực hiện: Trần Văn Mới Người hướng dẫn: ThS. Dương Quang Thiện
Bước 2: Chuyển đổi mô hình CAD thành định dạng STL:
Vì mỗi phần mềm 3D khác nhau sẽ tạo mô hình CAD vật thể bằng các thuật toán khác nhau. Do đó, để đảm bảo sự đồng nhất, sau khi đã hoàn tất việc thiết kế mô hình đa chiều, cần xuất file ra với định dạng STL. Đây được xem là định dạng tiêu chuẩn trong ngành công nghiệp tạo mẫu nhanh, có kết cấu dạng lưới với nhiều mặt hình tam giác liên kết với nhau, tạo thành mô hình 3D của sản phẩm in.
Tuy nhiên, cũng vì kết cấu này mà định dạng STL sẽ không thể hiện chính xác hình ảnh của các đường cong, đòi hỏi người thiết kế phải gia tăng số lượng các mặt