Chức năng phân loại vật thể theo màu sắc theo module cảm biến màu sắc TCS34725 .... Đối tượng và phạm nghiên cứu Trong phạm vi đồ án này, chúng em xin trình bày sơ lược về cấu tạo cũng n
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA CÔNG NGHỆ THÔNG TIN
Đề tài:
MÁY PHÂN LOẠI MÀU
Giảng viên hướng dẫn: Ths Lê Đức Thuận
Sinh viên thực hiện: Nguyễn Văn Hòa - CT040321
Phạm Việt Quang - CT040340
Phạm Văn Giang - CT040314
Hà Nội, 2022
Trang 2Mục Lục
CHƯƠNG 1: LÝ THUYẾT TỔNG QUAN 4
1.1 Tình hình thực tiễn 5
1.2 Mô hình sản phẩm mong muốn 5
1.3 Giới thiệu phần cứng, công nghệ sử dụng trong hệ thống 6
1.3.1 Giới thiệu arduino Uno R3: 6
1.3.2 Giới thiệu động cơ xoay liên tục 180 – 360 độ ( servo MG90S ): 11
1.3.3 Giới thiệu cảm biến màu TCS 34725 15
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 17
2.1 Phân tích chức năng hệ thống 17
2.1.1 Chức năng nhận diện được màu sắc của vật thể 17
2.1.2 Chức năng phân loại vật thể theo màu sắc theo module cảm biến màu sắc TCS34725 17
2.2 Thiết kế hệ thống 17
2.2.1 Sơ đồ khối 17
2.2.2 Sơ đồ kết nối mạch 17
2.2.3 Sơ đồ use case 18
CHƯƠNG 3: THỰC NGHIỆM 18
3.1 KẾT LUẬN 19
3.2 TÀI LIỆU THAM KHẢO 19
3.3 PHỤ LỤC 19
DANH MỤC HÌNH VẼ
Trang 3Hình 1.1////
Hình 1.1: Arduino Uno R3 6
Hình 1.2: Vi điều khiển 6
Hình 1.3: Các cổng vào/ra của Arduino Uno R3 9
Hình 1.4: Động cơ servo quay liên tục 180 độ 11
Hình 1.5: Động cơ servo quay liên tục 360 độ 12
Hình 1.6: Bản vẽ cấu trúc động cơ servo quay liên tục 360 độ 13
Hình 1.7: Cảm biến màu TCS34725 14
Hình 2.1: Sơ đồ khối hệ thống 16
Hình 2.2 Hình 2.3: Sơ đồ use case 17
DANH MỤC BẢNG Bảng 1.1: Thông số kỹ thuật của Arduino Uno R3 8
Bảng 1.2: Thông số kỹ thuật của Servo MG90S 10
Bảng 1.3: Bảng thông số kỹ thuật của Động cơ servo quay liên tục 180 độ 11
Bảng 1.4: Bảng thông số kỹ thuật của Động cơ servo quay liên tục 360 độ 13
Bảng 1.5: Bảng thông số kỹ thuật của cảm biến màu TCS34725 14
Trang 4LỜI MỞ ĐẦU
1 Tính cấp thiết của đề tài
Khoa học kĩ thuật luôn luôn phát triển trong tất cả các lĩnh vực, nhất là các ngành sản xuất Việc đòi hỏi cải tiến và nâng cấp hệ thống sản xuất luôn là
ưu tiên hàng đầu Một trong những hệ thống đó là hệ thống phân loại sản phẩm
tự động Hệ thống này giúp cho sản xuất linh hoạt hơn, tiết kiệm thời gian và nhân lực, tăng sản lượng, đem lại lợi ích kinh tế cao và hiệu quả Để phân loại sản phẩm có rất nhiều phương pháp, tuy nhiên hiện nay phương pháp sử dụng màu sắc chưa được ứng dụng nhiều và hiệu quả Trước thực tiễn đó, chúng em
đã quyết định chọn đề tài “Phân loại sản phẩm theo màu sắc” để nghiên cứu và thực hiện
2 Mục tiêu nghiên cứu của đề tài
Chúng em nghiên cứu đề tài này nhằm mục đích vận dụng những công nghệ khoa học kỹ thuật tiên tiến vào trong quá trình sản xuất nhằm giảm thiểu sức lao động của con người và nâng cao năng suất trong sản xuất công nghiệp
Mặt khác, thông qua việc thực hiện đề tài này chúng em có thể củng cố lại kiến thức và vận dụng những kiến thức lý thuyết đã học vào thực tế, phát triển khả năng tư duy nhằm nâng cao năng lực bản thân để có thể đóng góp nhiều hơn cho nền công nghiệp nước nhà
3 Đối tượng và phạm nghiên cứu
Trong phạm vi đồ án này, chúng em xin trình bày sơ lược về cấu tạo cũng như nguyên lý hoạt động của máy phân loại màu sử dụng arduino Uro R3, động cơ servo ( xoay 180 độ, xoay 360 độ), cảm biến màu TCS34725
4. Các nhiệm vụ cần thực hiện
Nội dung nghiên cứu được tập trung vào các nội dung chính như sau:
Khảo sát, tổng hợp các yêu cầu của đề tài: “máy phân loại màu”
Trang 5Tìm hiểu kiến thức về cấu tạo, nguyên lý hoạt động của các linh kiện sử dụng như arduino Uno R3, động cơ servo ( xoay 180 độ, xoay 360 độ), cảm biến màu TCS34725
Nghiên cứu thiết kế sản phẩm máy phân loại màu sắc từ các linh kiện, thiết
bị đã tìm hiểu Xây dựng máy phân loại màu
5. Kết quả dự kiến
Lý thuyết: Kiến thức về lập trình làm việc của arduino Uno R3, servo, cảm biến màu sắc TCS34725
Thực nghiệm: Thử nghiệm máy phân loại màu sắc thành công từ việc tìm hiểu, nghiên cứu xây dựng hệ thống
Trang 6CHƯƠNG 1: LÝ THUYẾT TỔNG QUAN
1.1. Tình hình thực tiễn
Tìm hiểu và kết nối được arduino Uno R3 với động cơ servo điều khiển động cơ quay các góc như ý muốn
Tìm hiểu cơ chế, nguyên lý hoạt động của cảm biến màu sắc TCS34725 và đã code
để cảm biến nhận biết 5 màu cơ bản là xanh lá cây , đỏ , tím , vàng , cam Lên mô hình hoàn chỉnh
1.2. Mô hình sản phẩm mong muốn
Hình 1.1: Máy phân loại hạt cà phê
Trang 7Hình 1.2: Máy phân loại màu gạo
1.3. Giới thiệu phần cứng, công nghệ sử dụng trong hệ thống.
1.3.1 Giới thiệu arduino Uno R3:
Trang 8Hình 1.3: Arduino Uno R3
Vi điều khiển
Hình 1.4: Vi điều khiển
- Arduino UNO có thể sử dụng 3 vi điều khiển họ 8bit AVR là ATmega8, ATmega168, ATmega328 Bộ não này có thể xử lí những 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, làm một trạm đo nhiệt độ - độ ẩm và hiển thị lên màn hình LCD,… hay những ứng dụng khác
- Thiết kế tiêu chuẩn của Arduino UNO sử dụng vi điều khiển ATmega328 với giá khoảng 90.000đ Tuy nhiên nếu yêu cầu phần cứng của bạn không cao hoặc túi tiền không cho phép, bạn có thể sử dụng các loại vi điều khiển khác có chức năng tương đương nhưng rẻ hơn như ATmega8 (bộ nhớ flash
Trang 98KB) với giá khoảng 45.000đ hoặc ATmega168 (bộ nhớ flash 16KB) với giá khoảng 65.000đ
- Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V
Thường thì cấp nguồn bằng pin vuông 9V là hợp lí nhất nếu bạn không có sẵn nguồn từ cổng USB Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, bạn
sẽ làm hỏng Arduino UNO
Các chân năng lượng:
- GNG (Ground): Cực âm của nguồn điện cấp cho Arduino Uno Khi dùng
các tjiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau
- 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, nối cực dương
của nguông với chân này và cực âm của nguồn với chân GND
đo ở chân này (luôn là 5V) Mặc dù vây, bạn không được lấy nguòn 5V từ chân này để sử dụng bởi chức năng của nó không phải là để cấp nguồ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 điện trở 10KΩ
Năng lượng:
- Arduino UNO có thể được cấp nguồn 5V thông qua cổng USB hoặc cấp nguồn ngoài với điện áp khuyên dùng là 7-12V DC và giới hạn là 6-20V
Thường thì cấp nguồn bằng pin vuông 9V là hợp lí nhất nếu bạn không có sẵn nguồn từ cổng USB Nếu cấp nguồn vượt quá ngưỡng giới hạn trên, bạn sẽ làm hỏng Arduino UNO
Một vài thông số của Arduinio Uno R3:
Trang 10Bảng 1.1: Thông số kỹ thuật của Arduino Uno R3
Vi xử lý Điện áp hoạt động Điện áp vào giới hạn Dòng tiêu thụ
Số chân Digital I/O UART
I2C SPPI
Số chân Analog Dòng tối đa trên mỗi chân I/O Dòng ra tối đa (5V)
Dòng ra tối đa (3.3V)
Bộ nhớ flash SRAM EEPROM Clock Speed
Bộ nhớ:
- 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 (hiếm khi nào cần dùng quá 20kb bộ nhớ trong này)
- 2Bk cho SRAML ( Static Random Access Memory): Giá trị các biến khai
báo khi lập trình sẽ lưu ở đây Khai báo càng nhiều biến thì càng cần nhiều
bộ nhớ RAM Khi mất điện, dữ liệu trên SRAM sẽ bị mất
- 1KB cho EEPROM ( Electrically Eraseble Programmable Read Only Memory): Đây giống
Trang 11như một chiếc ổ cúng mini, nơi có thể đọc và ghi dữ liệu của mình vào đây
mà không lo bị mất dữ liệu khi cúp điện giống như SRAM
Các cổng vào ra:
Hình 1.5: Các cổng vào/ra của Arduino Uno R3
- Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có
2 mức điện áp là 0V và 5V với dòng vào/ra tối đa trên mỗi chân là 40mA Ở mỗi chân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiển ATmega328 (mặc định thì các điện trở này không được kết nối)
- Một số chân digital có các chức năng đặc biệt như sau:
o 2 chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và
nhận (receive – RX) dữ liệu TTL Serial Arduino Uno có thể giao tiếp với thiết bị khác thông qua 2 chân này Kết nối bluetooth thường Nếu không cần giao tiếp Serial thì không nên sử dụng 2 chân này nếu không cần thiết
o Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép xuất ra xung PWM
Trang 12được điện áp ra ở chân này từ mức 0V đến 5V thay vì chỉ cố định ở mức 0V và 5V như những chân khác
o Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
Ngoài các chức năng thông thường, 4 chân này còn dùng để truyền phát dữ liệu bằng giao thức SPI với các thiết bị khác
o 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
1.3.2 Giới thiệu động cơ xoay liên tục 180 – 360 độ ( servo MG90S ):
thường cứ cắm điện vào là quay liên tục, servo chỉ quay khi được điều khiển bằng xung PPM với góc quay nằm trong khoảng bất kì từ 0o - 180o Mỗi loại servo có kích thước, khối lượng và cấu tạo khác nhau Có loại thì nặng chỉ 9g (chủ yếu dùng trên máy bay mô mình), có loại thì sở hữu một momen lực bá đạo (vài chục Newton/m), hoặc có loại thì khỏe và nhông sắc chắc chắn,
Thông số kỹ thuật
Model Điện áp hoạt động Stall Torque Operating Speed
Bánh răng
Độ dài dây nối Trọng lượng Kích thước
Trang 13Động cơ servo quay liên tục 180 độ:
Hình 1.6: Động cơ servo quay liên tục 180 độ
- Đây là động cơ servo micro có bánh răng bằng nhựa dành cho RC, có mô men lực là 1.80kg.cm tại 4.8V Nó là một giải pháp hoàn hảo cho các dự án robot của học sinh như lắp ráp cánh tay robot Ưu điểm của động cơ servo RC so với động cơ chổi than DC là khả năng điều khiển góc quay của nó
- Thông số kỹ thuật:
Bảng 1.3: Bảng thông số kỹ thuật của Động cơ servo quay liên tục 180 độ
Điện áp hoạt động Tốc độ 4.80v ( không tải )
Mô men lực 4.80V Góc quay
Kích thước Trọng lượng
Trang 14Động cơ servo quay liên tục 360 độ:
Hình 1.7: Động cơ servo quay liên tục 360 độ
- Đây là động cơ servo có kích thước tiêu chuẩn từ FEETECH (trước đây gọi là Fitec) đặc biệt để quay liên tục Nó xoay liên tục 360 độ Cách thức hoạt động của nó khác với hoạt động của một servo tiêu chuẩn Thay vì quay một góc xác định, động cơ servo này sẽ đứng yên ở xung 1.5ms pulse (một trimmer được sử dụng để làm điều này), động cơ sẽ quay về phía trước khi cho xung dài hơn và quay về phía sau khi cho xung ngắn hơn
- Động cơ servo quay liên tục FS90R chuyển đổi xung động cơ servo RC tiêu chuẩn thành tốc độ quay liên tục Điểm nghỉ (reseting point) là 1.5ms, nhưng
có thể điều chỉnh bằng cách dùng tuốt nơ vít nhỏ để vặn chiết áp điều chỉnh
Độ rộng xung trên điểm nghỉ dẫn đến quay ngược chiều kim đồng hồ, với tốc
độ tăng khi độ rộng xung tăng, độ rộng xung dưới điểm nghỉ dẫn đến quay theo chiều kim đồng hồ, với tốc độ tăng khi độ rộng xung giảm
- Thông số kỹ thuật:
Trang 15Bảng 1.4: Bảng thông số kỹ thuật của Động cơ servo quay liên tục 360 độ
Điện áp hoạt động Chiều dài chì Tốc độ tối đa @6V Tốc độ tối đa @4.8V Momen xoắn @6V Momen xoắn @4.8V
Hệ thống dây điện
Trọng lượng Kích thước
Hình 1.8: Bản vẽ cấu trúc động cơ servo quay liên tục 360 độ.
Trang 16Hình 1.9: Cảm biến màu TCS34725
- Cảm biến màu sắc I2C UART TCS34725 Color Sensor V1 là phiên bản nâng cấp của cảm biến màu TCS3200, được sử dụng để nhận biết màu sắc bằng cách đo phản xạ 3 màu sắc cơ bản từ vật thể là đỏ, xanh lá và xanh dương sau đó xử lý và truyền thông số đo được của các màu này qua giao tiếp I2C hoặc UART, tổng hợp thông tin của 3 màu trên ta có được màu sắc của vật thể cần đo
- Cảm biến màu sắc I2C UART TCS34725 Color Sensor V1 có tích hợp MCU trên mạch để chuyển đổi từ giao tiếp I2C của TCS34725 sang giao tiếp UART hoặc I2C của MCU giúp dể dàng giao tiếp và lập trình, ta có thể
dễ dàng lựa chọn giao tiếp muốn sử dụng bằng cách Set các Jumper trên mạch
Trang 17Thông số kỹ thuật:
Bảng 1.5: Bảng thông số kỹ thuật của cảm biến màu TCS34725
IC chính Điện áp sử dụng Dòng tiêu thụ Giải màu sắc đo Tích hợp MCU xử lý và chuyển đổi giao tiếp
Giao tiếp có thể lựa chọn qua Jumper
Kích thước
Cách thiết lập giao tiếp dựa vào Jumper S0 và S1:
tiếp I2C với TCS34725, chỉ có thể giao tiếp qua hai chân CT / DR của MCU.\
I2C của TCS34725 không thông qua MCU
CT / DR là UART, CT là UART_TX, DR là UART_RX, baudrate mặc định 9600bps / Parity: N / Data bits: 8 / Stop bits: 1
CT là I2C_SCL, DR là I2C_SDA
Trang 182.1 Phân tích chức năng hệ thống
2.1.1 Chức năng nhận diện được màu sắc của vật thể
- Chức năng nhận diện màu sắc vật thể nhận thông tin input từ module cảm biến màu sắc TCS34725 truyền dữ liệu đến arduino Uno R3 để xử lý output sẽ cho ra các giá trị tương đương với màu sắc khác nhau để gửi đến servo xử lý tiếp
2.1.2 Chức năng phân loại vật thể theo màu sắc theo module cảm biến màu sắc TCS34725
- Chức năng này do động cơ servo đảm nhận Nhận input từ arduino Uno R3 sau khi xử lý thông tin do module cảm biến màu sắc TCS34725 gửi đến Từ các giá trị khác nhau của module cảm biến màu sắc gửi đến chúng ta lập trình cho arduino Uno R3 điều khiển động cơ servo di chuyển vật phẩm đến đúng vị trí cần phân loại
2.2. Thiết kế hệ thống
2.2.1 Sơ đồ khối
Hình 2.1: Sơ đồ khối hệ thống
2.2.2 Sơ đồ kết nối mạch
< >
Trang 192.2.3 Sơ đồ use case
Hình 2.3: Sơ đồ use case
CHƯƠNG 3: THỰC NGHIỆM
Trang 203.3 PHỤ LỤC