1. Trang chủ
  2. » Giáo Dục - Đào Tạo

ỨNG DỤNG sử lý ẢNH TRONG hệ THỐNG PHÂN LOẠI sản PHẨM

87 14 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Ứng Dụng Xử Lý Ảnh Trong Hệ Thống Phân Loại Sản Phẩm
Tác giả Phan Thanh May, Đỗ Hoàng Anh, Nguyễn Hùng Vĩ
Người hướng dẫn ThS. Nguyễn Thị Thanh Vi
Trường học Trường Đại Học Sư Phạm Kỹ Thuật
Chuyên ngành Công Nghệ Kỹ Thuật Cơ Điện Tử
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2022
Thành phố Đà Nẵng
Định dạng
Số trang 87
Dung lượng 3,53 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (15)
    • 1.1 Đặt Vấn Đề (15)
    • 1.2 Mục Tiêu (16)
    • 1.3 Mục tiêu của từng nội dung cụ thể (16)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (17)
    • 2.1 Tổng quan về xử lý ảnh (17)
      • 2.1.1 Giới thiệu về xử lý ảnh (17)
      • 2.1.2 Những vấn đề trong xử lý ảnh (19)
    • 2.2 Giới thiệu về ngôn ngữ Python và thư viện openCV (23)
      • 2.2.1 Ngôn ngữ Python (23)
      • 2.2.2 Thư viên openCV (24)
    • 2.3 Phân tích xác định màu sắc (25)
      • 2.3.1 Hệ màu (25)
      • 2.3.2 Xác định HSV để phân loại (29)
    • 2.4 Giới thiệu linh kiện (31)
      • 2.4.1 Arduino Uno R3 (32)
      • 2.4.2 Raspberry Pi (39)
      • 2.4.3 Cảm biến hồng ngoại E18-D80NK (42)
      • 2.4.4 Động cơ servo mg955 (44)
      • 2.4.5 Động cơ giảm tốc JGB37-520-107RPM (46)
      • 2.4.6 Camera Pi V1.3 (47)
      • 2.4.7 Băng tải (49)
      • 2.4.8 Led LCD 16x2 (50)
  • CHƯƠNG 3: TÍNH TOÁN THIẾT KẾ (53)
    • 3.1 Lưu đồ thuật toán (53)
    • 3.2 Sơ đồ khối hệ thống (56)
    • 3.3 Sơ đồ nối dây và các thiêt bị trong hệ thống (57)
      • 3.3.1 Khối nguồn (57)
      • 3.3.2 Khối cảm biến (59)
      • 3.3.3 Khối camera (60)
      • 3.3.4 Khối xử lý (61)
      • 3.3.5 Khối động cơ (62)
      • 3.3.6 Khối hiển thị (63)
  • CHƯƠNG 4: LẮP RÁP VÀ THI CÔNG HỆ THỐNG (66)
    • 4.1 Mô hình sản phẩm 3D trên creo (66)
      • 4.1.1 Giới thiệu về creo (66)
      • 4.1.2 Mô hình 3d (66)
    • 4.2 Lắp ráp mô hình (67)
      • 4.2.1 Băng tải (67)
      • 4.2.2 Lắp ráp và kết nối Arduino vs Raspberry (67)
    • 4.3 Cài chương trình và lập trình (68)
  • CHƯƠNG 5: TỔNG KẾT VÀ KẾT LUẬN (75)
    • 5.1 Tổng kết (75)
    • 5.2 Kết luận (76)

Nội dung

TỔNG QUAN

Đặt Vấn Đề

Trong bối cảnh xã hội ngày càng phát triển, công nghiệp hóa và hiện đại hóa đang được đẩy mạnh nhằm nâng cao chất lượng cuộc sống và phát triển đất nước Việc ứng dụng các kỹ thuật khoa học trở nên phổ biến và mang lại hiệu quả cao trong nhiều lĩnh vực kinh tế, kỹ thuật cũng như đời sống xã hội.

Mục tiêu của chúng tôi là phát triển một hệ thống phân loại sản phẩm theo chuỗi với công nghệ phù hợp, khả năng áp dụng cho nhiều đối tượng và chi phí thấp, điều này rất cần thiết trong ngành nông nghiệp và công nghiệp Trong bối cảnh công nghiệp hóa hiện đại, việc tự động hóa quy trình sản xuất và chế biến ngày càng trở nên phổ biến, dẫn đến sự hình thành các hệ thống sản xuất linh hoạt, sử dụng máy CNC và robot công nghiệp Một yếu tố quan trọng ảnh hưởng đến chất lượng sản phẩm là hệ thống phân loại, giúp phân chia sản phẩm thành các nhóm tương đồng để đóng gói hoặc loại bỏ sản phẩm hỏng Hiện nay, các cảm biến như cảm biến phân loại màu sắc và hình dáng thường được sử dụng, mặc dù chúng dễ lắp đặt và vận hành nhưng có nhược điểm là dễ bị nhiễu, dẫn đến phân loại sai Vì vậy, dựa trên kiến thức đã học và sự đồng ý của giảng viên, nhóm chúng tôi chọn đề tài “Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm”.

Mục Tiêu

Mục tiêu của nghiên cứu này là ứng dụng công nghệ xử lý ảnh vào hệ thống phân loại sản phẩm, tập trung vào việc phân loại sản phẩm theo ba màu sắc chính: xanh, đỏ và vàng Dự án được phát triển dựa trên ngôn ngữ lập trình Python, sử dụng thư viện openCV, và thực hiện trên nền tảng Raspberry Pi và Arduino Uno.

Mục tiêu của từng nội dung cụ thể

 Hiểu biết rõ hơn vè các loại cảm biến, động cơ giảm tốc và servo…

 Biết cách thi công và hoàn thiện các mô hình

 Biết thêm về các ngôn ngữ lập trình thi công hệ thống phần cứng và phần mềm) Mô hình thực tế và nguyên lý hoạt động.

CƠ SỞ LÝ THUYẾT

Tổng quan về xử lý ảnh

2.1.1 Giới thiệu về xử lý ảnh

Xử lý ảnh là quá trình xử lý tín hiệu số nhằm biến đổi ảnh đầu vào thành ảnh đầu ra đạt yêu cầu mong muốn Kết quả của quá trình này có thể là một ảnh mới với đặc điểm khác biệt hoặc một kết luận cụ thể Trong thời gian gần đây, xử lý ảnh đã phát triển mạnh mẽ và ứng dụng rộng rãi trong nhiều lĩnh vực như y tế, kinh tế, văn hóa, quân sự và quốc phòng Có bốn khía cạnh chính trong xử lý ảnh: nâng cao hình ảnh, nhận dạng hình ảnh, truy vấn hình ảnh và nén hình ảnh Bài viết này sẽ tập trung vào vấn đề nhận dạng ảnh, sử dụng ảnh màu từ cảm biến Camera, và sẽ trình bày quy trình xử lý ảnh theo các bước cụ thể.

Xử lý ảnh là một lĩnh vực khoa học kỹ thuật Đây là một ngành công nghiệp

Khoa học mới so với nhiều ngành khoa học khác, nhưng tốc độ phát triển của nó là rất nhanh,

Xử lý hình ảnh là kỹ thuật nâng cao và xử lý hình ảnh từ máy ảnh, webcam và các thiết bị khác Kỹ thuật này đã được phát triển và ứng dụng rộng rãi trong nhiều lĩnh vực quan trọng.

 Trong lĩnh vực quân sự: xử lý và xác định hình ảnh quân sự

 Lĩnh vực giao tiếp với người máy: nhận dạng hình ảnh, xử lý âm thanh

 Lĩnh vực bảo mật: nhận dạng khuôn mặt, nhận dạng vân tay,

 Trong lĩnh vực giải trí: trò chơi điện tử

 Lĩnh vực y tế: Xử lý hình ảnh y sinh, X-quang, MRI.…

