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