Professional Documents
Culture Documents
Thực hiện
PHAN HOÀNG HẢI
Trang 2
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
LỜI CẢM ƠN
Lời đầu tiên em xin chân thành cảm ơn các thầy cô giáo trong Trường Đại Học Sư Phạm Kỹ
Thuật ĐÀ NẴNG nói chung, các thầy cô trong khoa Điện – Điện Tử nói riêng đã dạy dỗ cho em
kiến thức về các môn đại cương đặc biệt là thầy Thiện và cô Ngân Mi với học phần “truyền động
điện“ .
Điều đó tạo điều kiện cho nhóm có được cơ sở lý thuyết vững vàng và giúp đỡ các thành
viên trong nhóm xuyên suốt quá trình học tập.
Trang 3
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
[1] http://arduino.vn
[2] http://arduino.cc
[3] http://html.alldatasheet.com/html-pdf/454462/TAOS/TCS3200/96/1/TCS3200.html
Sách:
Trang 4
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
1.1. THỰC TRẠNG HIỆN NAY
Hiện nay trong tình hình đại dịch COVID đang có diễn biến khó lường , việc nguồn nhân lực
ít và thị trường tiêu thụ bị thu hẹp do ảnh hưởng của dịch bệnh thì tình hính sản xuất đặc biệt là
sản xuất về nông nghiệp gặp không ít thách thức . Ớt ngọt Đà Lạt cũng không nằm ngoài sự ảnh
hưởng đó ,
Ớt ngọt Đà Lạt có 3 loại chính , đó là ớt đỏ , xanh và vàng . Đây là loại thực phẩm có tác
dụng rất tốt cho sức khoẻ : giúp tăng cường thị lực , ngăn ngừa tình trạng thiếu máu , bảo vệ trái
tim khoẻ mạnh , giúp tiêu hoá tốt , bảo vệ giấc ngủ , giúp tóc chắc khoẻ và cải thiện da … Với
có quá nhiều công dụng thì ớt ngọt Đà Lạt đang rất được sự quan tâm của người tiêu dùng . Điều
này thúc đẩy việc sản xuất và phân phối một cách mạnh mẽ . Hiện nay các công ty trong lĩnh
vực vẫn chưa tự động hoá hoàn toàn trong quá trình phân loại và đóng gói sản phẩm giúp tối ưu
hoá năng suất nên cần có một giải pháp về vấn đề trên .
1.2. NGUYÊN NHÂN CHỌN ĐỀ TÀI
Khoa học kỹ thuật đặc biệt là tự động hoá luôn phát triển trong tất cả các lĩnh vực, nhất là
nghà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 .
Do đó chúng ta cần nắm bắt và vận dụng điều khiển tự động hoá một cách hiệu quả .Có rất nhiều
khâu tự động trong quá trình sản xuất , một trong số đó là khâu phân loại sản phẩm .
Có nhiều mô hình phân loại sản phẩm như theo chiều cao , cân nặng kích thước , nhưng với
nông sản có khối lượng và kích thước tương tự nhau như ớt ngọt Đà Lạt thì các mô hình kia
thực sự không phù hợp . Vì vậy hướng phù hợp hơn cả là phân loại theo màu sắc , do đó nhóm
quyết định thực hiện đề tài.
“THIẾT KẾ HỆ THỐNG ĐẾM VÀ PHÂN LOẠI ỚT NGỌT ĐÀ LẠT THEO MÀU SẮC “
1.3. MỤC TIÊU VÀ YÊU CẦU ĐẶT RA
1.3.1. Mục tiêu
Giảm sức lao động, cải thiện được điều kiện làm việc của con người, tạo cho con người
tiếp cận với sự tiến bộ của khoa học kỹ thuật và được làm việc trong môi trường ngày càng văn
minh hơn.
Nâng cao năng suất lao động, tạo tiền đề cho việc giảm giá thành sản phẩm .
Giúp cho việc quản lý và giám sát trở nên rất đơn giản, bởi vì nó không những thay đổi điều
kiện làm việc của công nhân mà còn có thể giảm số lượng công nhân đến mức tối đa.
1.3.2. Yêu cầu
Phân loại ớt ngọt dựa trên màu sắc thông qua ba màu cơ bản là: Đỏ vàng và tím.
Trang 5
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
Tiện lợi, dễ bảo trì mà ít cần thay đổi phần cứng.
Tự động nhận diện , đếm và phân loại được một cách hiệu quả khi có sản phẩm chạy qua.
1.4.NGUYÊN LÝ CHUNG
Khi ớt đi vào cảm biến màu sắc TCS34725 sẽ nhận diện màu cùng lúc với việc đếm số
lượng ớt. Động cơ kéo băng tải hoạt động , sau đó cảm biến vật cản hồng ngoại sẽ kiểm tra xem
có vật cản hay không . Nếu trái màu đỏ động cơ servo sẽ đẩy trái vào thùng đựng đỏ , nếu trái
màu vàng thì đẩy vào thùng vàng và cuối cùng màu tím thì sẽ chạy thẳng vào thùng tím ở cuối
băng tải.
Trang 6
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
CHƯƠNG 2: TÌM HIỂU VỀ CẤU TRÚC ARDUINO UNO VÀ
CÁC THIẾT BỊ TRONG ĐỀ TÀI
2.1.ARDUINO UNO R3
2.1.1. Khái niệm
Arduino một nền tảng mã nguồn mở phần cứng và phần mềm. Phần cứng Arduino (các
board mạch vi xử lý) được sinh ra tại thị trấn Ivrea ở Ý, nhằm xây dựng các ứng dụng tương
tác với nhau hoặc với môi trường được thuận lợi hơn. Phần cứng bao gồm một board mạch
nguồn mở được thiết kế trên nền tảng vi xử lý AVR Atmel 8bit, hoặc ARM Atmel 32-bit.
Những Model hiện tại được trang bị gồm 1 cổng giao tiếp USB, 6 chân đầu vào analog, 14
chân I/O kỹ thuật số tương thích với nhiều board mở rộng khác nhau.
Trang 7
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
Điện áp hoạt động 5VDC (Chỉ được cấp qua cổng USB)
Trang 8
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
SRAM 2KB(ATMEGA328)
EEPROM 1KB(ATMEGA328)
- Ít tốn kém.
- Các mẫu có sẵn phổ biến trong thị trường.
- Đa nền tảng (chạy trên các hệ điều hành Windows, Macintosh OSX và Linux).
- Cộng đồng arduino lớn dễ dàng trao đổi kiến thức.
- Các chức năng giúp đơn giản hóa công việc.
- Môi trường lập trình đơn giản, rõ ràng.
2.1.4. Ứng dụng
- Aruino Uno R3 được sử dụng phổ biến trong việc tự thiết kế ra các mạch điện tử như điều
khiển led, gửi dữ liệu lên lcd, điều khiển motor,... hay được gắn thêm các Shield để kết nối
nhiều module cảm biến khác để thực hiện thêm nhiều chức năng mở rộng như gửi dữ liệu
qua wifi.
Trang 9
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
- Ngoài ra, trên thị trường còn có nhiều biến thể của Arduino Uno để thực hiện thêm các tính
năng chuyên dụng, ví dụ như mCore, Orion trên mBot được chuyên dụng với việc dễ dàng
phân biệt các loại module nào có thể sử dụng cắm vào trên các cổng để trẻ dễ dàng sử dụng.
- Làm Robot. Arduino có khả năng đọc các thiết bị cảm biến, điều khiển động cơ, …nên nó
thường được dùng để làm bộ xử lý trung tâm của rất nhiều loại robot.
- Điều khiển đèn tín hiệu giao thông, làm hiệu ứng đèn Led nhấp nháy trên các biển quảng
cáo…
- Điều khiển các thiết bị cảm biến ánh sáng, âm thanh.
- Làm máy in 3D .
Trang 10
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
- Chip: TCS34725
- Điện áp: 3~5VDC
- Dòng tiêu thụ: 15mA
- Giải đo: RGB 0~255
- Tần số: 10Hz
- Tích hợp MCU xử lý và chuyển đổi giao tiếp.
- Giao tiếp:
o I2C của TCS34725.
o I2C của MCU.
o UART của MCU.
- Kích thước: 24x27mm
- Trọng lượng: 31g
Trang 11
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
- 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.
2.2.4. Ứng dụng
Một cảm biến màu sắc là một thiết bị rất hữu ích. Hiện nay các xe tự động đang được phát
triển, có thể chạy tự động, xe hơi không người lái, và cảm biến là một cách để có thể phát hiện
màu sắc ở những nơi như dấu hiệu dừng lại màu đỏ và đèn giao thông, màu xanh lá cây để đi và
đỏ dừng lại.
Một thiết bị cảm biến màu sắc có thể được tích hợp vào là robot. Càng nhiều khả năng mà một
robot có và thông minh hơn. Nếu một robot có thể phân biệt màu sắc, nó có nhiều khả năng. Hãy
tưởng tượng nếu bạn có một robot có thể nói sự khác biệt giữa một chiếc khăn màu xanh lá cây
và một chiếc khăn màu đỏ. Nếu bạn biết bạn có một chiếc khăn màu xanh lá cây và một người
khác có một chiếc khăn màu đỏ, các robot có thể sắp xếp nó một cách thích hợp
Các ứng dụng khác bao gồm đọc truyện, cảm biến ánh sáng xung quanh và hiệu chuẩn, và
màu sắc phù hợp.
Vì vậy cảm biến màu sắc sẽ được ứng dụng nhiều trong tương lai.
2.3. CẢM BIÊN HỒNG NGOẠI E3F DS10C4
2.3.1. Khái niệm
Cảm biến vật cản hồng ngoại E3F-DS10C4 Adjustable IR Infrared Proximity Sensor là loại
chất lượng tốt với độ bền và độ ổn định cao, cảm biến sử dụng ánh sáng hồng ngoại để xác định
vật cản phía trước cảm biến, cảm biến phát ra tia hồng ngoại với dải tần số chuyên biệt cho khả
năng chống nhiễu tốt kể cả ở điều khiện ánh sáng ngoài trời.
Trang 12
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
2.3.2. Thông số kỹ thuật
Model: E3F-DS10C4:
Số dây tín hiệu: 3 dây (2 dây cấp nguồn DC và 1 dây tín hiệu).
Chân tín hiệu ngõ ra: dạng Transistor NPN đã được kéo nội trở 10k lên VCC, khi có vật
cản sẽ ở mức thấp (Low-GND), khi không có vật cản sẽ xuất ra mức cao (High-VCC).
Nguồn điện cung cấp: 6 ~ 36VDC
Dòng tiêu thụ: 20~35mA
Khoảng cách điều chỉnh cảm biến: 2~10cm
Khoảng cách phát hiện vật cản: 0~10cm
Góc khuếch tán (góc chiếu): 3~5 độ
Có thể điều chỉnh khoảng cách nhận của cảm biến bằng biến trở tinh chỉnh.
Dòng kích ngõ ra: 300mA.
Có led hiển thị ngõ ra màu đỏ.
Chất liệu sản phẩm: vỏ ngoài nhựa ABS, phía trong đổ keo chống nước, chống va đập.
Kích thước: 18 x 68mm
Vì cảm biến đã được kéo trở nội 10k lên VCC nên điện áp mức cao của chân tín hiệu (Vout)
của cảm biến cũng chính là điện áp VCC, có hai trường hợp như sau:
- Nếu mạch cần giao tiếp sử dụng mức tín hiệu có điện áp bằng với điện áp VCC của cảm biến
(Ví dụ cảm biến và Arduino cùng cấp nguồn chung là VCC=5VDC, điện áp giao tiếp của
Trang 13
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
Arduino cũng là 5VDC và Vout của cảm biến cũng là 5VDC) thì không cần nối trở Rx mà
nối trực tiếp chân tín hiệu của cảm biến với chân tín hiệu của Arduino.
- Nếu mạch cần giao tiếp sử dụng mức tín hiệu có điện áp khác với điện áp VCC của cảm biến
(Ví dụ cảm biến cấp VCC=10VDC, điện áp giao tiếp của Arduino=5VDC) thì cần nối thêm
trở Rx như hình dưới để giá trị của Vout=5VDC không làm cháy mạch Arduino, giá trị của
Rx được tính theo công thức cầu phân áp là:
Rx= (Vout*R1) / (VCC-Vout) = (5*10) / (10-5) = 10k.
Động cơ Servo MG90S bánh răng kim loại là phiên bản nâng cấp của động cơ RC Servo 9G với
các bánh răng được làm bằng kim loại cho lực khéo khỏe và độ bền cao, động cơ có kích thước
nhỏ gọn, cách điều khiển giống như các động cơ RC Servo phổ biến trên thị trường hiện nay:
MG996, MG995, 9G,… Phù hợp cho nhiều ứng dụng khác nhau: Robot cánh tay máy, robot
nhện, cơ cấu chuyển hướng, cơ cấu quay góc,…
Trang 14
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
Trang 15
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
2.5.ĐỘNG CƠ MOTOR LK0195
Động cơ một chiều DC (DC là từ viết tắt của "Direct Current Motors") là Động cơ điều khiển
bằng dòng có hướng xác định hay nói dễ hiểu hơn thì đây là loại động cơ chạy bằng nguồn điện
áp DC- điện áp 1 chiều (khác với điện áp AC xoay chiều). Đầu dây ra của đông cơ thường gồm
hai dây (dây nguồn - VCC và dây tiếp đất - GND). DC motor là một động cơ một chiều với cơ
năng quay liên tục.
Động cơ điện 1 chiều phân loại theo kích từ thành những loại sau:
Với mỗi 1 loại động cơ điện 1 chiều như trên thì có các ứng dụng khác nhau. Nhưng trên thực
tế, ta chủ yếu tiếp xúc với loại động cơ DC công suất thấp có phần Stator sử dụng nam châm
vĩnh cửu nên thông thường là không cần đến phần kích từ cho động cơ. Vì vậy việc phân loại
trên mang tính chất tham khảo để các bác có thể tìm hiểu thêm và sâu rộng hơn. Ta nói đến và
quan tâm tới kích từ cho động cơ DC khi nói đến các loại động cơ DC công suất lớn, Stator của
động cơ không phải là nam châm vĩnh cửu mà là nam châm điện. Phần nam châm điện này cũng
gồm lõi thép kỹ thuật và các bó dây. Để Stator biến thành nam châm điện ta cần phải cấp điện
cho phần Startor của nó, khi đó ta gọi nó là kích từ. Như vậy với những loại động cơ DC chúng
ta tiếp cận không cần phải quan tâm tới "kích từ" của nó.
Trang 16
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
2.5.3. Cấu tạo
Trang 17
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
năng lượng cao. Sử dụng trong thiết bị cơ khí để di chuyển hoặc kiểm soát một cơ chế hay hệ
thống (Actuator) Dùng trong động cơ thủy lực, có chức năng chuyển đổi năng lượng của dòng
chất lỏng áp lực vào trong chuyển động cơ học. Motor trong các máy tời, kéo vật nặng theo
phương thẳng đứng. Motor dùng trong dây chuyền chế tạo máy nghiền đá Motor dùng làm máy
cắt các vật liệu cứng như sắt, thép…hoặc dùng trong máy cưa gỗ dày.
2.6. MODULE RELAY 1 KÊNH 5V
2.6.1. Ưu điểm
Module sử dụng Relay tốt, đảm bảo hoạt động ổn định, lâu dài.
Trên module có opto để cách ly dòng ngược về, hiệu suất ổn định.
Có thể set các mức cao thấp bằng cách thiết lập jumper trên module
Có Led báo nguồn màu xanh, Led báo trạng thái Relay màu đỏ.
Kết nối module với mạch điều khiển đơn giản.
2.6.2. Thông số kỹ thuật
Thông số Giá trị
Điện áp tải tối đa AC 250V-10A / DC 30V-10A
Điện áp điều khiển 5 VDC
Dòng kích Relay 5mA
Trạng thái kích Mức thấp (0V)
Đường kính Lỗ ốc 3.1 mm
-Kích thước 50 * 26 * 18.5 mm
Bảng 2.5 : Thông số Module relay 1 kênh 5V
Trang 18
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
2.7.MÀN HÌNH LCD1602
2.7.1. Khái niệm
LCD1602 là một màn hình tinh thể lỏng đặc trưng mà nhiều người đam mê vi điều khiển tiếp
xúc với trước đó. Chip điều khiển chính của nó là HD44780 hoặc các chip tương thích khác, có
khả năng hiển thị 2 dòng với mỗi dòng 16 ký tự, màn hình có độ bền cao, rất phổ biến. Hầu hết
những người mới bắt đầu tiếp xúc với nó, dễ sử dụng thích hợp cho làm dự án.
2.7.2. Cấu tạo
- Điện áp hoạt động là 5 V.
- Kích thước: 80 x 36 x 12.5 mm
- Chữ đen, nền xanh lá
- Khoảng cách giữa hai chân kết nối là 0.1inch tiện dụng khi kết nối với Breadboard.
- Tên các chân được ghi ở mặt sau của màn hình LCD hổ trợ việc kết nối, đi dây điện.
- Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít điện năng
hơn.
- Có thể được điều khiển với 6 dây tín hiệu
Ký
Chân Mô tả Giá trị
hiệu
1 VSS GND 0V
2 VCC 5V
3 V0 Độ tương phản
6 E Enable
9 DB2
10 DB3
Trang 19
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
11 DB4
12 DB5
13 DB6
14 DB7
Trang 20
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
2.8. MODULE I2C
2.8.3. Ưu điểm
Trang 21
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
Hiển thị một dãy ô vuông.
Màn hình chỉ in ra một ký tự đầu.
Màn hình nhấp nháy.
GND GND
VCC 5V
SDA A4/SDA
SCL A5/SCL
Trang 22
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
CHƯƠNG 3: TÍNH TOÁN, THIẾT KẾ VÀ THI CÔNG
3.1. SƠ ĐỒ KHỐI
Trang 23
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
3.2. LƯU ĐỒ THUẬT TOÁN
Lưu đồ là một loại sơ đồ biểu diễn một thuật toán hoặc một quá trình, biểu hiện các bước
công việc dưới dạng các loại hình hộp khác nhau theo thứ tự được biểu diễn bởi các mũi tên. Sơ
đồ này thể hiện giải pháp cho vấn đề cần giải quyết từng bước từng bước một.
Trang 26
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
Bước 4: Sau khi điều chỉnh xong thông tin cho File mới thì tiến hành biên soạn chương
trình
Hình 3. 6 Bảng điều khiển trong phần mềm Khối cảm biến
3.4.2.2. Sờ đồ kết nối:
Trang 27
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
Trang 28
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
Trang 29
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
MÔ PHỎNG MATLAB
Trang 30
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
3.5.MÔ PHỎNG TRÊN PROTEUS
Trang 31
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
CHƯƠNG 4: TỔNG KẾT
4.
4.1.KẾT LUẬN
4.1.1. Kết quả đạt được
Mô hình phân loại sản phẩm theo màu sắc.
Chương trình matlab mô phỏng.
Trang 32
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
Tạo được một mô hình phân loại sản phẩm theo màu sắc khá ổn định và mang tính thực tế .
Hiện nay số lượng sản phẩm cần phân loại khá nhiều.
Phạm vi sử dụng có thể thay đổi tùy theo nhu cầu thực tế . Không chỉ phân loại ớt ngọt mà còn
có thể dùng phân loại cho các loại nông sản khác ( theo màu sắc như táo, cà chua …)
4.1.3. Ưu điểm của sản phẩm
Kích thước vừa phải, gọn nhẹ nên vận chuyển khá dễ dàng, có tính thẩm mỹ trong quá trình
đi dây cũng như thiết kế mô hình.
Kinh phí ở mức phù hợp để thực hiện một đề tài học tập và nghiên cứu trong môi trường
học sinh, sinh viên.
Nghiên cứu dễ dàng và có thể mở rộng thêm.
4.1.4. Nhược điểm của sản phẩm
Tốc độ xử lý tạm ổn định tuy nhiên vẫn còn sai số.
Chỉ xử lý tuần tự mỗi lần một sản phẩm.
Quy trình thủ công vẫn còn xuất hiện ở một số bước trong quá trình phân loại sản phẩm.
4.2. HƯỚNG KHẮC PHỤC VÀ PHÁT TRIỂN
Khắc phục các hạn chế còn tồn tại của mô hình.
Mở rộng quy mô cũng như tốc độ, số lượng màu sắc cần phân loại.
Sử dụng thư viện AI để tăng khả năng và tốc độ nhận diện sản phẩm.
Phát triển xử lý nhiều tín hiệu cùng một lúc thay vì chỉ xử lý một cách tuần tự lần một sản
phẩm.
Thiết kế hệ thống điều khiển thông minh, tiện dụng hơn.
Mở rộng thêm các khâu đa nhiệm trong hệ thống hơn trước và sau khi phân loại sản phẩm
xong.
Tăng hiệu suất làm việc cũng như tốc độ của hệ thống.
Thiết kế bộ phận đưa sản phẩm tới thay vì sử dụng tay.
Sử dụng khí nén, cánh tay robot để gắp hay đẩy sản phẩm ra khỏi băng tải thay vì điều khiển
động cơ servo theo góc quay.
Trang 33
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
#include <Servo.h>
#include <Wire.h> // Gọi thư viện I2C để sử dụng các thư viện I2C
#include <LiquidCrystal_I2C.h> // Thư viện LCD I2C
LiquidCrystal_I2C lcd(0x27,16,2); // Khai báo địa chỉ I2C (0x27 or 0x3F) và LCD
16x02
int nn1=2,nn2=3,nn3=4; // nút nhấn
int tt1,tt2,tt3; // lấy trạng thái nút nhấn
int doo=0,tim=0,vang=0,tong=0,st=0 ; //so do tim vang, tong, bat dau
int tgdo=0,tgti=0,tgva=0; // các biến trung gian nhận biết màu gì được đưa vào
int cbd=5,cbv=6; // chân cảm biến nhận diện vật
int bt=13; // chân điều khiển băng tải
int cbdo,cbva; // lấy tín hiệu cảm biến vang đỏ
int ndo=7,nvang=8,ntim=9;
Servo svdo;
Servo svva;
void setup()
{
svdo.attach(11);
svdo.write (180);
svva.attach(12);
svva.write (180);
lcd.init(); //Khởi tạo màn hình LCD
lcd.backlight(); //Bật đèn màn hình lCD
pinMode(nn1, INPUT_PULLUP);
pinMode(nn2, INPUT_PULLUP);
pinMode(nn3, INPUT_PULLUP);
pinMode(ndo, INPUT_PULLUP);
pinMode(nvang, INPUT_PULLUP);
pinMode(ntim, INPUT_PULLUP);
pinMode(cbd, INPUT_PULLUP);
Trang 34
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
pinMode(cbv, INPUT_PULLUP);
pinMode(bt, OUTPUT);
lcd.setCursor(0, 0);
lcd.print("r:");
lcd.setCursor(2, 0);
lcd.print(doo);
lcd.setCursor(6,0 );
lcd.print("y:");
lcd.setCursor(8, 0);
lcd.print(vang);
lcd.setCursor(0,1);
lcd.print("p:");
lcd.setCursor(2, 1);
lcd.print(tim);
lcd.setCursor(6, 1);
lcd.print("t:");
lcd.setCursor(8, 1);
lcd.print(tong);
lcd.setCursor(13, 0);
lcd.print("STO");
Serial.begin(9600);
}
void loop()
{
Trang 35
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
if( digitalRead(ndo) == 0 )
{
tgdo = 1;
Serial.print(" Do ");
Serial.println(tgdo);
}
if( digitalRead(nvang) == 0 )
{
tgva=1;
Serial.print(" vang ");
Serial.println(tgva);
}
if( digitalRead(ntim) == 0 )
{
tgti=1;
Serial.print(" vtim ");
Serial.println(tgti);
}
if ( tt3==0 ) //reset
{
tong=0;
vang=0;
doo=0;
tim=0;
lcd.setCursor(2, 0);
lcd.print(" ");
lcd.setCursor(2, 0);
lcd.print("0");
lcd.setCursor(8, 0);
lcd.print(" ");
lcd.setCursor(8, 0);
lcd.print("0");
Trang 36
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
lcd.setCursor(2, 1);
lcd.print(" ");
lcd.setCursor(2, 1);
lcd.print("0");
lcd.setCursor(8, 1);
lcd.print(" ");
lcd.setCursor(8, 1);
lcd.print("0");
if ( tt1 == 0 ) // start
{
st=1;
lcd.setCursor(13, 0);
lcd.print("STA");
digitalWrite(bt,HIGH);
}
if ( tt2 == 0 ) // stop
{
st=0;
lcd.setCursor(13, 0);
lcd.print("STO");
digitalWrite(bt,LOW);
}
if ( st == 1)
{
if ( tgdo == 1 )
{
if (cbdo == 0)
{
doo++;
Trang 37
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
tong++;
lcd.setCursor(2, 0);
lcd.print(doo);
lcd.setCursor(8, 1);
lcd.print(tong);
tgdo=0;
svdo.write (145);
delay(500);
svdo.write (180);
}
}
if ( tgva == 1 )
{
if (cbva == 0)
{
vang++;
tong++;
lcd.setCursor(8, 0);
lcd.print(vang);
lcd.setCursor(8, 1);
lcd.print(tong);
tgva=0;
svva.write (145);
delay(500);
svva.write (180);
}
}
if ( tgti == 1 )
{
if (cbva == 0)
{
tim++;
tong++;
lcd.setCursor(2, 1);
lcd.print(tim);
lcd.setCursor(8, 1);
Trang 38
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
lcd.print(tong);
tgti=0;
}
}
}
}
Trang 39
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
Trang 40
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
% --- Outputs from this function are returned to the command line.
function varargout = ML_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
Trang 41
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
set(handles.db1,'string','Dung');
writeDigitalPin(anu,'D13',0);
Trang 42
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
if batdau == 1 && tgdo == 1
tgdo = 0;
ddo = ddo + 1;
tong= ddo + dvang +dxanh;
set(handles.tdo,'string',' ');
set(handles.do1,'string',num2str(ddo));
set(handles.tong1,'string',num2str(tong));
writePosition(sv1,0.85);
pause(0.1);
writePosition(sv1,0.80);
pause(0.1);
writePosition(sv1,0.78);
pause(0.1);
writePosition(sv1,0.75);
pause(1.5);
writePosition(sv1,1);
end
Trang 43
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
set(handles.txanh,'string',' ');
set(handles.xanh1,'string',num2str(dxanh));
set(handles.tong1,'string',num2str(tong));
end
Trang 44
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
Adafruit_TCS34725 tcs =
Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS,
TCS34725_GAIN_4X);
#include <Servo.h>
#include <Wire.h> // Gọi thư viện I2C để sử dụng các thư viện
I2C
#include <LiquidCrystal_I2C.h> // Thư viện LCD I2C
LiquidCrystal_I2C lcd(0x27,16,2); // Khai báo địa chỉ I2C (0x27 or
0x3F) và LCD 16x02
int nn1=2,nn2=3,nn3=4; // nút nhấn
int tt1,tt2,tt3; // lấy trạng thái nút nhấn
int doo=0,xanh=0,vang=0,tong=0,st=0 ; //so do tim vang, tong, bat dau
int tgdo=0,tgxa=0,tgva=0; // các biến trung gian nhận biết màu gì
được đưa vào
int cbd=5,cbv=6; // chân cảm biến nhận diện vật
int bt=13; // chân điều khiển băng tải
int cbdo,cbva; // lấy tín hiệu cảm biến vang đỏ
Servo svdo;
Servo svva;
void setup()
{
svdo.attach(11);
svdo.write (180);
svva.attach(12);
svva.write (180);
lcd.init(); //Khởi tạo màn hình LCD
lcd.backlight(); //Bật đèn màn hình lCD
pinMode(nn1, INPUT_PULLUP);
Trang 45
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
pinMode(nn2, INPUT_PULLUP);
pinMode(nn3, INPUT_PULLUP);
pinMode(cbd, INPUT);
pinMode(cbv, INPUT);
pinMode(bt, OUTPUT);
lcd.setCursor(0, 0);
lcd.print("r:");
lcd.setCursor(2, 0);
lcd.print(doo);
lcd.setCursor(6,0 );
lcd.print("y:");
lcd.setCursor(8, 0);
lcd.print(vang);
lcd.setCursor(0,1);
lcd.print("g:");
lcd.setCursor(2, 1);
lcd.print(xanh);
lcd.setCursor(6, 1);
lcd.print("t:");
lcd.setCursor(8, 1);
lcd.print(tong);
lcd.setCursor(13, 0);
lcd.print("STO");
Serial.begin(9600);
}
void loop()
{
uint16_t r, g, b, c, colorTemp, lux;
tcs.getRawData(&r, &g, &b, &c);
Trang 46
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
colorTemp = tcs.calculateColorTemperature_dn40(r, g, b, c);
lux = tcs.calculateLux(r, g, b);
if( r < b && b < g && colorTemp > 8000 && colorTemp < 10996 )
{
tgxa=1;
Serial.print(" xanh ");
Serial.println(tgxa);
}
if( r < lux && b < 59 && colorTemp < 7000 )
{
tgva=1;
Serial.print(" vang ");
Serial.println(tgva);
tgxa=0;
}
Trang 47
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
if ( tgva == 1) tgxa=0;
if ( tt3==0 ) //reset
{
tong=0;
vang=0;
doo=0;
xanh=0;
lcd.setCursor(2, 0);
lcd.print(" ");
lcd.setCursor(2, 0);
lcd.print("0");
lcd.setCursor(8, 0);
lcd.print(" ");
lcd.setCursor(8, 0);
lcd.print("0");
lcd.setCursor(2, 1);
lcd.print(" ");
lcd.setCursor(2, 1);
lcd.print("0");
lcd.setCursor(8, 1);
lcd.print(" ");
lcd.setCursor(8, 1);
lcd.print("0");
if ( tt1 == 0 ) // start
{
st=1;
lcd.setCursor(13, 0);
Trang 48
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
lcd.print("STA");
digitalWrite(bt,HIGH);
}
if ( tt2 == 0 ) // stop
{
st=0;
lcd.setCursor(13, 0);
lcd.print("STO");
digitalWrite(bt,LOW);
}
if ( st == 1)
{
if ( tgdo == 1 )
{
if (cbdo == 0)
{
doo++;
tong++;
lcd.setCursor(2, 0);
lcd.print(doo);
lcd.setCursor(8, 1);
lcd.print(tong);
tgdo=0;
svdo.write (160);
delay(50);
svdo.write (155);
delay(100);
svdo.write (150);
Trang 49
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
delay(100);
svdo.write (145);
delay(100);
svdo.write (143);
delay(1500);
svdo.write (180);
}
}
if ( tgva == 1 )
{
if (cbva == 0)
{
vang++;
tong++;
lcd.setCursor(8, 0);
lcd.print(vang);
lcd.setCursor(8, 1);
lcd.print(tong);
tgva=0;
svva.write (160);
delay(50);
svva.write (155);
delay(100);
svva.write (150);
delay(100);
svva.write (145);
delay(100);
svva.write (143);
delay(100);
svva.write (140);
delay(1500);
Trang 50
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
svva.write (180);
}
}
if ( tgxa == 1 )
{
if (cbva == 0)
{
delay(2000);
xanh++;
tong++;
lcd.setCursor(2, 1);
lcd.print(xanh);
lcd.setCursor(8, 1);
lcd.print(tong);
tgxa=0;
}
}
}
}
PHỤ LỤC HÌNH ẢNH
Hình 1 Mô phỏng mô hình...........................................................................................................6
Trang 51
Nhóm 4 GVHD:Đỗ Hoàng Ngân Mi
Hình 2. 11 Module relay 1 kênh 5V............................................................................................18
Hình 2. 12 Màn hình LCD 1602.................................................................................................20
Hình 2. 13 Module I2C...............................................................................................................21
Hình 2. 14 Mạch hạ áp DC LM2596...........................................................................................22
Trang 52