Các phương pháp xử lý ảnh chủ yếu tập trung vào nâng cao chất lượng và phân tích hình ảnh Ứng dụng đầu tiên của việc nâng cao chất lượng ảnh xuất hiện vào những năm 1920, khi hình ảnh báo chí được cải thiện từ London đến New York Nâng cao hình ảnh liên quan đến việc điều chỉnh mức độ ánh sáng và độ phân giải Sự phát triển của công nghệ xử lý ảnh bắt đầu vào khoảng năm 1955, nhờ vào sự tiến bộ nhanh chóng của máy tính sau Thế chiến thứ 2, giúp cho việc xử lý ảnh kỹ thuật số trở nên dễ dàng hơn.

Năm 1964, máy tính đã có khả năng xử lý và cải thiện chất lượng hình ảnh từ Mặt trăng thông qua nhiệm vụ Ranger 7 của Hoa Kỳ, bao gồm các kỹ thuật như xử lý viền hình ảnh và lưu trữ hình ảnh.

Từ năm 1964 đến nay, công nghệ xử lý hình ảnh đã có sự phát triển vượt bậc với sự ra đời của mạng nơ-ron nhân tạo, các thuật toán xử lý hiện đại và cải tiến, cùng với các công cụ nén ảnh, mang lại chất lượng và độ chính xác cao hơn trong việc nhận dạng hình ảnh.

Hình 2 1 Quá trình xử lí ảnh

Quá trình thu nhận ảnh là bước đầu tiên và quyết định trong xử lý ảnh, nơi ảnh đầu vào được thu thập từ các thiết bị như camera, cảm biến và máy quét Các tín hiệu thu được sẽ được số hóa, và việc lựa chọn thiết bị phụ thuộc vào đặc tính của đối tượng cần xử lý Các thông số quan trọng cần xem xét bao gồm độ phân giải, chất lượng màu, dung lượng bộ nhớ và tốc độ thu nhận ảnh.

Hậu xử lý Hệ quyết định, lưu trữ

Tiền xử lý ảnh là bước quan trọng nhằm cải thiện độ tương phản, khử nhiễu, khử bóng và khử độ lệch, giúp nâng cao chất lượng ảnh trước khi tiến hành các bước xử lý phức tạp hơn Quá trình này thường được thực hiện thông qua các bộ lọc chuyên dụng.

Đặc trưng ảnh là nội dung thực sự của các bức ảnh, bao gồm màu sắc, hình dạng, kết cấu và các đặc trưng cục bộ khác Nội dung ảnh được thể hiện thông qua các yếu tố này, và trong phạm vi đề tài nhận biết màu sắc, đặc trưng được trích chọn chủ yếu là màu sắc.

Hậu xử lý đóng vai trò quan trọng trong việc xử lý các đặc điểm đã được trích chọn, cho phép lược bỏ hoặc biến đổi chúng để phù hợp với các kỹ thuật cụ thể được áp dụng trong hệ quyết định.

 Hệ quyết định, lưu trữ: Có nhiệm vụ đưa ra quyết định (phân loại) dựa trên dữ liệu đã học lưu trong khối lưu trữ

 Đối chiếu, so sánh và kết luận: Đưa ra kết luận cuối cùng dựa vào những cơ sở của hệ quyết định

2.1.2 Những vấn đề trong xử lý ảnh a Điểm ảnh

Điểm ảnh là đơn vị cơ bản cấu thành nên một bức ảnh kỹ thuật số, với địa chỉ của nó được xác định qua tọa độ (x, y) Một bức ảnh kỹ thuật số có thể được tạo ra bằng cách chụp ảnh hoặc sử dụng các phương pháp đồ họa khác, và nó bao gồm hàng ngàn hoặc hàng triệu pixel riêng lẻ Số lượng pixel trong bức ảnh càng nhiều thì độ chi tiết càng cao, với một triệu pixel tương đương 1 Megapixel.

Ảnh số là tập hợp hữu hạn các điểm ảnh với mức xám phù hợp, giúp mô tả ảnh gần với thực tế Độ phân giải của ảnh được xác định bởi số lượng điểm ảnh; ảnh có độ phân giải cao sẽ thể hiện rõ nét các đặc điểm, làm cho hình ảnh trở nên thực và sắc nét hơn Hình ảnh được xem như một tín hiệu hai chiều, được xác định bởi hàm toán học f(x, y), trong đó x và y là tọa độ ngang và dọc Giá trị f(x, y) tại mỗi điểm tương ứng với giá trị điểm ảnh (Pixel) của hình ảnh Ảnh số thực chất là biểu diễn số học của hình ảnh trong máy tính, thường là ở dạng nhị phân.

Mức xám của điểm ảnh phản ánh cường độ sáng và được gán giá trị tại từng điểm Các mức ảnh xám phổ biến bao gồm 16, 32, 64, 128 và 256 Trong số đó, mức xám thường được sử dụng nhất là 256, tương ứng với việc sử dụng 1 byte để biểu diễn mức xám.

 Ảnh nhị phân: Là ảnh có 2 mức trắng và đen, chỉ có 2 giá trị 0 và 1 và chỉ sử dụng 1bit dữ liệu trên 1 điểm ảnh

 Ảnh đen trắng: Là ảnh có hai màu đen, trắng (không chứa màu khác) với mức xám ở các điểm ảnh có thể khác nhau

Ảnh màu là sự kết hợp của ba màu cơ bản, tạo ra một thế giới màu sắc phong phú và sinh động Để mô tả mức độ màu sắc, người ta thường sử dụng 3 byte, cho phép hiển thị khoảng 16,7 triệu màu khác nhau Mối quan hệ giữa các điểm ảnh cũng đóng vai trò quan trọng trong việc tạo ra hình ảnh chất lượng cao.

Tập hợp những điểm ảnh có xung quanh điểm ảnh đang xét được gọi là lân cận ảnh.

Bốn điểm ảnh lân cận 4 theo cột và hàng với tọa độ lần lượt là

Tập N4 (p) bao gồm 4 điểm ảnh lân cận có tọa độ (x+1, y), (x-1, y), (x, y+1), và (x, y-1) Trong khi đó, tập ND (p) chứa 4 điểm ảnh lân cận theo đường chéo với tọa độ (x+1, y+1), (x+1, y-1), (x-1, y+1), và (x-1, y-1) Tập 8 điểm ảnh lân cận 8 được hình thành từ sự hợp nhất của hai tập N4 và ND.

Liên kết ảnh thể hiện mối liên kết giữa các điểm ảnh gần nhau, bao gồm ba loại chính: liên kết 4, liên kết 8 và liên kết m (liên kết hỗn hợp) Trong ảnh đa mức xám, ta có thể xác định V chứa nhiều giá trị từ tập con, với p có tọa độ (x, y).

Liên kết 4: hai điểm ảnh p và q có giá trị thuộc về tập V được gọi là liên kết 4 của nhau nếu q thuộc về tập N4 (p)

Liên kết 8: hai điểm ảnh p và q có giá trị thuộc về tập V được gọi là liên kết 8 của nhau nếu q thuộc về tập N8 (p)

Hình 2 3 Các lân cận ảnh

Giới thiệu về ngôn ngữ Python và thư viện openCV

Python là một ngôn ngữ lập trình cao cấp, vẫn được ưa chuộng và ứng dụng rộng rãi hiện nay Với ưu điểm dễ đọc, cấu trúc rõ ràng và khả năng tương thích tốt trên nhiều hệ điều hành như Windows, Mac OS và Linux, Python thu hút nhiều lập trình viên.

Python là một ngôn ngữ lập trình nổi bật với cấu trúc đơn giản, rõ ràng và ngắn gọn, đặc biệt dễ học, nên thường được xem là lựa chọn lý tưởng cho những ai mới bắt đầu theo đuổi nghề lập trình viên.

 Ngoài ứng dụng của Python rất đa năng thì ngôn ngữ này còn có mặt trên tất cả các hệ điều hành như Windows, MacOS, MS-DOS, Unix

Một trong những ưu điểm nổi bật của Python là khả năng tương thích với hàng triệu thư viện, bao gồm các công cụ mạnh mẽ cho khai thác dữ liệu như Scikit-learn và Pandas, phục vụ cho nhu cầu của khoảng 400 triệu người dùng hiện nay.

 Có tốc độ xử lý cực nhanh, Python có thể phát triển để tạo ra những script siêu nhỏ tới những phần mềm cực lớn như Blender 3D

 Python không có các thuộc tính như: protected, private haypublic, không có vòng lặp do…while và switch… case

 Dù có nhiều ưu điểm tốt hơn so với các ngôn ngữ lập trình khác nhưng lại có tốc độ chậm hơn ngôn ngữ lập trình C++, Java

Mặc dù Python có một số nhược điểm nhỏ, nhưng đây vẫn là ngôn ngữ lập trình mà mọi lập trình viên nên tìm hiểu và làm quen Việc nắm vững Python giúp tiết kiệm thời gian trong công việc và thúc đẩy sự phát triển nghề nghiệp.

OpenCV, initiated by Intel in 1999 by Gary Bradsky, stands for Open Source Computer Vision Library It is a leading open-source library for computer vision and machine learning, now enhanced with high-speed GPU capabilities for real-time operations.

OpenCV là thư viện mã nguồn mở được phát hành theo giấy phép BSD, cho phép người dùng học tập và sử dụng miễn phí cho cả mục đích thương mại Thư viện này hỗ trợ nhiều ngôn ngữ lập trình như C++, C, Python và Java, cùng với khả năng hoạt động trên các hệ điều hành như Windows, Linux, Mac OS, iOS và Android OpenCV được thiết kế để tối ưu hóa hiệu suất tính toán, đặc biệt phù hợp cho các ứng dụng thời gian thực Khi được lập trình trên C/C++ một cách hiệu quả, thư viện này có thể tận dụng tối đa khả năng xử lý của các bộ xử lý đa lõi.

Các tính năng của thư viện OpenCV:

 Đối với hình ảnh, chúng ta có thể đọc và lưu hay ghi chúng

 Có thể ghi và đọc video

 Xử lý hình ảnh có thể lọc nhiễu hoặc chuyển đổi ảnh

 Thực hiện nhận dạng đặc điểm của hình dạng ảnh

 Phát hiện các đối tượng được xác định trước như khuôn mặt, mắt, …

 Phân tích video, ước lượng chuyển động của đối tượng xuất hiện trong video, tách nền và đối tượng riêng biệt, …

Hình 2 6 Thư viện Open CV

Phân tích xác định màu sắc

2.3.1 Hệ màu a Hệ màu RGB (Red-Green-Blue)

Hệ màu RGB, ra đời từ năm 1953, đã trở thành tiêu chuẩn cho tivi màu và các màn hình Internet Đặc điểm nổi bật của hệ màu này là khả năng phát xạ ánh sáng, hay còn gọi là mô hình ánh sáng bổ sung Cụ thể, RGB kết hợp ba màu cơ bản: Đỏ (Red), Xanh lá (Green) và Xanh dương (Blue) để tạo ra nhiều màu sắc khác nhau.

Blue (Xanh dương) hòa trộn với nhau theo tỉ lệ 1:1:1 sẽ tạo thành màu trắng (màu sáng hơn màu gốc)

Hệ màu RGB hoạt động bằng cách phát ra các điểm sáng màu khác nhau, tạo nên hình ảnh và màu sắc trên nền đen của tivi, máy tính và máy ảnh Các file thiết kế và hình ảnh sử dụng màu RGB cùng ánh sáng trắng sẽ hiển thị đẹp hơn, chân thực và sắc nét hơn Ngược lại, việc sử dụng các hệ màu khác có thể dẫn đến sai lệch đáng kể trong màu sắc.

Khi mỗi kênh màu được mã hóa bằng 1 byte (8 bit) với giá trị trong khoảng [0, 255], ta có ảnh 24 bit màu, cho phép mã hóa khoảng 16.581.375 màu sắc khác nhau, tương đương khoảng 16 triệu màu Dưới đây là một số màu cơ bản trong hệ màu RGB.

 (0, 255, 0) là màu xanh lá cây

 (255, 0, 255) là màu hồng cánh sen b Hệ màu HSV (Hue-Saturation-Light)

Sau khi được chụp bởi camera và chuyển đổi sang định dạng RGB, hình ảnh sẽ được chuyển sang hệ màu HSV, giúp phân tích màu sắc hiệu quả hơn Hệ màu này phân chia rõ ràng các thành phần về vùng màu, độ bão hòa và độ sáng, từ đó hỗ trợ trong việc xử lý và phân tích hình ảnh.

HSV, giống như HSL, là không gian màu phổ biến trong chỉnh sửa và phân tích ảnh, cũng như trong lĩnh vực thị giác máy tính Không gian màu này dựa trên ba thông số chính: H (Hue - màu sắc), S (Saturation - độ bão hòa) và V (Value - giá trị cường độ sáng) Thông thường, HSV được biểu diễn dưới dạng hình trụ hoặc hình nón, và được ứng dụng rộng rãi trong xử lý ảnh với thư viện OpenCV.

Các giá trị HSV được xác định thông qua quá trình lấy mẫu, hiệu chỉnh và so sánh nhiều lần Đầu tiên, cần tham khảo bảng màu HSV để chọn ra các giá trị phù hợp Sau đó, tiến hành phân tách màu sắc bề mặt dựa trên các ngưỡng màu đã được đối chiếu thủ công với bảng màu HSV trước đó Mặc dù có thể xảy ra sai lệch về màu sắc, nhưng mức độ sai lệch này thường không lớn Tuy nhiên, những sai lệch này có thể dẫn đến nhầm lẫn trong việc kết luận màu sắc Do đó, việc hiệu chỉnh các ngưỡng màu là cần thiết để đảm bảo phản ánh chính xác màu sắc bề mặt.

Sau khi hiệu chỉnh các ngưỡng màu, ta có được: 3 màu sắc

2.3.2 Xác định HSV để phân loại

Sau khi tính toán ngưỡng màu HSV cho việc phân loại, chúng ta có thể sử dụng đoạn mã dưới đây để lấy ngưỡng màu bằng cách kéo thanh màu HSV mà nhóm đã thiết lập trên Laptop thông qua phần mềm Python.

Bước 1: Copy đoạn code dưới dán vào Python trên Laptop, lưu file và tiến hành Run (chú ý nhập đường link ảnh ta muốn lấy ngưỡng)

# Khai báo thư viện import numpy as np import cv2

# Tạo một hàm rỗng def nothing(x): pass

# Tạo khung cho ảnh cv2.namedWindow("image")

To create a trackbar for color adjustment in OpenCV, use the following code: `cv2.createTrackbar("low_H", 'image', 0, 179, nothing)`, `cv2.createTrackbar("high_H", "image", 179, 179, nothing)`, `cv2.createTrackbar("low_S", "image", 0, 255, nothing)`, `cv2.createTrackbar("high_S", "image", 255, 255, nothing)`, `cv2.createTrackbar("low_V", "image", 0, 255, nothing)`, and `cv2.createTrackbar("high_V", "image", 255, 255, nothing)` This setup allows for real-time color adjustments using sliders, facilitating dynamic image processing in your application The loop `while (True):` keeps the program running, enabling continuous interaction with the trackbars.

# Đọc ảnh từ thư viện với đường dẫn img = cv2.imread("home/Desktop/anhxanh.jpg")

To obtain the current values of the color thresholds in an image processing application, use the following code: `ilow_H = cv2.getTrackbarPos("low_H", "image")`, `ihigh_H = cv2.getTrackbarPos("high_H", "image")`, `ilow_S = cv2.getTrackbarPos("low_S", "image")`, `ihigh_S = cv2.getTrackbarPos("high_S", "image")`, `ilow_V = cv2.getTrackbarPos("low_V", "image")`, and `ihigh_V = cv2.getTrackbarPos("high_V", "image")` This code retrieves the low and high values for the Hue, Saturation, and Value (HSV) color space from the trackbars in the specified image window.

# Đổi ảnh RGB sang HSV hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

# Tạo mảng chứa các kênh màu H-S-V lower_hsv = np.array([ilow_H, ilow_S, ilow_V]) higher_hsv = np.array([ihigh_H, ihigh_S, ihigh_V])

# Áp dụng mã lệnh cv2.inRange để tạo mặt nạ mask = cv2.inRange(hsv, lower_hsv, higher_hsv)

# Áp dụng mặt nạ trong ảnh để tách màu cơ bản img = cv2.bitwise_and(img, img, mask=mask) cv2.imshow("image", img)

# Nhấn phím q để kết thúc if cv2.waitKey(1) & 0xFF == ord('q'): break cv2.waitKey()

# Đóng tất cả các cửa sổ Window cv2.destroyAllWindows()

Hình 2 12 Code khi nhập vào Python và nhấn RUN ĐỂ CHẠY Python

Bước 2: Dùng chuột kéo thanh trên màn hình để xác định ngưỡng màu cần lấy ta được ngưỡng màu như bước 3

Để thoát khỏi chương trình, nhấn phím q Để xác định màu sắc, sử dụng các giá trị sau: Đỏ có giá trị min là [40, 50, 150] và max là [100, 100, 250]; Vàng có min là [0, 160, 140] và max là [50, 240, 220]; Xanh có min là [130, 130, 0] và max là [200, 200, 50].

Giới thiệu linh kiện

Arduino Uno là một bo mạch vi điều khiển do Arduino.cc phát triển, dựa trên vi điều khiển AVR Atmega328P Nền tảng điện tử mã nguồn mở này cho phép người dùng tạo ra các ứng dụng điện tử tương tác thông qua sự kết hợp giữa phần mềm và phần cứng hỗ trợ.

Trước khi Arduino ra đời, việc thực hiện các dự án điện tử nhỏ liên quan đến lập trình và biên dịch đòi hỏi sự hỗ trợ từ các thiết bị biên dịch khác Chẳng hạn, khi sử dụng vi điều khiển PIC hoặc vi điều khiển họ 8051, người dùng cần thiết kế chân nạp onboard hoặc mua các thiết bị hỗ trợ như mạch nạp 8051 và mạch nạp PIC để thực hiện quá trình này.

Trong những năm qua, Arduino đã trở thành bộ não cho hàng ngàn dự án điện tử đa dạng, từ các sản phẩm ứng dụng đơn giản trong cuộc sống hàng ngày đến những dự án khoa học phức tạp.

Trước khi Arduino ra đời, việc thực hiện các dự án điện tử nhỏ liên quan đến lập trình và biên dịch đòi hỏi sự hỗ trợ từ các thiết bị biên dịch khác Chẳng hạn, khi sử dụng vi điều khiển PIC hoặc vi điều khiển họ 8051, người dùng cần thiết kế chân nạp onboard hoặc đầu tư vào các thiết bị hỗ trợ như mạch nạp 8051 và mạch nạp PIC để có thể nạp và biên dịch chương trình.

Arduino hiện nay đã trở nên phổ biến tại Việt Nam, thu hút sự quan tâm từ học sinh trung học, sinh viên cho đến người đi làm Nhiều dự án điện tử, từ đơn giản đến phức tạp, được thực hiện nhanh chóng nhờ vào các mã nguồn mở được chia sẻ rộng rãi trên các diễn đàn trong và ngoài nước Điều này hỗ trợ đáng kể cho những ai đam mê nghiên cứu và chế tạo sản phẩm có ích cho xã hội Trong những năm qua, Arduino đã trở thành bộ não cho hàng ngàn dự án điện tử, từ ứng dụng đơn giản trong đời sống hàng ngày đến các dự án khoa học phức tạp.

Thư viện mã nguồn mở ngày càng phong phú, hỗ trợ người mới bắt đầu cũng như các chuyên gia lập trình nhúng trong việc tham khảo và phát triển dự án Arduino Thông tin cấu hình của Arduino Uno R3 cũng rất quan trọng để người dùng có thể tận dụng tối đa tiềm năng của bo mạch này.

Hiện nay trên thị trường có rất nhiều phiên bản Arduino như Arduino Uno R3, Arduino Uno R3 CH340, Arduino Mega2560, Arduino Nano, Arduino Pro Mino, Arduino Lenadro, Arduino Industrial

Arduino Uno R3 là một board mạch vi điều khiển do Arduino.cc phát triển, thuộc nền tảng điện tử mã nguồn mở và chủ yếu sử dụng vi điều khiển AVR Atmega328P.

Arduino Uno R3 hiện tại được trang bị giao diện USB, 6 chân đầu vào analog và 14 cổng kỹ thuật số I/O, cho phép kết nối với các mạch điện tử và thiết bị bên ngoài Trong số 14 cổng I/O, có 6 chân đầu ra xung PWM, giúp các nhà thiết kế dễ dàng kiểm soát và điều khiển các thiết bị ngoại vi một cách trực quan.

Arduino Uno R3 kết nối trực tiếp với máy tính qua USB để giao tiếp với phần mềm lập trình IDE, tương thích với các hệ điều hành Windows, MAC và Linux, trong đó Windows là lựa chọn tối ưu IDE hỗ trợ các ngôn ngữ lập trình như C và C++.

Ngoài USB, người dùng có thể dùng nguồn điện ngoài để cấp nguồn cho bo mạch

Bo mạch Arduino Uno tương tự như các loại bo mạch Arduino khác về chức năng và cách sử dụng Tuy nhiên, điểm khác biệt là bo mạch Uno không được trang bị chip điều khiển FTDI USB to Serial.

Arduino Nano V3 và Arduino Uno là hai phiên bản chính thức của bo mạch Uno, cả hai đều sử dụng vi điều khiển Atmega328 8bit AVR Atmel, với bộ nhớ RAM 32KB.

Khi nhiệm vụ trở nên phức tạp, việc kết nối thẻ nhớ SD Micro với Arduino giúp lưu trữ thông tin hiệu quả hơ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 I/O 30 mA

Dòng ra tối đa (5V) 500 mA

Dòng ra tối đa (3.3V) 50 mA

Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader

Hình 2 13 Sơ đồ chân arduino

Arduino Uno có đèn LED tích hợp kết nối với chân 13, cho phép điều khiển đèn LED với mức logic HIGH để bật và LOW để tắt.

Vin là điện áp đầu vào cho board mạch Arduino, khác với 5V từ cổng USB Điện áp này được cung cấp qua jack nguồn, thường trong khoảng 7-12VDC, để cấp nguồn cho toàn bộ mạch.

Chân 5V trên Arduino được sử dụng để cung cấp điện áp đầu ra, cho phép thiết bị hoạt động hiệu quả Arduino có thể được cấp nguồn qua ba phương thức: kết nối USB, chân Vin của bo mạch, hoặc qua giắc nguồn DC.

 USB: Hỗ trợ điện áp khoảng 5V trong khi Vin và Power Jack hỗ trợ dải điện áp trong khoảng từ 7V đến 20V

 GND: Chân mass chung cho toàn mạch Arduino

 Reset: Chân reset để thiết lập lại về ban đầu

TÍNH TOÁN THIẾT KẾ

Lưu đồ thuật toán

Hình 3 1 Lưu đồ thuật toán

Giải thích lưu đồ thuật toán

 Động cơ băng tải hoạt động và gán các tín hiệu đếm sản phẩm của từng màu và sản phẩm khác bằng giá trị ban đầu là 0

Khi cảm biến hồng ngoại phát hiện sản phẩm, chương trình sẽ tiếp tục xử lý Nếu không phát hiện, hệ thống sẽ tiếp tục chờ cho đến khi có sản phẩm đi qua.

 Khi cảm biến phát hiện có vật, băng tải dừng lại, Raspberry Pi tiến hành chụp ảnh thông qua Camera Pi

 Chương trình bên kit Raspberry sẻ xử lý hình ảnh chụp được, nhận diện được màu sắc và truyền ngược lại cho kit

 Nếu là màu đỏ thì servo đỏ sẽ gạt sản phẩm màu đỏ vào máng trượt màu đỏ và đềm giá trị demd cộng lên 1

 Nếu là màu xanh thì servo xanh sẽ gạt sản phẩm màu xanh vào máng trượt màu xanh và đếm giá trị demx cộng lên 1

 Nếu là màu vàng thì servo vàng sẽ gạt sản phẩm màu vàng vào máng trượt màu vàng và đếm giá trị demv cộng lên 1

 Nếu sai thì sản phẩm còn lại sẽ được đi thằng ra máng trượt còn lại và đếm giá trị deml cộng lên 1

Giải thích lưu đồ xử lý ảnh

 Bắt đầu thì Raspbeery hoạt động và nhận tín hiệu từ Arduino để xử lý ảnh qua con camera pi để chuyển màu từ RGB sang HSV

 Nếu ảnh nằm trong khoảng từ min_màu_r tới max_mau_r thì sẽ chuyển tín hiệu về Arduino là màu đỏ

 Nếu ảnh nằm trong khoảng từ min_màu_b tới max_mau_b thì sẽ chuyển tín hiệu về Arduino là màu xanh

 Nếu ảnh nằm trong khoảng từ min_màu_y tới max_mau_y thì sẽ chuyển tín hiệu về Arduino là màu vàng

 Nếu ảnh không nằm trong khoảng từ min và max của ba màu thì sẽ chuyển tín hiệu về Arduino là lỗi.

Sơ đồ khối hệ thống

Chức năng các khối trong hệ thống:

Khối nguồn: Cung cấp nguồn điện cho toàn bộ hệ thống gồm có 2 phần là nguồn tổ ong và adapter

Khối cảm biến: Có chức năng gửi tín hiệu cho khối xử lý khi nhận được tín hiệu từ cảm biến hồng ngoại E18-D80NK

Khối xử lý trung tâm kết hợp giữa Arduino và Raspberry Pi, đảm nhiệm việc nhận tín hiệu hình ảnh từ camera Sau khi tiếp nhận, nó sẽ xử lý hình ảnh, so sánh với dữ liệu đã được cài đặt và gửi tín hiệu đến các khối khác.

Khối hiển thị nhận tín hiệu từ khối xử lý trung tâm, hiển thị thông tin đặc trưng cho từng loại sản phẩm và cập nhật số lượng của từng loại sản phẩm một cách chính xác.

Khối camera có nhiệm vụ thu thập tín hiệu hình ảnh từ thực tế, chuyển đổi thành tín hiệu điện và gửi dữ liệu đến khối xử lý trung tâm Trong hệ thống này, Camera Raspberry Pi được sử dụng làm thiết bị thu tín hiệu hình ảnh.

Khối động cơ: được điều khiển bởi khối xử lý, sử dụng động cơ cho băng tải và động cơ servo mg995.

Sơ đồ nối dây và các thiêt bị trong hệ thống

3.3.1 Khối nguồn Đề tài nhóm thục hiện sử dụng nhiều nguồn điện khác nhau để duy trì sự ổn định của hệ thống, vì nếu sự dụng một dây cung cấp điện cho toàn bộ hệ thống thì sẽ gây nhiễu làm mất đi tính ổn định của mô hình, nhóm sử dụng 2 nguồn điện cung cấp chính đó là nguồn điện cấp cho raspberry và nguồn cấp cho arduino

Nguồn cấp cho raspbrry và camera

Thông số kỹ thuật: Điện áp đầu vào: AC 100V-240V 50-60Hz Đầu cắm AC: chuẩn Hoa Kỳ Điện áp ra: DC 5V

Nguồn tổ ong cấp cho arduino

Nguồn tổ ong 12V 5A có thiết kế nguyên khối với nhiều lỗ nhỏ, giúp tản nhiệt hiệu quả Sản phẩm này được ứng dụng phổ biến trong sinh hoạt và sản xuất, đặc biệt mang lại hiệu suất tối ưu cho công nghệ LED hiện đại.

Nguồn tổ ong 12V 5A là giải pháp phổ biến cho nhiều thiết bị công nghiệp và dân dụng, bao gồm tủ điện, đèn, camera giám sát, máy tính và loa đài Sản phẩm này cung cấp nguồn điện một chiều ổn định, giúp bảo vệ mạch khỏi sự ảnh hưởng của dòng điện và hiện tượng sụt áp.

Bộ nguồn 12V 5A không chỉ có chức năng chỉnh lưu, biến tần và nắn dòng mà còn giúp ổn định dòng điện, điện áp và tần số dao động Với vai trò quan trọng trong việc bảo vệ và nâng cao tuổi thọ của các thiết bị điện, nguồn tổ ong này là giải pháp lý tưởng cho nhiều ứng dụng.

Thông số của Nguồn tổ ong 12V 30A Điện áp đầu vào 110VAC hoặc 220VAC Điện áp đầu ra 9VDC~14VDC

Dòng điện đầu ra: Max 30A

Tần số đầu vào: 50-60Hz

Kích thước sản phẩm: 215 * 13 * 50 mm

Cổng vào: N (dây nguội) – L (dây nóng ) – Cổng tiếp chất chống dòng rò Cổng ra: 3 (+) và 3 (-)

3.3.2 Khối cảm biến Đề tài sử dụng một cảm biến duy nhất để phát hiện vật cản là cảm biến hòng ngoại E18-D80NK cảm biến được đặt bên cạnh camera, khi phát hiện vật cảm biến sẽ gửi tín hiệu để dừng băng tải và tiến hành chụp ảnh

