BÁO cáo đề tài hệ thống phân loại sản phẩm theo màu sắc

24 0 0
BÁO cáo đề tài hệ thống phân loại sản phẩm theo màu sắc

Đ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

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KỸ THUẬT MÁY TÍNH BÁO CÁO Đề tài: Hệ thống phân loại sản phẩm theo màu sắc Lớp: CE224.N11 Tên môn học: Thiết kế hệ thống nhúng Giảng viên hướng dẫn: Lê Hoài Nghĩa Sinh viên thực hiện: Nguyễn Thành Phát-20521737 Nguyễn Hữu Trí-20522051 Võ Nhật Nam-20520646 HỒ CHÍ MINH,2022 Cơng việc Mua linh Thành viên kiện Phát Trí  Nam  Bảng phân cơng cơng việc Code Test Thiết kế mơ hình        Viết báo cáo  MỤC LỤC MỤC LỤC I Giới thiệu: .4 Tổng quan: .4 Mục tiêu: Các công việc làm: 4 Hạn chế: II Mô tả công việc: .5 Mô tả hệ thống: Hoạt động: 20 III Kết quả: 22 Kết đạt được: 22 Khó khăn: .22 Tài liệu tham khảo: 22 MỤC LỤC HÌNH ẢNH Hình 1: Sơ đồ khối chức Hình 2: Sơ đồ đường liệu Hình 3: Adruino Uno R3 Hình 4: ESP32 Hình 5: Chuẩn giao tiếp UART Hình Cách truyền liệu UART .6 Hình 7: Khung truyền giao tiếp UART Hình 8: Start bit Hình 9: Stop bit Hình 10: Đầu vào UART( truyền song song) Hình 11: Quá trình truyền liệu giao tiếp UART Hình 12 Chuyển liệu nối tiếp trở lại song song .9 Hình 13: LCD module I2C 10 Hình 14 Chuẩn giao tiếp I2C 10 Hình 15 Cảm biến màu sắc TCS3200 13 Hình 16: Sơ đồ khối cảm biến màu sắc TCS3200 13 Hình 17: Cách hoạt động TCS3200 14 Hình 18: Servo G90 15 Hình 19: Chuẩn giao tiếp 1-Wire .16 Hình 20 Cách hoạt động 17 Hình 21: Một nút nhẩn iButton nhựa sử dụng cho vé xe thông minh .18 Hình 22 Lưu đồ tht tốn 19 MỤC LỤC BẢNG Bảng 1: Tốc độ truyền Bảng 2: Chọn chế độ lọc cho TCS3200 15 Bảng 3: Bảng tần số TCS3200 16 I Giới thiệu: Tổng quan: - Hệ thống phân loại sản phẩm theo màu sắc sử dụng Arduino cảm biết TCS3200 Giá trị RGB sản phẩm lọc từ cảm biến, từ tiến hành phân loại Mục tiêu: - Phân loại sản phẩm dựa giá trị RGB lọc từ cảm biến TCS3200 - Biết cách sử dụng TCS3200, Servo, Adruino Uno R3 Các công việc làm: - Tìm hiểu cách hoạt động Arduino, TCS3200, Servo - Thiết kế mơ hình với bìa foam 5mm - Lấy giá trị RGB sản phẩm cần phân loại - Hiện thực ý tưởng thành code phần mềm Arduino, tiến hành nối dây, nạp code - Chạy thử hệ thống - Hoàn thiện hệ thống Hạn chế: - Xây dựng mơ hình cịn có sai sót dẫn dến vài lỗi kẹt sản phẩm - Giá trị RGB lọc từ cảm biến TCS3200 dễ bị thay đổi theo điều kiện ánh sáng mơi trường xung quanh gây khó khăn việc lấy giá trị II Mô tả công việc: Mô tả hệ thống: Hình 1: Sơ đồ khối chức Hình 2: Sơ đồ đường liệu - Hệ thống bao gồm có: o Vi xử lý: Adruino Uno R3 Hình 3: Adruino Uno R3 o ESP32 Hình 4: ESP32 - ESP giao tiếp với Arduino thông qua chuẩn giao tiếp UART - UART(Universal Asynchronous Receiver / Transmitter) hay thuphát không đồng đa hình thức giao tiếp kỹ thuật số thiết bị với thiết bị đơn giản lâu đời UART hoàn toàn khác biệt với chuẩn giao tiếp SPI I2C, chuẩn đơn tuần giao tiếp phần mềm Mục đích UART truyền nhận liệu nối tiếp - Chuẩn giao tiếp UART sử dụng dây để truyền nhận liệu thiết bị: o TX (Transmiter) - Dây truyền liệu o RX (Receiver) - Dây nhận liệu Hình 5: Chuẩn giao tiếp UART Số dây sử dụng Tốc độ Từ 9600 bps -> 115200 bps Phương thức truyền liệu Không đồng Kiểu truyền liệu Nối tiếp Số lượng Master (thiết bị chủ) Số lượng Slave (thiết bị tớ) Bảng 1: Tốc độ truyền - Lưu ý: Cả hai UART phải cấu hình để truyền nhận cấu trúc gói liệu Nghĩa thiết lập vi điều khiển, cấu hình tốc độ baud phải giống -  Cách truyền liệu chuẩn giao tiếp UART o Để tiện cho việc phân tích ta gọi UART1 bên truyền liệu UART2 bên nhận liệu o Các UART truyền nhận liệu từ bus liệu (Data Bus) Bus liệu sử dụng để gửi liệu đến UART thiết bị khác vi điều khiển Dữ liệu chuyển từ bus liệu đến UART dạng song song o Sau UART1 nhận liệu song song từ bus liệu, thêm một bit Start, một bit Parity (bit chẵn lẻ) một bit Stop, tạo gói liệu Tiếp theo, gói liệu xuất nối tiếp bit chân Tx o UART đọc gói liệu bit chân Rx Sau UART chuyển đổi liệu trở lại dạng song song loại bỏ bit Start, bit Parity và bit Stop Cuối cùng, UART2 chuyển gói liệu song song với bus liệu đầu nhận: Hình Cách truyền liệu UART o Dữ liệu truyền giao tiếp UART tổ chức thành gói (Packets) Mỗi Packets chứa 1 bit Start, đến bit liệu (tùy thuộc vào UART), 1 bit Parity và 2 bit Stop Hình 7: Khung truyền giao tiếp UART - Start bit (bit khởi đầu)  Hình 8: Start bit o Đường truyền liệu giao tiếp UART thường giữ mức điện áp cao khơng truyền liệu o Để bắt đầu truyền liệu, UART truyền kéo đường truyền từ mức cao xuống mức thấp chu kỳ đồng hồ o Khi UART  phát chuyển đổi điện áp cao xuống thấp, bắt đầu đọc bit khung liệu tần số tốc độ truyền (Baud rate) - Data Frame (khung liệu)  o Khung liệu chứa liệu thực tế truyền Nó dài từ 5-bit đến bit sử dụng bit Parity (bit chẵn lẻ) o Nếu không sử dụng bit Parity, khung liệu dài bit Trong hầu hết trường hợp, liệu gửi với bit LSB (bit có trọng số thấp nhất) trước tiên - Parity bit (bit chẵn lẻ)  o Trong giao tiếp UART, Bit Parity mơ tả tính chẵn lẻ số. bit Parity là cách để UART cho biết liệu có liệu thay đổi q trình truyền hay khơng Bit bị thay đổi tốc độ truyền khơng khớp truyền liệu khoảng cách xa… Sau UART đọc khung liệu, đếm số bit có giá trị kiểm tra xem tổng số số chẵn hay lẻ o Nếu bit Parity là (chẵn), tổng bit khung liệu phải số chẵn Nếu bit Parity là (lẻ), tổng bit khung liệu số lẻ Do qua kiểm tra biết q trình truyền liệu có xác -  Stop bit (bit kết thúc) Hình 9: Stop bit o Để báo hiệu kết thúc gói liệu, UART gửi điều khiển đường truyền liệu từ điện áp thấp đến điện áp cao hai khoảng thời gian bit - Các bước truyền liệu chuẩn giao tiếp UART o UART truyền nhận liệu song song từ bus liệu: Dữ liệu song song đầu vào Sau chuyển thành nối tiếp để truyền dây TX Tốc độ baud thiết lập từ trước phần cấu hình Hình 10: Đầu vào UART( truyền song song) o UART truyền thêm bit bắt đầu, bit chẵn lẻ (các) bit dừng vào khung liệu: o Toàn gói tin gửi nối tiếp từ UART truyền đến UART nhận UART nhận lấy mẫu đường liệu tốc độ truyền định cấu hình trước: Hình 11: Quá trình truyền liệu giao tiếp UART o Trong trình bit khung truyền đẩy lên đường dây TX UART1 (truyền) đưa tới dây RX UART2 (nhận) o UART nhận loại bỏ bit bắt đầu, bit chẵn lẻ bit dừng khỏi khung liệu: o Quá trình bỏ bit điều kiện đi, sau Data Frame (khung liệu) Cuối liệu cần truyền tiếp tục xử lý Slave (thiết bị tớ) o UART nhận chuyển đổi liệu nối tiếp trở lại thành song song chuyển đến data Bus Hình 12 Chuyển liệu nối tiếp trở lại song song o Lúc việc truyền liệu qua giao tiếp UART hoàn thành - Ưu, nhược điểm chuẩn giao tiếp UART o Ưu điểm • Chỉ sử dụng hai dây • Khơng cần tín hiệu đồng hồ • Có bit chẵn lẻ phép kiểm tra lỗiCấu trúc gói liệu thay đổiPhương pháp ghi chép rõ ràng sử dụng rộng rãi o Nhược điểm • Kích thước khung liệu giới hạn tối đa bit • Khơng hỗ trợ nhiều hệ thống phụ nhiều hệ thống • Tốc độ truyền UART phải nằm khoảng 10% o LCD Hình 13: LCD module I2C 1 - LCD giao tiếp với ESP thông qua chuẩn giao tiếp I2C (InterIntegrated Circuit) - Chuẩn giao tiếp I2C (Inter-Integrated Circuit) loại bus nối tiếp hai chiều với hai dây tín hiệu phát triển hãng sản xuất linh kiện điện tử Philips (nay hãng NXP Semiconductors) cho trình giao tiếp IC Đây chuẩn giao tiếp vi điều khiển thưởng gặp Hình 14 Chuẩn giao tiếp I2C - Giao tiếp I2C trình truyền thông đồng nối tiếp, hỗ trợ nhiều Master (thiết bị chủ) Slave (thiết bị tớ) đường truyền Phương pháp Master – Slave (chủ - tớ), master có trách nhiệm chủ động phân chia quyền truy cập bus cho slave Các slave đóng vai trị bị động có quyền truy cập bus gửi tín hiệu có yêu cầu Master dùng phương pháp hỏi theo chu kỳ để kiểm sốt tồn hệ thống Nhờ slave gửi liệu thu thập từ trình kỹ thuật gửi đến master nhận thông tin điều khiển từ master - I2C phù hợp với ngoại vi mà ưu tiên kết nối đơn giản chi phí sản xuất thấp quan trọng yêu cầu tốc độ truyền giao tiếp vi điều khiển mảng cảm biến, thiết bị hiển thị, thiết bị IoT, EEPROMs, v.v … - Chuẩn giao tiếp I2C sử dụng dây để truyền liệu thiết bị: o SDA (serial data) – đường truyền cho chủ tớ để gửi nhận liệu o SCL(serial clock) – Dong mang tín hiệu xung nhịp - Một bus I2C hoạt động nhiều chế độ khác nhau: o Một chủ tớ (one master – one slave) o Một chủ nhiều tớ (one master – multi slave) o Nhiều chủ nhiều tớ (Multi master – multi slave) - Bit start stop : ban đầu chưa thực trình giao tiếp, đường SDA SCL mức cao, lúc bus i2c sẳn sàn giao tiếp o Điều kiện start: chuyển đổi trạng thái từ cao xuống thấp đường SDA đường SCL mức cao o Điều kiện stop: chuyển đổi trạng thái từ thấp lên cáo đường SDA đường SCL mức cao o Cả điều kiện start stop tạo thiết bị chủ (marter) Sau tín hiệu start, bus i2c coi trạng thái làm việc, bus i2c sẳn sàng cho giao tiếp sau tín hiệu stop o Sau có điều kiện start, trình giao tiếp xuất tín hiệu start bus i2c làm việc, start start lặp lại giống - Truyền liệu: o Dữ liệu truyền theo bit, bit liệu truyền sườn dương xung clock dây SCL, trình trao đổi bit liệu diễn SCL mức thấp o Mỗi byte có độ dài bit, số lượng byte truyền lần khơng hạn chế Mỗi byte truyền theo sau bit ACK để báo hiệu nhận liệu Bit có trọng số cao (MSB) truyền trước, bit truyền o Sau xung clock dây SCL, bit liệu truyền Lúc thiết bị nhận, sau nhận đủ đủ bít liệu kéo SDA xuống mức thấp tạo xung ACK ứng với xung clock thứ dây SDA để báo hiệu nhận đủ bit Thiết bị truyền nhận bit ACK tiếp tục thực trình truyền kết thúc o Một byte truyền có kèm theo bit ACK điều kiên bắt buộc, nhằm đảm bảo cho trình truyền nhận diễn xác Khi khơng nhận địa hay muốn kết thúc trình giao tiếp, thiết bị nhận gửi xung Not‐ ACK(SDA mức cao) để báo cho thiết bị chủ biết, thiết bị chủ tạo xung xung STOP để kết thúc hay lặp lại xung START để bắt đầu trình - Định dạng địa thiết thị: o I2C khơng có đường Slave Select SPI, cần cách khác slave biết liệu gửi đến slave slave khác Nó thực điều cách định địa o Mỗi thiết bị ngoại vi tham gia vào bus i2c ln ln có địa nhất, nhằm phân biệt thiết bị với Độ dài bit, điều có nghĩa bus i2c phân biệt 128 thiết bị o Khi master muốn giao tiếp với ngoại vi, gửi bit địa thiết bị sau xung start, byte gửi bao gồm bit địa bit thứ điều khiển hướng truyền mà có phản hồi tương ứng từ master o Mỗi thiết bị ngoại vi có địa riêng nhà sản xuất quy định Địa thay đổi hoạc cố định Bit điều hướng quy định chiều truyền liệu, bit byte liệu truyền từ master đến slave, ngược lại - Khung liệu o Sau master phát bit ACK từ slave, khung liệu sẵn sàng gửi o Khung liệu ln có độ dài bit gửi với bit quan trọng trước Mỗi khung liệu sau bit ACK / NACK để xác minh khung nhận thành công Bit ACK phải nhận master slave (tùy thuộc vào gửi liệu) trước khung liệu gửi o Sau tất khung liệu gửi, master gửi điều kiện dừng cho slave để tạm dừng trình truyền Điều kiện dừng chuyển đổi điện áp từ thấp lên cao đường SDA sau chuyển tiếp từ thấp lên cao đường SCL , với đường SCL mức cao o Sensor: cảm biến màu sắc TCS3200 Hình 15 Cảm biến màu sắc TCS3200 - Cảm biến màu sắc TCS3200 giao tiếp với Arduino thông qua giao thức ADC (Analog to Digital Converter) - ADC hệ thống mạch thực chuyển đổi tín hiệu tương tự sang tín hiệu số - Đầu vào tín hiệu tương tự, xử lý thơng qua mạch giữ mẫu (S/H) để tạo giá trị gần tín hiệu số Biên độ khơng cịn có giá trị vơ hạn, “lượng tử hóa” thành giá trị rời rạc, tùy thuộc vào độ phân giải ADC ADC có độ phân giải cao có kích thước bước nhỏ biểu diễn xác tín hiệu tương tự đầu vào Giai đoạn cuối ADC mã hóa tín hiệu số hóa thành dịng bit nhị phân biểu thị biên độ tín hiệu tương tự Đầu tín hiệu số xử lý miền kỹ thuật số Cảm biến màu TCS3200 gồm khối hình vẽ phía dưới: Hình 16: Sơ đồ khối cảm biến màu sắc TCS3200 - Khối mảng ma trận 8×8 gồm photodiode Photodiode đơn giản linh kiện bán dẫn chuyển đổi ánh sáng thành dịng điện o 16 photodiode lọc màu đỏ (red) o 16 photodiode lọc màu xanh (green) o 16 photodiode lọc màu xanh dương (blue) o 16 photodiode trắng không lọc (clear) - Bản chất loại photodiode lọc ánh sáng có màu sắc khác Khi lựa chọn lọc màu cho phép nhận biết màu màu khác bị chặn Ví dụ, lựa chọn lọc màu xanh (green) có ánh sáng tới màu xanh thơng qua, màu đỏ màu xanh dương bị chặn lại hình minh họa bên Vì vậy, nhận cường độ ánh sáng màu xanh Tương tự vậy, lựa chọn lọc màu khác nhận ánh sáng màu đỏ (red) màu xanh dương (blue) Hình 17: Cách hoạt động TCS3200 - Tại thời điểm có lọc màu chọn Việc chọn lọc màu thực thông qua chân S2 S3 bảng S2 S3 Loại lọc L L Red L H Blue H L Clear (no filter) H H Green Bảng 2: Chọn chế độ lọc cho TCS3200 - Khối thứ hai cảm biến màu TCS3200 chuyển đổi dòng điện sang tần số Các giá trị đọc từ photodiode chuyển đổi thành sóng vng có tần số tỷ lệ thuận với cường độ ánh sáng phản   xạ khỏi bề mặt vật thể Cuối cùng, dùng vi điều khiển để đọc sóng vng ngõ lấy kết màu sắc - Các chân S0 S1 sử dụng để điều chỉnh tần số đầu Nó chia tỷ lệ thành giá trị đặt trước sau: 2%, 20% 100% Các vi điều khiển khác có cấu hình cho định thời khác Chức chia tỷ lệ tần số cho phép ngõ cảm biến tối ưu hóa cho vi điều khiển khác S0 S1 Tỷ lệ tần số ngõ L L Power down L H 2% H L 20% H H 100% Bảng 3: Bảng tần số TCS3200 - Tần số ngõ module cảm biến màu TCS3200 khoảng Hz ~ 500 kHz Tần số ngõ có dạng xung vng với tần số khác tương ứng với màu sắc cường độ sáng khác - Chúng ta lựa chọn tỉ lệ tần số ngõ mức khác bảng cho phù hợp với phần cứng đo tần số o Actuators: Servo Hình 18: Servo G90 - Servo G90 giao tiếp với Arduino thông qua giao thức 1Wire - 1-Wire là một hệ thống bus giao tiếp với thiết bị thiết kế bởi Dallas Semiconductor Corp - 1-Wire hỗ trợ truyền liệu tốc độ thấp (16.3 kbit/s), truyền tín hiệu, nguồn ni qua chân tín hiệu đơn. 1-Wire tương tự như I²C, với tốc độ truyền liệu thấp khoảng cách xa Hình 19: Chuẩn giao tiếp 1-Wire - Cơ sở truyền nhận :  o Các tín hiệu sử dụng Restart , write , write , Read o Write : truyền bit : Master kéo xuống khoảng A(us) mức khoảng B o Write : truyền bit : Master kéo xuống khoảng C trả khoảng D o Read : Đọc Bit : Master kéo xuống khoảng A trả delay khoảng E đọc giá trị slave gửi delay F o Restart : Chuẩn bị giao tiếp Master ké0 xuống khoảng H nhả lên mức sau cấu hình Master chân In delay I (us) đọc giá trị slave trả Nếu =0 cho phép giao tiếp =1 đường truyền lỗi slave bận o Thông thường chủ yếu sử dụng mode Standard o Chuẩn 1-Wire điều cần xác thời gian Vậy để tối ưu đường truyền cần định thời để delay xác - WorkFlow: Hình 20 Cách hoạt động o Bước 1: Trước bắt đầu xác định slave để làm việc, master cần đưa lệnh reset để xác định có slave có nằm đường truyền cách phản hồi lại tín hiêu present o Bước 2: Sau xác định có thiết bị slave kết nối, master chọn tất hay slave (dựa địa thiết bị) để làm việc Hoặc xác định slave thuật tốn tìm kiếm nhị phân o Bước 3: Sau xác định slave làm việc tất slave khác bỏ qua, tất tín hiệu truyền nhận thiết bị master slave chọn o Bước 4: Nếu muốn giao tiếp với slave khác, master bắt đầu lại trình từ bước Lưu ý: Khi thiết bị chọn, master đưa lệnh cụ thể cho thiết bị, gửi liệu đến đọc liệu từ Bởi loại thiết bị thực chức khác phục vụ cho mục đích khác nhau, máy có giao thức chọn Mặc dù loại thiết bị có giao thức tính khác tất chúng có quy trình lựa chọn giống tuân theo tiến trình - Ứng dụng thực tế :  o Mỗi chip 1-Wire có mã ID Tính làm cho chip, đặc biệt iButton, phù hợp để sử dụng chìa khóa để mở khóa, cánh tay, tắt báo động trộm, xác thực người dùng hệ thống máy tính,…  Hình 21: Một nút nhẩn iButton nhựa sử dụng cho vé xe thơng minh o Ngồi ra, nguồn laptop DELL hãng sử dụng giao thức 1-Wire để gửi liệu thông qua dây thứ ba đến laptop (về lượng, dòng điện áp) Laptop từ chối sạc bộ sạc không đáp ứng yêu cầu - Ưu điểm hạn chế giao tiếp 1-wire o Uu điểm: • Nhiều slaves được truy cập dây kiểu giao tiếp • Do sử dụng dây hơn, giao thức rẻ • Giao thức dễ thực • Giao thức hỗ trợ khoảng cách xa (khoảng 300 mét) o Nhược điểm: • Nó thực phần cứng phần mềm. Việc đồng hóa liệu máy thu phải thực phần mềm, nhiệm vụ phức tạp • Mặc dù giao thức hỗ trợ khoảng cách xa bị hạn chế nhiễu điện dung cáp • Nó hỗ trợ tốc độ truyền thơng chậm Các thiết bị phụ dây sản xuất hãng bán dẫn Dallas 2 Hoạt động: Hình 22 Lưu đồ thuât toán - Khởi tạo r = 0, g = 0, b = để lọc màu - Servo thứ quay đến góc 150 độ nhận sản phẩm - Sau tiếp tục quay đến góc 70 độ để cảm biến TCS3200 lọc giá trị RGB từ sản phẩm - Nếu giá trị nằm khoảng [37, 61, 50] đến [59, 111, 90] tức màu hồng, servo thứ quay đến góc 70 độ - Nếu giá trị nằm khoảng [60, 68, 51] đến [90, 128, 95] tức màu tím, servo thứ quay đến góc 100 độ - Các trường hợp lại servo thứ hai quay đến góc 130 độ - Sau q trình servo thứ quay 40 độ đưa sản phẩm đến khay phân loại III Kết quả: Kết đạt được: - Hệ thống hoạt động khoảng 80% (link mơ phỏng) - Cịn xảy nhiễu trình đọc màu sắc dẫn đến nhìu phân loại sai màu sản phẩm - Mơ hình sản phẩm chưa tối ưu dẫn đến xảy kẹt sản phẩm Khó khăn: - Việc đọc màu sắc từ cảm biến TCS3200 chưa xác hồn tồn - Chưa thể dựng mơ hình hồn thiện cịn nhiều lỗi kẹt hay sản phẩm bị văng khỏi đường truyền sản phẩm vào khay đựng theo màu Tài liệu tham khảo: - Tài liệu tham khảo cách dùng TCS3200 - Tài liệu tham khảo cách dùng Servo 2 ... thiệu: Tổng quan: - Hệ thống phân loại sản phẩm theo màu sắc sử dụng Arduino cảm biết TCS3200 Giá trị RGB sản phẩm lọc từ cảm biến, từ tiến hành phân loại Mục tiêu: - Phân loại sản phẩm dựa giá trị... đưa sản phẩm đến khay phân loại III Kết quả: Kết đạt được: - Hệ thống hoạt động khoảng 80% (link mơ phỏng) - Cịn xảy nhiễu trình đọc màu sắc dẫn đến nhìu phân loại sai màu sản phẩm - Mơ hình sản. .. Sensor: cảm biến màu sắc TCS3200 Hình 15 Cảm biến màu sắc TCS3200 - Cảm biến màu sắc TCS3200 giao tiếp với Arduino thông qua giao thức ADC (Analog to Digital Converter) - ADC hệ thống mạch thực

Ngày đăng: 12/12/2022, 07:21

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan