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

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

87 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

Tiêu đề 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
Tác giả Nguyễn Xuân Lộc
Người hướng dẫn PGS.TS Phạm Hồng Liên
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Kỹ Thuật Điện Tử - Truyền Thông
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2017
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 87
Dung lượng 4,34 MB

Cấu trúc

  • 1.pdf

    • Page 1

  • 2.pdf

  • 4 BIA SAU A4.pdf

    • Page 1

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, 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 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ư hỏng.

Trước khi đóng gói, việc phân loại bánh là rất quan trọng, bao gồm việc loại bỏ các bánh bị vỡ hoặc không đúng hình dạng Điều này không chỉ giúp nâng cao năng suất sản xuất mà còn tiết kiệm thời gian và chi phí, đồng thời giảm thiểu sai sót Để đạt được hiệu quả tối ưu, tự động hóa trong quá trình phân loại và kiểm tra là cần thiết, và hiện nay, robot đã được tích hợp vào dây chuyền sản xuất để nâng cao hiệu quả công việc.

Để đáp ứng nhu cầu này, 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ệ mạng internet đang phát triển mạnh mẽ, đặc biệt là Internet of Things (IoT), nơi mọi vật, động vật và con người được kết nối qua mạng Nhận thấy sự cần thiết của việc này, các nhà nghiên cứu đã tiến hành nghiên cứu và phát triển hệ thống giám sát thông qua mạng.

Tính cấp thiết cu ̉ 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.

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

Mục tiêu của đề tài này là 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 sử dụ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 chỉ cần có mẫu sẵn.

Nhiệm vu ̣ 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.

Đố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.

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.

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 Đây là một phân ngành của xử lý tín hiệu số, tập trung vào việc xử lý pixel của ảnh, 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 nhiều lĩnh vực đời sống, mang lại nhiều lợi ích thiết thực như Photoshop, nén ảnh và video, nhận dạng biển số xe, khuôn mặt, chữ viết, cũng như trong các lĩnh vực chuyên sâu như xử lý ảnh thiên văn, ảnh 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 chỉnh 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 hình ả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ự tiến bộ nhanh chóng của 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ố Từ năm 1964 đến nay, các phương tiện nâng cao chất lượng và nhận dạng ảnh không ngừng phát triển Các phương pháp trí tuệ nhân tạo như mạng neural 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 thế giới, mang lại 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ể liên quan đến chất lượng của camera, đặc điểm thu nhận ảnh như ảnh không trong, hơi nhòe do tốc độ màn trập không đủ nhanh, hoặc ảnh bị hạt nhiễu khi chụp vào ban đêm do khẩu độ nhỏ.

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 là quá trình nhóm các mức xám gần nhau thành một, giúp đơn giản hóa hình ảnh Nếu chỉ có hai mức xám, điều này có nghĩa là 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 hình ảnh sang đen trắng nhằm đơn giản hóa quá trình nhận dạng Phân tích ảnh sẽ được thực hiện trên nền tảng này để đạt hiệu quả cao hơ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 một cách hiệu quả Các đặc điểm được trích chọn sẽ phụ thuộc vào mục đích cụ thể của quá trình xử lý ả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 việc lọc vùng, với các bộ vùng được gọi là "mặt nạ đặc điểm" 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, tạo ra các khe hẹp để trích xuất thông tin.

Đặc điểm biên và đường biên đóng vai trò quan trọng trong việc nhận dạng đối tượng, giúp trích chọn các thuộc tính bất biến Những đặc trưng này rất hữu ích trong quá trình thu nhận và biểu diễn ảnh.

Các thiết bị thu nhận ảnh, chủ yếu là camera số, hiện nay rất đ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 Công nghệ tiên tiến đã nâng cao chất lượng camera về phân giải và màu sắc Camera gồm hai bộ phận chính: ống kính và cảm biến ảnh Ánh sáng đi qua ống kính sẽ tác động lên từng pixel của cảm biến, mỗi pixel sẽ nhận được một 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 tạo ra bức ảnh gần giống nhất với khung hình chụp.

