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

(Đồ án tốt nghiệp) băng chuyền nhận dạng, phân loại sản phẩm theo mẫu, kết hợp giám sát hệ thống thông qua mạng

96 6 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

Định dạng
Số trang 96
Dung lượng 4,43 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (16)
    • 1.1. Giới thiệu tình hình nghiên cứu hiện nay (16)
    • 1.2. Tính cấp thiết của đề tài (0)
    • 1.3. Mục tiêu nghiên cứu (16)
    • 1.4. Nhiệm vu c̣nghiên cƣƣ́u (0)
    • 1.5. Đối tƣợng và phạm vi nghiên cứu (17)
    • 1.6. Phương phứáp nghiên cưứu (0)
    • 1.7. Bố cục của Đồ án (0)
  • CHƯƠNG 2: CƠ SỞ LÍ THUYẾT (17)
    • 2.1. Tìm hiểu xử lý ảnh (20)
      • 2.1.1. Khái niệm xử lý ảnh (20)
      • 2.1.2. Các vấn đề cơ bản trong xử lý ảnh (21)
      • 2.1.3. Giới thiệu ảnh số (23)
      • 2.1.4. Các đại lƣợng đặc trƣng (23)
      • 2.1.5. Ảnh màu và xử lý ảnh màu (25)
      • 2.1.6. Phân đoạn ảnh (28)
    • 2.2. Kit Arduino UNO R3 (36)
      • 2.2.1. Giới thiệu (36)
      • 2.2.2. Cấu trúc (37)
      • 2.2.3. Các tính năng hỗ trợ (0)
      • 2.2.4. Phương thức lập trình (0)
    • 2.3. Camera LifeCam HD-3000 (42)
      • 2.3.1. Giới thiệu (42)
      • 2.3.2. Tính năng hỗ trợ (42)
    • 2.4. Matlab R2014a (43)
      • 2.4.1. Giới thiệu (43)
      • 2.4.2. Kết nối Camera với Matlab (43)
      • 2.4.3. Kết nối Arduino với Matlab (50)
      • 2.4.4. Tìm hiểu về GUI (54)
    • 2.5. Công nghệ IoT (54)
      • 2.5.1. Giới thiệu (54)
      • 2.5.2 Ngôn ngữ HTML (55)
  • CHƯƠNG 3: THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG (60)
    • 3.1. Yêu cầu và sơ đồ khối hệ thống (60)
      • 3.1.1. Yêu cầu của hệ thống (0)
      • 3.1.2. Sơ đồ khối và chức năng mỗi khối (60)
    • 3.2. Thiết kế hệ thống phần cứng (61)
      • 3.2.1. Khối nguồn (61)
      • 3.2.2. Khối điều khiển ngoại vi (64)
      • 3.2.3. Khối đếm sản phẩm, giao tiếp mạng (65)
      • 3.2.4. Motor (0)
      • 3.2.5. Cánh tay robot (0)
    • 3.3. Lập trình phần mềm (70)
      • 3.3.1. Lưu đồ giải thuật (70)
      • 3.3.2. Thiết kế giao diện web và giải thích hoạt động (82)
    • 3.4. Giao diện chương trình (82)
  • CHƯƠNG 4: KẾT QUẢ THỰC HIỆN (19)
    • 4.1. Kết quả phần cứng (84)
    • 4.2. Kết quả phần mềm (85)
      • 4.2.1. Giao diện web (85)
      • 4.2.2. Giao diện Guide Matlab (86)
  • CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (88)
    • 5.1. Kết luận (88)
    • 5.2. Hướng phát triển (88)

Nội dung

TỔNG QUAN

Giới thiệu tình hình nghiên cứu hiện nay

Trong sản xuất công nghiệp hiện đại, tự động hóa đóng vai trò quan trọng trong việc kiểm tra và phân loại sản phẩm Quy trình này đảm bảo rằng các sản phẩm đạt chất lượng cao và đồng đều trước khi hoàn thành, đồng thời loại bỏ những sản phẩm không đạt tiêu chuẩn hoặc bị hỏng hóc.

Việc phân loại bánh trước khi đóng gói là rất quan trọng, cần loại bỏ các sản phẩm bị vỡ hoặc không đúng hình dạng quy định Để nâng cao năng suất sản xuất, tiết kiệm thời gian và chi phí, cũng như giảm thiểu sai sót, tự động hóa trong quy trình phân loại và kiểm tra là cần thiết Hiện nay, việc sử dụng robot trong dây chuyền sản xuất đã trở thành xu hướng phổ biến.

Để đáp ứng nhu cầu thị trường, nghiên cứu đã được thực hiện nhằm ứng dụng công nghệ xử lý ảnh để nhận dạng hình dạng sản phẩm theo mẫu, kết hợp với cánh tay gắp sản phẩm.

Hiện nay, công nghệ internet đang phát triển mạnh mẽ, đặc biệt là Internet of Things (IoT), cho phép kết nối mọi vật, động vật và con người qua mạng Nhận thấy tầm quan trọng của điều này, các nhà nghiên cứu đã tiến hành giám sát hệ thống thông qua mạng để nâng cao hiệu quả và độ chính xác trong quản lý.

1.2 Tính cấp thiết của đề tài

Như đã nói trên người thực hiện có đề xuất:

- Ứng dụng công nghệ xử lí ảnh vào nhận dạng sản phẩm.

- Sử dụng cánh tay để gắpsản phẩm tự động.

- Giám sát hệ thống thông qua mạng.

- Thiết kế mô hình phần cứng.

Đề tài này nhằm phát triển một chương trình nhận dạng hình dạng sản phẩm dựa trên mẫu bằng phần mềm MATLAB Chương trình có khả năng nhận diện các hình dạng tùy chọn như vuông, tròn, tam giác, hoặc bất kỳ hình dạng nào miễn là có mẫu sẵn.

Mục tiêu nghiên cứu

Đề tài này nhằm phát triển một chương trình nhận dạng hình dạng sản phẩm dựa trên mẫu bằng phần mềm Matlab Chương trình có khả năng nhận diện các hình dạng tùy chọn như vuông, tròn, tam giác, hoặc bất kỳ hình dạng nào miễn là có mẫu sẵn.

Nhiệm vu c̣nghiên cƣƣ́u

Nghiên cứu này tập trung vào việc tự động hóa quy trình phân loại sản phẩm theo mẫu, đồng thời cho phép giám sát hoạt động của hệ thống qua mạng.

Bố cục của Đồ án

Nghiên cứu này tập trung vào việc tự động hóa quy trình phân loại sản phẩm theo mẫu, đồng thời cho phép giám sát hoạt động của hệ thống qua mạng.

1.5 Đối tƣợng và phạm vi nghiên cứu

Với thời gian có hạn nên người nghiên cứu chỉ thực hiện nghiên cứu những vấn đề cơ bản sau:

- Nghiên cứu cấu trúc ảnh, các thuật toán xử lý ảnh.

- Nghiên cứu nhận dạng những mẫu có kích thước khác nhau.

- Nghiên cứu giao tiếp phần cứng camera, arduino, ngoại vi với matlab.

- Nghiên cứu tìm hiểu về cánh tay robot gắp sản phẩm.

- Nghiên cứu công nghệ IOT, giám sát hệ thống qua mạng.

- Nghiên cứu thiết kế mô hình phần cứng.

1.6 Phương ph́áp nghiên cứu

- Tổng hợp tài liệu và áp dụng kiến thực đã học.

- Thiết kế mô hình phần cứng hệ thống.

- Chuyên cần nghiên cứu dưới sự hướng dẫn của giảng viên hướng dẫn.

