TỔNG QUAN
Lý do chọn đề tài
Trong bối cảnh công nghiệp hóa và hiện đại hóa đất nước, việc phát triển các kỹ thuật cao như Cơ Điện Tử trở nên cần thiết để nâng cao năng lực cạnh tranh Mặc dù đã có những bước tiến đáng kể, Việt Nam vẫn còn khoảng cách lớn so với các quốc gia phát triển Trong lĩnh vực hàn linh kiện điện tử, công nghệ dán bề mặt SMT (Surface Mount Technology) ngày càng trở nên phổ biến, dần thay thế công nghệ xuyên lỗ Hiện nay, thiết bị SMT rất đa dạng, đáp ứng nhu cầu từ thủ công đến tự động hóa.
Việc nghiên cứu và triển khai công nghệ SMT đòi hỏi một khoản vốn đầu tư ban đầu lớn, do chúng ta chưa làm chủ được công nghệ này Cần có thời gian dài và chiến lược phát triển đúng đắn để nắm bắt công nghệ, phục vụ cho sản xuất nhỏ và nghiên cứu, từ đó tạo nền tảng cho việc triển khai trong ngành công nghiệp Chính vì lý do này, nhóm chúng tôi đã quyết định tiến hành nghiên cứu đề tài này.
Tổng quan về đề tài nghiên cứu
SMT, viết tắt của Surface Mount Technology (Công nghệ dán bề mặt), là phương pháp hàn linh kiện điện tử trực tiếp lên bề mặt của bo mạch in (PCB) Linh kiện điện tử dành cho công nghệ này được gọi là SMD (Surface Mount Device) Dây chuyền SMT bao gồm các máy móc chuyên dụng để thực hiện quy trình này.
+ Máy châm keo dính linh kiện
+ Máy gia nhiệt làm mát
Máy chấm keo dính linh kiện đóng vai trò quan trọng trong dây chuyền SMT, chuyên dùng để sản xuất bảng mạch với một mặt chứa linh kiện DIP và mặt còn lại là linh kiện dán.
1.3 Mục tiêu và nhiệm vụ đề tài
Nghiên cứu lý thuyết và thiết kế kết cấu cơ khí máy, cùng với việc phát triển phần mềm điều khiển và làm chủ Driver M560 và M542-05, nhằm điều khiển động cơ bước một cách hiệu quả.
GVHD: Th.S Lê Tấn Cường giới thiệu 4 máy châm keo tự động 3 trục, được trang bị đầu phun keo linh hoạt Những máy này có khả năng châm keo với nhiều dạng đầu phun khác nhau, phù hợp cho việc châm keo trên nhiều loại board mạch.
+ Lên ý tưởng mô hình máy và giải thuật điều khiển
+ Thiết kế và gia công cơ khí mô hình máy 3 trục
+ Thiết kế giao diện điều khiển máy
+ Chạy thử nghiệm quá trình châm keo và đánh giá.
Đối tƣợng và phạm vi nghiên cứu
- Tìm hiểu công nghệ dán bề mặt trên hệ thống dây chuyền SMT
- Tìm hiểu về mô hình máy CNC
- Cách chuyển đổi từ file từ phần mềm Altium sang Gcode mang dữ liệu chạy máy
- Thiết kế giao diện điều khiển và giám sat cho máy dựa trên nền tảng Arduino
Máy châm keo trong hệ thống dây chuyền SMT là sản phẩm phức tạp, yêu cầu sự kết hợp của nhiều ngành kỹ thuật như cơ khí chính xác, điện tử, điều khiển và lập trình Trong bối cảnh đồ án tốt nghiệp đại học và những hạn chế về thời gian cũng như kinh phí, nhóm chúng tôi đề xuất thực hiện đề tài với các nội dung cụ thể.
+ Thiết kế thi công mô hình cơ khí máy châm keo phù hợp với một số Board mạch điện tử đơn giản
+ Thiết kế hệ thống điện điều khiển động cơ có sai số ở mức độ chấp nhận đƣợc
+ Thiết kế giao diện điều khiển giám sát với những chức năng cơ bản và hiển thị các thông số cần thiết.
Giới hạn đề tài
Máy chấm keo được thiết kế với nhiều loại đầu phun để chấm keo trên các Board mạch khác nhau Tuy nhiên, do hạn chế về cơ sở vật chất và thời gian, chúng tôi chỉ tập trung phát triển một loại đầu phun keo cho một số Board mạch điển hình Các phần khác như băng tải cấp dẫn Board vẫn chưa được hoàn thiện.
GVHD: Th.S Lê Tấn Cường 5
Do hạn chế về kinh phí và kiến thức, chúng em chưa thể áp dụng những chi tiết cơ cấu phù hợp như động cơ Servo và bộ phun keo.
Các nghiên cứu liên quan đến đề tài
1.6.1 Các nghiên cứu ngoài nước
Sáng chế đầu tiên về SMT được đăng ký vào năm 1976, nhưng đến năm 1980, SMT mới bắt đầu phổ biến, với IBM là đơn vị tiên phong trong ứng dụng công nghệ này trong lĩnh vực máy tính Trong thời gian đó, phương pháp xuyên lỗ vẫn được ưa chuộng nhờ vào tính dễ hàn và tháo lắp Tuy nhiên, chất lượng BM kém đã cản trở sự phát triển của SMT Từ sau năm 2000, sự ra đời của BM chất lượng cao đã mở rộng thị trường cho SMT, thúc đẩy sự phát triển của công nghệ này.
Hình 1.1 Sơ lược SC về SMT được đăng ký trên thế giới
Ngành SMT đã chịu ảnh hưởng đáng kể từ cuộc khủng hoảng kinh tế toàn cầu năm 2008, dẫn đến sự sụt giảm mạnh về số lượng SC Tuy nhiên, theo báo cáo mới nhất từ Electronics CA Publications, thị trường SMT đang trên đà hồi phục nhờ sự phát triển của nền kinh tế và nhanh chóng thay thế công nghệ xuyên lỗ nhờ vào những đột phá về năng suất và độ tin cậy.
GVHD: Th.S Lê Tấn Cường 6
Hình 1.2 10 công ty có nhiều SC về công nghệ SMT
Tính đến nay, gần 1.300 SC về SMT đã được đăng ký trên toàn cầu, chủ yếu tại Mỹ Đáng chú ý, nhiều SC này thuộc về các công ty hàng đầu trong lĩnh vực sản xuất và cung cấp linh kiện điện tử.
Ten to eight companies headquartered in the United States, including AMP Incorporated, Motorola, IBM, AVX, The Whitaker, Micron Technology, and Intel, are complemented by firms from Japan, such as Murata and Nihon Dempa Kogyo, as well as GEM Services from the United Kingdom.
Phân tích theo phân loại SC quốc tế IPC chỉ ra ba hướng nghiên cứu chính về SMT, trong đó 19% tập trung vào thiết bị mạch tích hợp (H01L) và 16% liên quan đến màng phim kỹ thuật phục vụ sản xuất.
BM (H05K) chiếm khoảng 15% hệ thống phân phối điện (H01R) Nghiên cứu còn mở rộng sang các phương pháp và thiết bị hàn, hợp kim hàn, cũng như ứng dụng công nghệ SMT trong thiết bị truyền thông và biến áp.
GVHD: Th.S Lê Tấn Cường 7
1.6.2 Các nghiên cứu trong nước
Tại Việt Nam, công nghệ SMT bắt đầu phát triển mạnh mẽ trong ngành điện tử từ năm 2008, mặc dù chậm hơn so với nhiều quốc gia khác Hiện nay, một số nhà cung cấp thiết bị SMT nổi bật tại Việt Nam bao gồm SMT Vietnam, Siemens, Panasonic, Fuji, Samsung và Matsushita.
Do chi phí đầu tư cao, nhiều công ty trong nước đã chọn hợp tác chuyển giao công nghệ và học hỏi mô hình quản lý từ các tập đoàn nước ngoài Công ty Cổ phần Bóng đèn Điện Quang là một trong những doanh nghiệp nội địa áp dụng thành công công nghệ SMT trong sản xuất Sản phẩm ballast cho đèn compact sử dụng công nghệ SMT giúp thiết bị nhỏ gọn, ít tỏa nhiệt và tăng tuổi thọ.
Hình 1.3 Dây chuyền sản xuất dùng công nghệ SMT
Tháng 10 vừa qua, triển lãm lần thứ 5 về công nghiệp phụ trợ do Tổ chức Xúc tiến Thương mại Nhật Bản (JETRO) và Trung tâm Xúc tiến Thương mại và Đầu tư (ITPC) tổ chức đã giới thiệu một số dây chuyền SMT công nghệ cao phục vụ ngành điện tử Theo
TS Trần Quang Hùng, Tổng thư ký Hiệp hội Doanh nghiệp Điện tử Việt Nam (VEIA), cho biết ngành công nghiệp sản xuất linh phụ kiện điện tử tại Việt Nam đã có sự phát triển mạnh mẽ từ năm qua.
Năm 2011, dự kiến doanh thu sẽ tăng gấp đôi mỗi năm Việc áp dụng hiệu quả công nghệ SMT trong sản xuất sẽ mang lại lợi ích lớn cho quốc gia thông qua việc giảm chi phí nhập khẩu, nâng cao hiệu suất sản xuất và tăng giá trị sản phẩm.
Nguồn: http://www.cesti.gov.vn
GVHD: Th.S Lê Tấn Cường 8
CƠ SỞ LÝ THUYẾT
Công nghệ gắn linh kiện điện tử dán
- Quá trình gắn linh kiện điện tử dán lên Board mạch bằng công nghệ SMT gồm 4 bước cơ bản:
+ Bước 1: Châm keo – dùng trong board mạch có linh kiện dán ở cả 2 mặt
+ Bước 4: Kiểm tra và sửa lỗi
- Lợi điểm khi sử dụng công nghệ SMT:
+ Quá trình lắp ráp đơn giản hơn
+ Có thể gắn linh kiện lên trên hai mặt của bo mạch
+ Tính năng chịu bền bỉ hơn trong điều kiện bị va đập và rung lắc
+ Quá trình tự động hóa cao, có thể tự hiệu chỉnh những lỗi nhỏ gặp phải
+Giá linh kiện dán rẻ hơn linh kiện xuyên lỗ
+ Năng suất cao và rất linh động khi thay đổi model Board mạch.
Ngôn ngữ lập trình G-Code
G-Code là tên gọi của một ngôn ngữ lập trình ứng dụng trong điều khiển số (còn gọi là
G-Code, hay còn gọi là ngôn ngữ lập trình G, là một phần quan trọng trong tự động hóa và điều khiển số (NC - Numerical Control), thường được sử dụng với sự hỗ trợ của máy tính trong kỹ thuật hỗ trợ máy tính (CAE - Computer Aided Engineering).
G-Code là ngôn ngữ lập trình cơ bản dùng để điều khiển máy CNC, cho phép thông báo và ra lệnh cho các thiết bị di chuyển theo quỹ đạo nhất định, với tốc độ cụ thể, và điều khiển việc bật/tắt các thiết bị.
Các nhóm lệnh trong G-Code:
+ Là lệnh quy định sự dịnh chuyển
+ Là lệnh quy định chế độ làm việc của máy
+ Lệnh G đƣợc mã hóa từ G00 cho đến G99, mỗi lệnh có các chức năng và yêu cầu riêng
+ Là lệnh quy định các chức năng phụ nhƣ bắt đầu, dừng, kết thúc, tắt mở một vài chức năng khác như bơm nước, trục chính
GVHD: Th.S Lê Tấn Cường 9
+ Lệnh M đƣợc mã hóa từ M00 cho đến M99, mỗi lệnh có các chức năng và yêu cầu riêng
Lệnh G hoặc M đi kèm với các tham số, giúp máy nhận biết các giá trị kế tiếp để thực hiện các mục đích khác nhau, như xác định khoảng cách di chuyển hoặc điều khiển thiết bị.
Lý thuyết về Arduino
Arduino là nền tảng mã nguồn mở dùng để phát triển ứng dụng điện tử, bao gồm board mạch lập trình (vi điều khiển) và phần mềm IDE (Môi trường Phát triển Tích hợp) hỗ trợ soạn thảo, biên dịch mã và nạp chương trình vào board.
Arduino hiện nay rất phổ biến cho người mới bắt đầu học điện tử nhờ vào tính đơn giản, hiệu quả và dễ tiếp cận Khác với các vi điều khiển khác, Arduino không yêu cầu công cụ chuyên dụng để nạp code, như Pic Kit cho PIC Việc kết nối Arduino với máy tính chỉ cần cáp USB, và lập trình cho Arduino cũng dễ dàng nhờ vào Arduino IDE, sử dụng phiên bản đơn giản hóa của ngôn ngữ C++.
Khả năng của bo mạch Arduino:
Bo mạch Arduino sử dụng vi xử lý 8-bit megaAVR của Atmel, nổi bật với hai chip ATmega328 và ATmega2560 Các vi xử lý này hỗ trợ lập trình ứng dụng điều khiển phức tạp nhờ cấu hình mạnh mẽ, bao gồm bộ nhớ ROM, RAM và Flash, cùng với nhiều ngõ vào ra digital I/O, trong đó có các ngõ xuất tín hiệu PWM, đọc tín hiệu analog và hỗ trợ các chuẩn giao tiếp như UART, SPI và TWI (I2C).
EEPROM: 1KB (ATmega328) và 4KB (ATmega2560)
SRAM: 2KB (Atmega328) và 8KB (Atmega2560)
Flash: 32KB (Atmega328) và 256KB (Atmega2560) Đọc tín hiệu cảm biến ngõ vào:
Các bo mạch Arduino được trang bị các cổng digital có khả năng cấu hình linh hoạt làm ngõ vào hoặc ngõ ra thông qua phần mềm, cho phép người dùng tùy chỉnh số lượng ngõ vào và ngõ ra theo nhu cầu của dự án.
GVHD: Th.S Lê Tấn Cường 10 ra Tổng số lƣợng cổng digital trên các mạch dùng Atmega328 là 14, và trên Atmega2560 là 54
Các bo mạch Arduino được trang bị 6 ngõ vào analog với độ phân giải 10-bit cho Atmega328 và 16 ngõ cho Atmega2560 Tính năng đọc analog cho phép người dùng kết nối và thu thập dữ liệu từ nhiều loại cảm biến như nhiệt độ, áp suất, độ ẩm, ánh sáng, gyro và accelerometer.
Xuất tín hiệu điều khiển ngõ ra:
Người dùng có thể cấu hình phần mềm để chọn ngõ digital nào là ngõ ra, tương tự như các cổng vào digital Trên mạch Atmega328 có tổng cộng 14 cổng digital, trong khi mạch Atmega2560 có tới 54 cổng digital.
Trong số các cổng digital, người dùng có thể chọn cổng để xuất tín hiệu điều chế xung PWM với độ phân giải 8-bit Bo Atmega328 hỗ trợ 6 cổng PWM, trong khi bo Atmega2560 có 14 cổng PWM có nhiều ứng dụng trong viễn thông, xử lý âm thanh và điều khiển động cơ, đặc biệt là trong việc điều khiển động cơ servos trong các máy bay mô hình.
Giao tiếp nối tiếp là chuẩn phổ biến trên bo mạch Arduino, với mỗi bo được trang bị một số cổng Serial cứng do phần cứng trong chip điều khiển Tất cả các cổng digital còn lại có thể thực hiện giao tiếp nối tiếp qua phần mềm, nhờ vào thư viện chuẩn mà người dùng không cần viết code Mức tín hiệu của các cổng này là TTL 5V, trong khi cổng nối tiếp RS-232 trên thiết bị hoặc PC sử dụng mức tín hiệu UART 12V; do đó, cần có bộ chuyển mức như chip MAX232 để kết nối giữa hai mức tín hiệu Bo mạch Atmega328 có 1 cổng Serial cứng, trong khi Atmega2560 có 4 cổng Nhờ tính năng giao tiếp nối tiếp, các bo Arduino có khả năng kết nối với nhiều thiết bị như PC, màn hình cảm ứng và các game console.
Các bo Arduino tiêu chuẩn được trang bị cổng USB để kết nối với máy tính nhằm tải chương trình Tuy nhiên, các chip AVR không có cổng USB, nên bo Arduino cần có phần chuyển đổi từ USB sang tín hiệu UART Kết quả là máy tính nhận diện cổng USB này như một cổng COM thay vì cổng USB thông thường.
GVHD: Th.S Lê Tấn Cường 11
SPI là chuẩn giao tiếp nối tiếp đồng bộ với cấu trúc bus 4 dây, cho phép các bo Arduino kết nối với nhiều thiết bị như LCD, bộ điều khiển video game, cảm biến và đọc thẻ nhớ SD, MMC.
TWI (I2C) là một chuẩn giao tiếp đồng bộ với chỉ hai dây, cho phép các bo Arduino kết nối với nhiều loại cảm biến như thermostat CPU, tốc độ quạt, màn hình OLED/LCD, đồng hồ thời gian thực và điều chỉnh âm lượng cho một số loa.
Môi trường lập trình bo mạch Arduino:
Arduino có thiết kế bo mạch nhỏ gọn và nhiều tính năng hữu ích, nhưng sức mạnh thực sự của nó đến từ phần mềm Môi trường lập trình dễ sử dụng và ngôn ngữ Wiring dựa trên C/C++ giúp người dùng kỹ thuật tiếp cận dễ dàng Đặc biệt, cộng đồng mã nguồn mở đã cung cấp một lượng lớn thư viện code sẵn có, mang lại nhiều lợi ích cho người phát triển.
Giao diện IDE của Arduino
Môi trường lập trình Arduino IDE hỗ trợ ba nền tảng chính: Windows, Macintosh OSX và Linux Ngôn ngữ lập trình có thể được mở rộng thông qua các thư viện C++, dựa trên nền tảng ngôn ngữ C của AVR.
Hình 2.1 Giao diện IDE của Arduino
GVHD: Th.S Lê Tấn Cường 12
Bài viết bao gồm các nút lệnh menu như File, Edit, Sketch, Tools và Help Dưới đây là các biểu tượng cho phép sử dụng nhanh các chức năng thường dùng của IDE.
Hình 2.2 Các Icon chức năng thường dùng của IDE
Bạn sẽ viết mã chương trình của mình tại đây, với tên chương trình hiển thị ngay dưới dãy Icon, được gọi là “Blink” Lưu ý rằng dấu “§” phía sau tên chương trình cho biết đoạn mã của bạn chưa được lưu.
Hình 2.3 Vùng thông báo của IDE
GVHD: Th.S Lê Tấn Cường 13
Phương pháp nội suy đường thẳng
Trong máy công cụ điều khiển bằng chương trình số, các bộ công cụ như dao phay, dao tiện và đầu laser thực hiện các đường tác dụng chính Các chi tiết được tạo ra thông qua việc di chuyển tọa độ trên nhiều trục khác nhau.
Sự phối hợp chuyển động của nhiều trục do bộ nội suy đảm nhiệm
- Nhiệm vụ của bộ nội suy:
+ Tìm ra các vị trí trung gian cho phép hình thành một biên dạng cho trước với một dung sai nhất định
Các biên dạng cơ bản trong kỹ thuật bao gồm đoạn thẳng và đoạn cong, với các phương pháp nội suy phổ biến là nội suy tuyến tính và nội suy cung tròn Để đạt được độ chính xác cao, việc xác định các điểm kết thúc theo chương trình đã được thiết lập là rất quan trọng.
+ Thực hiện việc nội suy nhanh, đáp ứng đƣợc tốc độ xử lý của vi điều khiển và tốn ít bộ nhớ
+ Có 2 phương pháp nội suy tuyến tính phổ biến là phương pháp nội suy DDA và phương pháp nội suy Bresenham
Phương pháp DDA là phương pháp thực hiện với số thực và các tính toán có sin cos nên tốc độ xử lý chậm
Phương pháp Bresenham là phương pháp thực hiện với số nguyên và cách tính chỉ là các phép cộng trừ đơn giản nên tốc độ xử lý nhanh
- Phương pháp nội suy Bresenham:
+ Đây là một trong những thuật toán cổ nhất trong đồ hoạ máy tính đƣợc Jack E Bresenham thiết kế vào năm 1962 tại công ty IBM
+ Ƣu điểm lớn nhất của thuật toán này là tốc độ xử lý rất nhanh do nó chỉ sử dụng các lệnh cộng trừ số học
+ Ta có sơ đồ giải thuật của phương pháp nội suy Bresenham
GVHD: Th.S Lê Tấn Cường 14
Hình 2.4 Giải thuật của phương pháp nội suy Bresenham Đoạn thẳng có tọa độ điểm đầu là A(x1,y1) điểm cuối là B(x2,y2)
GVHD: Th.S Lê Tấn Cường 15
THIẾT KẾ THI CÔNG CƠ KHÍ
Các phương án di chuyển của trục tọa độ
3.1.1 Phương án bàn máy cố định
Trong phương án này, trục X chuyển động trên bệ đỡ, trục Y chuyển động trên trục X, trục Z chuyển động trên trục Y
Phương án bàn máy cố định được thiết kế với trục X có khả năng trượt trên bệ đỡ, đồng thời nâng các trục Y và Z trong quá trình di chuyển Để đảm bảo sự ổn định khi di chuyển, trục X cần có kết cấu vững chắc và các bộ phận đỡ phải đủ độ dày nhằm đảm bảo độ cứng vững, giúp quá trình trượt diễn ra êm ái, ổn định và giảm thiểu sai số.
Trục Y trượt trên trục X, với bộ phận trượt trục X được trang bị các hệ thống thanh trượt, cơ cấu truyền động và động cơ, tất cả đều di chuyển cùng trục X Tương tự, trục Z trượt trên trục Y, với bộ phận trượt trục Y cũng được gắn các thanh trượt, động cơ và cơ cấu truyền động cho trục Z.
Đầu công cụ trượt được gắn trên trục Z, với bộ phận trượt trục Z bao gồm các thanh trượt, động cơ và cơ cấu truyền động cho đầu công cụ.
GVHD: Th.S Lê Tấn Cường 16
3.1.2 Phương án bàn máy di chuyển
Trong phương án này, bàn máy được thiết kế để di chuyển độc lập trên trục X, trong khi trục Y và trục Z vẫn giữ nguyên vị trí Phần cố định của máy bao gồm thân máy, các trục trượt, động cơ và cơ cấu truyền động cho trục X, với trục Y được gắn cố định vào thân máy.
Hình 3.2 Phương pháp bàn máy di chuyển
Trục X di chuyển độc lập với trục Y và trục Z, trục X và trục Y trƣợt trên các thanh trƣợt gắn cố định trên thân máy, trục Z trƣợt trên các thanh trƣợt đƣợc gắn vào trục Y Phần cố định bao gồm than máy và cơ cấu dẫn động cho trục X
Chi tiết được đặt trên bàn máy, cho phép bàn máy di chuyển độc lập theo phương X nhờ vào các cơ cấu dẫn đường, thường là động cơ kết nối với trục vitme qua khớp nối trục.
Trong thiết kế máy, việc tính toán tỉ số giữa khối lượng phần di chuyển và khối lượng phần cố định là rất quan trọng Tỉ số này cần phải đủ thấp để đảm bảo rằng máy hoạt động ổn định, tránh rung lắc và không ảnh hưởng đến các cơ cấu cũng như độ chính xác trong quá trình hoạt động.
Trong phương án bàn máy cố định, khối lượng phần di chuyển lớn dẫn đến tỉ số tăng cao, gây ra hiện tượng rung lắc trong quá trình làm việc Do đó, cần thiết phải áp dụng các biện pháp khắc phục để giảm thiểu rung lắc này.
GVHD: Th.S Lê Tấn Cường cho biết, để giảm tỷ số xuống mức chấp nhận được và đảm bảo máy hoạt động bình thường, các mẫu máy hiện nay thường được thiết kế với bệ đỡ lớn Tuy nhiên, điều này có thể gây khó khăn trong một số ứng dụng cần tính linh hoạt hoặc khả năng vận chuyển cao.
Trong 2 phương án thì phương án bàn máy di chuyển có kết cấu máy nhỏ gọn, đảm bảo đƣợc tính công nghệ cũng nhƣ đƣa mô hình máy đến gần với máy CNC trong công nghiệp hơn
Trọng tâm thấp trong các máy gắn công cụ giúp tăng cường độ cứng vững và ổn định của hệ thống Trong hai phương án thiết kế, phương án bàn máy di chuyển được ưu tiên vì nó giữ trọng tâm máy ở vị trí thấp, nhờ vào trục X có vị trí thấp và độ cao không thay đổi trong suốt quá trình hoạt động.
Nhóm em đã quyết định chọn phương án bàn máy di chuyển trên trục X, độc lập với trục Y, vì đây là giải pháp tối ưu nhất cho dự án.
Lựa chọn cơ cấu cho các trục chính
Vitme được kết nối trực tiếp với động cơ hoặc thông qua bộ giảm tốc, giúp chuyển động quay của động cơ biến thành chuyển động tịnh tiến Khi động cơ quay, vitme cũng quay, dẫn đến việc đai ốc di chuyển dọc theo trục vitme Đai ốc này được gắn vào các bộ phận cần di chuyển trên các trục X, Y, Z, từ đó tạo ra chuyển động chính xác cho các bộ phận.
Hình 3.3 Cấu tạo bộ truyền vitme - đai ốc thường
Tốc độ di chuyển của hệ thống phụ thuộc vào tốc độ động cơ và bước ren của trục vitme, thường chỉ khoảng 1 đến 2 mm Một vòng quay của trục động cơ sẽ khiến đai ốc di chuyển một đoạn tương ứng với bước ren, dẫn đến tốc độ di chuyển của bộ phận trượt chậm nhưng đảm bảo độ chính xác cao Ưu điểm lớn của phương pháp này là khả năng chính xác trong chuyển động.
GVHD: Th.S Lê Tấn Cường 18 tạo ra lực đẩy lớn Phương án này thường dùng trong CNC công nghiệp để gia công các vật liệu cứng
Hình 3.4 Bộ truyền vitme – đai ốc thường
Tuy nhiên vitme đai ốc thường cũng tồn tại một số nhược điểm sau:
Nhanh chóng bị mài mòn và hiệu suất hoạt động chỉ đạt từ 20% đến 40% do sự tiếp xúc giữa hai bề mặt, mà chủ yếu là ma sát trượt trong quá trình làm việc.
Khe hở giữa vitme và đai ốc luôn tồn tại và có xu hướng gia tăng trong quá trình hoạt động do ma sát, dẫn đến việc giảm độ chính xác của máy.
Trong máy công cụ điều khiển số công nghiệp, có hai loại vitme đai ốc phổ biến: vitme đai ốc thường với mặt tiếp xúc là các rãnh và vitme đai ốc bi Vitme đai ốc bi sử dụng ma sát lăn thông qua các viên bi, giúp giảm lực quay cần thiết để làm cho đai ốc chuyển động, mang lại hiệu quả cao hơn so với vitme đai ốc thường.
Tùy theo dạng chuyển động của vít và đai ốc có thể chia ra các loại:
+ Vít vừa quay vừa tịnh tiến, đai ốc cố định với giá
+ Đai ốc quay, vít tịnh tiến
+ Vít quay, đai ốc tịnh tiến
+ Đai ốc vừa quay vừa tịnh tiến, vít cố định
GVHD: Th.S Lê Tấn Cường 19
Hình 3.5 Bộ truyền vitme – đai ốc bi
Bộ truyền vitme đai ốc bi có cấu tạo đa dạng nhưng chủ yếu bao gồm các thành phần quan trọng như vitme, đai ốc, viên bi và rãnh hồi bi.
Hình 3.6 Bộ truyền vitme – đai ốc bi có rãnh hồi bi dạng ống
Trong bộ truyền vitme đai ốc bi, dạng Profin răng vitme và đai ốc là vấn đề quan tâm chính Profin răng vitme hình chữ nhật và hình thang dễ chế tạo nhưng có khả năng chịu tải kém Để cải thiện khả năng chịu tải, người ta thường sử dụng Profin dạng tròn để tăng bề mặt làm việc của bộ truyền.
Rãnh hồi bi là một yếu tố quan trọng trong kết cấu bộ truyền, có thể được thiết kế dưới dạng ống, theo lỗ khoan của đai ốc, hoặc là dạng rãnh giữa hai vòng ren liên tiếp.
GVHD: Th.S Lê Tấn Cường 20
Hình 3.7 Các dạng rãnh hồi bi của vitme – bi
Rãnh dạng ống có kích thước bộ truyền lớn, độ bền mòn ở đầu ống thấp, kẹp chặt ống có độ tin cậy không cao
Rãnh hồi bi theo lỗ khoan của đai ốc có kết cấu gọn, tính công nghệ cao, khả năng tách nhóm hồi bi khó
Rãnh hồi bi giữa hai vòng kế tiếp có kích thước gọn, không bị mòn nhanh, độ tin cậy cao và chiều dài rãnh hồi bi lớn Ưu điểm:
Tuổi thọ cao và hiệu suất vượt trội của thiết bị được đảm bảo nhờ ma sát lăn giữa các bề mặt, giúp giảm thiểu tổn thất do ma sát.
+ Kích thước nhỏ, chịu được lực lớn, thực hiện được dịch chuyển chậm
+ Không có khe hở trong mối ghép
+ Thực hiện đƣợc các dịch chuyển có độ chính xác cao
Do ma sát nhỏ và góc nghiêng lớn, vít me bi thường không tự hãm Tuy nhiên, vấn đề này có thể được khắc phục bằng cách sử dụng bộ truyền và cơ cấu thắng kết hợp với động cơ bước có khả năng tự hãm.
Sử dụng vòng đai cao su khép kín với răng cưa bên trong, hai đầu đai được gắn vào hai bánh đai có kích thước răng cưa tương ứng Một bánh đai gắn chặt vào động cơ, trong khi bánh đai còn lại được lắp vào trục quay ở phía bên kia khu vực chuyển động, cho phép bánh đai quay tự do Khi bánh đai quay, toàn bộ vòng đai di chuyển và kéo theo bánh răng, làm cho vít me di chuyển theo.
GVHD: Th.S Lê Tấn Cường 21
Tốc độ di chuyển của hệ thống phụ thuộc vào tốc độ động cơ và đường kính bánh đai Mỗi vòng quay của trục động cơ sẽ khiến bộ phận trượt di chuyển một khoảng cách tương đương với chu vi của bánh đai Mặc dù phương án này có tốc độ di chuyển chậm, nhưng lại đảm bảo độ chính xác cao và lực đẩy lớn.
+ Giá thành chế tạo rẻ
+ Kết cấu đơn giản, dễ chăm sóc và bảo quản
+ Giữ an toàn cho các chi tiết máy khi quá tải
+ Làm việc êm, không ồn
+ Có khả năng truyền cơ năng giữa các trục xa nhau
+ Làm việc với tốc độ cao đai nhanh hỏng
+ Lực tác dụng lên trục và ổ lớn
+ Truyền động không tức thời, tỷ số truyền không ổn định
Dựa trên những ưu điểm và cách khắc phục nhược điểm đã nêu, nhóm chúng tôi quyết định chọn vitme đai ốc bi làm bộ phận dẫn động cho các trục chính Thông số cụ thể của vitme cho các trục chính được trình bày như sau:
Trục Chiều dài (mm) Đường kính (mm) Bước ren (mm)
Bảng 3.1 Thông số vitme các trục X, Y, Z
GVHD: Th.S Lê Tấn Cường 22
Lựa chọn động cơ cho các trục chính
3.3.1 Động cơ bước (Stepping Motor)
Hình 3.9 Động cơ bước Ưu điểm:
+ Có thể điều khiển chính xác góc quay, góc quay động cơ tỉ lệ với xung vào
+ Động cơ có moment toàn phần khi dừng lại (nếu các cuộn dây đƣợc cấp năng lƣợng)
Động cơ bước có khả năng định vị chính xác và lặp lại chuyển động với độ chính xác từ 3% đến 5% Đặc biệt, sai số này không tích lũy qua các bước, đảm bảo hiệu suất ổn định trong quá trình hoạt động.
+ Đáp ứng khởi động/ dừng/ đảo chiều tuyệt vời
+ Rất tin cậy vì không có chổi than tiếp xúc trong động cơ
+ Có khả năng đạt đƣợc sự quay đồng bộ ở tốc độ thấp với tải đƣợc ghép trực tiếp vào trục động cơ
Dòng điện từ driver đến cuộn dây động cơ không thể thay đổi trong quá trình hoạt động, vì vậy khi bị quá tải, động cơ sẽ trượt bước, dẫn đến sai lệch trong điều khiển Bên cạnh đó, động cơ bước tạo ra nhiều nhiễu và rung động hơn so với động cơ servo.
+ Động cơ bước không thích hợp cho các ứng dụng cần tốc độ cao
+ Động cơ làm việc không đều, đặc biệt là ở tốc độ thấp (điều khiển đầy bước)
GVHD: Th.S Lê Tấn Cường 23
Hình 3.10 Động cơ DC Servo Ưu điểm:
Khi tải đặt vào động cơ tăng, bộ điều khiển sẽ tăng dòng điện đến cuộn dây động cơ để duy trì sự quay liên tục, từ đó ngăn chặn hiện tượng trượt bước giống như trong động cơ bước.
+ Có thể hoạt động ở tốc độ cao
+ Khi dừng lại, động cơ servo thường dao động tại vị trí dừng gây rung lắc
+ Khó điều khiển hơn động cơ bước
GVHD: Th.S Lê Tấn Cường 24 Ưu điểm:
+ Cấp nguồn trực tiếp từ điện lưới xoay chiều
+ Đa dạng và phong phú về chủng loại
+ Phải có mạch cách ly giữa phần điều khiển và phần chấp hành để đảm bảo an toàn, moment khởi động nhỏ
+ Mạch điều khiển phức tạp, dùng mạch điều khiển từ nhà sản xuất
3.3.4 Kết luận Ở đề tài này, dựa vào các yêu cầu kỹ thuật cũng nhƣ phân tích ƣu nhƣợc điểm của các loại động cơ, nhóm em đã chọn động cơ dẫn động cho các trục chính là động cơ Stepping Motor.
Tính toán lựa chọn động cơ
Trong quá trình thiết kế máy, việc lựa chọn và tính toán động cơ là yếu tố thiết yếu, đóng vai trò quan trọng trong việc xác định động lực học của các chi tiết và bộ phận máy.
Việc xác định công suất và moment của động cơ điện cần phải chính xác để đảm bảo hiệu suất hoạt động Nếu công suất hoặc moment quá lớn, máy sẽ cồng kềnh và tốn kém, trong khi nếu chọn công suất hoặc moment nhỏ hơn yêu cầu, máy sẽ bị quá tải và nhanh hỏng.
3.4.1 Xác định công suất động cơ truyền động trục X
Thực nghiệm cho thấy khối lƣợng cụm trƣợt trên trục X khoảng 0.8kg
Khối lƣợng tổng cộng: mức chênh lệch 10% dự trữ cho ổ bi, bulong, đai ốc,… mX = 0.8x110% = 0.88kg
Ta tính moment xoắn cần thiết dựa vào phần mềm của trang web: www.orientalmotor.com
GVHD: Th.S Lê Tấn Cường 25 Nhập các thông số cần thiết vào chỗ trống:
Hình 3.12 Nhập thông số cần thiết cho trục X
GVHD: Th.S Lê Tấn Cường 26
Hình 3.13 Kết quả sau khi tính moment xoắn cần thiết
Load and linear guide: tải và dẫn hướng
+ Total weight of loads and table: tổng khối lƣợng vật nặng và bàn máy: 0.8kg
+ Friction coefficient of the guide: hệ số ma sát của thiết bị dẫn hướng: 0.05
GVHD: Th.S Lê Tấn Cường 27
Ball/Lead screw specifications: thông số kỹ thuật vitme:
+ Diameter (mm): Đường kính: 12mm
+ Total length (mm): Tổng chiều dài: 310mm
+ Lead (pitch) (mm/rev): Bước vitme 6mm
+ Breakaway torque of the screw (N/m): Moment xoắn của vitme bi: 200
External force: Ngoại lực: FA: 5N
In systems utilizing direct coupling structures, the specifications for transmission belts and pulleys or gears can be omitted, as the motor directly transmits power through the lead screw.
Mechanism Placement: Cơ chế vị trí
+ Mechanism angle: góc làm việc của cơ cấu: 0p
Operating conditions: Điều kiện hoạt động
+ Fixed speed operation: Hoạt động ở tốc độ cố định
+ Operating speed: Tốc độ hoạt động: 50mm/s
Stopping accuracy: Dừng chính xác: 0.1mm
Safety factor: Hệ số an toàn: 1.75
Ta tính đƣợc moment xoắn cần thiết theo phần mềm là:
Tiến hành chọn công suất động cơ với moment tối thiểu: M = 390(N.m)
3.4.2 Xác định công suất động cơ truyền động trục Y
Thực nghiệm cho thấy khối lƣợng cụm trƣợt trên trục Y khoảng 1.5kg
Khối lƣợng tổng cộng: mức chênh lệch 10% dự trữ cho ổ bi, bulong, đai ốc,… mY = 1.5x110% = 1.65kg
Ta tính moment xoắn cần thiết dựa vào phần mềm của trang web: www.orientalmotor.com
GVHD: Th.S Lê Tấn Cường 28 Nhập các thông số cần thiết vào chỗ trống:
Hình 3.14 Nhập thông số cần thiết cho trục Y
GVHD: Th.S Lê Tấn Cường 29
Hình 3.15 Kết quả sau khi tính moment xoắn cần thiết
Load and linear guide: tải và dẫn hướng
+ Total weight of loads and table: tổng khối lƣợng vật nặng và bàn máy: 1.65kg
+ Friction coefficient of the guide: hệ số ma sát của thiết bị dẫn hướng: 0.05
GVHD: Th.S Lê Tấn Cường 30
Ball/Lead screw specifications: thông số kỹ thuật vitme:
+ Diameter (mm): Đường kính: 12mm
+ Total length (mm): Tổng chiều dài: 310mm
+ Lead (pitch) (mm/rev): Bước vitme 12mm
+ Breakaway torque of the screw (N/m): Moment xoắn của vitme bi: 200
External force: Ngoại lực: FA: 5N
When using a direct coupling structure, it is important to note that the transmission belt and pulleys or gears can be omitted, as the motor transmits power directly through the screw shaft.
Mechanism Placement: Cơ chế vị trí
+ Mechanism angle: góc làm việc của cơ cấu: 0p
Operating conditions: Điều kiện hoạt động
+ Fixed speed operation: Hoạt động ở tốc độ cố định
+ Operating speed: Tốc độ hoạt động: 50mm/s
Stopping accuracy: Dừng chính xác: 0.1mm
Safety factor: Hệ số an toàn: 1.75
Ta tính đƣợc moment xoắn cần thiết theo phần mềm là:
Tiến hành chọn công suất động cơ với moment tối thiểu: M = 390(N.m)
3.4.3 Xác định công suất động cơ truyền động trục Z
Thực nghiệm cho thấy khối lƣợng cụm trƣợt trên trục Z khoảng 0.6kg
Khối lƣợng tổng cộng: mức chênh lệch 10% dự trữ cho ổ bi, bulong, đai ốc,… mZ = 0.6x110% = 0.66kg
Ta tính moment xoắn cần thiết dựa vào phần mềm của trang web: www.orientalmotor.com
GVHD: Th.S Lê Tấn Cường 31 Nhập các thông số cần thiết vào chỗ trống:
Hình 3.16 Nhập thông số cần thiết cho trục Z
GVHD: Th.S Lê Tấn Cường 32
Hình 3.17 Kết quả sau khi tính moment xoắn cần thiết
Load and linear guide: tải và dẫn hướng
+ Total weight of loads and table: tổng khối lƣợng vật nặng và bàn máy: 0.66kg
+ Friction coefficient of the guide: hệ số ma sát của thiết bị dẫn hướng: 0.05
GVHD: Th.S Lê Tấn Cường 33
Ball/Lead screw specifications: thông số kỹ thuật vitme:
+ Diameter (mm): Đường kính: 12mm
+ Total length (mm): Tổng chiều dài: 65mm
+ Lead (pitch) (mm/rev): Bước vitme 5mm
+ Breakaway torque of the screw (N/m): Moment xoắn của vitme bi: 150
External force: Ngoại lực: FA: 5N
Mechanism Placement: Cơ chế vị trí
+ Mechanism angle: góc làm việc của cơ cấu: 0p
Operating conditions: Điều kiện hoạt động
+ Fixed speed operation: Hoạt động ở tốc độ cố định
+ Operating speed: Tốc độ hoạt động: 30mm/s
Stopping accuracy: Dừng chính xác: 0.1mm
Safety factor: Hệ số an toàn: 1.75
Ta tính đƣợc moment xoắn cần thiết theo phần mềm là:
Tiến hành chọn công suất động cơ với moment tối thiểu: M = 291.7(N.m)
Tiến hành chọn động cơ
3.5.1 Lựa chọn động cơ trục X
Trục X chọn động cơ Hybrid Stepper Motor 57BYGH250D với các thông số sau đây:
Nguồn: https://www.buerklin.com/ Hình 3.18 Biểu đồ moment xoắn động cơ theo vận tốc
GVHD: Th.S Lê Tấn Cường 34
Nguồn: https://www.buerklin.com/ Bảng 3.2 Thông số kỹ thuật động cơ
3.5.1 Lựa chọn động cơ trục Y
Trục Y lựa chọn động cơ SST-59D3300
GVHD: Th.S Lê Tấn Cường 35 http://www.shinano.com/ Bảng 3.3 Bảng thông số kỹ thuật của động cơ SST59D3300
3.5.1 Lựa chọn động cơ trục Z
Lựa chọn động cơ PK245-01A
Nguồn: https://www.orientalmotor.co.in/ Bảng 3.4 Thông số động cơ PK245-01A
GVHD: Th.S Lê Tấn Cường 36
Thiết kế trên Inventor và in 3D các part để cố định các trục
Để cố định motor và trục vitme, cần sử dụng các phần phù hợp với kích thước của chúng Phần mềm Inventor sẽ hỗ trợ trong việc thiết kế, và máy in 3D sẽ giúp in ra sản phẩm hoàn chỉnh.
Hình 3.21 Part cố định trục X vào bàn máy
Hình 3.22 Part cố định motor và trục vitme trên trục X
GVHD: Th.S Lê Tấn Cường 37
Hình 3.23 Part cố định trục Y vào thân máy
Hình 3.24 Part cố định motor và trục vitme trên trục Y
Hình 3.25 Part cố định motor và trục vitme trên trục Z
GVHD: Th.S Lê Tấn Cường 38
THIẾT KẾ HỆ THỐNG ĐIỆN ĐIỀU KHIỂN
Sơ đồ khối hệ thống
Hình 4.1 Sơ đồ khối hệ thống.
Giới thiệu Arduino Mega 2560
Sử dụng Board mạch Arduino Mega 2560
Arduino là nền tảng mã nguồn mở phổ biến cho việc xây dựng ứng dụng điện tử, nhờ tính đơn giản, hiệu quả và dễ tiếp cận Khác với các vi điều khiển khác, Arduino không yêu cầu công cụ chuyên biệt để nạp code; người dùng chỉ cần kết nối với máy tính qua cáp USB.
GVHD: Th.S Lê Tấn Cường 39
Việc lập trình cho Arduino rất đơn giản nhờ vào trình biên dịch Arduino IDE, sử dụng phiên bản dễ hiểu của ngôn ngữ C++ Do đó, nhóm chúng tôi đã quyết định chọn Board Arduino để thực hiện lập trình.
Arduino Mega 2560 là một sản phẩm nổi bật trong dòng mạch Mega, với nhiều cải tiến vượt trội so với Arduino Uno Bộ nhớ flash của Mega được tăng gấp 4 lần so với phiên bản UNO R3, cho phép lưu trữ nhiều dữ liệu hơn Ngoài ra, bo mạch này còn được trang bị 3 timer và 6 cổng interrupt, giúp giải quyết hiệu quả các bài toán phức tạp, điều khiển nhiều loại động cơ và xử lý song song nhiều luồng dữ liệu số và tương tự.
Arduino Mega 2560 là một board mạch vi điều khiển được phát triển dựa trên vi xử lý Atmega 2560, sở hữu 54 chân I/O, trong đó có 15 chân có khả năng hoạt động như chân output với chức năng PWM.
The Arduino 2560 board features 16 analog input pins, 4 UART ports, a 16MHz crystal oscillator, a USB port, a power jack, a header, and a reset button It is compatible with most Arduino UNO shields, making it a versatile choice for various projects.
Arduino Mega2560 khác biệt so với các vi xử lý trước đây vì không sử dụng chip FTDI để chuyển tín hiệu từ USB Thay vào đó, nó sử dụng ATmega16U2 để thực hiện chức năng này Mặc dù vậy, Arduino Mega2560 vẫn giữ nhiều đặc điểm tương tự như Arduino Uno R3, với sự khác biệt chủ yếu là số lượng chân và các tính năng mạnh mẽ hơn.
Nó chứa tất cả mọi thứ cần thiết để hỗ trợ các vi điều khiển
GVHD: Th.S Lê Tấn Cường 40
Vi điều khiển ATmega2560 Điện áp hoạt động 5V Điện áp đầu vào (đƣợc đề nghị) 7-12V Điện áp đầu vào (giới hạn) 6-20V
Số lƣợng chân I / O 54 (trong đó có 15 chân PWM)
Số lƣợng chân Input Analog 16
Dòng điện DC mỗi I / O 20 mA
Dòng điện DC với chân 3.3V 50 mA
Tốc độ đồng hồ 16 MHz
Bảng 4.1 Thông số kỹ thuật của Arduino Mega 2560
Arduino Mega có sơ đồ linh kiện nhƣ các hình sau đây:
Hình 4.3 Sơ đồ linh kiện của Arduino Mega 2560
GVHD: Th.S Lê Tấn Cường 41
Driver điều khiển động cơ bước
Chuyên dùng cho việc điều khiển stepper motor 4 dây 2-phase và 4-phase
Sản phẩm này phù hợp với nhiều thiết bị công cụ tự động hóa nhỏ và vừa, bao gồm máy khắc CNC, máy đánh dấu, máy cắt, gia công laser, máy công cụ CNC và thiết bị lắp ráp tự động Người dùng mong muốn giải pháp với chi phí thấp và tiếng ồn hoạt động tối thiểu.
Bảng 4.2 Thông số kỹ thuật Driver M542
GVHD: Th.S Lê Tấn Cường 42
Chức năng các chân trong Driver:
PUL- Đầu vào tín hiệu xung của driver:
+ Ở chế độ xung đơn: chân pul- nối vào chân điều hướng ở mức thấp, chân pul+ nối vào chân xung cấp xung cho stepper motor
+ Ở chế độ xung kép (xung/xung): cả hai chân đề đƣợc cấp xung để cho stepper motor hoạt động dành cho các loại stepper có cần 2 xung
Chân tín hiệu vào của driver quyết định chiều quay của motor bước Trong chế độ xung đơn, chân Dir- được đặt ở mức thấp, trong khi chân Dir+ xác định chiều quay của motor bước.
Chân tín hiệu vào của driver quyết định việc cho phép stepper hoạt động hay không Trong chế độ xung đơn, chân Ena- được đặt ở mức thấp, trong khi chân Ena+ đóng vai trò là tín hiệu cho phép động cơ hoạt động.
Bảng 4.3 Chức năng các chân của Driver M542
Bảng 4.4 Bảng kết nối phần cứng của Driver M542
GVHD: Th.S Lê Tấn Cường 43
Lựa chọn độ phân giải và điều khiển dòng ra
Bộ điều khiển được thiết kế với công tắc DIP 8-bit cho phép cài đặt độ phân giải và dòng ra Nó hỗ trợ hai chế độ hoạt động là full step và half step, có thể dễ dàng điều chỉnh thông qua switch 4.
Hình 4.5 Các Switch cài đặt trên Driver M542
Có độ phân dãi từ 400 xung/vòng tới 25000 xung/vòng, có thể điều chỉnh bằng các switch từ 5 tới 8
Microstep Steps/rev SW5 SW6 SW7 SW8
GVHD: Th.S Lê Tấn Cường 44
Bảng 4.5 Bảng cài đặt độ phân giải của Driver M542
Dòng cấp có thể điều chỉnh từ 1A đến 4.2A, có thể điều chỉnh bằng switch từ 1 tới 3
Peak Current RMS Current SW1 SW2 SW3
Bảng 4.6 Bảng cài đặt dòng ra của Driver M542
Do độ tự cảm của động cơ, dòng điện trong cuộn dây có thể thấp hơn dòng điện cài đặt, đặc biệt là trong các điều kiện vận hành với tốc độ cao.
GVHD: Th.S Lê Tấn Cường 45
4.3.2 Driver M560 Đối với driver M560 thì chắc năng của các chân cũng tương tự, chỉ có Switch 4 là khác nhau, là nó quyết định chế độ chạy xung đơn hay xung kép của driver
+ Điều khiển 1 motor bước 2 phase
+ Tín hiệu điều khiển: Step , Dir, Enable cách li quang, có thể tùy chọn đều khiển mức âm hay dương
+ Chọn chế độ hoạt động bằng các Switch gạt, hướng dẫn in sẵn trên vỏ driver
+ Điều khiển full step, haft-step, 1/4, 1/16
+ Kích thước: 200x250x200mm Ứng Dụng:
+ Dùng cho học tập nghiên cứu
+ Thiết kế ronot mini, máy CNC, máy in 3D, máy cắt, máy khắc
GVHD: Th.S Lê Tấn Cường 46
Cài đặt độ phân giải và dòng ra
Subdivision SW5 SW6 SW7 SW8
Bảng 4.7 Bảng cài đặt độ phân giải của Driver M560
Output Max current SW1 SW2 SW3
Bảng 4.8 Bảng cài đặt dòng ra của Driver M560
GVHD: Th.S Lê Tấn Cường 47
Bộ hiển thị LCD graphic 128×64/SD card là giải pháp nâng cấp hoàn hảo cho các máy in 3D và CNC mini Reprap Với khả năng hiển thị thông tin phong phú và chuyên nghiệp, màn hình này thích hợp cho các ứng dụng yêu cầu hiển thị hình ảnh và chữ trên diện tích lớn Sản phẩm không chỉ bền bỉ mà còn rất được ưa chuộng trong cộng đồng người dùng.
+ Sử dụng với mạch RAMPS 1.4
+ Điều khiển bằng encoder có nút nhấn
+ Hỗ trợ in 3D, đọc Gcode từ thẻ nhớ, các cáp dữ liệu và đầu nối với RAMPS 1.4
+ Điện áp hoạt động là 5 V
Khoảng cách giữa hai chân kết nối là 0.1 inch, rất tiện lợi cho việc kết nối với Breadboard Tên các chân được ghi rõ ở mặt sau của màn hình LCD, hỗ trợ dễ dàng trong việc kết nối và đi dây điện Màn hình còn có đèn LED nền, cho phép điều chỉnh độ sáng bằng biến trở hoặc PWM, giúp tiết kiệm điện năng hiệu quả.
+ Có thể đƣợc điều khiển với 6 dây tín hiệu
GVHD: Th.S Lê Tấn Cường 48
GLCD 128x64 sử dụng chip KS0108 thường có 20 chân, trong đó chỉ 18 chân thực sự điều khiển màn hình Hai chân cuối (19 và 20) là chân Anode và Cathode của LED nền Trong 18 chân điều khiển, có 4 chân cung cấp nguồn và 14 chân dùng cho điều khiển và dữ liệu Khác với LCD văn bản HD44780U, GLCD KS0108 không hỗ trợ chế độ giao tiếp 4 bit, vì vậy cần sử dụng 14 chân để điều khiển GLCD 128x64 Sơ đồ chân phổ biến của GLCD 128x64 được mô tả trong bảng dưới đây.
Nguồn: http://www.hocavr.com/index.php/app/glcd Bảng 4.9 Chức năng các chân trong LCD Graphic 128x64
GVHD: Th.S Lê Tấn Cường 49
Nguồn: http://www.hocavr.com/index.php/app/glcd
Hình 4.8 Kết nối LCD Graphic 128x64
Chân VSS được kết nối trực tiếp với GND, trong khi chân VDD được nối với nguồn +5V Để điều chỉnh độ tương phản của GLCD, một biến trở khoảng 20K được sử dụng để chia điện áp giữa VDD và VEE cho chân Vo Bằng cách thay đổi giá trị của biến trở, người dùng có thể dễ dàng điều chỉnh độ tương phản hiển thị.
RS, R/W, EN và các đường dữ liệu được nối trực tiếp với vi điều khiển Riêng chân Reset (RST) có thể nối trực tiếp với nguồn 5V
Chân EN (Enable) cho phép khởi động một quá trình, thường ở mức thấp Khi thực hiện các thao tác như đọc hoặc ghi dữ liệu cho GLCD, các chân điều khiển khác sẽ được thiết lập sẵn sàng, sau đó chân EN được nâng lên mức cao Khi chân EN ở mức cao, GLCD sẽ bắt đầu thực hiện yêu cầu, và cần một khoảng thời gian ngắn để đọc hoặc gửi dữ liệu Cuối cùng, chân EN được kéo xuống mức thấp để kết thúc quá trình và chuẩn bị cho các thao tác tiếp theo.
Chân RS (Register Select) là thành phần quyết định giữa dữ liệu (Data) và lệnh (Instruction) Khi RS=1, tín hiệu trên các đường DATA (D0:7) biểu thị dữ liệu được ghi hoặc đọc từ RAM của GLCD Ngược lại, khi RS=0, tín hiệu trên đường DATA sẽ là một mã lệnh.
RW (Read/Write Select): chọn lựa giữa việc đọc và ghi Khi RW=1, chiều truy cập từ
GLCD ra ngoài (GLCD->AVR) sử dụng RW=0 để cho phép ghi dữ liệu vào GLCD Giao tiếp với GLCD chủ yếu diễn ra qua quá trình ghi từ AVR sang GLCD, và chỉ có một trường hợp duy nhất là đọc dữ liệu từ GLCD.
GVHD: Th.S Lê Tấn Cường 50 đề cập đến việc đọc bit BUSY và dữ liệu từ RAM Bit BUSY cho biết trạng thái bận của GLCD, và việc đọc này sẽ được sử dụng để viết hàm wait_GLCD Khả năng đọc dữ liệu từ RAM của GLCD là một điểm mới mà Text LCD không có, cho phép thực hiện nhiều phép logic hình (hay mặt nạ, mask) khi đọc ngược từ GLCD vào AVR, làm cho việc hiển thị trên GLCD trở nên thú vị hơn.
Trong hệ thống điều khiển GLCD 128x64, mỗi chip KS0108 chỉ có khả năng điều khiển một màn hình 64x64 Khi sử dụng hai chip KS0108, mỗi chip sẽ đảm nhiệm một nửa của màn hình Hai chân CS2 và CS1 được sử dụng để chọn chip hoạt động, với quy tắc rằng nếu CS2=0 và CS1=1, nửa trái sẽ được kích hoạt, trong khi CS2=1 và CS1=0 sẽ chọn nửa phải.
Cảm biến Home
Sử dụng Speed Sensor Module để giới hạn vị trí
Sử dụng cảm biến quang thay cho công tắc hành trình mang lại độ chính xác cao hơn, trong khi công tắc hành trình có độ đàn hồi của lò xo giảm dần theo thời gian Điều này dẫn đến việc cơ cấu cơ khí có độ chính xác kém, gây ra sai lệch vị trí tọa độ trên board.
Các ứng dụng: áp dụng rộng rãi để phát hiện tốc độ động cơ, đếm xung, giới hạn vị trí + Điện áp làm việc: 3.3 – 5V
GVHD: Th.S Lê Tấn Cường 51
Bộ chuyển đổi nguồn
Sử dụng Indruino Power DC-DC 2405 để cấp nguồn cho Arduino
+ Ngõ vào : nguồn một chiều từ 18VDC đến 36VDC
+ Ngõ ra : 5VDC, 1600mA, cách ly
+ Có cầu chì bảo vệ và led báo nguồn
Hình 4.10 Indruino Power DC-DC 2405.
Relay 5V
Sử dụng Relay RY5W-K với điện áp cuộn dây 5V để kích nút nhấn E_Stop và kích bộ châm keo hoạt động
GVHD: Th.S Lê Tấn Cường 52
Hình 4.12 Sơ đồ chân Relay RY5W-K.
Bộ nguồn 24V
Sử dụng bộ nguồn 24V để cấp nguồn cho mạch điều khiển
Bộ châm keo MS7 Precision Fluid Dispenser
Cấp khí cho đầu phun keo, có thể điều chỉnh đƣợc áp suất đầu ra (0-10Bar) Hoạt động ở hai chế độ: chế độ Man và chế độ Timer
+ Ở chế độ Main: khi đƣợc kích, quá trình cấp khí bắt đầu và sẽ ngƣng khi ngừng kích
Trong chế độ Timer, khi được kích hoạt, quá trình cấp khí sẽ bắt đầu Sau khi ngừng kích, bộ cấp khí sẽ tự động ngừng cấp sau một khoảng thời gian đã được cài đặt, dao động từ 0 đến 999 giây.
GVHD: Th.S Lê Tấn Cường 53
Hình 4.14 Bộ châm keo MS7 Precision Fluid Dispenser. Ống keo dùng để chứa keo và ống khí nối từ bộ cấp khí đến ống keo
Ống keo và ống khí trong bộ châm keo được thiết kế để gắn trực tiếp với đầu phun keo Các đầu châm keo khác nhau sẽ tạo ra các chấm keo có kích thước đa dạng, phù hợp với từng loại PCB.
Hình 4.16 Các loại đầu châm keo
GVHD: Th.S Lê Tấn Cường 54
Trong giai đoạn đầu của công nghệ SMT, linh kiện SMT thường được sử dụng kết hợp với linh kiện AI và hàn sóng Linh kiện SMT được dán bằng keo (red glue, bond) tại những vị trí cần thiết, yêu cầu công nghệ SMT phải đảm bảo chính xác vị trí, lượng keo, số chấm keo và khoảng cách giữa các chấm phù hợp với kích thước linh kiện Hiện nay, công nghệ dán keo vẫn tồn tại song song với công nghệ in kem hàn (solder paste printing), thậm chí cả hai công nghệ có thể được sử dụng chung trên cùng một PCB.
Việc sử dụng keo trong sản xuất PCB là cần thiết, đặc biệt đối với các loại PCB một mặt phải nhúng qua bể chì sống hoặc PCB có linh kiện dán ở cả hai mặt Keo giúp giữ cho các linh kiện dán không bị rớt và đảm bảo rằng các board mạch có thể chịu được sự rung động mạnh trong quá trình hoạt động.
Máy châm keo thường sử dụng keo IR-130
+ Có khả năng chịu nhiệt trong quá trình hàn
+ Có độ bám dính mạnh và tính ổn định cao
+ Cách điện, nhiệt độ kết dính thấp (100-120 0 C)
+ Thời gian bảo quản là 3 tháng ở nhiệt 25 0 C
GVHD: Th.S Lê Tấn Cường 55
CHƯƠNG TRÌNH ĐIỀU KHIỂN
Ngôn ngữ lập trình
Ngôn ngữ lập trình là phương tiện giúp cho con người có thể điều khiển được các máy móc Giúp cho con người có thể giao tiếp với chúng
Ngôn ngữ lập trình C là một trong những ngôn ngữ cơ bản và phổ biến nhất, cung cấp các chỉ thị nâng cao để đơn giản hóa quá trình lập trình và tối ưu hóa kích thước chương trình Các chỉ thị tiền xử lý trong C cũng hỗ trợ việc chỉnh sửa chương trình một cách dễ dàng.
Các chương trình và thuật toán dùng trong chương trình
5.2.1 Các chỉ thị tiền xử lý dùng trong ngôn ngữ C
Các chỉ thị tiền xử lý tương tự như các lệnh if thông thường, nhưng điểm khác biệt nằm ở các định nghĩa Điều này cho phép chúng ta dễ dàng điều chỉnh các điều kiện xét Dưới đây là danh sách các chỉ thị tiền xử lý.
Cú pháp: #define Tên Dãy_kí_tự Ý nghĩa: Thay thế Tên bằng Dãy_kí_tự đứng sau nó
Phạm vi của tên đƣợc định nghĩa bởi #define là từ lúc nó đƣợc định nghĩa đến cuối tệp gốc
Sau khi được định nghĩa bởi #define, A sẽ luôn được thay thế bằng 100 Điều này có nghĩa là khi có sự thay đổi trong chương trình, chẳng hạn như LED sáng tương ứng với mức 1, ta chỉ cần thay đổi LED_ON thành 1 mà không cần phải chỉnh sửa từng phần trong chương trình.
- Chỉ thị bao hàm tệp #include
Cú pháp #include”[đường dẫn]tên_tệp” hoặc #include là chỉ thị cho bộ tiền xử lý, cho phép nhận và chèn nội dung của tệp khác vào tệp chương trình nguồn hiện tại.
Cách thức làm việc của 2 cách khai báo trên chỉ khác nhau khi không có thông tin về đường dẫn
GVHD: Th.S Lê Tấn Cường 56
Có hai cách để bao gồm tệp thư viện trong chương trình C: Cách 1 sử dụng #include, nơi chương trình tìm tệp trong thư viện của trình biên dịch Cách 2 sử dụng #include”stdio.h”, trong đó chương trình sẽ tìm tệp trong thư mục chủ trước, nếu không tìm thấy sẽ tiếp tục tìm trong thư mục stdio.h.
- Chỉ thị biên dịch có điều kiện #ifdef và #ifndef
Cú pháp: #ifdef Ý nghĩa: #ifdef có ý nghĩa là: nếu đã định nghĩa, còn #ifndef có nghĩa là nếu chƣa đƣợc định nghĩa
#ifdef tên_a Đoạn chương trình
#ifdef tên_a Đoạn chương trình 1
Câu lệnh #ifdef cho phép biên dịch đoạn mã giữa #ifdef và #endif nếu tên_a đã được định nghĩa bởi #define; ngược lại, nếu tên_a chưa được định nghĩa, đoạn mã sẽ không được thực hiện Trong trường hợp thứ hai, nếu tên_a chưa được định nghĩa, đoạn mã 2 sẽ được thực hiện, còn nếu đã được định nghĩa, đoạn mã 1 sẽ được thực hiện.
#ifndef tên_a Đoạn chương trình
#ifndef tên_a Đoạn chương trình 1
GVHD: Th.S Lê Tấn Cường 57 Ý nghĩa: Trong cách 1, nếu tên_a chưa được định nghĩa bởi #define, trình biên dịch sẽ thực hiện đoạn chương trình Trong cách 2, nếu tên_a chưa được định nghĩa, chương trình sẽ chạy đoạn 1; nếu đã được định nghĩa, chương trình sẽ chạy đoạn 2.
5.2.2 Các kiểu khai báo biến
Ngoài các kiểu khai báo thông thường cho biến trong C thì trong chương trình điều khiển dùng một số kiểu khai báo biến khác ít gặp sau đây:
Biến volatile được sử dụng để khai báo các biến có giá trị thay đổi không xác định, thường là biến toàn cục được truy xuất từ các tiến trình con xử lý ngắt Trong lập trình Arduino, đặc biệt là khi giao tiếp với các chip Atmega, sự thay đổi không dự đoán trước đến giá trị của các biến chủ yếu xảy ra do các chương trình tương tác với ngắt Để ngăn chặn những thay đổi bất thường này, lập trình viên khai báo từ khóa volatile, giúp biến được lưu trữ trong RAM để xử lý tạm thời, thay vì lưu trong các thanh ghi có thể bị ảnh hưởng bởi ngắt.
Khi một biến được khai báo với kiểu extern, nó sẽ tham chiếu đến một biến cùng tên đã được định nghĩa bên ngoài Biến được tham chiếu cần phải được khai báo ở cấp độ cao nhất (toàn cục) và có thể nằm trong một tệp khác.
+ Enum: là kiểu khai báo dữ liệu liệt kê, giúp quản lý dữ liệu khoa học hơn Kiểu dữ liệu của các phần tử khai báo enum
{ black, blue, green, } color myColor; myColor = blue;
GVHD: Th.S Lê Tấn Cường 58
5.2.3 Các hàm trong trong chương trình điều khiển
Hàm nội tuyến (inline function) được sử dụng để yêu cầu các trình biên dịch thực hiện khai báo nội tuyến, cho phép chèn mã của hàm tại vị trí mà hàm đó được gọi.
+ Enable_x(): là hàm cho phép stepper điều khiển trục x hoạt động Đôi với các trục khác tương tự
+ Disable_x(): là hàm không cho phép stepper điều khiển trục x hoạt động Đôi với các trục khác tương tự
+ Void enable_all_steppers(): là hàm cho phép các stepper của các trục hoạt động
Bằng cách xuất tín hiệu vào chân ENA+ của các driver thì driver sẽ cho stepper hoạt động
+ Void disable _all_steppers(): là hàm không cho phép các stepper của các trục hoạt động
+ Void stop : là hàm dừng lại chương trình đang chạy, nhưng khi nhấn start thì chương trình vẫn được tiếp tục chạy bình thường
+ Các hàm thực hiện các lệnh Gcode
Các hàm trong thư viện hỗ trợ đọc thẻ nhớ cho phép người dùng thực hiện các thao tác như đọc dữ liệu từ thẻ nhớ, dừng quá trình đọc hoặc xóa dữ liệu đang được đọc.
+ Các hàm khai báo trạng thái cho các nút nhấn ở bảng điều khiển
GVHD: Th.S Lê Tấn Cường 59
○ Bảng danh sách các thư viện và chức năng của các thư viện
Marlin Gọi các thư viện và khai báo các chương trình con cho việc chuyền Serial
MarlinSerial Khai báo các chương trình con dùng cho việc chuyền
Serial, định nghĩa các biến dùng cho việc chuyền
Marlin_Main Khai báo trạng thái cho các nút nhấn và chương trình cho các lệnh Gcode
Giúp đọc và viết dữ liệu cho thẻ nhớ
Sd2PinMap Khai báo các chân chuyên dữ liệu kiểu SPI
SdVolume Hỗ trợ FAT16 và FAT32 phân vùng
Fastio Khai báo các chân cho vi điều khiển dogm_lcd_implementation Giúp hỗ trợ cho việc hiển thì trên LCD 128x64
Language Khai báo các ngôn ngữ hiển thị trên LCD, có thể hiển thị đƣợc nhiều loại ngôn ngữ khác nhau
Marcos là các khai báo biến trong chương trình, giúp tiết kiệm bộ nhớ bằng cách thay thế các biến đã dịch bằng các biến khác mà không lưu lại Điều này hiệu quả hơn so với việc sử dụng chương trình con thông thường.
Pin và Pin_Ramps_13 Khai báo các chân nút nhấn, chân input và output cho vi điều khiển
Planner Lệnh di chuyển và tốc độ cho motor
Ultralcd Hiển thị các thƣ mục trên LCD, các menu các lựa chon trên
Speed_lookuptable Chứa các mảng về tốc độ của motor
Thuật toán điều khiển động cơ stepper bao gồm việc di chuyển và kiểm tra trạng thái của các cảm biến để xác định vị trí của trục Đồng thời, chương trình cũng cần khai báo attachInterrupt để xử lý các sự kiện ngoại vi một cách hiệu quả.
Bang 5.1 Danh sách các thư viện và chức năng
Ngoài ra còn 1 số thƣ viện phục vụ cho việc cấu hình máy
GVHD: Th.S Lê Tấn Cường 60
Sơ đồ giải thuật lập trình
Từ yêu cầu hoạt động của máy ta có sơ đồ giải thuật tổng quát cho máy nhƣ sau:
Hình 5.1 Sơ đồ giải thuật cho máy.
Giao diện cho máy châm keo
Màn hình LCD Graphic 128x64 mang lại sự tiện lợi trong việc thao tác máy, loại bỏ nhu cầu hiển thị trên màn hình máy tính lớn không cần thiết Với số lượng thông số máy đơn giản, LCD 128x64 đáp ứng đầy đủ các thông tin cần thiết, gọn nhẹ và dễ sử dụng Hơn nữa, nhờ vào thư viện hỗ trợ có sẵn, việc thao tác và hiển thị thông tin trên LCD Graphic 128x64 trở nên dễ dàng hơn bao giờ hết.
GVHD: Th.S Lê Tấn Cường 61
Xây dựng giao diện cho máy: Các thông tin cần hiển thị của máy là:
+ Các tọa độ mà máy đang chạy
+ Biết đƣợc thời gian máy chạy hết một sản phẩm là bao nhiêu
+ Có thể điều chỉnh đƣợc các trục
+ Thay đổi đƣợc vận tốc của các trục
+ Cho máy về gốc tọa độ
Từ các yếu tố trên ta xây dựng đƣợc giao diện sau:
- Màn hình hiển thị chính
Hình 5.3 Các chức năng chính
GVHD: Th.S Lê Tấn Cường 62
- Các chỉnh sửa ban đầu
Hình 5.4 Các chức năng trong phần Prepare
Hình 5.5 Các chức năng di chuyển trục trong phần Move axis
Hình 5.6 Di chuyển các trục x, y, z và điều chỉnh đầu châm keo
GVHD: Th.S Lê Tấn Cường 63
- Chọn tốc độ cho các trục
Hình 5.7 Lựa chọn tốc độ cho các trục
- Chọn file Gcode để châm keo
GVHD: Th.S Lê Tấn Cường 64
Chuyển bản vẽ mạch điện qua file Gcode
Từ bản vẽ layout mạch điện trên phần mềm Altium
Hình 5.9 Bản vẽ layout của mạch điện trên Altium
Bước 1: Xuất ra file.dxf để mở trên autoCAD
Hình 5.10 Xuất ra file.dxf tren Altium
GVHD: Th.S Lê Tấn Cường 65
Chọn các điểm cần xuất
Hình 5.11 Lựa chọn các điểm cần xuất
Chọn vị trí lưu file
Hình 5.12 Chọn vị trí lưu file
GVHD: Th.S Lê Tấn Cường 66
Bước 2: Mở file vừa xuất
Hình 5.13 Mở file vừa xuất trên AutoCad
Lấy các điểm cần châm keo.
Hình 5.14 Lấy các điểm cần châm keo
GVHD: Th.S Lê Tấn Cường 67
Bước 3: Chuyển qua dạng 3D và lưu ở dạng file.STEP
Bước 4: Dùng phần mềm Mastercam mở file.STEP và chọn chế độ khoan và các điểm châm keo Xuất ra file.gcode
Hình 5.15 Xuất file Gcode trên MasterCam
Hình 5.16 Chỉnh sửa file Gcode
Sau khi hoàn tất chạy qua thẻ nhớ SD để đƣa vào máy
GVHD: Th.S Lê Tấn Cường 68
Các chương trình chính trong máy
Khai báo định nghĩa các biến cần dùng trong chương trình Cấu hình cho chương trình tại thƣ viện conditionals.h
ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER )//nếu mà LCD đã đƣợc định nghĩa cho phép hoạt động
#define DOGLCD// định nghĩa các kí tự trong LCD
#define U8GLIB_ST7920//định nghĩa thƣ viện hiển thị cho LCD
#define REPRAP_DISCOUNT_SMART_CONTROLLER//định nghĩa loại LCD
//định nghĩa cho các nút nhấn và các cảm biến
//định nghĩa cho chiều dài của các trục
#define X_MAX_LENGTH (X_MAX_POS - X_MIN_POS)
#define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
#define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
//định nghĩa vị trí gốc tọa độ cho máy
#if ENABLED(MANUAL_HOME_POSITIONS) // Use manual limit switch locations
#define X_HOME_POS MANUAL_X_HOME_POS
#define Y_HOME_POS MANUAL_Y_HOME_POS
#define Z_HOME_POS MANUAL_Z_HOME_POS
#define X_HOME_POS (X_HOME_DIR < 0 ? X_MIN_POS : X_MAX_POS)
GVHD: Th.S Lê Tấn Cường 69
#define Y_HOME_POS (Y_HOME_DIR < 0 ? Y_MIN_POS : Y_MAX_POS)
#define Z_HOME_POS (Z_HOME_DIR < 0 ? Z_MIN_POS : Z_MAX_POS)
// định nghĩa số đầu châm keo Có thể có 1 hoặc 2 đầu
#if EXTRUDERS > 1// nếu định nghĩa số đầu châm lớn hơn 1
#define ARRAY_BY_EXTRUDERS(v1, v2) { v1, v2 }//thì định nghĩa 1 mang 1 chiều có 2 phần tử v1 và v2
#else//nếu không thì định nghĩa mang 1 chiều 2 phần tử, với phần tử 1 là v1
Cài đặt các thông số cho máy trong thư viện Configuration.h
//định nghĩa hiển thị ban đầu cho LCD
#define SHORT_BUILD_VERSION "DO AN TOT NGHIEP"
#define STRING_SPLASH_LINE1 SHORT_BUILD_VERSION // will be shown during bootup in line 1
#define STRING_SPLASH_LINE2 STRING_DISTRIBUTION_DATE // will be shown during bootup in line 2
Khai báo truyền serial và tốc độ baudrate
In programming, it's essential to declare and initialize variables effectively For instance, four boolean constants are defined: `START_INVERTING`, `STOP_INVERTING`, `E_STOP_INVERTING`, and `E_STOP2_INVERTING`, all set to false Additionally, `X_MIN_ENDSTOP_INVERTING` is also initialized to false, ensuring clear and consistent variable management.
To configure the endstop logic in your 3D printer, you can set Y_MIN_ENDSTOP_INVERTING to false, which maintains the default logic Similarly, for the Z_MIN_ENDSTOP_INVERTING, setting it to false also preserves the standard behavior If you wish to invert the logic for either endstop, simply change the respective value to true.
GVHD: Th.S Lê Tấn Cường 70 defines the configuration for stepper motor operation, including the endstop logic for the X, Y, and Z axes The parameters are set to false, meaning the logic for the endstops is not inverted This includes settings for the maximum endstops on the X, Y, and Z axes, as well as the minimum probe endstop for Z.
#define X_ENABLE_ON 0//định nghĩa chân X_ENABLE_ON với giá trị là mức thấp khi này stepper motor sẽ hoạt động đƣợc.không ở chế độ hãm
#define E_ENABLE_ON 0 Định nghĩa chiều vị trí gốc tọa độ cho máy
#define X_HOME_DIR -1// định nghĩa cho chân X_HOME_DIR =-1 là vị trí x=0 của trục x
#define Z_HOME_DIR -1 Định nghĩa vị trí hay là không gian hoạt động cho máy
#define Z_MAX_POS 54 Định nghĩa tọa độ giá trị vị trí các trục khi ở gốc tọa độ
#if ENABLED(MANUAL_HOME_POSITIONS)
#define MANUAL_X_HOME_POS 0//vị trí x=0
GVHD: Th.S Lê Tấn Cường 71
Khai báo tốc độ về home (gốc tọa độ)
Các đoạn code khai báo trạng thái cho các nút nhấn
// Set home pin void setup_homepin() {
#if HAS_HOME// nếu đã định nghĩa nút home rồi thì thực hiện đoạn code
SET_INPUT(HOME_PIN);//cài đặt chân HOME_PIN là chân INPUT
WRITE(HOME_PIN, HIGH);// cho chân HOME_PIN ở trạng thái mức cao
//set start pin void setup_startpin(){
//set stop pin void setup_stoppin(){
//set E_stop pin void setup_e_stoppin(){
//set E_stop2 pin void setup_e_stop2pin(){
GVHD: Th.S Lê Tấn Cường 72
Khối chương trình về gcode
+ Các chương trình cho khối lệnh M trong Gcode
* M21: trạng thái của SD Card
*/ inline void gcode_M21() { card.initsd();//chương trình cho biết trạng thái ban đầu của SD Card
*/ inline void gcode_M22() { card.release();
*/ inline void gcode_M23() { card.openFile(current_command_args, true);//mở file đƣợc chọn }
*/ inline void gcode_M24() { card.startFileprint();//bắt đầu lấy dữ liệu từ thẻ nhớ lên print_job_start_ms = millis();//với chu kỳ là millis()
GVHD: Th.S Lê Tấn Cường 73
*/ inline void gcode_M25() { card.pauseSDPrint();//dừng tạm thời việc truyền dữ liệu lên }
* M26: Set SD Card file index
*/ inline void gcode_M26() { if (card.cardOK && code_seen('S')) card.setIndex(code_value_short());
*/ inline void gcode_M27() { card.getStatus();
*/ inline void gcode_M28() { card.openFile(current_command_args, false);
* M30 : Delete SD Card file
*/ inline void gcode_M30() { if (card.cardOK) {
GVHD: Th.S Lê Tấn Cường 74 card.closefile(); card.removeFile(current_command_args);
* có tích hợp sẵn trên lcd
*/ inline void gcode_M112() { kill(PSTR(MSG_KILLED)); }
+ Các chương trình cho khối lệnh G trong gcode
*/ inline void gcode_G0_G1() { if (IsRunning()) { gcode_get_destination(); // For X Y Z E F prepare_move();
The `gcode_G4` function implements a dwell command in G-code, allowing the program to pause for a specified duration It checks for parameters 'P' and 'S' to determine the wait time in milliseconds or seconds, respectively, and synchronizes the state of the system The function updates the command timeout and tracks the start time of the wait If there is no status on the LCD, it displays a dwell message, and the program enters a loop, idling until the specified wait time has elapsed.
GVHD: Th.S Lê Tấn Cường 75