Đố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
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
DANH MỤC HÌNH VẼ Hì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 3LỜ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
Trang 4thứ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”
• Tì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 5CHƯƠ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
Trang 6Hì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 8KB) với giá khoảng 45.000đ hoặc ATmega168 (bộ nhớ flash 16KB) với giá khoảng 65.000đ
Trang 9- 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
- IOREF: Điện áp hoạt động của vi điều khiển trên Arduino Uno có thể được
đ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:
Bảng 1.1: Thông số kỹ thuật của Arduino Uno R3
Trang 10Điện áp vào giới hạn 7 đến 20 V
Số chân Digital I/O 14 (với 6 chân là PWM)
Dòng tối đa trên mỗi chân I/O 30 mA
Dòng ra tối đa (3.3V) 50 mA
• 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
như 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:
Trang 11Hì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 với độ phân giải 8bit (giá trị từ 0 → 28-1 tương ứng với 0V → 5V) bằng hàm analogWrite() Nói một cách đơn giản, có thể điều chỉnh đượ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
Trang 121.3.2 Giới thiệu động cơ xoay liên tục 180 – 360 độ ( servo MG90S ):
• Servo MG90S: Là một dạng động cơ đặc biệt Không giống như động cơ thông 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
Bảng 1.2: Thông số kỹ thuật của Servo MG90S
Operating Speed 0.1sec/60degree(4.8v),
0.08sec/60degree(6v)
• Động cơ servo quay liên tục 180 độ:
Trang 13Hì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 4.8 – 5VDC
Tốc độ 4.80v ( không tải ) 0.12 s/60°
Mô men lực 4.80V 1.8 kg.cm (~0.1765 N.m)
Hệ thống dây điện + Nâu = GND
+ ĐỎ = 5V + Cam = Tín hiệu
• Động cơ servo quay liên tục 360 độ:
Trang 14Hì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:
Bảng 1.4: Bảng thông số kỹ thuật của Động cơ servo quay liên tục 360 độ
Trang 15Tốc độ tối đa @6V 130RPM
Hệ thống dây điện + Cam cho tín hiệu RC
+ Đỏ for VCC ( bộ nguồn dương ) + Nâu for GND ( bộ nguồn âm )
Hình 1.8: Bản vẽ cấu trúc động cơ servo quay liên tục 360 độ.
1.3.3. Giới thiệu cảm biến màu TCS 34725
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
• Thông số kỹ thuật:
Trang 17Bảng 1.5: Bảng thông số kỹ thuật của cảm biến màu TCS34725
Tích hợp MCU xử lý và chuyển đổi
Giao tiếp có thể lựa chọn qua
Jumper + I2C của TCS34725.+ I2C của MCU
+ UART của MCU
• Cách thiết lập giao tiếp dựa vào Jumper S0 và S1:
o S1 để trống (default): Disable chân SCL và SDA, hai chân giao tiếp trực tiếp I2C với TCS34725, chỉ có thể giao tiếp qua hai chân CT / DR của MCU.\
o S1 nối với G: Enable chân SCL và SDA, sử dụng để giao tiếp trực tiếp với I2C của TCS34725 không thông qua MCU
o S0 để trống (default): Lựa chọn giao tiếp của MCU trên hai chân 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
o S0 nối với G: Lựa chọn giao tiếp của MCU trên hai chân CT / DR là I2C,
CT là I2C_SCL, DR là I2C_SDA
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1 Phân tích chức năng hệ thống
Trang 182.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.1 Sơ đồ khối
Hình 2.1: Sơ đồ khối hệ thống
2.2.2 Sơ đồ kết nối mạch
< >
2.2.3 Sơ đồ use case
Trang 19Hình 2.3: Sơ đồ use case
CHƯƠNG 3: THỰC NGHIỆM
3.1 KẾT LUẬN
Trang 203.2 TÀI LIỆU THAM KHẢO 3.3 PHỤ LỤC