Hình 36: Thi công mô hình
CHƯƠNG 4: GIẢI THUẬT VÀ ĐIỀU KHIỂN 4.1 Hoạt động của hệ thống
Hệ thống phân loại sẽ thực hiện việc nhận biết màu sắc, trọng lượng của xoài ở đầu vào sau đó truyền tín hiệu màu và giá trị khối lượng đã qua xử lý sẽ được gửi đến khối xử lý trung tâm, sau khi đọc các giá trị dữ liệu vào thì bộ xử lí sẽ xử lí thông tin và thực hiện phân loại xoài theo các loại khác nhau.
4.2 Lưu đồ giải thuật
4.2.1 Lưu đồ giải thuật cho chương trình chính
Hình 42: Lưu đồ giải thuật cho chương trình chính
- Ở chương trình chính hệ thống, người dùng sẽ tác động vào nút START,
được từ khối cảm biến, với mỗi màu nhận được sẽ thực hiện dừng động băng tải. Xoài được băng tải vận chuyển đi qua các cảm biến tiệm cận và xi lanh sẽ
được tác động để thực hiện phân loại.
4.2.2 Lưu đồ giải thuật cho khối nhận biết màu sắc
Hình 43: Lưu đồ giải thuật cho khối nhận biết màu sắc
- Chương trình xử lý màu sắc sẽ thực hiện kiểm tra cảm biến vật cản, tiếp đến sẽ kiểm tra màu mà cảm biến nhận được với mỗi màu sẽ bật led có màu tương ứng và xuất tín hiệu ra chân tín hiệu tương ứng với màu đó.
CHƯƠNG 5: THỰC NGHIỆM 5.1 Tiến trình thực nghiệm
Bước 1: Kiểm tra dây nối đầu vào/ra, dây nguồn của mô hình.
Bước 2: Cấp nguồn cho hệ thống: nguồn tổ ong 220VAC/24VDC, nguồn Arduino Uno R3. Bước 3: Ấn nút “Start” để khởi động động cơ băng tải.
Bước 4: Đưa xoài vào băng tải, tiến hành phân loại xoài. Bước 5: Ấn nút “Stop”, băng tải tắt.
5.2 Kết quả thực nghiệm
Sau khi tiến hành thực nghiệm có được một số kết quả sau:
+ Loadcell “chỉnh 0” chưa hoàn toàn, sai lệch với thực tế cân 20-30 gram. + Phân loại màu xuất hiện nhiễu, ảnh hưỡng do cách sắp xoài.
5.3 Kết luận thực nghiệm
Sau khi thực nghiệm, rút ra được một số kết luận sau:
+ Hệ thống xuất hiện nhiễu khi xác định màu do kích thước xoài, cách sắp xoài. + Loadcell có sai số: 20-30 gram.
CHƯƠNG 6: KẾT LUẬN 6.1 Ưu điểm
- Giúp giảm thời gian tiến hành phân loại, nhân công lao động tại dây chuyền phân loại. Từ đó giảm chi phí nhân công, giảm chi phí sản xuất.
- Hệ thống đơn giản, dễ thiết kế, thi công.
6.2 Nhược điểm
- Xi lanh không thể điều chỉnh lực, lực đẩy mạnh nên ảnh hưởng đến chất lượng của xoài. - Cảm biến màu nhận biết màu sắc không thể chính xác màu sắc trạng thái của xoài. - Không thể nhận biết được các lỗi vật lí của xoài.
6.3 Hướng phát triển
- Kết nối Web Server giám sát thông số.
- Thiết kế giao diện Web để quản lý hệ thống từ xa.
- Mở rộng thêm các khâu khác trong hệ thống như: khâu rửa, đóng thùng… - Sử dụng camera để nhận biết lỗi, màu sắc chính xác.
- Mở rộng hệ thống để có thể phân loại thêm nhiều nông sản hoặc sản phẩm khác.
TÀI LIỆU THAM KHẢO
1. Cảm biến vật cản hồng ngoại E3F-DS30C4 NPN 6-36V - Nshop (nshopvn.com)
2. Cảm Biến Vật Cản Hồng Ngoại E18-D80NK - Nshop (nshopvn.com)
3. Cảm biến màu GY-31 (TCS3200) - Nshop (nshopvn.com)
4. Arduino là gì? Tổng quan về bo mạch vi điều khiển Arduino (mesidas.com)
5. 6ES7212-1AE40-0XB0.pdf (tme.eu)
6. S7-1200 Programmable controller (siemens.com)
7. E3F2-DS30C4-P1 Datasheet(PDF) - Omron Electronics LLC (alldatasheet.com)
8. E18-D80NK Datasheet(PDF) - List of Unclassifed Manufacturers (alldatasheet.com)
9. LRS-50-24 Nguồn Xung Mean Well 24V 2.2A 52.8W, Nguồn vào: 100-240VAC (thegioiic.com)
10.Van Điện Từ Khí Nén AIRTAC 4V210-08| Van Khí Nén 5/2 Ren 13mm (khinenthuanhung.vn)
Phụ lục 2: Code chương trình Arduino xử lí màu sắc
#define limit 90 #define threshhold 23
#define read_button digitalRead(3) //Set chân 3 cảm biến hồng ngoại
// Định nghĩa 4 chân const int s0 = 8; const int s1 = 9; const int s2 = 11; const int s3 = 12;
const int out = 10; // Output chân 10 //Khai báo 3 chân của Led
int yellowLed = 6; int greenLed = 7; unsigned long red = 0; unsigned long green = 0; int delta; void setup() { Serial.begin(9600); pinMode(s0, OUTPUT); pinMode(s1, OUTPUT); pinMode(s2, OUTPUT); pinMode(s3, OUTPUT);
pinMode(out, INPUT); // Set chân out của cảm biến màu pinMode(3, INPUT); // chân 3 Input của cảm biến hồng ngoại
pinMode(greenLed, OUTPUT); pinMode(yellowLed, OUTPUT);
digitalWrite(greenLed, LOW); digitalWrite(yellowLed, LOW); //Set 3 chân Led mức thấp digitalWrite(s0, HIGH); digitalWrite(s1, HIGH); //Tần số đầu ra là 100%
digitalWrite(s2, HIGH); digitalWrite(s3, LOW); } void Redphoto() { //Màu đỏ digitalWrite(s2, LOW); digitalWrite(s3, LOW); } void Greenphoto() { //Màu xanh lá digitalWrite(s2, HIGH); digitalWrite(s3, HIGH); } void loop() { if (read_button == 0) { color(); Classify(); red = 0; green = 0; } } void Classify() { Serial.print("R :"); Serial.print(red); Serial.print(" G : "); Serial.print(green); if ( green < limit) { Serial.print(" delta: "); Serial.println(delta);
if (delta > 6 && delta <= threshhold) {
Serial.println(" - (Yellow Mango)"); //digitalWrite(redLed, LOW); digitalWrite(greenLed, LOW); digitalWrite(yellowLed, HIGH); } else {
Serial.println(" - (Green Mango)"); digitalWrite(greenLed, HIGH);
digitalWrite(yellowLed, LOW); } } else Serial.println(" - (Unidentify)"); delay(450); //digitalWrite(redLed, LOW); digitalWrite(greenLed, LOW); digitalWrite(yellowLed, LOW); } void color() { Redphoto();
red = pulseIn(out, LOW); Greenphoto();
green = pulseIn(out, LOW); delta = green - red;