Biểu diễn ảnh có thể thực hiện qua thiết bị đọc file ảnh và hiển thị trên màn hình hoặc in ấn ra giấy Chất lượng hình ảnh đóng vai trò quan trọng trong việc hiển thị và in ấn, với độ phân giải càng cao thì chất lượng hình ảnh càng tốt.

7 hiển thị càng sắc nét Việc lựa chọn độ phân giải thích hợp tùy thuộc 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 ảnh trong đó mỗi điểm ảnh được thể hiệ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

Khi nhắc đến dòng mạch Arduino trong lập trình, Arduino UNO là cái tên đầu tiên được nhắc tới Hiện nay, dòng mạch này đã 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 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

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 cho phép đọc và xuất tín hiệu với hai mức điện áp 0V và 5V Mỗi chân có dòng vào/ra tối đa là 40mA Các điện trở pull-up được tích hợp sẵn trong vi điều khiển ATmega328, tuy nhiên, mặc định chúng 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 3 vi điều khiển 8bit AVR, bao gồm ATmega8, ATmega168 và ATmega328 Bộ vi điều khiển này có khả năng 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 hiển thị trên màn hình LCD, cùng nhiều ứng dụng khác.

Arduino UNO có thể được cấp 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 và giới hạn từ 6-20V Việc sử dụng pin vuông 9V là lựa chọn hợp lý khi không có nguồn từ cổng USB Cần lưu ý rằng việc cấp nguồn vượt quá giới hạn trên có thể gây hỏng 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 kết nối các chân GND 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

Chân 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ác biến được khai báo trong lập trình Số lượng biến khai báo càng nhiều thì càng tiêu tốn nhiều bộ nhớ RAM 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 hoàn toàn.

1KB cho EEPROM (Bộ nhớ chỉ đọc có thể lập trình và xóa điện tử) hoạt độ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 xảy ra 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 để bảo vệ hiệu suất của mạch.

Chân PWM (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, điều chỉnh điện áp ra từ 0V đến 5V thông qua hàm analogWrite() Điều này khác biệt so với các chân khác, chỉ cho phép điện áp cố định ở mức 0V hoặc 5V.

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 thông thường, 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 sở hữu 6 chân analog (A0 đến A5) với độ phân giải tín hiệu 10 bit, cho phép đọc giá trị điện áp từ 0V đến 5V Chân AREF trên board cho phép cung cấp điện áp tham chiếu, giúp đo điện áp trong khoảng 0V đến 2.5V nếu cấp 2.5V vào chân này, vẫn với độ phân giải 10 bit Đặc biệt, 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) 15x15x15

Hệ điều hành hỗ trợ webcam Windows 7, 8, XP, Vista

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ố mạnh mẽ, được phát triển bởi công ty MathWorks Phần mềm này hỗ trợ tính toán với ma trận, vẽ đồ thị hàm số và biểu đồ thông tin, cũng như thực hiện các thuật toán phức tạp Ngoài ra, MATLAB còn cho phép người dùng tạo giao diện 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 nhau.

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à công cụ phổ biến trong nhiều lĩnh vực như xử lý tín hiệu, truyền thông, thiết kế điều khiển tự động, và phân tích mô hình tài chính Với hàng triệu kỹ sư và nhà khoa học sử dụng trong cả môi trường công nghiệp và học thuật, MATLAB đã trở thành ngôn ngữ chủ yếu cho tính toán khoa học.

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ình chiếu (preview) luồng dữ liệu video từ thiết bị thu hình

- 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 một số IC riêng biệt, tùy thuộc vào loại thiết bị (tên adaptor) Cụ thể, thiết bị đầu tiên có deviceID = 1, trong khi thiết bị thứ hai có deviceID = 2, giúp phân biệt các thiết bị cùng loại khi kết nối với PC.

- Để 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

- 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:

28 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 Window a = arduino;

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)

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