Cảm biến được kết nối trực tiếp vào arduino gồm có 3 dây

 Chân tín hiệu (dây màu xanh) được nối với chân 8 trên Arduino

 Dây màu đen của cảm biến được nối vào GND trên arduino

 Dây vào đỏ được nối vào chần nguồn 5v trên arduino

Hình 3 5 Sơ đồ nối dây giửa cảm biến hồng ngoại và Arduino

3.3.3 Khối camera Được lắp đặt ở vị trí bên cạnh cảm biến hồng ngoại, có chức năng thu nhận và chụp ảnh và truyền dử liệu ảnh đến vi điều khiển xử lý Để có chất lượng hình ảnh tốt để xử lý ảnh dễ dàng ta dùng Camera cóđộ phân giải từ 8 Megapixels, nên chọn Camera Raspberry Pi V2.1 làm khối thu tín hiệu hình ảnh Vì khối có ảnh hưởng lớn đến chất lượng ảnh cùng với việc nhận dạng và phân loại sản phẩm, chính vì vậy nhóm chọn Camera P¡ V2.1 có độ phân giải tốt 8 Megapixels Megapixel (MP) là đơn vị đo độ phân giải của thiết bị quang

Camera P¡ có kích thước nhỏ gọn 25 x 23 x 9mm, rất phù hợp cho các thí nghiệm trong mô hình nhỏ Thiết bị này được kết nối trực tiếp với máy tính nhúng Raspberry thông qua cổng giao tiếp ngoại vi CSI.

Camera được trang bị 15 chân và có thêm một buồng chụp với 4 bóng đèn LED công suất 1W, điện áp 3V, nhằm tăng cường độ sáng và giảm thiểu ánh sáng nhiễu từ bên ngoài.

Hình 3 6 Sơ đồ nối dây giửa camera và raspberry

Bộ não của mô hình là khối xử lý với sự kết hợp giửa arduino và raspberry

Arduino Uno nhận tín hiệu từ cảm biến và ra lệnh cho Raspberry Pi hoạt động Sau đó, Raspberry Pi tiếp nhận tín hiệu, phân tích và xử lý thông tin để điều khiển hoạt động của các động cơ, đồng thời gửi dữ liệu đến khói hiển thị.

Raspberry Pi và Arduino Uno cần truyền nhận dữ liệu liên tục, do đó nhóm đã chọn chuẩn truyền Uart Cả hai Kit điều khiển đều tích hợp sẵn chuẩn Uart, giúp quá trình thiết lập trở nên dễ dàng Bên cạnh đó, Uart có tốc độ truyền nhận nhanh và ổn định, đáp ứng tốt yêu cầu của hệ thống.

 2 chân GND được nối với nhau

 Chân RX của Raspberry nối với chân TX của Arduino (chân màu vàng)

 Chân TX của Raspberry nối với chân RX của Arduino (chân màu xanh)

Hình 3 7 Sơ đồ nối dây giửa raspberry và Arduino

Trong khối động cơ của nhóm, chúng em sử dụng động cơ giảm tốc JGB37-52 để điều khiển băng tải, cùng với động cơ servo MG995 để cấp phôi và gạt sản phẩm Động cơ giảm tốc JGB37-52 được điều khiển thông qua mô-đun relay.

 Chân của modun relay 5V được nối với chân 13 của Arduino

 Chân GND của module relay 5V được nối với chân GND của Arduino

 Chân VCC module relay 5V được nối với chân 5V của Arduino

Hình 3 8 Sơ đồ nối dây giửa động cơ giảm tốc và arduino Động cơ Servo mg995

Động cơ servo đóng vai trò quan trọng trong việc gạt đẩy sản phẩm xuống, nhận tín hiệu trực tiếp từ Arduino Bốn động cơ sẽ nhận tín hiệu lần lượt từ bốn chân tín hiệu của Arduino, đảm bảo hoạt động chính xác và hiệu quả.

 chân tín hiệu của servo mg995 được nối tương ứng với các chân 3,9,10,11 trên Arduino

 2 chân còn lại của servo mg995 được nối với chân GND và chân 5V của Arduino

Hình 3 9 Sơ đồ nối dây giửa động cơ servo và Arduino

Có chức năng hiển thị số lượng sản phẩm sau khi được phân loại trên màng hình led

Nhóm sử dụng màn hình LCD 16x2 để hiển thị kết quả, với các chuẩn giao tiếp với Arduino như I2C, 4bit và 8bit Chúng em chọn chuẩn I2C do tính đơn giản trong kết nối, chỉ cần 4 chân: VCC, GND, SDA và SCL.

 Chân VCC và Chân GND lần lượt được nối vào hai chân 5v và chân GND trên Arduino

 Chân SDA: của I2C trên LCD được nối vào chân A4 trên Arduino

 Chân SCL: của I2C trên LCD được nối vào chân A5 trên Arduino

Hình 3 10 Sơ đồ nối dây giữa lcd và Arduino

Sơ đồ nối dây tổng thể của hệ thống

Hình 3 11 Sơ đồ nối dây của mô hình

Hình 3 12 Sơ đồ nối dây raspberry với ardiuno

Hình 3 13 Sơ đồ nối dây arduino với các động cơ

Hình 3 14 Sơ đồ nối dây arduino với lcd, cảm biến

LẮP RÁP VÀ THI CÔNG HỆ THỐNG

Mô hình sản phẩm 3D trên creo

Creo 2 là phần mềm của hãng Prametric Technology Corp Đây là phần mềm thiết kế theo tham số, có nhiều tính năng mạnh trong lĩnh vực CAD/CAM/CNC Chỉ với Creo người dùng có thể thiết kế, tạo khuôn, lập trình gia công CNC và lập mô hình mô phỏng được tất cả các chi tiết hay vật thể

Người dùng có khả năng thiết kế đa dạng sản phẩm từ đơn giản đến phức tạp nhờ các công cụ như Extrude, Revolve, Sweep, cũng như các lệnh như Blend, Warp, Section Sweep và Sweep Blend Hơn nữa, Creo 2 hỗ trợ thiết kế sản phẩm theo tham số, giúp tạo mô hình các chi tiết máy tiêu chuẩn một cách nhanh chóng và hiệu quả.

Lắp ráp mô hình

Bộ phận lớn nhất trong mô hình có kết cấu đơn giản, dễ dàng lắp đặt, nên chúng em đã chọn lắp ráp nó đầu tiên.

Băng tải được lắp trên bộ khung gổ chắc chắn và kết nối với động cơ JGB37-520- 107RPM

4.2.2 Lắp ráp và kết nối Arduino vs Raspberry

Hình 4 4 Kết nối arduino vs raspberry

Hình 4 5 Mô hình sản phẩm

Cài chương trình và lập trình

Sau khi hoàn tất việc lắp ráp tất cả linh kiện của hệ thống, bước tiếp theo là cung cấp nguồn điện và tiến hành cài đặt hệ điều hành cùng với lập trình cho hệ thống.

Cài hệ điều hành cho Raspberry Pi 3 model B+

Hiện nay có rất nhiều hệ điều hành hổ trợ cho Raspberry pi như: Raspbian, Ubuntu Mate, RiseOS, … Ở đây chúng em chọn Raspbian để cài cho

Raspberry pi vì nó là hệ điều hành cơ bản, phổ biến nhất và do chính Raspberry

Hình 4 6 Hệ điều hành Raspbian

Raspbian có dung lượng khoảng 4 GB sau khi giải nén, vì vậy cần thẻ nhớ từ 4 GB trở lên để cài đặt hệ điều hành cho Raspberry Pi Nhóm chúng tôi đã sử dụng thẻ nhớ 16 GB để thực hiện việc cài đặt này.

