Với sự phát triển của xã hội, khoa học kỹ thuật nói chung và vi điều khiển nói riêng ngày càng được ứng dụng ở hầu hết các lĩnh vực. Trong nhiều lĩnh vực được quan tâm, có một lĩnh vực về vi điều khiển được quan tâm rất nhiều hiện nay là vi điều khiển AVR. Một trong số những biến thể phổ biến của AVR là Arduino. Việc tìm hiểu và ứng dụng hết khả năng của nhiều loại Arduino là cả một quá trình dài lý thú và hữu ích, vì sự thuận tiện, tinh gọn, khả năng phát triển cũng như sự đa dạng các dòng sản phẩm phù hợp nhiều mô hình ứng dụng của nó. Một ý tưởng khác được quan tâm đông đảo, nhưng chưa được áp dụng nhiều đó là ứng dụng Arduino trong sản xuất. Ngày nay, nền công nghiệp nước ta ngày càng phát triển gắn liền với các hệ thống tự động thay thế cho sức người. Nhưng phần lớn các tủ điều khiển còn khá lớn và phức tạp. Chính vì vậy, em đã quyết định chọn đề tài: “Thiết kế và thi công hệ thống đếm và phân loại sản phẩm theo chiều cao’’.
TỔNG QUAN
Lý do chọn đề tài
Với sự phát triển của xã hội và khoa học kỹ thuật, vi điều khiển ngày càng được ứng dụng rộng rãi trong nhiều lĩnh vực khác nhau Trong đó, vi điều khiển AVR là một trong những công nghệ được chú trọng hàng đầu hiện nay nhờ vào tính linh hoạt và hiệu quả Arduino là một trong những biến thể phổ biến của vi điều khiển AVR, nhận được sự quan tâm lớn từ cộng đồng lập trình và kỹ thuật viên nhờ vào dễ sử dụng và khả năng tùy biến cao.
Việc tìm hiểu và ứng dụng các loại Arduino đem lại lợi ích lớn nhờ tính tiện dụng, nhỏ gọn, khả năng mở rộng, và đa dạng dòng sản phẩm phù hợp với nhiều mô hình ứng dụng khác nhau Mặc dù Arduino thường được biết đến trong các dự án sáng tạo và DIY, một ý tưởng hấp dẫn nhưng chưa được khai thác nhiều là ứng dụng Arduino trong lĩnh vực sản xuất, mang lại tiềm năng phát triển công nghiệp tự động hoá và tối ưu hoá quy trình sản xuất.
Nền công nghiệp Việt Nam hiện nay đang phát triển mạnh mẽ nhờ vào các hệ thống tự động hóa, giúp thay thế lao động thủ công Tuy nhiên, phần lớn các tủ điều khiển hiện tại vẫn còn lớn và phức tạp, gây khó khăn trong quá trình vận hành và bảo trì.
Chính vì vậy, em đã quyết định chọn đề tài: “Thiết kế và thi công hệ thống đếm và phân loại sản phẩm theo chiều cao’’.
Mục tiêu đề tài
Hệ thống phân loại sản phẩm tự động dựa trên các kích thước khác nhau như chiều cao và chiều thấp, đảm bảo quá trình phân loại nhanh chóng và hiệu quả Với khả năng hoạt động ổn định và độ chính xác cao, hệ thống này phù hợp để ứng dụng trong các quy trình sản xuất hiện đại Công nghệ này giúp tối ưu hóa quy trình kiểm tra chất lượng và tăng hiệu suất sản xuất, góp phần nâng cao năng suất và giảm thiểu sai sót.
Phương pháp nghiên cứu
Nghiên cứu lý thuyết để tổng hợp và phân tích tài liệu có liên quan từ đó xây dựng cơ sở lí luận cho đề tài.
Sử dụng các công thức toán học để tính toán các phần tử của mạch giúp đảm bảo độ chính xác trong thiết kế và phân tích điện tử Phân tích số liệu đo được qua thực nghiệm là bước quan trọng để xác nhận các giả thuyết và tối ưu hóa hiệu suất của mạch Việc xử lý dữ liệu đo lường chính xác giúp rút ra các kết luận chính xác, nâng cao độ tin cậy của nghiên cứu Tối ưu hóa các phương pháp tính toán và phân tích thực nghiệm đóng vai trò then chốt trong việc phát triển các mạch điện hiệu quả và chính xác.
Giới hạn đề tài
Chỉ dùng 2 cảm biến quang nên chỉ phân biệt được 2 loại sản phẩm là thấp và cao.
Chỉ là mô hình chưa thể mang vào thực tế.
Cảm biến có thể bị ảnh hưởng do điều kiện môi trường.
Chưa có giám sát mô hình trên máy tính.
Mạch chưa điều khiển được băng tải.
Độ ổn định chưa được tối ưu.
CƠ SỞ LÝ THUYẾT
Giới thiệu về hệ thống đếm và phân loại sản phẩm
Trong bối cảnh hiện nay, công nghệ điện tử ngày càng mở rộng nhờ những tiến bộ của khoa học kỹ thuật, đặc biệt là vi điều khiển Vi điều khiển được ứng dụng rộng rãi trong các lĩnh vực như chế tạo robot, máy bay không người lái, điều khiển tín hiệu đèn giao thông, và tạo hiệu ứng đèn LED nhấp nháy trên bảng quảng cáo Ngoài ra, nó còn điều khiển các thiết bị cảm ứng ánh sáng, âm thanh, giúp tối ưu hóa hoạt động của các hệ thống tự động trong các công ty và xí nghiệp, đặc biệt trong hệ thống đếm và phân loại sản phẩm.
Băng tải được ứng dụng rộng rãi trong các quy trình sản xuất của nhiều ngành như khai thác khoáng sản, chế biến thực phẩm, đồ uống, dược phẩm, phân loại rác thải và trong các thiết bị nâng, bốc dỡ vật liệu kết hợp phân loại sản phẩm Tuy nhiên, phần lớn các tủ điều khiển hệ thống băng tải để đếm và phân loại sản phẩm còn khá lớn và phức tạp Để giải quyết vấn đề này, việc sử dụng vi điều khiển là giải pháp tối ưu, giúp đơn giản hóa và nâng cao hiệu quả quản lý hệ thống băng tải.
Mô hình phân loại sản phẩm dựa trên nguyên lý sử dụng cảm biến để đo chiều cao của sản phẩm Hệ thống còn sử dụng Servo để tách và gạt các sản phẩm cùng kích thước vào cùng một khu vực chứa, giúp nâng cao hiệu quả phân loại Đồng thời, hệ thống ghi nhận chính xác số lượng của từng loại sản phẩm đã được phân loại, đảm bảo quản lý kho hàng hiệu quả.
Giới thiệu về phần cứng
2.1 Giới thiệu về Arduino Uno
Arduino được khởi động vào năm 2005 như là một dự án dành cho sinh viên tạiInteractino Design Instiute Ivrea (Viện thiết kế tương tác Ivrea) tại Ivrea, Italy.
Arduino là nền tảng phần cứng đã được làm sẵn và chuẩn hóa, giúp người dùng dễ dàng xây dựng các dự án điện tử Với Arduino, bạn chỉ cần chọn các module phù hợp, ráp lại và lập trình để hệ thống hoạt động, tiết kiệm thời gian và công sức Nền tảng này cung cấp sẵn các module điều khiển động cơ, mạch điều khiển và mạch thu phát sóng không dây, hỗ trợ đa dạng ứng dụng từ tự động hóa, robot đến các thiết bị IoT.
Các thiết bị dựa trên nền tảng Arduino được lập trình bằng ngôn ngữ riêng, dựa trên ngôn ngữ Wiring, một biến thể của C/C++ Ngôn ngữ Wiring ban đầu được viết cho phần cứng trong môi trường phát triển tích hợp (IDE) chạy trên máy tính cá nhân Do đó, ngôn ngữ lập trình Arduino mang đặc điểm của C/C++, với một số người gọi là Wiring hoặc C/C++, giúp dễ dàng tùy biến và mở rộng cho các dự án điện tử.
Phần cứng Arduino chính hãng được sản xuất bởi công ty Smart Projects của Italy, đảm bảo chất lượng và độ tin cậy cao Ngoài ra, nhiều board dẫn xuất từ Arduino cũng đã được thiết kế bởi công ty SparkFun Electronics của Mỹ, mở rộng khả năng ứng dụng và tích hợp Các phiên bản Arduino đa dạng phù hợp cho nhiều mục đích sử dụng khác nhau, từ dự án học tập, nghiên cứu đến các ứng dụng công nghiệp.
Hình 2 1 Những phiên bản của Arduino
"Uno" có nghĩa là "một" trong tiếng Ý, tên gọi này được đặt để đánh dấu việc ra mắt của Arduino 1.0 Uno Phiên bản 1.0 của Arduino Uno sẽ trở thành phiên bản tài liệu tham khảo quan trọng trong cộng đồng điện tử và lập trình Việc này khẳng định vị trí của Arduino Uno như một nền tảng phát triển dễ tiếp cận và uy tín cho người dùng Arduino 1.0 Uno không chỉ nâng cao hiệu suất mà còn mở ra nhiều khả năng mới cho các dự án sáng tạo và ứng dụng tùy chỉnh.
Arduino Uno là mới nhất trong các loại board Arduino, và các mô hình tham chiếu cho các nền tảng Arduino.
Arduino Uno là một bảng mạch dựa trên chip Atmega 328, cung cấp 14 chân đầu vào/ra, trong đó có 6 chân đầu vào Analog, hoạt động với tần số 16 MHz Thiết bị sở hữu kết nối USB, jack cắm điện và nút reset, giúp người dùng dễ dàng lập trình và vận hành Với tất cả các thành phần cần thiết cho việc hỗ trợ vi điều khiển, Arduino Uno chỉ yêu cầu kết nối với máy tính qua cáp USB hoặc cấp nguồn để bắt đầu dự án DIY hoặc nghiên cứu điện tử.
Arduino Uno khác biệt so với các phiên bản trước nhờ không sử dụng chip FTDI để điều khiển USB-to-serial, mà thay vào đó tích hợp chip Atmega 16U2 có khả năng lập trình thành công cụ chuyển đổi USB-to-serial.
Phiên bản 2 (R2) của Arduino Uno sử dụng Atmega 8U2 có một điện trở kéo dòng 8U2 HWB xuống đất, làm cho nó dễ dàng hơn để đưa vào chế độ DFU.
Phiên bản 3 (R3) của Arduino Uno có các tính năng mới sau đây:
Thêm chân SDA và SCL gần với pin Aref để cải thiện khả năng truyền dữ liệu, đồng thời đặt hai chân mới gần với pin RESET nhằm giảm nhiễu và tăng độ ổn định Các IROEF được thiết kế để thích ứng linh hoạt với các điện áp cung cấp khác nhau, đảm bảo hoạt động hiệu quả của hệ thống trong các điều kiện nguồn điện đa dạng.
- Đặt lại mạnh khỏe hơn
2.1.3 Cấu trúc và thông số kỹ thuật
Bảng 2 1 Thông số kỹ thuật của Arduino Uno
Vi điều khiển Atmega 328P Điện áp hoạt động 5 VDC
Tần số hoạt động 16 MHZ
Dòng điện tiêu thụ Khoảng 30 mA Điện áp vào khuyên dùng 7-12 VDC Điện áp vào giới hạn 6-20 VDC
Số chân Digital I/O 14 (6 chân PWM)
Số chân Analog 6 chân độ phân giải 10 bit
Dòng tối đa trên mỗi chân I/O 30 mA
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3 V) 50 mA
Bộ nhớ Flash 32 Kb (Atmega 328P)
0.5 Kb được sử dụng bởi Bootloader
EEPROM 1 Kb (Atmega 328P) a Vi điều khiển và bộ nhớ
Arduino Uno có thể sử dụng 3 vi điều khiển họ 8 bit AVR là Atmega 8, Atmega
Atmega 328 là một vi xử lý mạnh mẽ phù hợp để điều khiển các dự án điện tử đơn giản và phức tạp Bộ não này có thể xử lý các tác vụ cơ bản như điều khiển đèn LED nhấp nháy, xử lý tín hiệu cho xe điều khiển từ xa, và làm một trạm đo nhiệt độ - độ ẩm Ngoài ra, Atmega 328 còn có khả năng hiển thị dữ liệu lên màn hình LCD, giúp người dùng dễ dàng theo dõi thông tin theo thời gian thực Với tính linh hoạt và dễ lập trình, linh kiện này là lựa chọn phổ biến cho các dự án DIY và nghiên cứu trong lĩnh vực điện tử.
Hình 2 3 Vi điều khiển Atmega 8
Hình 2 4 Vi điều khiển Atmega 168
Hình 2 5 Vi điều khiển Atmega 328
Bộ nhớ Flash 32 KB của vi điều khiển dùng để lưu trữ các đoạn lệnh lập trình, trong đó khoảng vài KB dành cho bootloader, và rarely cần vượt quá 20 KB bộ nhớ Flash này.
Bộ nhớ SRAM (Static Random Access Memory) lưu trữ giá trị các biến khai báo trong quá trình lập trình, và số lượng biến càng nhiều thì bộ nhớ SRAM cần nhiều dung lượng hơn Tuy nhiên, trong thực tế, việc thiếu bộ nhớ SRAM hiếm khi trở thành vấn đề lớn trong các thiết bị Một điểm quan trọng là dữ liệu lưu trong SRAM sẽ bị mất khi mất điện, do đó không phù hợp để lưu trữ dữ liệu cần giữ lâu dài.
EEPROM (Electrically Erasable Programmable Read-Only Memory) là một loại bộ nhớ nhỏ gọn, giống như một chiếc ổ cứng mini, cho phép người dùng đọc và ghi dữ liệu mà không sợ mất dữ liệu khi mất điện, tương tự như SRAM Cấu tạo của EEPROM gồm các thành phần đảm bảo khả năng lưu trữ dữ liệu bền bỉ và dễ dàng chỉnh sửa khi cần thiết.
Mô tả về board Arduino UNO gồm có một cổng giao tiếp USB ở góc trên bên phải giúp kết nối dễ dàng với máy tính Trung tâm của board là chip Atmega328P màu đen nằm ở giữa, chịu trách nhiệm xử lý chính Board được trang bị 14 chân I/O nằm phía trên, cung cấp khả năng mở rộng kết nối cho các thiết bị khác Ngoài ra, Arduino UNO còn có 6 chân Analog đầu vào nằm ở phía dưới bên phải, giúp thu thập tín hiệu analog một cách chính xác.
Board Arduino cung cấp hầu hết các chân I/O của vi điều khiển để phục vụ các mạch ngoài Arduino Uno gồm có 14 chân I/O kỹ thuật số, trong đó có 6 chân hỗ trợ tạo xung PWM để điều khiển độ sáng hoặc tốc độ, cùng với 6 chân INPUT Analog giúp đọc tín hiệu analog một cách chính xác.
Arduino Uno có kích thước chiều dài 68.6 mm và chiều rộng 53.4 mm, được trang bị cổng kết nối USB và jack nguồn mở rộng để dễ dàng cấp nguồn và lập trình Thiết bị còn có bốn lỗ vít giúp gắn chắc chắn vào các bề mặt khác nhau, tăng tính linh hoạt trong các dự án robotics và điện tử.
Hình 2 6 Arduino Uno Atmega 328P c Vị trí và chức năng các chân
Khi không có sẵn nguồn USB, bạn có thể cung cấp nguồn cho Arduino Uno bằng cách sử dụng nguồn chuyển đổi từ AC sang DC hoặc pin phù hợp Các bộ chuyển đổi này thường có đầu nối trung tâm tích cực 2.1mm và kết nối vào jack cắm điện của Arduino Uno để đảm bảo nguồn cung ổn định và an toàn cho thiết bị.
THIẾT KẾ VÀ THI CÔNG HỆ THỐNG
Sơ đồ khối và chức năng của từng khối
Hình 3 1 Sơ đồ khối mô hình đếm và phân loại sản phẩm
1.2 Chức năng của từng khối
Khối nguồn: Cấp nguồn cho toàn bộ hệ thống hoạt động.
Khối băng tải: Vận chuyển vật thể đến vị trí của cảm biến để nhận dạng.
Khối tín hiệu: Phát hiện vật thể và truyền tín hiệu về khối xử lý để mã hóa dữ liệu.
Khối xử lý trung tâm: Xử lý tín hiệu từ cảm biến và xuất dữ liệu được mã hóa đến các khối hiển thị và phân loại.
Khối hiển thị: Hiển thị số lượng đếm được từ cảm biến
Khối phân loại: Phân loại các sản phẩm thành nhiều loại theo yêu cầu của đề tài.
Tính toán, thiết kế mạch cho từng khối
Trong đề tài này, các linh kiện chính đều yêu cầu nguồn điện 5VDC để hoạt động ổn định Cụ thể, các thành phần như Arduino Uno R3, màn hình LCD 16x2, motor servo và cảm biến E18-D80NK đều sử dụng nguồn 5V, đảm bảo hiệu suất hoạt động chính xác và đáng tin cậy Việc cung cấp nguồn 5V phù hợp là yếu tố quan trọng để đảm bảo các linh kiện hoạt động hiệu quả trong hệ thống của bạn.
Theo datasheet của vi điều khiển ATmega328P, tổng cường độ dòng điện cấp cho các chân I/O tối đa là 300mA, đảm bảo hoạt động an toàn cho hệ thống Cảm biến E18-D80NK tiêu thụ dòng tối đa khoảng 100mA, trong khi servo cần nguồn khoảng 90mA để vận hành hiệu quả Ngoài ra, màn hình LCD tiêu thụ dòng thấp khoảng 1mA, phù hợp cho các dự án yêu cầu tiết kiệm năng lượng Việc xác định dòng tiêu thụ của các thành phần này giúp tối ưu việc phân phối nguồn điện và đảm bảo hệ thống hoạt động ổn định.
I = 300 + 100x2 + 90 + 1 = 591 ≈ 0.6 A Dựa và các thông số này ta có thể chọn IC ổn áp 7805 loại 1A là đủ dòng cấp cho mạch hoạt động.
Biến áp là thiết bị điện gồm hai cuộn dây quấn trên lõi sắt từ, có chức năng biến đổi điện áp xoay chiều thành điện áp xoay chiều khác nhằm phù hợp với mục đích sử dụng Đây là thiết bị quan trọng trong hệ thống truyền tải điện năng, giúp điều chỉnh điện áp để giảm tổn thất và tối ưu hiệu suất truyền tải Vari áp còn được ứng dụng trong các thiết bị điện dân dụng và công nghiệp, đảm bảo hoạt động ổn định và an toàn cho các thiết bị điện tử.
Thông thường ta sẽ chọn biến áp 220V về 12V hoặc 220V về 9V để thiết kế nguồn 5VDC, dòng định mức 1A.
Để biến đổi điện áp xoay chiều thành điện áp một chiều, bạn có thể chọn diode rời hoặc cầu diode tích hợp phù hợp Chọn diode có dòng định mức lớn hơn dòng tải tiêu thụ để đảm bảo hiệu suất hoạt động ổn định Ngoài ra, điện áp ngược chịu đựng của diode cũng cần phải cao hơn điện áp xoay chiều đặt vào để tránh hiện tượng hỏng hóc hoặc gây quá tải cho linh kiện.
Các diode phổ biến thường được sử dụng gồm 1N4004, 1N4007, cùng các cầu diode có dòng điện từ 1A đến 15A và điện áp ngược chịu đựng lên đến 1000V Với mạch tiêu thụ dòng khoảng 0.6A và điện áp xoay chiều đầu vào là 220V, việc chọn cầu diode có dòng 3A và điện áp ngược cực đại 700V là phù hợp để đảm bảo hoạt động an toàn và độ bền của mạch.
Hình 3 2 Sơ đồ nguyên lý mạch nguồn đầu ra 5V
Chỉ duy nhất động cơ DC của băng tải cần cấp nguồn 12VDC nên ta sẽ dùng Adapter để cấp riêng cho động cơ hoạt động.
Khối tín hiệu sử dụng 2 cảm biến E18-D80NK nối với các chân 6, 8 và 1 nút nhấn reset nối với chân 9 của Arduino.
Khi cảm biến được kéo trở nội 10k lên VCC, điện áp mức cao của chân tín hiệu (Vout) bằng với điện áp VCC Điều này xảy ra trong hai trường hợp chính, ảnh hưởng đến hoạt động của cảm biến và tín hiệu đầu ra Hiểu rõ cách kết nối cảm biến với nguồn VCC là yếu tố quan trọng để đảm bảo chính xác và ổn định của hệ thống.
Nếu mạch cần giao tiếp sử dụng mức tín hiệu có điện áp phù hợp với điện áp VCC của cảm biến, bạn không cần nối trở Rx mà có thể kết nối trực tiếp chân tín hiệu của cảm biến với chân tín hiệu của Arduino Điều này giúp giảm số phần tử cần thiết và đơn giản hóa mạch điện, đồng thời đảm bảo tín hiệu truyền đạt chính xác mà không gây nhiễu loạn Khi thiết lập kết nối trực tiếp, đảm bảo rằng mức điện áp của tín hiệu không vượt quá giới hạn của Arduino để tránh gây hỏng hóc linh kiện.
Khi mạch cần giao tiếp sử dụng mức tín hiệu có điện áp khác với điện áp VCC của cảm biến, bạn cần kết nối thêm trở Rx để đảm bảo an toàn cho mạch Giá trị của Rx được tính dựa trên công thức cầu phân áp để giới hạn điện áp Vout ở mức 5VDC, tránh gây hư hỏng cho vi điều khiển Arduino Điều này giúp đảm bảo tín hiệu truyền về đúng chuẩn an toàn và phù hợp với yêu cầu của hệ thống.
Trong đề tài này, ta sử dụng nguồn cấp VCC cho cảm biến là 5V DC, phù hợp với điện áp giao tiếp của Arduino, giúp đảm bảo kết nối trực tiếp giữa chân tín hiệu của cảm biến và chân tín hiệu của Arduino để đảm bảo hoạt động chính xác Công thức tính điện áp ra (Vout) dựa trên RC là Rx = (Vout * R1) / (VCC - Vout), trong đó VCC là nguồn cấp 5V DC Việc cấp nguồn đúng và kết nối chính xác các chân tín hiệu là yếu tố quan trọng để đảm bảo hiệu suất hoạt động của hệ thống cảm biến Arduino.
Hình 3 3 Sơ đồ đấu nối cảm biến với Arduino
2.3 Khối xử lý trung tâm
Arduino UNO sử dụng 3 vi điều khiển chính thuộc họ 8bit AVR gồm ATmega328, ATmega168 và ATmega8, phù hợp cho các dự án lập trình và kết nối module Hệ thống này sử dụng tổng cộng 10 chân I/O, trong đó có 2 chân dành cho cảm biến, 1 chân điều khiển nút nhấn reset, 1 chân kết nối servo, và 6 chân dùng để kết nối LCD Công thức tính dòng tiêu thụ điện của Arduino UNO có thể được xác định dựa trên số lượng chân I/O sử dụng và loại thiết bị kết nối, giúp tối ưu hóa hiệu năng và tiết kiệm năng lượng cho các dự án điện tử.
I = P * I0 * 20mA = 200mA (3.2) Trong đó, P là số chân và I0 là dòng ngõ ra mỗi chân I/O.
Hình 3 4 Khối xử lý trung tâm xử dụng Arduino Uno R3
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
V: vận tốc của băng tải
C: chu vi con lăn n: tốc độ quay động cơ
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
Hình 3 5 Chu kì hoạt động của Servo
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
Khối hiển thị sử dụng LCD 16x2 để hiển thị giá trị đếm được của các sản phẩm phân loại.
LCD có thể giao tiếp với vi điều khiển ở chế độ 8-bit hoặc 4-bit, trong đó chế độ 8-bit sử dụng 8 bus dữ liệu cùng các chân điều khiển RS, R/W, E Tuy nhiên, chế độ 4-bit chỉ cần 4 bus dữ liệu kèm theo các chân điều khiển, giúp tiết kiệm số lượng chân I/O cho các mục đích khác Vì lý do này, trong đề tài này, chúng ta sẽ chọn phương thức giao tiếp 4-bit để tối ưu hóa việc sử dụng chân I/O của vi điều khiển.
Sơ đồ nguyên lý toàn mạch
Hình 3 7 Sơ đồ nguyên lý toàn mạch
Nguyên lý hoạt động
Khi được cấp nguồn, mạch hoạt động theo chương trình đã lập trình trên Arduino, bắt đầu từ việc thu nhận tín hiệu từ các cảm biến Các tín hiệu này được trung tâm xử lý và chuyển thành lệnh phù hợp để điều khiển Servo và LCD, đảm bảo hệ thống hoạt động chính xác theo yêu cầu đề tài Trong trạng thái bình thường, cảm biến E18-D80NK gửi xung mức cao về bộ xử lý trung tâm, khiến Arduino Uno R3 duy trì tình trạng hiện tại và giữ cho Servo ở góc 0 độ, đảm bảo hệ thống hoạt động ổn định.
Khi đối tượng tác động, dòng điện qua trở treo đi qua cảm biến E18-D80NK về GND, tạo ra xung mức thấp gửi đến Arduino Uno R3 Dữ liệu từ cảm biến được xử lý và hiển thị trên màn hình LCD, giúp người dùng theo dõi trạng thái hệ thống Đồng thời, động cơ Servo quay thanh gạc phân loại ở góc 50 độ để đưa đối tượng vào kho chứa phù hợp, đảm bảo quá trình phân loại chính xác và hiệu quả.
Khi nhấn nút Reset trên Arduino Uno R3, xung mức thấp được cung cấp vào chân số 9, giúp thiết lập lại toàn bộ dữ liệu đếm về giá trị 0 Quá trình reset này cũng được thể hiện rõ ràng trên màn hình LCD, đảm bảo người dùng biết rằng bộ đếm đã được khởi động lại thành công.
Thi công hệ thống
5.1 Mạch nguyên lý a Giới thiệu phần mềm Proteus
Proteus là phần mềm vẽ, mô phỏng mạch điện tử nổi bật, phát triển bởi công ty Lacenter Electronics Với Proteus, người dùng có thể mô tả hầu hết các linh kiện điện tử thông minh phổ biến hiện nay, giúp thiết kế và kiểm tra các mạch điện một cách chính xác và hiệu quả Ngoài ra, phần mềm này còn hỗ trợ tích hợp các phần mềm khác như 8051, PIC, Motorola, AVR, tạo điều kiện thuận lợi cho quá trình lập trình và mô phỏng các dự án điện tử phức tạp.
Tính năng nổi bật của Proteus chính là khả năng mô phỏng hoạt động của các mạch điện tử, hỗ trợ thiết kế mạch và phát triển trình điều khiển cho các loại vi điều khiển phổ biến như MCS-51, AVR, PIC Phần mềm này giúp kỹ sư và học viên dễ dàng kiểm thử và tối ưu hóa các mạch điện tử trước khi thực hiện quá trình chế tạo thực tế Proteus là công cụ tin cậy để mô phỏng hoạt động của hệ thống vi điều khiển, nâng cao hiệu quả thiết kế và giảm thiểu rủi ro lỗi kỹ thuật.
Hình 3 8 Phần mềm Proteus b Các bước vẽ mạch nguyên lý bằng phần mềm Proteus
Bước 1: Khởi động phần mềm và tạo Project mới.
Bước 2: Mở chương trình ISIS Professional.
Bước 3: Lấy tất cả các linh kiện cần sử dụng từ thư viện.
Bước 4: Tiến hành bố trí linh kiện.
Bước 5: Nối dây để kết nối linh kiện.
Hình 3 9 Sơ đồ mạch nguyên lý
Kích thước đường dây nguồn và dây tín hiệu là yếu tố quan trọng nhất trong thiết kế mạch PCB, ảnh hưởng đến quá trình thi công và hàn linh kiện Để đảm bảo dễ dàng lắp đặt, dây nguồn được lựa chọn với kích thước T60, trong khi dây tín hiệu sử dụng kích thước T50 Việc chọn kích thước phù hợp giúp tối ưu hóa hiệu suất và giảm thiểu lỗi khi lắp ráp mạch.
Hình 3 10 Mạch PCB hoàn chỉnh
5.3 Quá trình thi công mạch
Sau khi đã hoàn tất mạch in trên Proteus, ta tiến hành in mạch ra giấy và thi công mạch theo các bước sau đây:
Bước 1: Ủi mạch in lên tấm board đồng.
Hình 3 11 Ủi mạch in lên tấm Board đồng
Hình 3 12 Rửa mạch với dung dịch axit loãng
Hình 3 13 Khoan lỗ mạch in
Hình 3 14 Hàn linh kiện vào mạch
Lập trình hệ thống
Hình 3 15 Lưu đồ giải thuật
Chương trình bắt đầu với việc khởi tạo LCD, khai báo chân và biến để chuẩn bị cho quá trình xử lý Trong vòng lặp chính, hệ thống liên tục đọc tín hiệu từ các cảm biến và nút nhấn để phản hồi kịp thời Khi cảm biến cao có tín hiệu, giá trị cao được tăng 1 đơn vị và servo quay góc 50 độ; nếu không, hệ thống kiểm tra cảm biến thấp và cập nhật giá trị thấp tương ứng Nếu không có tín hiệu cảm biến nào, chương trình sẽ kiểm tra nút reset để đặt cả giá trị cao và thấp về 0, hoặc quay lại đầu vòng lặp để tiếp tục theo dõi Tổng giá trị được tính bằng tổng của giá trị cao và thấp, sau đó tất cả các dữ liệu đều được hiển thị lên LCD để theo dõi trạng thái của hệ thống theo thời gian thực.
6.2 Phần mềm lập trình cho Arduino
Môi trường phát triển tích hợp Arduino IDE là một nền tảng đa nền tảng, được viết bằng Java, phù hợp cho lập trình Arduino và các dự án lắp ráp Nhờ tính chất mã nguồn mở, Arduino IDE hoàn toàn miễn phí và có khả năng mở rộng, tùy chỉnh dễ dàng bởi người dùng có kinh nghiệm Đây là công cụ lập trình phổ biến, giúp đơn giản hóa quá trình lập trình và quản lý dự án Arduino hiệu quả.
Người sử dụng chỉ cần định nghĩa hai hàm để thực hiện một chương trình hoạt động theo chu trình:
Setup(): hàm chạy một lần duy nhất vào lúc bắt đầu của một chương trình dùng để khởi tạo các thiết lập.
Loop(): hàm được gọi lặp lại liên tục cho đến khi bo mạch được tắt.
Chu trình đó có thể mô tả trong hình dưới đây:
Hình 3 16 Quy trình làm việc của Arduino
Arduino IDE là nơi để soạn thảo code, kiểm ra lỗi và upload code
Hình 3 17 Giao diện lập trình arduino
Hình 3 18 Giao diện menu Arduino IDE
Hình 3 19 Giao diện File menu Arduino IDE
Trong file menu, phần Examples là yếu tố quan trọng chứa các mã nguồn mẫu, bao gồm điều khiển đèn LED nhấp nháy (Blink), hướng dẫn sử dụng các chân digital, analog và cảm biến Các ví dụ trong mục này giúp người dùng dễ dàng hiểu và thực hành các kỹ thuật lập trình Arduino, tăng khả năng sáng tạo và ứng dụng trong các dự án thực tế Chọn lựa các mẫu code phù hợp từ phần Examples sẽ tối ưu hóa quá trình học tập, nâng cao kỹ năng lập trình và khai thác tối đa các chức năng của Arduino.
Hình 3 20 Giao diện Edit menu Arduino IDE
Hình 3 21 Giao diện Sketch menu Arduino IDE
Verify/ Compile: chức năng kiểm tra lỗi code.
Show Sketch Folder: hiển thị nơi code được lưu.
Add File: thêm vào một Tap code mới.
Import Library: thêm thư viện từ bên ngoài cho IDE.
Hình 3 22 Giao diện Tool menu Arduino IDE
Trong mục Tools, quan trọng nhất là lựa chọn các mục Board và Serial Port phù hợp Đối với mục Board, bạn cần chọn đúng loại board mạch đang sử dụng để tránh lỗi khi Upload chương trình vào chip Ví dụ, nếu sử dụng Arduino Uno R3, hãy chọn Board: “Arduino Uno” để đảm bảo quá trình lập trình thành công Việc chọn đúng board giúp tránh các lỗi kỹ thuật và đảm bảo chương trình hoạt động chính xác trên thiết bị của bạn.
Serial Port là nơi lựa chọn cổng COM của Arduino khi lập trình Sau khi cài đặt driver, máy tính sẽ hiển thị tên cổng COM của Arduino để bạn dễ dàng xác định và chọn đúng Việc chọn đúng cổng COM trong Serial Port giúp quá trình nạp code cho Arduino diễn ra thuận lợi; ngược lại, nếu chọn sai cổng, việc nạp code sẽ không thành công.
Arduino Toolbar có một số button và chức năng của chúng như sau:
Verify: kiểm tra code có lỗi hay không.
Upload: nạp code đang soạn thảo vào Arduino.
New, Open, Save: Tạo mới, mở và lưu sketch.
Serial Monitor (4): Đây là màn hình hiển thị dữ liệu từ Arduino gửi lên máy tính.
KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ
Kết quả
Trong quá trình 15 tuần nghiên cứu và học tập dưới sự hướng dẫn của Thầy Nguyễn Trường Duy, em đã hoàn thành đồ án môn học đúng hạn, đáp ứng yêu cầu thiết kế và thi công hệ thống đếm và phân loại sản phẩm theo chiều cao Em đã nghiên cứu cách hoạt động và kết nối các linh kiện trong mạch, biết sử dụng phần mềm mô phỏng như Proteus và Arduino IDE để thiết kế mạch và lập trình cho Arduino Ngoài ra, em còn nắm vững nguyên lý hoạt động của Arduino Uno, cảm biến hồng ngoại E18-D80NK, motor servo, đồng thời có khả năng cải thiện kỹ năng hàn mạch và thi công mạch in một cách tốt hơn.
Kết quả thực hiện cho thấy việc sắp xếp linh kiện hợp lý và có tính thẩm mỹ cao đã góp phần nâng cao hiệu suất hoạt động của mạch Mạch hoạt động tương đối ổn định, chính xác và phù hợp về mặt giá cả, dễ dàng ứng dụng vào thực tế Sau khi hoàn thành, dự án đã đạt khoảng 90% yêu cầu đề ra, đáp ứng đầy đủ các chức năng cơ bản cần thiết cho hệ thống.
Tìm hiểu về Arduino Uno.
Tìm hiểu về cảm biến hồng ngoại E18-D80NK, motor Servo.
Tìm hiểu về cách hoạt động và cách kết nối của các linh kiện có trong hệ thống.
Hình 4 1 Mặt trước của mạch in
Hình 4 2 Mô hình sản phẩm hoàn chỉnh
Kiểm thử mô hình
Bảng 4 1 Bảng kết quả thực nghiệm
Số lần Số sản phẩm Thời gian/1sp(s) Số sản phẩm đạt
Số sản phẩm lỗi Loại sản phẩm lỗi
Đánh giá kết quả
Dựa vào kết quả trên ta thấy hệ thống chạy khá ổn định, và đạt được những mục tiêu đề ra ban đầu.
Thời gian xử lý 1 sản phẩm cũng khá nhanh nên có thể áp dụng thực tiễn tăng năng suất sản phẩm, cụ thể:
+ Đối với sản phẩm cao thì thời gian hoàn thành trung bình chỉ hơn 6s.
+ Đối với sản phẩm thấp thì thời gian trung bình chỉ hơn 8s.
Sản phẩm lỗi là do tiết diện của phôi nhỏ nên dễ bị ngã khi bị gạc vào vị trí phân loại.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Kết luận
Sau một thời gian dài nghiên cứu, xây dựng ý tưởng và bắt tay vào thi công, tôi đã hoàn thành đề tài “Thiết kế và thi công hệ thống đếm và phân loại sản phẩm theo chiều cao” Mô hình này đạt được độ ổn định cao trong vận hành và điều khiển, góp phần tối ưu hóa quá trình kiểm soát chất lượng sản phẩm.
Quá trình nghiên cứu và xây dựng đề tài giúp tôi hiểu rõ các thiết bị ứng dụng trong ngành tự động hóa hiện nay, mở ra nhiều cơ hội để nâng cao chất lượng cuộc sống của con người Việc nắm bắt kiến thức về tự động hóa không chỉ giúp cải thiện hiệu quả công việc mà còn thúc đẩy sự phát triển của các công nghệ mới Đây là bước quan trọng để áp dụng các thiết bị tự động hóa trong đời sống hàng ngày, góp phần nâng cao sự tiện ích và an toàn cho xã hội.
Mặc dù mô hình hiện tại là một mô hình nhỏ, nhưng do hạn chế về kiến thức và thời gian, quá trình tính toán và thiết kế chưa được thực hiện một cách chi tiết và chính xác, dẫn đến việc thi công chưa đạt tiêu chuẩn công nghiệp Để phát triển mô hình này thành sản phẩm phù hợp cho sản xuất công nghiệp, cần thực hiện các tính toán kỹ lưỡng từng chi tiết nhỏ dựa trên chức năng và yêu cầu cụ thể của hệ thống, đảm bảo độ chính xác và tối ưu hóa hiệu suất.
Hướng phát triển của đề tài
Áp dụng cho các hệ thống dây chuyền sản xuất nhỏ.
Thay đổi cảm biến để tạo ra dây chuyền phân loại dựa trên các tiêu chí khác nhau của sản phẩm.
Phát triển thêm giám sát trên máy tính.
Thiết kế thêm các hệ thống phân biệt màu, vật liệu cho hệ thống đa dạng.