- value: 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 thành phần 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 thay vì phải 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 mạng lưới các thiết bị, máy móc, vật thể, động vật và con người được kết nối với nhau Mỗi thành phần trong hệ thống này được gán một định danh duy nhất và có khả năng truyền dữ liệu qua mạng mà không cần sự can thiệp của con người.

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 bùng nổ Internet of Things, bạn có thể dễ dàng đ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ĩ Công nghệ xe tự lái giúp bạn di chuyển an toàn mà không cần can thiệp, trong khi hệ thống giám sát sức khỏe của gia súc cho phép bạn biết được tình trạng của chúng mà không cần đến tận nơi Ngoài ra, cây trồng cũng sẽ tự động được tưới nước khi cần thiết, mang lại sự tiện lợi và hiệu quả trong quản lý nông nghiệp.

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ữ thiết kế giúp hiển thị cách thức một trang web sẽ xuất hiện trên trình duyệt Nó sử dụng các thẻ và phần tử để cấu trúc nội dung một cách hiệu quả.

- Đ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ơ bản của trang web, bao gồm chuỗi thẻ và các phần tử xác định cách hiển thị của trang Trình duyệt sử dụng các file có đuôi htm hoặc html để hiển thị nội dung dựa trên các lệnh trong mã nguồn Dù trang web có phức tạp đến đâu, tất cả đều được trả về dưới dạng mã nguồn HTML để có thể đọc và hiển thị Để lập trình HTML, cần nắm vững cấu trúc cơ bản, bắt đầu với 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 , là phần quan trọng hiển thị trên thanh điều hướng Nó cung cấp từ khóa chính cho việc tìm kiếm thông tin, giúp người dùng nhanh chóng nhận diện nội dung trang khi tìm kiếm.

Phần thân của bài viết nằm ngay sau tiêu đề, bao gồm hình ảnh, văn bản và các liên kết đến trang web của bạn Phần này được bắt đầu bằng thẻ HTML phù hợp để đảm bảo cấu trúc và tối ưu hóa SEO.

và kết thúc bằng thẻ c Các thẻ cơ bản

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

Đầu đề là phần quan trọng trong nội dung trang web, được trình bày bằng cỡ chữ lớn và in đậm để phân biệt với các thành phần khác trong văn bản Chúng không chỉ thu hút sự chú ý mà còn giúp tổ chức thông tin hiệu quả hơn.

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 muốn chia văn bản trên một trang web thành các khối thông tin logic, chúng ta sử dụng thẻ span và div để nhóm nội dung lại với nhau Thẻ div thường được sử dụng 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 đặt nó trong thẻ Bên cạnh đó, thuộc tính font cũng có thể được sử dụng cho từng từ hoặc từng khối trong trang Các thuộc tính của font có thể được kết hợp trong cùng một thẻ.

COLOR Dùng để chỉ định màu của font, có thể dùng tên màu hoặc ghi giá trị thập phân để xác định màu

SIZE là thuật ngữ chỉ kích thước của font chữ, có thể được xác định từ 1 đến 7 Chúng ta có thể chọn một kích thước chuẩn và xác định các kích thước khác dựa trên kích thước đó Chẳng hạn, nếu kích thước chuẩn là 3, thì SIZE = +4 sẽ tương ứng với kích thước 7.

SIZE = -1 sẽ giảm xuống 2 FACE Đƣợc dùng để chỉ định kiểu font

Bảng 2.3: Thuộc tính của văn bản trong HTML

Để làm cho trang web trở nên sinh động hơn, việc thêm 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 loại phần tử khác nhau, giúp cải thiện tính thẩm mỹ và trải nghiệm người dùng.

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

Mã thập lục phân Màu

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

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

KHỐI ĐÉM SẢN PHẢM GIAO TIẾP MẠNG

KHỐI ĐIỀU KHIỂN NGOẠI VI KHỐI XỬ LÍ ẢNH

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 có chức năng thu thập thông tin từ các 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, đảm bảo quá trình hoạt động hiệu quả và chính xác.

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

Hình 3.2: Khối nguồn 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ạ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 7V.