1.7 Bố cục của Đồ án

Giới thiệu sơ lƣợc về tình hình nguyên cứu hiện nay cũng nhƣ tính cấp thiết đề tài.

CƠ SỞ LÍ THUYẾT

Tìm hiểu xử lý ảnh

2.1.1 Khái niệm xử lý ảnh

Xử lý ảnh là một lĩnh vực khoa học và công nghệ đang phát triển nhanh chóng, thu hút sự quan tâm từ các trung tâm nghiên cứu và ứng dụng, đặc biệt là trong việc phát triển máy tính chuyên dụng Là một phân ngành của xử lý tín hiệu số, xử lý ảnh tập trung vào pixel của ảnh và bao gồm bốn lĩnh vực chính: nâng cao chất lượng ảnh, nhận dạng ảnh, nén ảnh và truy vấn ảnh.

Xử lý ảnh hiện nay được ứng dụng rộng rãi trong cuộc sống với nhiều lợi ích đáng kể, bao gồm các công nghệ như Photoshop, nén ảnh và video, nhận dạng biển số xe, khuôn mặt, chữ viết, cùng với các lĩnh vực chuyên sâu như xử lý ảnh thiên văn, y tế và nhận dạng vân tay.

Hình 2.1: Matlab – Phần mềm xử lý ảnh thông dụng

Quá trình xử lý ảnh là việc chỉnh sửa và biến đổi hình ảnh đầu vào để đạt được kết quả mong muốn, có thể là một bức ảnh hoàn hảo hoặc một kết luận cụ thể.

Các phương pháp xử lý ảnh chủ yếu tập trung vào hai ứng dụng chính: nâng cao chất lượng ảnh và phân tích ảnh Nâng cao chất lượng ảnh đã được áp dụng từ những năm 1920, khi ảnh được truyền qua cáp từ London đến New York Vấn đề này liên quan đến việc cải thiện phân bố mức sáng và độ phân giải của ảnh.

Việc nâng cao chất lượng ảnh đã bắt đầu phát triển từ những năm 1955, nhờ vào sự bùng nổ của công nghệ máy tính sau Thế chiến thứ hai, tạo điều kiện thuận lợi cho xử lý ảnh số Kể từ năm 1964, các phương tiện nâng cao chất lượng và nhận dạng ảnh đã liên tục phát triển Các phương pháp trí tuệ nhân tạo như mạng nơ-ron nhân tạo, thuật toán xử lý hiện đại và công cụ nén ảnh ngày càng được áp dụng rộng rãi trên toàn cầu và đạt được nhiều kết quả tích cực.

2.1.2 Các vấn đề cơ bản trong xử lý ảnh a Khử nhiễu

Nhiễu hệ thống là loại nhiễu có quy luật, có thể được khử bằng các phép biến đổi Nguyên nhân gây ra nhiễu này có thể là do chất lượng camera, đặc điểm thu nhận ảnh như ảnh không trong, hoặc ảnh nhòe do tốc độ màn trập không đủ nhanh Ngoài ra, nhiễu cũng xuất hiện khi chụp ảnh vào ban đêm với khẩu độ nhỏ, dẫn đến hiện tượng hạt nhiễu.

Nhiễu ngẫu nhiên: Là nhiễu không có quy luật, vết bẩn không rõ nguyên nhân, khắc phục bằng các phép lọc.

Hình 2.2: Ví dụ về một hình ảnh bị nhiễu b Chỉnh mức xám

Nhằm khắc phục tính không đồng đều của hệ thống gây ra Thông thường có hai hướng tiếp cận:

Để giảm số mức xám trong ảnh, bạn có thể thực hiện bằng cách nhóm các mức xám gần nhau thành một Nếu chỉ có hai mức xám, quá trình này sẽ chuyển đổi ảnh về dạng nhị phân.

- Tăng số mức xám: Thực hiện nội suy ra các mức xám trung gian bằng kỹ thuật nội suy, nhằm tăng cường độ mịn cho ảnh.

Trong nghiên cứu này, tác giả áp dụng phương pháp giảm số mức xám và chuyển đổi ảnh sang đen trắng nhằm đơn giản hóa quá trình nhận dạng Phân tích ảnh được thực hiện để nâng cao hiệu quả nhận diện.

Trích chọn đặc điểm là một bước quan trọng trong quá trình xử lý và phân tích ảnh, giúp nhận dạng đối tượng hiệu quả Các đặc điểm được lựa chọn sẽ phụ thuộc vào mục đích cụ thể của việc nhận dạng trong xử lý ảnh Dưới đây là một số đặc điểm tiêu biểu của ảnh.

- Đặc điểm không gian: Phân bố mức xám, phân bố xác suất, biên độ, điểm uốn

Các đặc điểm biến đổi được xác định thông qua quá trình lọc vùng, trong đó các bộ vùng được gọi là "mặt nạ đặc điểm" (feature mask) Những mặt nạ này thường có hình dạng đa dạng như chữ nhật, tam giác, hoặc cung tròn, và được sử dụng để trích xuất các đặc điểm loại một cách hiệu quả.

Đặc điểm biên và đường biên là những yếu tố quan trọng để xác định đặc trưng của đối tượng, giúp trích xuất các thuộc tính bất biến cần thiết cho việc nhận dạng Việc thu nhận và biểu diễn ảnh cũng đóng vai trò quan trọng trong quá trình này.

Các thiết bị thu nhận ảnh, chủ yếu là camera số, ngày càng trở nên đa dạng và hiện đại, từ camera tích hợp trên điện thoại đến máy ảnh chuyên dụng Với sự tiến bộ công nghệ, chất lượng camera được nâng cao về phân giải và màu sắc Camera bao gồm hai bộ phận chính là ống kính và cảm biến ảnh, trong đó ánh sáng đi qua ống kính sẽ tác động lên từng pixel của cảm biến, tạo ra các mức xám khác nhau tùy thuộc vào lượng ánh sáng Tập hợp các pixel này sẽ cho ra bức ảnh gần giống nhất với khung hình đã chụp.

Ảnh có thể được biểu diễn qua thiết bị đọc file ảnh hoặc in ấn trên giấy, và chất lượng hình ảnh ảnh hưởng lớn đến việc hiển thị và in ấn Độ phân giải cao giúp ảnh hiển thị sắc nét hơn, do đó việc chọn độ phân giải phù hợp cần dựa vào nhu cầu sử dụng và đặc trưng của từng ảnh.

2.1.3 Giới thiệu ảnh số Ảnh số là tập hợp các điểm ảnh với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật Ảnh là một sự vật đại diện cho con người, sinh vật hay sự vật nào đó…, ảnh động nhƣ ta thấy trên truyền hình thực chất là tập hợp của rất nhiều ảnh tĩnh liên tiếp, khi một ảnh đƣợc số hóa thì nó trở thành ảnh số và ảnh số này lại là một tập hợp của rất nhiều phần tử ảnh đƣợc gọi là điểm ảnh hay gọi là “pixel” Mỗi điểm ảnh lại được biểu diễn dưới dạng một số hữu hạn các bit.

Chúng ta có thể chia ảnh số làm 3 loại khác nhau:

- Ảnh đen trắng: Mỗi điểm ảnh đƣợc biểu diễn bởi một bit.

Ảnh xám là loại hình ảnh mà mỗi điểm ảnh được biểu diễn bằng các mức chói khác nhau, thường sử dụng 256 mức chói tương đương với 8 bit cho mỗi điểm ảnh.

Kit Arduino UNO R3