Truy cập vào Raspberry Pi 3 model B+

Có nhiều phương pháp để truy cập Raspberry Pi, bao gồm việc kết nối trực tiếp chuột, màn hình và bàn phím, hoặc điều khiển qua mạng LAN bằng các phần mềm điều khiển Trong bài viết này, nhóm chúng tôi đã chọn sử dụng phần mềm VNC Viewer để điều khiển Raspberry Pi.

Bước 1: Đầu tiên ta tiến hành kết nối dây LAN giữa Raspberry Pi và Laptop

Hình 4 8 Kết nối dây LAN giữa Raspberry Pi và Laptop

Bước 2: Mở phần mềm Putty trên Laptop để truy cập vào Raspberry Pi lấy địa chỉ

 Tại mục Host Name nhập “rapberrypi”  Open  Accept, để truy cập vào Raspberry Pi

Hình 4 9 Truy cập vào Raspberry Pi

 Tiếp tục ta tiến hành nhập câu lệnh “ifconfig”  Enter để lấy địa chỉ IP của Raspberry Pi

Hình 4 10 Lấy địa chỉ IP của Raspberry Pi

Bước 3: Mở phần mềm VNC viewer để truy cập vào Raspberry Pi thông qua tài khoảng đã cài mặt định: “pi” mật khẩu:”123456789”

Hình 4 11 Tên đăng nhập và mật khẩu truy cập vào Raspberry Pi

Sau khi truy cập vào Raspberry Pi, chúng ta sẽ cài đặt Python và Arduino trực tiếp trên màn hình laptop để tiến hành lập trình.

Hình 4 12 Cài Python và Arduino trên Raspberry Pi

Hướng dẫn sử dụng và thao tác

Có 2 cách để Rapberry Pi hoạt động: tự động và thủ công Ở đây nhóm thực hiện thao tác tự động vì ta chỉ cần cấp nguồn cho Rapberry Pi nó có thể tự hoạt động mà ta không cần bất kì một thao tác nào khác Để sử dụng Raspberry Pi tự động ta cần thực hiện các bước sau:

Bước 1: Ta truy cập vào Terminal của Rapberry Pi tiến hành gõ dòng lệnh:

“sudo nano /etc/rc.local” Enter

Bước 2: Nhập đường dẫn file cần chạy khi khởi động

 Tại mục Fi ta gõ cấu trúc lệnh: python “đường dẫn file cần chạy” &

 Nhấn tổ hợp phím Ctrl+X để lưu thay đổi

* Hướng dẫn sử dụng phần cứng

Sau khi cấp nguồn cho Raspberry Pi, hãy nhấn công tắc nguồn (nút màu đỏ) và chờ khoảng 1 phút để thiết bị khởi động hoàn toàn, sau đó hệ thống sẽ tự động phân loại.

Nếu trong thời gian đang phân loại ta muốn thiết lập lại giá trị ban đầu bằng cách ta tiến hành nhấn nhả nút Reset (nút màu xanh)

 Để sản phẩm xa tầm tay trẻ em

 Đặt sản phẩm tại nơi bằng phẳng, khô ráo, thoáng mát tránh tiếp xúc trực tiếp với ánh nắng

 Không để sản phẩm chịu tác động của ngoại lực như va chạm mạnh, rơi rớt

 Cấp đúng nguồn 220VAC và đảm bảo nguồn điện ổn định để hệ thống hoạt động ổn định

 Sản phẩm không hoạt động: Kiểm tra nguồn điện cấp đúng 220VAC, kiểm tra dây cắm,

Nếu sản phẩm bị vỡ, hư hỏng hoặc đã được kiểm tra nguồn điện mà vẫn không hoạt động, bạn cần liên hệ với kỹ thuật viên để được hỗ trợ Tuyệt đối không tự ý tháo mở hoặc thay thế linh kiện bên trong hộp điều khiển.

TỔNG KẾT VÀ KẾT LUẬN

Tổng kết

Sau quá trình nghiên cứu và tham khảo tài liệu, dưới sự hướng dẫn nhiệt tình của cô Nguyễn Thị Thanh Vi, nhóm đã thành công trong việc chế tạo mô hình “Ứng dụng xử lý ảnh trong hệ thống phân loại sản phẩm” dựa trên ngôn ngữ Python và thư viện OpenCV, thực hiện trên Kit Raspberry và Arduino Uno Mô hình hoạt động tương đối chính xác, đáp ứng đầy đủ yêu cầu của đề tài.

Trong quá trình thực hiện nhóm đã gặp một số khó khăn như:

 Kiến thức về lập trình còn hạn hẹp

 Lần đầu tiếp xúc với Raspberry và Arduino nên chưa nắm rõ mọi thứ

 Việc cài đặt một số chương trình còn khó khăn

 Lần đầu làm một đồ án lớn nên việc phân chia công việc giữa các thành viên chưa tốt

Trong quá trình thực hiện đề tài, nhóm đã sử dụng Raspberry Pi để khám phá các chức năng cơ bản của máy tính nhúng, bao gồm việc tạo file mới và tìm hiểu về Python trên Raspberry Ngoài ra, nhóm còn tự cài đặt hệ điều hành cho thiết bị và kết nối với camera để chụp ảnh từ Raspberry Pi.

Sau quá trình nghiên cứu phương pháp nhận dạng và phân loại sản phẩm, nhóm đã thành công trong việc phân loại ba màu cơ bản: đỏ, xanh và vàng Những sản phẩm không thuộc một trong ba màu này sẽ được xem là sản phẩm khác Đồng thời, số lượng sản phẩm theo từng màu sẽ được đếm và hiển thị trên giao diện LCD.

Kết quả của quá trình nhóm đã đạt như:

 Hoàn thành được đồ án như mục tiêu đặt ra

 Làm quen với Raspberry, Arduino

 Được tiếp xúc, sử dụng với các linh kiện điện tử như cảm biến hồng ngoại, camera, động cơ servo…

 Tiếp xúc và sử dụng ngôn ngữ lập trình Python và thư viện OpenCV

Raspberry Pi 3 Model B+ là lựa chọn lý tưởng cho các dự án vừa và nhỏ nhờ kích thước gọn nhẹ Tuy nhiên, nó có những hạn chế khi áp dụng cho các hệ thống lớn hơn.

 Arduino Uno R3 rất đa dùng nhiều công năng phù hợp với sinh viên làm đồ án dể lập trình dể kết nối, giá thành lại rẻ

Module Camera Pi có giá thành phải chăng và khả năng kết nối linh hoạt, mặc dù độ phân giải không quá cao, nhưng chất lượng ảnh vẫn đáp ứng tốt cho việc xử lý hình ảnh.

Sau nhiều lần thử nghiệm, hệ thống đã được thiết kế và xây dựng hoạt động ổn định, với cảm biến có khả năng đọc nhanh Thời gian từ khi chụp ảnh đến khi đưa ra sai số trung bình đạt dưới 5%.

Kết luận

Tổng hợp kết quả đạt được và so sánh với yêu cầu của giảng viên và mục tiêu thiết kế, hệ thống hoàn thiện và chính xác hơn

Mô hình phần cứng hiệu quả với thiết bị nhỏ gọn, dễ lắp đặt và tiết kiệm chi phí, đồng thời nhận diện tốt hầu hết các màu sắc của sản phẩm đầu ra, đảm bảo chất lượng sản phẩm cao.