IC L7805CV cung cấp điện áp đầu ra ổn định lên đến 1A và 15W Thiết bị này được tích hợp các tính năng bảo vệ như chống quá nhiệt 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à khả năng hoạt động của nó.

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à một bộ điều chỉnh điện áp linh hoạt, cho phép điều chỉnh từ +1.25V đến +37V với dòng điện tối đa 1.5A, rất hữu ích 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, để đáp ứng các yêu cầu của hệ thống, có nhiều giải pháp như 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 từng nhu cầu cụ thể.

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:

- D2 Nhận biết có sản phẩm đầu vào

- D3 Điều khiển cánh tay robot (xoay)

- D4 Điều khiển đóng ngắt motor kéo băng tải

- D5 Điều khiển cánh tay robot (lên/xuống)

- D6 Điều khiển cánh tay robot (gắp)

- D7 Điều khiển đóng ngắt nguồn cánh tay robot

- D8 Nhận biết đến vị trí cánh tay robot gắp

- D12 Đếm sản phẩm loại (sản phẩm hỏng)

- D13 Reset thông tin số lƣợng sản phẩm hiển thị trên web về 0

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

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 các ứng dụng IoT và quản lý hệ thống Với khả năng kết nối liên tục và tốc độ truyền dữ liệu nhanh, Ethernet shield giúp mở rộng khoảng cách và tiềm năng trong việc điều khiển và giám sát.

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, có nhiều loại động cơ servo với các thông số khác nhau Đối với các hệ thống xây dựng nhỏ và trọng lượng sản phẩm nhẹ, động cơ servo SG 90 là lựa chọn phù hợp.

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

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

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

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

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

Khai báo biến toàn cục cục bộ Đếm SP, Giao tiếp mạng

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

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

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

Hiển thị video Kết nối Arduino với matlab

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

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

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

Sau khi đã tiến hành cài đặt thƣ viện hỗ trợ giao tiếp Arduino, Camera với

Malab (đã trình bày trong Chương cơ sở lí thuyết) thì việc kết nối cũng khá đơn giản

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

Để thuận tiện cho người sử dụng, bạn có thể giữ nguyên các thông số mặc định trong mục điều khiển, nhằm sử dụng theo cài đặt sẵn của chương trình nếu không có nhu cầu thay đổi.

- 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

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

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

Chuyển sang nhị phân Đảo màu

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

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 i < n

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

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

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 sử dụng nên thực hiện thêm bước kiểm tra nhận dạng và 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:

Nạp ảnh mẫu Tiền Xử Lí Xác định diện tích

Lấy ảnh Camera Tiền Xử Lí Xác định diện tích

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ộ

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

Dừng băng chuyền 2 Đọc cảm biến 1

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 motor dừng băng tải

Cánh tay gắp phân loại ĐÚNG SAI

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

Min

Ngày đăng: 29/11/2021, 10:27

HÌNH ẢNH LIÊN QUAN

Hình 2.1: Matlab – Phần mềm xử lý ảnh thông dụng - 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 17)
Hình 2.2: Ví dụ về một hình ảnh bị nhiễu - 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 18)
Hình 2.3: Pixel của ảnh - 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 20)
Hình 2.4: Một số độ phân giải phổ biến hiện nay - 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 21)
Hình 2.9: Hệ thống xử lí ảnh - 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 25)
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 - 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 26)
Hình 2.13: Arduino UNO R3 - 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 31)
Hình 2.14: Vi điều khiển trong Arduino UNO R3 - 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 33)
Hình 2.15: Phần mềm Ardunio IDE - 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 35)
Hình 2.16: Cài đặt thư viện Camera vs Matlab bước 1 - 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 37)
Hình 2.19: Cài đặt thư viện Camera với Matlab bước 3 - 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 38)
Hình 2.21: Truy cập giao diện hiển thị video của Camera trên Matlab - 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 42)
Hình 2.22: Giao diện hiển thị video Camera trên Matlab - 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 43)
Hình 2.23: Cài đặt thư viện Arduino Uno vs Matlab bước 1 - 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 43)
Hình 2.24: Cài đặt thư viện Arduino Uno vs Matlab bước 2 - 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.24 Cài đặt thư viện Arduino Uno vs Matlab bước 2 (Trang 44)

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w