Dòng mạch Arduino UNO, một trong những lựa chọn phổ biến nhất cho lập trình, hiện đã phát triển đến thế hệ thứ 3 (R3).

Các ƣu điểm Arduino UNO R3:

- Arduino là nền tảng phát triển các ứng dụng vi điều khiển nhanh và thuận tiện.

- Ứng dụng rộng rãi trong các thiết kế (cả nghiên cứu lẫn thương mại).

- Đƣợc hỗ trợ bởi cộng đồng lớn.

- Arduino Uno là dòng Arduino phổ biến nhất.

Vi điều khiển Điện áp hoạt động

Dòng tiêu thụ Điện áp vào khuyên dùng Điện áp vào giới hạn

Dòng tối đa trên mỗi chân I/O

Bảng 2.1: Thông số của Arduino UNO R3

2.2.2 Cấu trúc a Các cổng vào, ra

Arduino UNO sở hữu 14 chân digital có khả năng đọc và xuất tín hiệu với hai mức điện áp là 0V và 5V Mỗi chân có dòng vào/ra tối đa là 40mA Các chân đều được trang bị điện trở pull-up có sẵn trong vi điều khiển ATmega328, nhưng mặc định không được kết nối.

Hình 2.14: Vi điều khiển trong Arduino UNO R3

Arduino UNO sử dụng ba vi điều khiển 8bit AVR là ATmega8, ATmega168 và ATmega328, cho phép thực hiện các tác vụ đơn giả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 trạm đo nhiệt độ - độ ẩm với hiển thị trên màn hình LCD.

Arduino UNO có thể nhận nguồn 5V qua cổng USB hoặc nguồn ngoài với điện áp khuyên dùng từ 7-12V DC, giới hạn từ 6-20V Sử dụng pin vuông 9V là phương án hợp lý khi không có nguồn từ cổng USB Việc cung cấp điện áp vượt quá giới hạn trên có thể gây hỏng hóc cho Arduino UNO.

GND (Ground) là cực âm của nguồn điện cung cấp cho Arduino UNO Khi sử dụng các thiết bị với nguồn điện riêng biệt, cần phải nối các chân GND lại với nhau để đảm bảo hoạt động ổn định.

5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA.3.3V: cấp điện áp 3.3V đầu ra Dòng tối đa cho phép ở chân này là 50mA.

Vin (Voltage Input): Để cấp nguồn ngoài cho Arduino UNO, bạn nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND.

IOREF trên Arduino UNO cho phép đo điện áp hoạt động của vi điều khiển, luôn duy trì ở mức 5V Tuy nhiên, không nên sử dụng chân này để cấp nguồn 5V vì chức năng chính của nó không phải là cung cấp điện.

RESET: Việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET đƣợc nối với GND qua 1 điện trở 10KΩ. e Bộ nhớ

Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:

32KB bộ nhớ Flash: Những đoạn lệnh lập trình sẽ được lưu trữ trong bộ nhớ Flash của vi điều khiển.

SRAM (Static Random Access Memory) có dung lượng 2KB, nơi lưu trữ giá trị của các biến được khai báo trong lập trình Số lượng biến càng nhiều thì yêu cầu bộ nhớ RAM càng lớn Tuy nhiên, tình trạng đầy bộ nhớ RAM rất hiếm khi xảy ra Lưu ý rằng khi mất điện, dữ liệu trên SRAM sẽ bị mất.

EEPROM (Electrically Erasable Programmable Read Only Memory) có dung lượng 1KB, hoạt động giống như một ổ cứng mini, cho phép người dùng đọc và ghi dữ liệu mà không lo mất mát khi mất điện, khác với dữ liệu trên SRAM.

Chân Serial 0 (RX) và 1 (TX) trên Arduino Uno được sử dụng để truyền (TX) và nhận (RX) dữ liệu TTL Serial, cho phép giao tiếp với các thiết bị khác Kết nối Bluetooth thường sử dụng giao thức Serial không dây Nếu không cần giao tiếp Serial, nên tránh sử dụng hai chân này để đảm bảo hiệu suất tối ưu.

Chân PWM trên các chân 3, 5, 6, 9, 10 và 11 cho phép xuất xung PWM với độ phân giải 8 bit, tương ứng với giá trị từ 0 đến 255, tạo ra điện áp từ 0V đến 5V thông qua hàm analogWrite() Điều này có nghĩa là bạn có thể điều chỉnh điện áp đầu ra ở những chân này linh hoạt hơn, thay vì chỉ có hai mức cố định như các chân khác.

Chân giao tiếp SPI bao gồm 10 (SS), 11 (MOSI), 12 (MISO), và 13 (SCK) Ngoài việc thực hiện các chức năng cơ bản, bốn chân này còn hỗ trợ truyền dữ liệu qua giao thức SPI với các thiết bị khác.

LED 13: Trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L) Khi bấm nút Reset, sẽ thấy đèn này nhấp nháy để báo hiệu Nó đƣợc nối với chân số 13 Khi chân này được người dùng sử dụng, LED sẽ sáng.

Arduino UNO được trang bị 6 chân analog (A0 đến A5) cho phép đọc giá trị điện áp trong khoảng 0V đến 5V với độ phân giải tín hiệu 10 bit (0 đến 1023) Chân AREF trên board có thể nhận điện áp tham chiếu, cho phép đo điện áp trong khoảng 0V đến 2.5V nếu cấp 2.5V vào chân này, đồng thời vẫn duy trì độ phân giải 10 bit Ngoài ra, Arduino UNO còn có 2 chân A4 (SDA) và A5 (SCL) hỗ trợ giao tiếp I2C/TWI với các thiết bị khác.

2.2.4 Phương pháp lập trình Để lập trình cũng nhƣ gửi lệnh và nhận tín hiệu từ mạch Arduino, nhóm phát triển dự án này đã cũng cấp đến cho người dùng một môi trường lập trình Arduino được gọi là Arduino IDE (Intergrated Development Environment) như hình dưới đây.

Hình 2.15: Phần mềm Ardunio IDE

Camera LifeCam HD-3000

2.3.1 Giới thiệu Ðể mô phỏng có tính thực tế hơn, người thực hiện đã sử dụng Webcam Microsoft LifeCam HD-3000 với kích thuớc khung hình là 1280x720 pixel. Ðặc biệt cho hình ảnh chi tiết, sắc nét với công nghệ TrueColor dộc quyền của Microsoft.

Camera này có khả năng tự cân bằng ánh sáng, cho chất luợng hình ảnh tốt phục vụ cho quá trình xử lí ảnh.

- Hỗ trợ video chất lƣợng HD 720p

- Cung cấp màn ảnh rộng chuẩn 16:9

-Công nghe TrueColor cho hình ảnh sống động nhƣ thật trong bất kỳ điều kiện ánh sáng

- Khả năng giảm tiếng ồn tối đa

- Sản phẩm dễ dàng tương thích với Laptop, Destop và Tablet PC Đặc điểm chính:

Kích thước sản phẩm (D x R x C cm)

Hệ điều hành hỗ trợ webcam

Bảng 2.2: Đặc điểm Camera LifeCam HD-3000

Matlab R2014a

MATLAB là một môi trường lập trình và tính toán số được phát triển bởi công ty MathWorks Nó hỗ trợ tính toán với ma trận, vẽ đồ thị hàm số và biểu đồ thông tin, thực hiện các thuật toán, tạo giao diện người dùng, và kết nối với các chương trình viết bằng nhiều ngôn ngữ lập trình khác.

MATLAB giúp đơn giản hóa việc giải quyết các bài toán tính toán kĩ thuật so với các ngôn ngữ lập trình truyền thống nhƣ C, C++, và Fortran.