Hệ thống còn những hạn chế sau:

 Quá trình xử lý còn tương đối chậm

Hệ thống chụp ảnh hiện tại không đủ ánh sáng tối ưu, dẫn đến việc chỉ có thể phân loại sản phẩm theo màu sắc mà không phát hiện được các lỗi sản phẩm.

Phần tài liệu tham khảo

[1] PGS.TS Đỗ Năng Toàn, TS Phạm Việt Bình, “Giáo trình Xử Lý Ảnh”, Đại học Thái Nguyên, 2007

[2] Sách Mastering OpenCV 4 with Python

[3] Sơ lược về cảm biế hồng ngoại E18-D80NK, Datasheet

[4] Sơ lược về động cơ DC – Khái niệm ,phân loại và điều khiển tốc độ http://motor2hand.com/, 2017

[5] Ứng dụng và nguyên lí hoạt động của Servo, https://www.vincss.org/, 2018

[6] Động cơ servo MG996, Datasheet

[7] Cấu tạo, phân loại , ứng dụng băng tải, TÍNH TOÁN và THIẾT kế BĂNG tải (123docz.net)

[8] Sơ lược về Raspberry Pi3, https://dientuviet.com/gioi-thieu-ve-raspberry-pi-3/

[9] Tài liệu về Aduino r3, http://arduino.vn/bai-viet/42-arduino-uno-r3

[10] Opencv-Python , https://docs.opencv.org/, 2018

[11] Opencv xử lí màu chuyển hệ màu , https://viblo.asia/, 2019

[12] Opencv xử lí ảnh chuyển hệ màu , https://techblog.vn/

To begin the process of capturing video, the necessary libraries are imported, including OpenCV and NumPy A video capture object is initialized with a resolution of 960x600 pixels Additionally, a serial connection is established on the specified port, configured with a baud rate of 9600, no parity, one stop bit, eight data bits, and a timeout of one second.

The code processes an image frame to identify colors in specific regions It retrieves the frame's dimensions to calculate the center coordinates, then draws a circle at that center The RGB values of the pixel at the center are extracted for color detection Defined color ranges for red, yellow, blue, and green are established using NumPy arrays The RGB values of the centered pixel are printed for analysis The code includes a conditional check to determine if the pixel's color falls within the specified yellow range.

(min_mau_y[1]

Ngày đăng: 24/09/2022, 07:58

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] PGS.TS Đỗ Năng Toàn, TS. Phạm Việt Bình, “Giáo trình Xử Lý Ảnh”, Đại học Thái Nguyên, 2007 Sách, tạp chí
Tiêu đề: Giáo trình Xử Lý Ảnh
[4] Sơ lược về động cơ DC – Khái niệm ,phân loại và điều khiển tốc độ. http://motor2hand.com/, 2017 Link
[5] Ứng dụng và nguyên lí hoạt động của Servo, https://www.vincss.org/, 2018 Link
[8] Sơ lược về Raspberry Pi3, https://dientuviet.com/gioi-thieu-ve-raspberry-pi-3/ Link
[9] Tài liệu về Aduino r3, http://arduino.vn/bai-viet/42-arduino-uno-r3 Link
[10] Opencv-Python , https://docs.opencv.org/, 2018 Link
[11] Opencv xử lí màu chuyển hệ màu , https://viblo.asia/, 2019 Link
[12] Opencv xử lí ảnh chuyển hệ màu , https://techblog.vn/ Link
[2] Sách Mastering OpenCV 4 with Python Khác
[3] Sơ lược về cảm biế hồng ngoại E18-D80NK, Datasheet Khác
[6] Động cơ servo MG996, Datasheet Khác
[7] Cấu tạo, phân loại , ứng dụng băng tải, TÍNH TOÁN và THIẾT kế BĂNG tải (123docz.net) Khác

HÌNH ẢNH LIÊN QUAN

Hình 2.2 điểm ảnh - ỨNG DỤNG sử lý ẢNH TRONG hệ THỐNG PHÂN LOẠI sản PHẨM
Hình 2.2 điểm ảnh (Trang 20)
Hình 2.3 Các lân cận ảnh - ỨNG DỤNG sử lý ẢNH TRONG hệ THỐNG PHÂN LOẠI sản PHẨM
Hình 2.3 Các lân cận ảnh (Trang 21)
Hình 2.5 Độ phân giải của ảnh - ỨNG DỤNG sử lý ẢNH TRONG hệ THỐNG PHÂN LOẠI sản PHẨM
Hình 2.5 Độ phân giải của ảnh (Trang 23)
Bảng 2.2 : Lợng rác thải sinh hoạt của Hà Nội qua các năm - ỨNG DỤNG sử lý ẢNH TRONG hệ THỐNG PHÂN LOẠI sản PHẨM
Bảng 2.2 Lợng rác thải sinh hoạt của Hà Nội qua các năm (Trang 23)
Hình 2 .8 Hệ màu HSV - ỨNG DỤNG sử lý ẢNH TRONG hệ THỐNG PHÂN LOẠI sản PHẨM
Hình 2 8 Hệ màu HSV (Trang 27)
Hình 2. 12 Code khi nhập vào Python và nhấn RUN ĐỂ CHẠY Python - ỨNG DỤNG sử lý ẢNH TRONG hệ THỐNG PHÂN LOẠI sản PHẨM
Hình 2. 12 Code khi nhập vào Python và nhấn RUN ĐỂ CHẠY Python (Trang 31)
Hình 2. 13 Sơ đồ chân arduino - ỨNG DỤNG sử lý ẢNH TRONG hệ THỐNG PHÂN LOẠI sản PHẨM
Hình 2. 13 Sơ đồ chân arduino (Trang 35)
Hình 2. 15 Raspberry pi 3. - ỨNG DỤNG sử lý ẢNH TRONG hệ THỐNG PHÂN LOẠI sản PHẨM
Hình 2. 15 Raspberry pi 3 (Trang 40)
Hình 2. 18 Động cơ servo. - ỨNG DỤNG sử lý ẢNH TRONG hệ THỐNG PHÂN LOẠI sản PHẨM
Hình 2. 18 Động cơ servo (Trang 45)
b. Thông số kỹ thuật Thông số kỹ thuật: - ỨNG DỤNG sử lý ẢNH TRONG hệ THỐNG PHÂN LOẠI sản PHẨM
b. Thông số kỹ thuật Thông số kỹ thuật: (Trang 47)
Hình 2. 22 Camera pi. - ỨNG DỤNG sử lý ẢNH TRONG hệ THỐNG PHÂN LOẠI sản PHẨM
Hình 2. 22 Camera pi (Trang 48)
Hình 2. 24 Băng tải. - ỨNG DỤNG sử lý ẢNH TRONG hệ THỐNG PHÂN LOẠI sản PHẨM
Hình 2. 24 Băng tải (Trang 50)
Hình 2. 25 Lcd 16x2. - ỨNG DỤNG sử lý ẢNH TRONG hệ THỐNG PHÂN LOẠI sản PHẨM
Hình 2. 25 Lcd 16x2 (Trang 51)
Hình 3.1 Lưu đồ thuật toán - ỨNG DỤNG sử lý ẢNH TRONG hệ THỐNG PHÂN LOẠI sản PHẨM
Hình 3.1 Lưu đồ thuật toán (Trang 54)
Hình 3.2 Sơ đồ khối - ỨNG DỤNG sử lý ẢNH TRONG hệ THỐNG PHÂN LOẠI sản PHẨM
Hình 3.2 Sơ đồ khối (Trang 56)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN