CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1. Giới thiệu chung: Hiện nay ngành công nghiệp ngày càng phát triển các công ty xí nghiệp đã áp dụng tự động hóa vào sản xuất để tiện ích cho việc quản lý dây chuyền và sản phẩm của toàn bộ hệ thống một cách hợp lý là yêu cầu thiết yếu, tiết kiệm được nhiều thời gian cũng như quản lý một cách dễ dàng. Trong đó có một khâu quan trọng ảnh hưởng đến chất lượng sản phẩm là phân loại sản phẩm. Hệ thống phân loại sản phẩm nhằm chia sản phẩm ra các nhóm có cùng thuộc tính với nhau để thực hiện đóng gói hay loại bỏ sản phẩm hỏng.Để đáp ứng yêu cầu đó, nhóm chúng em đã tiến hành nghiên cứu tài liệu, thiết kế và xây dựng mô hình “Hệ thống phân loại sản phẩm theo màu sắc ứng dụng xử lý ảnh”.
Mục tiêu thiết kế là mô hình phân loại sản phẩm theo màu sắc (xanh nước biển, xanh lá cây, vàng). Dựa trên ngôn ngữ C++ với thư viện chính là OpenCV và được thực hiện trên Kit Arduino Uno R3. Ở đây sử dụng các đặc điểm riêng biệt của từng màu sắc để đi nhận dạng và sau đó phân loại từng sản phẩm. Kết quả thực hiện của đề tài đã nhận dạng được những sản phẩm có màu sắc (xanh nước biển, xanh lá cây, vàng).
Nguyên lý hoạt động của hệ thống : Hệ thống phân loại sản phẩm hoạt động trên nguyên lý dùng camera để thu nhận ảnh, sau đó dữ liệu ảnh này được truyền cho máy tính để xử lý. Sau khi máy tính xử lý sẽ đưa ra kết quả về màu sắc của đối tượng, từ kết quả này thì máy tính sẽ đưa ra các lệnh truyền xuống bộ điều khiển để bộ điều khiển tiến hành điều khiển cơ cấu chấp hành để phân loại đối tượng. 1 Những lợi ích mà hệ thống phân loại sản phẩm đem lại cho chúng ta là rất lớn, cụ thể như: Giảm sức lao động, tránh được sự nhàm chán trong công việc, cải thiện được điều kiện làm việc của con người, tạo cho con người tiếp cận với sự tiến bộ của khoa học kỹ thuật và được làm việc trong môi trường ngày càng văn minh hơn. Nâng cao năng suất lao động, tạo tiền đề cho việc giảm giá thành sản phẩm, cũng như thay đổi mẫu mã một cách nhanh chóng.
Giúp cho việc quản lý và giám sát trở nên rất đơn giản, bởi vì nó không những thay đổi điều kiện làm việc của công nhân mà còn có thể giảm số lượng công nhân đến mức tối đa. Các thành phần cơ bản của hệ thống : 1. Kit Arduino Uno R3 Một board mạch chủ chính dùng để truyền và nhận dữ liệu từ người sử dụng đến các thiết bị điện tử khác. 2 Các thông số cơ bản: Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB) Tần số hoạt động 16 MHz Dòng tiêu thụ khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC Số chân Digital I/O 14 (6 chân hardware PWM) Số chân Analog 6 (độ phân giải 10bit) Dòng tối đa trên mỗi chân 30 mA I/O Dòng ra tối đa (5V) 500 mA 3 Dòng ra tối đa (3.3V) 50 mA 32 KB (ATmega328) với 0.5KB dùng bởi Bộ nhớ flash bootloader SRAM 2 KB (ATmega328) EEPROM 1 KB (ATmega328) b.
Động cơ Servo SG-90 Động cơ servo SG-90 có kích thước nhỏ, là loại được sử dụng nhiều nhất để làm các mô hình nhỏ hoặc các cơ cấu kéo không cần đến lực nặng. Động cơ servo SG-90 180 độ có tốc độ phản ứng nhanh, các bánh răng được làm bằng nhựa nên cần lưu ý khi nâng tải nặng vì có thể làm hư bánh răng, động cơ RC Servo 9G có tích hợp sẵn Driver điều khiển động cơ bên trong nên có thể dễ dàng điều khiển góc quay bằng phương pháp điều độ rộng xung PWM. Động cơ servo SG-90 được thiết kế hệ thống hồi tiếp vòng kín. Tín hiệu ra của động cơ được nối với một mạch điều khiển.
Khi động cơ quay, vận tốc và vị trí sẽ được hồi tiếp về mạch điều khiển này. Thông số kĩ thuật: Khối lượng : 9g Kích thước: 22.32 mm Momen xoắn: 1.8kg/cm Tốc độ hoạt động: 60 độ trong 0.1 giây Điện áp hoạt động: 4.8V(~5V) 4 Nhiệt độ hoạt động: 0 ºC – 55 ºC Kết nối dây màu đỏ với 5V, dây màu nâu với mass, dây màu cam với chân phát xung của vi điều khiển. Ở chân xung cấp một xung từ 1ms-2ms theo để điều khiển góc quay theo ý muốn. Camera Để tiết kiệm chi phí, nhóm em sử dụng camera điện thoại để thu nhận ảnh.
Động cơ giảm tốc Thông số kỹ thuật của động cơ giảm tốc Điện áp hoạt động:3V~ 9V DC (Hoạt động tốt nhất từ 6 - 8V) Mômen xoắn cực đại: 800gf cm min 1:48 (3V) Tốc độ không tải: 125 Vòng/ 1 Phút (3V) 208 Vòng/ 1 Phút (5V) Dòng không tải động cơ: 70mA (250mA MAX) 1. Thư viện Open CV - OpenCV (Open Computer Vision) là một thư viện mã nguồn mở hàng đầu cho xử lý về thị giác máy tính, machine learning, xử lý ảnh. OpenCV đươc viết bằng C/C++, vì vậy có tốc độ tính toán rất nhanh, có thể sử dụng với các ứng dụng liên quan đến thời gian thực. Opencv có các interface cho C/C++, Python Java vì vậy hỗ trợ được cho Window, Linux, MacOs lẫn Android, iOS OpenCV có cộng đồng hơn 47 nghìn người dùng và số lượng download vượt quá 6 triệu lần.
- OpenCV có rất nhiều ứng dụng: Hình ảnh street view Kiểm tra và giám sát tự động Robot và xe hơi tự lái Phân tích hình ảnh y học Tìm kiếm và phục hồi hình ảnh/video Phim – cấu trúc 3D từ chuyển động Nghệ thuật sắp đặt tương tác - Tính năng và các module phổ biến của OpenCV: Xử lý và hiển thị Hình ảnh/ Video/ I/O (core, imgproc, highgui) 6 Phát hiện các vật thể (objdetect, features2d, nonfree) Geometry-based monocular hoặc stereo computer vision (calib3d, stitching, videostab) Computational photography (photo, video, superres) Machine learning & clustering (ml, flann) CUDA acceleration (gpu) b. Arduino IDE Arduino IDE là một phần mềm mã nguồn mở chủ yếu được sử dụng để viết và biên dịch mã vào module Arduino. Nó có các phiên bản cho các hệ điều hành như MAC, Windows, Linux và chạy trên nền tảng Java đi kèm với các chức năng và lệnh có sẵn đóng vai trò quan trọng để gỡ lỗi, chỉnh sửa và biên dịch mã trong môi trường. Mỗi module chứa một bộ vi điều khiển trên bo mạch được lập trình và chấp nhận thông tin dưới dạng mã.
Mã chính, còn được gọi là sketch, được tạo trên nền tảng IDE sẽ tạo ra một file Hex, sau đó được chuyển và tải lên trong bộ điều khiển trên bo. Môi trường IDE chủ yếu chứa hai phần cơ bản: Trình chỉnh sửa và Trình biên dịch, phần đầu sử dụng để viết mã được yêu cầu và phần sau được sử dụng để biên dịch và tải mã lên module Arduino. Môi trường này hỗ trợ cả ngôn ngữ C và C ++. Visual Studio 2019 - Công cụ lập trình Visual Studio là một trong những IDE (Integrated Development Environments) có thể được sử dụng để xây dựng các dự án liên quan đến giải pháp phần mềm, ứng dụng và giao diện người dùng đồ họa.
- Lập trình bằng bộ công cụ hoàn hảo từ thiết kế ban đầu tới triển khai cuối cùng Cải thiện hiệu suất IntelliSense cho file C++ Phát triển cục bộ bằng nhiều trình giả lập phổ biến Đơn giản hóa truy cập thử nghiệm trong Solution Explorer Quản lý Git và tạo repository trong IDE Hỗ trợ Kubernetes bao gồm trong khối lượng công việc của Microsoft Azure d. Proteus 8 Professonal 8 Proteus là một phần mềm thiết kế mô phỏng mạch điện tử với bất kỳ thiết bị điện tử tương tự và điện tử số. Ngoài ra phần mềm còn hỗ trợ các vi mạch điều khiển như PIC 10, PIC12, Atmel AVR, ARM Cortex-M3 và nhiều loại khác. Đây là một công cụ hữu ích trong công việc cũng như trong học tập về thiết kế mạch điện.
Tính năng Proteus Professional : Một ứng dụng rất tiện dụng và mạnh mẽ đã được phát triển để giúp người hủy bỏ xây dựng cũng như xác minh các bảng mạch dễ dàng hơn. Được trang bị một giao diện được tổ chức rất tốt, nơi chứa tất cả các công cụ và lệnh cần thiết để xây dựng các bảng mạch và thử nghiệm chúng. Có thể bắt đầu mọi thứ bằng cách tải một trong nhiều mẫu mà Proteus PCB Design đi kèm. Các mô phỏng tương tác có thể được bắt đầu với ứng dụng này rất hữu ích như khả năng xem cũng như chỉnh sửa các thuộc tính của mọi thành phần trên bảng.
Các tùy chỉnh có thể đi sâu vào từng mục và sau đó có một số tùy chọn xem có thể được sử dụng để giảm bớt công việc của bạn. Tab Có mã nguồn nơi các thay đổi có thể được thực hiện ở mức rất cơ bản cho từng thành phần là một phần của dự án được tải. Ứng dụng Droidcam 9 Nhóm em sử dụng ứng dụng Droidcam trên điện thoại. Với ứng dụng này thì điện thoại sẽ gần giống như là một PC Camera.
DroidCam là ứng dụng cho phép biến thiết bị Android của bạn thành một webcam. Ứng dụng hoạt động với một PC client kết nối máy tính với điện thoại. Ứng dụng này hỗ trợ Android, iOS và Windows. Nó cho phép bạn kết nối laptop hoặc PC qua mạng WiFi hoặc với sự trợ giúp của cáp USB.
Những tính năng chính của DroidCam bao gồm: Trò chuyện bằng "DroidCam Webcam" trên máy tính, bao gồm cả âm thanh và hình ảnh. Hoàn toàn miễn phí không có giới hạn sử dụng hoặc watermark. Kết nối qua WiFi hoặc USB. Loại bỏ tiếng ồn của micro.
Sử dụng các ứng dụng (không phải camera) khác với DroidCam trong nền. Tiếp tục làm việc với màn hình tắt để tiết kiệm pin. Truy cập camera IP web MJPEG (truy cập camera qua trình duyệt hoặc từ điện thoại, máy tính bảng, v.) 10 CHƯƠNG 2: THIẾT KẾ PHẦN MỀM ĐIỀU KHIỂN 2.Thuật toán xử lý ảnh: - Với ảnh chụp thu thập được từ Camera sẽ cho không gian màu của ảnh là RGB, không gian màu RGB không thích hợp cho việc nhận dạng màu sắc, để phân biệt màu sắc người ta thường dùng không gian màu HSV. Vì vậy ta cần chuyển đổi ảnh gốc ( ảnh có không gian màu RGB) sang ảnh có không gian màu HSV.