MATLAB là ngôn ngữ tính toán khoa học phổ biến, được ứng dụng rộng rãi trong nhiều lĩnh vực như xử lý tín hiệu và ảnh, truyền thông, thiết kế điều khiển tự động, đo lường kiểm tra, phân tích mô hình tài chính và tính toán sinh học Với hàng triệu kỹ sư và nhà khoa học làm việc trong cả môi trường công nghiệp và hàn lâm, MATLAB đóng vai trò quan trọng trong nghiên cứu và phát triển công nghệ.

2.4.2 Kết nối Camera với Matlab a Thƣ viện hỗ trợ giao tiếp Camera với Matlab

Cài đặt thƣ viện hỗ trợ Camera với matlab

Hình 2.16: Cài đặt thư viện Camera vs Matlab bước 1

Hình 2.17: Cài đặt thư viện Camera vs Matlab bước 2

Hình 2.19: Cài đặt thư viện Camera với Matlab bước 3

Image Acquisition Toolbox and Image Processing are a collection of MATLAB functions designed for capturing and processing digital images from imaging devices.

- Thu thập hình ảnh từ các thiết bị thu hình khác nhau, từ loại chuyên dùng đến loại rẻ tiền nhƣ Webcam (giao tiếp qua cổng USB).

- Trích hình ảnh từ luồng dữ liệu video.

- Thiết lập các calback cho các sự kiện khác nhau.

- Chuyển dữ liệu hình ảnh vào không gian workspace của Matlab để xử lý ảnh tiếp theo. b Kết nối Camera với Matlab

- Gắn thiết bị thu hình vào máy.

- Cài đặt driver (trình điều khiển) cho thiết bị.

- Xem thử hình ảnh video trên máy tính thông qua phần mềm của nhà sản xuất.

- Ta cần chỉ định cho Matlab biết phần cứng nào dùng để lấy dữ liệu (vì có thể có nhiều camera kết nối với PC).

- Gõ lệnh imaghwinfo để biết tên các loại thiết bị có thể dùng.

Mỗi thiết bị được chỉ định theo loại thiết bị (tên adaptor), với các thiết bị cùng loại kết nối vào PC sẽ được đánh số IC Cụ thể, thiết bị đầu tiên có deviceID = 1 và thiết bị thứ hai có deviceID = 2.

-Để liệt kê xem loại winvideo có bao nhiêu thiết bị gắn vào máy tính, ta cũng dùng lệnh imaqhwinfor với đối số là winvideo:

>> imaqhwinfo(„winvideo‟) ans AdaptorDllName: [1x81 char]

- Có một thiết bị với DeviceID = 1 Ta có thể tìm hiểu thông tin về thiết bị này.

> imaqhwinfo(„winvideo‟, 1) ans DefaultFormat: „RGB24_320x240‟

DeviceFileSupported: 0 DeviceName : „USB PC Camera (SN9C120)‟

Bước 3: Tạo đối tượng đại diện vào máy để làm đề tài này

- Để tạo luồng dữ liệu video, dùng lệnh videoinput.

Summary of Video Input Object Using „USB PC Camera (SN9C120)‟.

Acquisition Source(s): „input1‟ is the current selected source.

10 frames per trigger using the selected source.

„RGB24_320x240‟ video data to be logged upon START.

Grabbing first of every 1 frame(s).

Log data to „memory‟ on trigger.

Trigger Parameters: 1 „immediate‟ trigger(s) on START.

Bước 4: Hiển thị luồng video trên màn hình để xem trước.

-Để xem trước luồng dữ liệu video, dùng lệnh preview >> preview(vid)

- Màn hình lúc này hiện lên cửa sổ video của đối tƣợng vid.

- Nếu muốn kết thúc xem, dùng lệnh stoppreview Hoặc để đóng cửa sổ preview, dùng lệnh closepreview(vid).

Bước 5: Lấy một khung hình ảnh và lưu thành file đồ họa

- Để lấy một ảnh vào xử lý ta dùng lệnh getsapshot.

- Để lưu hình ảnh thành file đồ họa ta dùng lệnh imwrite.

Ví dụ:hinh = getsapshot(vid); imwrite(hinh,‟d.jpg‟);

Bước 6: Làm sạch bộ nhớ

Sau khi lấy dữ liệu hình ảnh ta có thể giải phóng bớt bộ nhớ bằng các lệnh sau:

Close(gcf) c Hiển thị Camera, thu nhận ảnh

Sau khi thực hiện lần lược theo các bước trên ta kiểm tra: Nhập lệnh kiểm tra kết nối Camera với Matlab IMAQHWINFO

Hình 2.20:Kiểm tra kết nối Camera với Matlab

Sau khi nhập lệnh IMAQHWINFO sẽ hiển thị ra thông tin Camera đƣợc kết nối thành công nhƣ hình trên.

Xem hiển thi video: Để xem được ta lần lược thực hiện theo các bước Apps

(1) – Image Processing And Computer Vision (2) – Image Acquisition (3).

Hình 2.21: Truy cập giao diện hiển thị video của Camera trên Matlab

Sau khi chọn vào Image Acquisition ta đƣợc giao hiển thi tất cả thông tin về Camera: Độ phân giải, thông tin Camera, các thông số, lệnh điều khiển…

Hình 2.22: Giao diện hiển thị video Camera trên Matlab

2.4.3 Kết nối Arduino với Matlab a Thƣ viện hỗ trợ giao tiếp Arduino với Matlab Để tải thƣ viện hỗ trợ giao tiếp arduino với matlab ta tiến hành lần lƣợc theo các bước:

Bước 1: Chọn vào Add-Ons, Get Handware Support Packages

Hình 2.23: Cài đặt thư viện Arduino Uno vs Matlab bước 1

Bước 2: Chọn Install from Internet rồi nhấn Next

Hình 2.24: Cài đặt thư viện Arduino Uno vs Matlab bước 2

Bước 3: Tại tab Suppor for chọn Arduino, sau đó đánh dấu tick vào Reinstall ở tab Support packages bên phải

Hình 2.25: Cài đặt thư viện Arduino Uno vs Matlab bước 3

Sau khi hoàn thành thì matlab có chia sẻ một số ví dụ mẫu về giao tiếp matlab và arduino theo như hình bên dưới đây

Hình 2.26: Trang ví dụ mẫu giao tiếp Arduino Uno với Matlab.

Sau khi hoàn thành thì matlab có chia sẻ một số ví dụ mẫu về giao tiếp matlab và arduino. b Kết nối Arduino với Matlab

Sau khi đã cài đặt thƣ viện hỗ trợ thành công tiến hành kết nối thiết Arduino thông qua USB.

Kiểm tra kết nối Arduino với Matlab: Gõ lệnh trong cửa sổ Command

Nếu arduino đƣợc kết nối thành công thì sẽ hiển thị ra thông tin.

Hình 2.27: Kết nối thành công Arduino Uno với Matlab.

Nhƣ trên ta thấy đƣợc các thông tin sau:

- Các chân tín hiệu tương tự: 0 1 2 3 4 5

- Các chân tín hiệu số: 2 3 4 5 6 7 8 9 10 11 12 13

- Thƣ viện hỗ trợ giao tiếp: I2C, SPI và

Servo c Đọc, xuất dữ liệu Đọc dữ liệu Uno: value = readDigitalPin(a,pin)

Biến đã đƣợc gán cho Uno.

Giá trị nhận đƣợc khi đọc.

Xuất dữ liệu Uno: writeDigitalPin(a,pin,value)

- a: Biến đã đƣợc gán cho Uno.

- pin: Chân xuất tín hiệu.

Ví dụ 1:Chương trình đọc cảm biến vật cản (đọc tín hiệu tại chân 2). a=arduino; value = readDigitalPin(a,2);

Cảm biến vật cản tích cực mức thấp nên nếu value = 1 thì không có vật và ngƣợc lại nếu value = 0 thì có vật cản.

Ví dụ 2: Chương trình điều khiển led sáng 0.5s, tắt 0.5s trong 10 lần (xuất dữ liệu tại chân 9) for idx = 0:10 writeDigitalPin(a,9,1); pause(0.5); writeDigitalPin(a,9,0); pause(0.5); end d Điều khiển Servo

Lệnh khai báo chân servo:s = servo(a, pin);

- a: Biến đã đƣợc gán cho Uno.

- pin: Chân Servo (lưu ý chân này hỗ trợ PWM).

Lệnh xuất tín hiệu điều khiển servo:writePosition(s,n);

- n:giá trị xuất tra (giới hạn 0-1).

- s:Biến gán trước đó trong lệnh khai báo chân servo.

Ví dụ: Điều khiển servo đến vị trí 90 độ (sử dụng chân PWM 3). board = arduino; m3 = servo(board,3); disp('BAT DAU'); writePosition(m3,0.5);

2.4.4 Tìm hiểu về Guide a Giới thiệu

Guide là giao diện hình ảnh của chương trình, bao gồm các nút nhấn, hộp liệt kê, thanh trượt và menu Những yếu tố này tạo ra một môi trường làm việc thân thiện, giúp người dùng tập trung vào các ứng dụng của chương trình mà không phải mất thời gian tìm hiểu cách thức hoạt động của nó.

Công nghệ IoT

Internet of Things (IoT) là một hệ thống bao gồm các thiết bị, máy móc, vật thể, động vật hoặc con người được kết nối với nhau, mỗi đối tượng đều có một định danh duy nhất Hệ thống này cho phép truyền tải dữ liệu qua mạng mà không cần sự can thiệp của con người hay tương tác giữa con người với máy tính.

Hình 2.28: Minh Họa Công nghê IOT

Công nghệ IoT đang được ứng dụng rộng rãi trong nhiều ngành công nghiệp, bao gồm nông nghiệp công nghệ cao, quản lý xây dựng, chăm sóc sức khỏe, năng lượng và vận tải.

Trong thời đại Internet of Things phát triển mạnh mẽ, bạn có thể điều khiển mọi thiết bị trong nhà chỉ bằng cử chỉ, ánh mắt hoặc thậm chí là suy nghĩ Xe tự lái giúp bạn di chuyển dễ dàng, trong khi hệ thống chăn nuôi thông minh theo dõi sức khỏe của gia súc mà không cần kiểm tra trực tiếp Ngoài ra, các cây trồng cũng tự động tưới nước khi cần thiết, mang lại sự tiện lợi và hiệu quả trong cuộc sống hàng ngày.

Lúc ấy chúng ta sẽ có nhiều thời gian hơn để chăm sóc sức khỏe, nghiên cứu những vấn đề khác.

2.5.2 Ngôn ngữ HTML a Giới thiệu sơ lƣợc về HTML

HTML là ngôn ngữ được sử dụng để xác định cách hiển thị một trang web trên trình duyệt, thông qua việc sử dụng các thẻ và phần tử.

- Điều khiển hình thức và nội dung của trang web.

- Xuất bản các tài liệu trực tuyến và truy xuất thông tin trực tuyến bằng cách sử dụng liên kết đƣợc chèn vào html.

- Tạo các biểu mẫu cần thiết để thu thập thông tin người dùng, quản lí các giao dịch….

- Chèn các đối tƣợng nhƣ audio, video clip, các thành phần activeX, flash….

HTML là mã nguồn của trang web, được trình duyệt đọc từ các file có đuôi htm hoặc html để hiển thị nội dung Tất cả các trang web, bất kể độ phức tạp, đều được trả về dưới dạng mã nguồn HTML Để lập trình HTML, cần hiểu rõ cấu trúc cơ bản, bắt đầu bằng thẻ và kết thúc bằng thẻ .

Bên trong một file html gồm có hai thành phần cơ bản:

- Phần tiêu đề: Phần tiêu đề bắt đầu bằng thẻ và kết thúc bằng thẻ

Tiêu đề của trang web, nằm trong thẻ và kết thúc bằng , rất quan trọng vì nó xuất hiện trên thanh điều hướng Khi người dùng tìm kiếm thông tin, tiêu đề cung cấp từ khóa chính yếu, giúp cải thiện khả năng tìm thấy nội dung của trang.

Phần thân của một trang web, nằm sau tiêu đề, bao gồm hình ảnh, văn bản và các liên kết, được hiển thị cho người dùng Nó bắt đầu bằng thẻ và kết thúc bằng thẻ Các thẻ cơ bản trong phần này rất quan trọng để cấu trúc và trình bày nội dung hiệu quả.

Một file HTML bao gồm nhiều thành phần khác nhau, với các thẻ cơ bản như headings, form, table và div là những thành phần thiết yếu không thể thiếu.

Đầu mục được sử dụng để trình bày phần tiêu đề cho nội dung hiển thị trên trang web, với cỡ chữ lớn và in đậm để phân biệt với các phần khác của văn bản Phần tiêu đề cũng có thể được định dạng theo nhiều cách khác nhau.

Thể h1 dành cho tiêu đề quan trọng nhất và giảm dần đến h6.

Kết quả tương ứng hiển thị như sau:

Khi cần chia văn bản trên trang web thành các khối thông tin hợp lý, thẻ span và div được sử dụng để nhóm nội dung lại với nhau Thẻ div đặc biệt phổ biến trong thiết kế layout web.

- Phần tử div dùng để chia tài liệu html thành các thành phần có liên quan với nhau.

- Phần tử span dùng để định nghĩa nội dung theo dòng (in-line) còn phần tử div dùng để định nghĩa nội dung theo khối (block-level).

Thẻ được sử dụng để điều chỉnh cách hiển thị văn bản trên trang web, cho phép người dùng chỉ định các thuộc tính như kích thước, màu sắc và kiểu chữ.

Bạn có thể áp dụng thuộc tính cho toàn bộ tài liệu HTML bằng cách chèn phần tử vào bên trong thẻ Ngoài ra, thuộc tính font cũng có thể được thiết lập cho từng từ hoặc từng khối cụ thể trong trang Các thuộc tính font có thể được kết hợp trong cùng một thẻ để tạo ra hiệu ứng mong muốn.

Để làm cho trang web trở nên sinh động hơn, việc thêm yếu tố màu sắc cho các phần tử như văn bản, bảng biểu và tiêu đề là rất cần thiết Thuộc tính COLOR cho phép thiết lập màu sắc cho nhiều phần tử khác nhau trên trang.

Có 3 kiểu màu chính: đỏ, xanh lá và xanh da trời Mỗi màu đƣợc xem nhƣ là một bộ hai số của hệ thập lục phân Mã màu đƣợc định nghĩa nhƣ sau: #RRGGBB. Trong đó RR, GG và BB tượng trưng cho thành phần màu sắc lần lượt tương ứng với đỏ, xanh lá và xanh da trời.

Số thập lục phân 00 chỉ 0% của màu trong khi số thập lục phân FF chỉ 100% của màu Bảng dưới đây thể hiện một số màu cơ bản trong HTML.

Bảng 2.4: Bảng mã màu cơ bản trong HTML

Thẻ được sử dụng để chèn hình ảnh vào trang web, cho phép người dùng định vị hình ảnh thông qua một liên kết URL với cú pháp cụ thể.

Trong đó SRC (Source) là thuộc tính và giá trị là một URL, chỉ định vị trí chính xác của file ảnh.

Thuộc tính align của thẻ có thể đƣợc sử dụng để điều chỉnh canh lể của ảnh với văn bản xung quanh.

Trong đó, vị trí của ảnh có thể là trên (top), dưới (bottom), ỡ giữa (middle), left (trái) hoặc phải (right).

Thẻ dùng để tạo bảng biểu trong HTML Cấu trúc cơ bản nhƣ sau:

Thẻ dùng để tạo liên kết với một địa chỉ URL Thông qua ví dụ sau sẽ hiểu rõ hơn về thẻ liên kết:

HCMUTE

THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG

Yêu cầu và sơ đồ khối hệ thống

3.1.1 Yêu cầu của hệ thống

- Nhận dạng đƣợc 3 mẫu khác nhau, các mẫu đƣợc tùy chọn và cài đặt lúc đầu trong chương trình.

- Cánh tay gắp sản phẩm phân loại theo mẫu cài sẵn đƣa vào kho 1, 2, 3 và loại nếu sản phẩm hỏng.

- Reset thông tin số lượng sản phẩm trên trang web về 0 bằng chương trình.

- Trang web hiển thị thông tin số lƣợng sản phẩm trong các kho hiện tại.

- Tốc độ băng chuyền có thể thay đổi đƣợc.

3.1.2 Sơ đồ khối và chức năng mỗi khối

Hình 3.1: Sơ đồ khối hệ thống

- Khối nguồn: Cung cấp nguồn cho khối cánh tay gắp sản phẩm và khối motor kéo băng tải.

- Khối đếm sản phẩm, giao tiếp mạng: Đếm số lƣợng sản phẩm trong các kho và gửi thông tin lên mạng.

- Khối xử lí ảnh: Camera lấy ảnh và xử lí thông tin nhận dạng sản phẩm.

Khối điều khiển ngoại vi chịu trách nhiệm lấy thông tin từ cảm biến và nhận lệnh từ khối xử lý ảnh Nó thực hiện việc điều khiển các thiết bị ngoại vi như motor và cánh tay gắp sản phẩm.

Thiết kế hệ thống phần cứng

3.2.1 Khối nguồn Đối với khối nguồn thì có khá nhiều sự lựa chọn nhƣ: thiết kế mạch nguồn sử dụng IC ổn áp, sử dụng adapter nguồn hay sử dụng nguồn từ khối lưu trữ năng lƣợng (pin)…

Trong đề tài này, người thực hiện thiết kế mạch nguồn dùng IC ổn áp.

TRANSFORMER a IC 7805 chức năng điều chỉnh ổn áp về điện áp 5V.

Hình 3.3: Sơ đồ chân IC LM7805 Thông số kĩ thuật cơ bản:

- Điện áp đầu vào tối thiểu: 2V

- Dòng cực đại có thể duy trì: 1A.

- Công suất tiêu tán cực đại nếu không dùng tản nhiệt: 2W

- Công suất tiêu tán nếu dùng tản nhiệt đủ lớn: 15W

IC ổn áp L7805CV là một mạch tích hợp trong gói TO-220, cung cấp điện áp đầu ra cố định 5V và yêu cầu điện áp đầu vào tối thiểu là 7V.

IC L7805CV cung cấp điện áp đầu ra 5V với dòng điện tối đa 1A và công suất 15W Thiết bị này được trang bị tính năng bảo vệ quá nhiệt và bảo vệ ngắn mạch, giúp duy trì an toàn cho các transistor công suất trong mạch, đảm bảo độ bền và giảm thiểu nguy cơ hỏng hóc.

Hình 3.4:Sơ đồ nguyên lí L7805CV

- C1: Cần thiết nếu bộ điều chỉnh ở khoảng cách đáng kể so với bộ lọc nguồn, người thực hiện chọn C1uF.

- C2: Cải thiện sự ổn định, người thực hiện chọn

100uF b IC LM317 chức năng thay đổi điện áp đầu ra.

Hình 3.5: Sơ đồ chân IC LM7805

Thông số kĩ thuật cơ bản:

- Điện áp đầu vào Vi = 40V

- Công suất tiêu thụ lớn nhất là 20W

- Dòng điện đầu ra lớn nhất Imax = 1.5A

- Đảm bảo thông số Vi - Vo > = 3V

IC LM317 là một linh kiện chuyển đổi khá là tiện dụng Dùng để chuyển đổi điện áp dương từ +1.25 đến +37V Và có khả năng cung cấp dòng quá 1.5A.

IC ổn áp LM317 là bộ điều chỉnh điện áp có khả năng biến đổi từ +1.25V đến +37V, với dòng điện tối đa lên tới 1.5A, rất phù hợp cho các thiết bị cần nguồn điện điều chỉnh.

- ADJ là chân điều khiển.

- Output là điện áp đầu ra.

- Input là điện áp đầu vào.

Hình 3.6: Sơ đồ nguyên lí LM37

3.2.2 Khối điều khiển ngoại vi

Hiện nay, có nhiều giải pháp để đáp ứng yêu cầu của hệ thống, bao gồm Raspberry Pi, board Arduino và board Intel Galileo Mỗi loại board này đều có những ưu điểm và nhược điểm riêng, phù hợp với các nhu cầu khác nhau trong phát triển dự án.

Tuy nhiên,board Arduino với ƣu điểm:

- Nền tảng phát triển các ứng dụng vi điều khiển nhanh và thuận tiện.

- Ứng dụng rộng rãi trong các thiết kế (cả nghiên cứu lẫn thương mại).

- Bên cạnh đó còn đƣợc hỗ trợ bởi cộng đồng lớn và Arduino Uno cũng là dòng Arduino phổ biến nhất.

- Có sẵn thƣ viện hỗ trợ kết nối với Matlab, thuận tiện cho việc kết nối xử lí ảnh và điều khiển các ngoại vi bên ngoài.

Vì vậy, người thực hiện quyết định lựa chọn sử dụng Arduino Uno làm khối điều khiển ngoại vi.

Hình 3.7: Sơ đồ chân Arduino UNO R3

Sơ đồ chân (Pin) kết nối:

- D13 Bảng 3.1: Sơ đồ chân kết nối với ngoại vi của Arduino Uno R3

3.2.3 Khối đếm sản phẩm, giao tiếp mạng a Khối đếm sản phẩm

Cảm biến vật cản thu phát hồng ngoại với các ƣu điểm:

- Cảm biến có khả năng thích nghi với môi trường, có một cặp truyền và nhận tia hồng ngoại.

- Khoảng cách làm việc phù hợp với đề tài (hiệu quả 2 ~ 5cm).

- Điện áp làm việc là 3.3 V đến 5V (cấp trực tiếp thông qua Arduino, không cần nguồn ngoài).

- Độ nhạy sáng của cảm biến dễ dàng đƣợc điều chỉnh bằng chiết áp.

- Cảm biến dễ lắp ráp, dễ sử dụng,

Hình 3.8: Cảm biến vật cản thu phát hồng ngoại

- Bộ so sánh sử dụng L393, làm việc ổn định.

- Khi bật nguồn đén sáng vàng báo hiệu hoạt động.

- Lỗ vít 3mm, dễ dàng lắp ráp, cố định.

- Các modun đã đƣợc so sánh điện áp thông qua chiết áp nếu sử dụng bình thường thì không cần thay đổi chiết áp.

- VCC: 3.3V đến 5V (có thể đƣợc kết nối trực tiếp đến vi điều khiển).

- OUT: Đầu ra kỹ thuật số (0 có vật cản và 1 không có vật cản).

Thấy được sự phù hợp trên, người thực hiện quyết định lựa chọn cảm biến vật cản thu phát hồng ngoại. b Khối giao tiếp mạng

Tương tự như những ưu điểm được nêu trên của arduino uno thì người thực hiện quyết định lựa chọn phần cứng là arduino ethernet shield.

Ethernet shield là mạch mở rộng cho Arduino, cho phép kết nối với internet Shield này hỗ trợ truyền nhận thông tin giữa Arduino và các thiết bị bên ngoài qua internet, rất hữu ích cho ứng dụng IoT và kiểm soát hệ thống Với internet luôn sẵn có, dữ liệu được truyền đi nhanh chóng và không bị giới hạn về khoảng cách.

Ngoài ra, việc kết nối cũng khá dễ dàng bởi board sử dụng cáp RJ45 để kết nối mạng internet.

Hình 3.10: Arduino Ethernet shield khi lắp vào Arduino Uno R3

3.2.5 Motor Động cơ DC giảm tốc là loại đƣợc lựa chọn và sử dụng nhiều nhất hiện nay cho các thiết kế mô hình đơn giản Động cơ DC giảm tốc có chất lƣợng và giá thành vừa phải cùng với khả năng dễ lắp ráp của nó đem đến chi phí tiết kiệm và sự tiện dụng nên người thực hiện lựa chọn.

Hình 3.11: Motor kéo băng tải

- Điện áp hoạt động : 3-9VDC

- Dòng điện tiêu thụ: 110-140mA

3.2.6 Cánh tay Gắp Đối với khối cánh tay gắpsản phẩm người thực hiện sử dụng động cơ servo có thể xác định vị trí và điều khiển động cơ tới vị trí xác định mà giá thành cũng tương đối thấp và dễ dàng điều khiển.

Hiện nay, thị trường có nhiều loại động cơ servo với các thông số khác nhau Đặc biệt, động cơ servo SG 90 được ưa chuộng nhờ trọng lượng nhẹ và phù hợp với mô hình hệ thống xây dựng nhỏ gọn.

Thiết Kết Cánh Tay Gắp Sản Phẩm (Sử Dụng Cánh Tay 3 Bậc Với 3 Động

Bảng 3.2: Hoạt động cơ bản của cánh tay gắp

Hình 3.12: Hoạt động cơ bản của cánh tay gắp

Hình 3.13: Servo SG90 a Thông số kĩ thuật servo 90

- Tốc độ hoạt động: 60 độ trong 0.1 giây

- Nhiệt độ hoạt động: 0 oC - 55 oC b Điều khiển:

Kết nối dây đỏ với nguồn 5V, dây nâu với mass, và dây cam với chân phát xung của vi điều khiển Tại chân xung, cung cấp một xung có độ dài từ 1 ms đến 2 ms để điều khiển góc quay theo ý muốn.

Hình 3.14: Sơ đồ chân điều khiển servo

Lập trình phần mềm

3.3.1 Lưu đồ giải thuật a Lưu đồ giải thuật của hệ thống

Với những yêu cầu đặt ra, nhóm đã xây dựng lưu đồcho hệ thống.

Khai báo biến toàn cục cục bộ

Thiết lập kết nối Arduino và

Thông báo hoàn tất cài đặt

Nhận dạng, phân loại Đếm SP, Giao tiếp mạng

Ngắt kết nối Camera, Arduino

- Đầu tiên khai báo các biến toàn cục, cục bộ cho chương trình.

- Tiếp theo thiết lập kết nối phần cứng với Arduino UNO R3 và Camera.

- Tiếp, khi có thông báo hoàn tất việc kết nối tiến hành reset chương trình về trạng thái ban đầu.

- Tiếp, lần lƣợc đƣa mẫu lên băng chuyền và cho nạp mẫu lần lƣợt mẫu 1, mẫu 2, mẫu 3.

- Tiếp theo là kiểm tra nhận dạng xử lí ảnh và phân loại.

- Tiếp, đếm sản phẩm trong kho đƣa thông tin lên web.

- Cuối cùng ngắt kết nối và thoát. b Lưu đồ thiết lập kết nối Arduino và Cam

Thiết lập kết nối UNO và CAM

Khởi tạo biến toàn cục, cục bộ

Cài đặt các thông số XLA mặc định

Kết nối Camera với Matlab

Kết nối Arduino với matlab

Khởi tạo, định nghĩa các chân sử dụng Arduino

Kết thúcHình 3.16: Lưu đồ thiết lập kết nối Arduino và Cam

Sau khi cài đặt thư viện hỗ trợ giao tiếp giữa Arduino và Camera với Matlab, việc thực hiện kết nối trở nên dễ dàng.

- Ban đầu khời tạo các biến toàn cục, cục bộ chương trình.

Tiếp theo, hãy cài đặt các thông số mặc định để người sử dụng có thể dễ dàng sử dụng mà không cần thay đổi các thiết lập trong mục điều khiển Điều này giúp đảm bảo rằng chương trình hoạt động hiệu quả với các thông số đã được cài sẵn.

- Tiếp, kết nối camera với matlab và hiển thị video lên màn ảnh của chương trình.

- Tiếp, kết nối arduino với matlab.

- Cuối cùng khải báo chân, định nghĩa các chân sử dụng của arduino và kết thúc. c Lưu đồ Reset

Khai báo biến toàn cục, cục bộ

Hình 3.17: Lưu đồ Reset Giải thích lưu đồ:

- Ban đầu, khai báo biến toàn cục, cục bộ cho chương trình.

- Cài đặt tất cả về mặc định ban đầu gồm thông số điều khiển và các hiển thị.

- Cho biến Br=1, có tác dụng thoát khỏi vòng lặp của chương trình đang hoạt động.

- Cuối cùng là kết thúc. d Lưu đồ Reset Mạng.

Reset mạng Khai báo biến toàn cục, cục bộ Kích chân D13 lên mức 1

Hình 3.18: Lưu đồ Reset Mạng Giải thích lưu đồ:

- Ban đầu, khai báo biến toàn cục, cục bộ cho chương trình.

- Kich chân D13 tín hiệu lên mức 1 và duy trì trạng thái đó trong 5s rồi về mức 0.

- Khi đó Arduino Ethernet nhận tín hiệu sẽ đặt tất cả các thông tin đếm về 0 rồi hiển thị lên mạng

- Cuối cùng là kết thúc. e Lưu đồ Nạp mẫu 1, nạp mẫu 2, nạp mẫu 3

Nạp mẫu là chương trình quan trọng đểxác định được mẫu 1, mẫu 2, mẫu 3 về sau phân loại cho đúng.

Vì 3 chương trình nạp mẫu tương tự nhau nên người thực hiện chỉ đề cập đến lưu đồ nạp mẫu 1 và mẫu 2 cũng như mẫu 3 tương tự.

Nạp mẫu 1 Tính toán S mẫu 1

Khởi tạo biến toàn cục, cuc bộ

Tiền Xử Lí Ảnh Tính Toán Diện Tích

Kết thúcHình 3.19: Lưu Đồ Nạp Mẫu 1 Và Tính Toán Diện Tích Mẫu 1

Tiền Xử Lí Ảnh Tính Toán Diện Tích

Xóa vùng trắng có diện tích nhỏ hơn (số cài đặt) Đảo màu

Xóa vùng trắng ngoài biên

Xóa vùng trắng có diện tích nhỏ hơn (số cài đặt)

Lấy thuộc tính vùng trắng về số lƣợng (đặt n)

Lấy thuộc tính vùng trắng về số lƣợng (đặt n) n=0

Tính diện tích đối tƣợng thứ i

Diện tích mẫu là dt_temp

Hình 3.20: Lưu Đồ Tiền Xử Lí Ảnh Và Tính Toán Diện Tích

- Đầu tiên, khai báo biến toàn cục, cục bộ.

- Tiếp, lấy 1 khung ảnh trong video nhận từ camera.

- Tiếp, tiền xử lí ảnh thông qua các bước chuyển sang ảnh xám, tinh chỉnh độ tương phản, chuyển sang ảnh nhị phân (ảnh trắng đen).

Tiếp theo, hãy xóa các vùng trắng có diện tích nhỏ hơn thông số đã cài đặt trước Để xác định thông số phù hợp nhất, người dùng nên thực hiện thêm bước kiểm tra nhận dạng xử lý ảnh.

- Tiếp, đảo màu rồi xóa vùng ngoài biên.

- Tiếp, một lần nữa xóa thêm vùng trắng nhở hơn thông số cài trước.

- Tiếp, lấy thuộc tính vùng trắng về số lƣợng.

- Tiếp, tiến hành quét hết các vùng trắng đã xác định đƣợc.

- Tiếp, tìm ra vùng trắng có diện tích lớn nhất đây là đối tƣợng cần tìm kiếm.

- Lấy diện tích đó lưu lại.

- Kết thúc. e Nhận dạng và phân loại Đây là phần quan trọng nhất chương trình.

Sơ đồ khối quá trình:

Kết luận nhận dạng và phân loại

Hình 3.21:Sơ đồ khối nhận dạng phân loại sản phẩm.

Khai báo biến toàn cục, cục bộ

2 Chạy băng chuyền Đọc cảm biến 1

Tiền xử lý Ảnh Tính Toán Diện Tích

Hình 3.22: Lưu Đồ Nhận dạng phân loại

1 Đƣa ra kết luận loại mẫu

Bật motor băng tải chạy Đọc CB 2

Có vật ĐÚNG Đóng motor dừng băng tải

Cánh tay gắp phân loại

Hình 3.23: Lưu Đồ Nhận dạng phân loại (tiếp theo)

Khai báo biến toàn cục, cục bộ, sai số cho phép đặt là ena_ss

Tính toán sai lệch Diện Tích

Lấy giá trị nhỏ nhất Đặt là min

SAI Min

Ngày đăng: 20/12/2021, 06:15

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Matlab – Phần mềm xử lý ảnh thông dụng - (Đồ án tốt nghiệp) băng chuyền nhận dạng, phân loại sản phẩm theo mẫu, kết hợp giám sát hệ thống thông qua mạng
Hình 2.1 Matlab – Phần mềm xử lý ảnh thông dụng (Trang 20)
Hình 2.2: Ví dụ về một hình ảnh bị nhiễu - (Đồ án tốt nghiệp) băng chuyền nhận dạng, phân loại sản phẩm theo mẫu, kết hợp giám sát hệ thống thông qua mạng
Hình 2.2 Ví dụ về một hình ảnh bị nhiễu (Trang 21)
Hình 2.3: Pixel của ảnh - (Đồ án tốt nghiệp) băng chuyền nhận dạng, phân loại sản phẩm theo mẫu, kết hợp giám sát hệ thống thông qua mạng
Hình 2.3 Pixel của ảnh (Trang 23)
Hình 2.4: Một số độ phân giải phổ biến hiện nay - (Đồ án tốt nghiệp) băng chuyền nhận dạng, phân loại sản phẩm theo mẫu, kết hợp giám sát hệ thống thông qua mạng
Hình 2.4 Một số độ phân giải phổ biến hiện nay (Trang 24)
Hình 2.6: Các màu cơ sở - (Đồ án tốt nghiệp) băng chuyền nhận dạng, phân loại sản phẩm theo mẫu, kết hợp giám sát hệ thống thông qua mạng
Hình 2.6 Các màu cơ sở (Trang 25)
Hình 2.9: Hệ thống xử lí ảnh - (Đồ án tốt nghiệp) băng chuyền nhận dạng, phân loại sản phẩm theo mẫu, kết hợp giám sát hệ thống thông qua mạng
Hình 2.9 Hệ thống xử lí ảnh (Trang 28)
Hình 2.10: Lƣợc đồ xám của một ảnh có sự tách biệt về mức xám ở ngƣỡng T - (Đồ án tốt nghiệp) băng chuyền nhận dạng, phân loại sản phẩm theo mẫu, kết hợp giám sát hệ thống thông qua mạng
Hình 2.10 Lƣợc đồ xám của một ảnh có sự tách biệt về mức xám ở ngƣỡng T (Trang 29)
Hình 2.13: Arduino UNO R3 - (Đồ án tốt nghiệp) băng chuyền nhận dạng, phân loại sản phẩm theo mẫu, kết hợp giám sát hệ thống thông qua mạng
Hình 2.13 Arduino UNO R3 (Trang 36)
Hình 2.14: Vi điều khiển trong Arduino UNO R3 - (Đồ án tốt nghiệp) băng chuyền nhận dạng, phân loại sản phẩm theo mẫu, kết hợp giám sát hệ thống thông qua mạng
Hình 2.14 Vi điều khiển trong Arduino UNO R3 (Trang 39)
Hình 2.15: Phần mềm Ardunio IDE - (Đồ án tốt nghiệp) băng chuyền nhận dạng, phân loại sản phẩm theo mẫu, kết hợp giám sát hệ thống thông qua mạng
Hình 2.15 Phần mềm Ardunio IDE (Trang 41)
Hình 2.16: Cài đặt thư viện Camera vs Matlab bước 1 - (Đồ án tốt nghiệp) băng chuyền nhận dạng, phân loại sản phẩm theo mẫu, kết hợp giám sát hệ thống thông qua mạng
Hình 2.16 Cài đặt thư viện Camera vs Matlab bước 1 (Trang 43)
Hình 2.19: Cài đặt thư viện Camera với Matlab bước 3 - (Đồ án tốt nghiệp) băng chuyền nhận dạng, phân loại sản phẩm theo mẫu, kết hợp giám sát hệ thống thông qua mạng
Hình 2.19 Cài đặt thư viện Camera với Matlab bước 3 (Trang 44)
Hình 2.21: Truy cập giao diện hiển thị video của Camera trên Matlab - (Đồ án tốt nghiệp) băng chuyền nhận dạng, phân loại sản phẩm theo mẫu, kết hợp giám sát hệ thống thông qua mạng
Hình 2.21 Truy cập giao diện hiển thị video của Camera trên Matlab (Trang 49)
Hình 2.22: Giao diện hiển thị video Camera trên Matlab - (Đồ án tốt nghiệp) băng chuyền nhận dạng, phân loại sản phẩm theo mẫu, kết hợp giám sát hệ thống thông qua mạng
Hình 2.22 Giao diện hiển thị video Camera trên Matlab (Trang 50)
Hình 2.23: Cài đặt thư viện Arduino Uno vs Matlab bước 1 - (Đồ án tốt nghiệp) băng chuyền nhận dạng, phân loại sản phẩm theo mẫu, kết hợp giám sát hệ thống thông qua mạng
Hình 2.23 Cài đặt thư viện Arduino Uno vs Matlab bước 1 (Trang 50)

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

w