Khối tiếp thu - Nơi tiếp nhận tín hiệu đầu vào và chuyển đổi chúng thành đại lượng cần thiết, cung cấp tín hiệu cho khối trung gian. Khối trung gian - Cơ cấu tiếp nhận tín hiệu thông
Trang 1BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
GVHD: Bùi Thanh Lâm
Sinh viên thực hiện Trịnh Hoàng Anh ( Trường nhóm )
Khóa: K16
Mã lớp: 20221ME6001003
Năm học: 2022 - 2023
Trang 2MỞ ĐẦU 3
PHẦN I CÁCH LẮP ĐẶT VÀ CẤU TẠO, NGUYÊN LÝ HOẠT ĐỘNG CỦA CÁC BỘ PHẬN ĐƯỢC SỬ DỤNG TRONG PROJECT 4
1 Module c m biếến màu TCS 3200 ả 4
2 Relay(R -le): ơ 8
3 C m biếến ánh sáng: ả 9
4 Đ ng c Servo: ộ ơ 10
5 B ng m ch điếều khiếến Adruino UNO R3 ả ạ 11
PHẦN II NGUYÊN LÝ HOẠT ĐỘNG 16
1 Nguyến lí 16
2 S đồề m ch ơ ạ 16
3 Code ch ươ ng trình 17
PHẦN III VIDEO SẢN PHẨM 24
PHẦN IV KẾT QUẢ 25
1 Đã đ t đ ạ ượ 25 c 2 Ch a đ t đ ư ạ ượ 25 c PHẦN V TÀI LIỆU THAM KHẢO 25
Trang 3MỞ ĐẦU
Trong các nhà máy, phân xưởng, xí nghiệp, nơi có số lượng hàng hóa lớn, trongcông việc phân loại sản phẩm, nếu dùng theo cách thông thường là cho các nhâncông phân loại sản phẩm thì sẽ tốn rất nhiều nhân công và hiệu quả sẽ không đượccao Vậy cho nên chúng em đã tìm hiểu, nghiên cứu, phương pháp phân loại sảnphẩm dựa theo màu sắc giúp cho việc phân loại sản phẩm sẽ được thực hiện theomột cách máy móc, công nghiệp, giảm nhân lực và tăng năng xuất cho việc sảnxuất
Bài nghiên cứu sử dụng cảm biến TCS 3200 nhận biết màu sắc , cảm biến hồngngoại nhận biết vật cản, relay trung gian, động cơ servo, vi điều khiển ArduinoUNO R3 trên môi trường code Arduino mô phỏng quy trình vận hành của dự án
Trang 4PHẦN I CÁCH LẮP ĐẶT VÀ CẤU TẠO, NGUYÊN LÝ HOẠT ĐỘNG CỦA CÁC BỘ PHẬN ĐƯỢC SỬ DỤNG TRONG PROJECT
1 Module cảm biến màu TCS 3200
Module cảm biến màu TCS3200 là một module cảm biến phát hiện đầy đủmàu sắc, bao gồm cả cảm biến TCS3200 với khả năng nhận biết 3 màu cơbản RGB và 4 led màu trắng Các TCS3200 có thể phát hiện và đo lườnggần như tất cả màu sắc có thể nhìn thấy Các bộ lọc màu bên trong TCS3200được phân bố đều khắp các mảng để loại bỏ sai lệch vị trí giữa các điểmmàu Bên trong là một bộ dao động tạo ra sóng vuông ở ngõ ra tỉ lệ vớicường độ màu sắc
Trang 6VDD (5) Chân cấp nguồn (2,7 – 5,5V)
S2, S3 (7,8) Ngõ vào chọn loại photodiode
giản là một linh kiện bán dẫn chuyển đổi ánh sáng thành dòng điện
khác nhau Khi lựa chọn một bộ lọc màu nào nó sẽ cho phép chỉ nhận biết 1màu và các màu khác sẽ bị chặn Ví dụ, khi lựa chọn bộ lọc màu xanh lá(green) thì chỉ có ánh sáng tới màu xanh lá mới có thể được thông qua, màu
đỏ và màu xanh dương sẽ bị chặn lại như hình minh họa bên dưới Vì vậy,chúng ta có thể nhận được cường độ ánh sáng màu xanh lá Tương tự như
Trang 7vậy, khi lựa chọn các bộ lọc màu khác thì chúng ta có thể nhận được ánhsáng màu đỏ (red) hoặc màu xanh dương (blue).
được thực hiện thông qua 2 chân S2 và S3 như bảng dưới đây
tần số Các giá trị đọc từ photodiode được chuyển đổi thành sóng vuông cótần số tỷ lệ thuận với cường độ ánh sáng phản xạ khỏi bề mặt của vật thể
quả màu sắc
chia tỷ lệ thành các giá trị đặt trước sau: 2%, 20% hoặc 100% Các bộ viđiều khiển khác nhau có cấu hình cho bộ định thời khác nhau Chức năngchia tỷ lệ tần số về cơ bản cho phép ngõ ra của cảm biến được tối ưu hóa chocác bộ vi điều khiển khác nhau
Trang 8 Tần số ngõ ra của module cảm biến màu TCS3200 trong khoảng 2 Hz ~ 500kHz Tần số ngõ ra có dạng xung vuông với tần số khác nhau tương ứng vớimàu sắc và cường độ sáng là khác nhau.
trên cho phù hợp với phần cứng đo tần số
2 Relay(Rơ-le):
Là công tắc điện tử có khả năng bật tắt một dòng có cường độ lớn hơn nhiều so
với dòng đang vận hành Có thể hiểu đơn giản, relay như một đòn bẩy điện, có tácdụng chuyển mạch Relay được bật vận hành bằng 1 dòng điện có cường độ nhỏnhưng có khả năng bật giúp các thiết bị khác sử dụng dòng có cường độ lớn hơnnhiều so với dòng hiện hành
Cấu tạo:
Bản chất của relay là 1 nam châm điện và hệ thống các tiếp điểm đóng cắt, đượcthiết kế theo kiểu modem dễ dàng lắp đặt sử dụng Cấu tạo cơ bản của relay sẽ baogồm 3 khối cơ bản:
Trang 9 Khối tiếp thu - Nơi tiếp nhận tín hiệu đầu vào và chuyển đổi chúngthành đại lượng cần thiết, cung cấp tín hiệu cho khối trung gian.
Khối trung gian - Cơ cấu tiếp nhận tín hiệu thông tin từ khối tiếp thu
và biến chúng thành đại lượng cần thiết cho relay tác động
Khối chấp hành - Khối thực hiện nhiệm vụ được cấp từ khối trunggian, phát tín hiệu cho mạch điều khiển
Nguyên lý hoạt động:
Khi dòng điện công suất nhỏ chạy qua mạch điện thứ nhất sẽ kíchhoạt nam châm điện, tạo ra từ trường, tín hiệu Từ trường này sẽ thuhút 1 tiếp điểm để kích hoạt mạch điện thứ 2, cho phép thiết bị kết nối
sử dụng dòng có cường độ lớn hơn rất nhiều
Khi dòng điện bị ngắt, nam châm ngừng hoạt động, không tạo ra thịtrường Lúc này, tiếp điểm sẽ bị lực kéo của lò xo ban đầu kéo về vịtrí cũ, tương ứng với mạch điện thứ 2 bị ngắt
3 Cảm biến ánh sáng:
Cảm biến ánh sáng là một thiết bị có khả năng phát hiện và đo lượng ánh sángmôi trường xung quanh
Trang 10 Cấu tạo: Cảm biến CDS bao gồm hai tấm kim loại dẫn điện được nốivới một tấm CdS CdS là một chất bán dẫn có khả năng điện trở biếnđổi theo mức độ chiếu sáng.
Nguyên lý hoạt động:-
Khi ánh sáng chiếu vào tấm CdS, độ dẫn điện của nó thay đổi.Điều này là do photons trong ánh sáng kích thích các electrontrong CdS, tăng cường sự di chuyển của chúng và làm tăng sốlượng electron tự do Do đó, độ dẫn điện của CdS tăng lên vàđiện trở của nó giảm
Khi cảm biến CDS được kết nối với một mạch điện, sự thay đổiđiện trở của CdS sẽ dẫn đến sự thay đổi điện áp trên nó Mạchđiện sử dụng thông số này để tính toán mức độ chiếu sáng
4 Động cơ Servo:
Cấu tạo và nguyên lý hoạt động:
-Động cơ servo yêu cầu ta phải cấp nguồn (2 dây) và nhận điều khiển
từ mạch chính (1 dây), mỗi dây thường được đánh màu như sau:
Trang 11· Đỏ : nhận điện nguồn, tuỳ vào loại động cơ mà giá trị này có thể
khác nhau
-Động cơ servo là sự kết hợp của động cơ DC, hệ thống điều khiển vịtrí, bánh răng Vị trí của trục của động cơ DC được điều chỉnh bởi cácthiết bị điện tử điều khiển trong servo, dựa trên tỷ số nhiệm vụ (dutyratio) của tín hiệu PWM ở chân SIGNAL
-Nói một cách đơn giản điện tử điều khiển điều chỉnh vị trí trục bằngcách điều khiển động cơ DC Dữ liệu liên quan đến vị trí của trụcđược gửi qua chân SIGNAL Dữ liệu vị trí để điều khiển phải đượcgửi dưới dạng tín hiệu PWM thông qua chân tín hiệu (SIGNAL) củađộng cơ servo
-Tần số của tín hiệu PWM (Pulse Width Modulated) có thể thay đổitùy theo loại mô tơ servo Điều quan trọng ở đây là hệ số nhiệm vụ(DUTY RATIO) của tín hiệu PWM Dựa trên hệ số nhiệm vụ này, cácthiết bị điện tử điều khiển điều chỉnh trục
-Trong một mô tơ servo analog thông thường, tín hiệu PWM vớikhoảng thời gian 20 ms được sử dụng để điều khiển động cơ Tín hiệu
20 ms có tần số 50 Hz
-Chiều rộng của xung được thay đổi giữa 1 và 2 ms để điều khiển vịtrí trục động cơ
· Độ rộng xung 1ms sẽ làm cho trục servo dừng ở vị trí 0 độ
· Độ rộng xung 1,5ms sẽ khiến trục servo được đặt ở vị trí 90 độ,
vị trí chính giữa hành trình của nó
· Độ rộng xung 2ms sẽ khiến trục servo nằm ở vị trí 180 độ.Thay đổi độ rộng xung giữa 1ms và 2ms sẽ di chuyển trục servo thayđổi từ 0 độ đến 180 độ Bạn có thể đặt trục động cơ ở bất kỳ góc độnào mà bạn mong muốn bằng cách điều chỉnh độ rộng xung cho phùhợp
5 Bảng mạch điều khiến Adruino UNO R3
Trang 12 Cấu tạo và nguyên lý hoạt động:
Một vài thông số của Arduino UNO R3
Trang 13Dòng tối đa trên mỗi chân
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ồnngoà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ấpnguồ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
GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi
bạn dùng các thiết bị sử dụng những nguồn điện riêng biệt thì nhữngchâ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, bạn nối
cực dương của nguồn với chân này và cực âm của nguồn với chânGND
Trang 14 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 Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạnkhô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 1 điện trở 10KΩ
Lưu ý:
Arduino UNO không có bảo vệ cắm ngược nguồn vào Do đó bạnphải hết sức cẩn thận, kiểm tra các cực âm – dương của nguồn trướckhi cấp cho Arduino UNO Việc làm chập mạch nguồn vào củaArduino UNO sẽ biến nó thành một miếng nhựa chặn giấy mìnhkhuyên bạn nên dùng nguồn từ cổng USB nếu có thể
Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn racho các thiết bị khác, không phải là các chân cấp nguồn vào Việc cấpnguồn sai vị trí có thể làm hỏng board Điều này không được nhà sảnxuất khuyến khích
Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện ápdưới 6V có thể làm hỏng board
Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng viđiều khiển ATmega328
Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog củaArduino UNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển
Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của ArduinoUNO sẽ làm hỏng vi điều khiển
Cường độ dòng điện qua một chân Digital hoặc Analog bất kì củaArduino UNO vượt quá 40mA sẽ làm hỏng vi điều khiển Do đó nếukhông dùng để truyền nhận dữ liệu, bạn phải mắc một điện trở hạndòng
Bộ nhớ
Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:
32KB bộ nhớ Flash: những đoạn lệnh bạn lập trình sẽ được lưu trữ
trong bộ nhớ Flash của vi điều khiển Thường thì sẽ có khoảng vài KBtrong số này sẽ được dùng cho bootloader nhưng đừng lo, bạn hiếmkhi nào cần quá 20KB bộ nhớ này đâu
Trang 15 2KB cho SRAM (Static Random Access Memory): giá trị các biến
bạn khai báo khi lập trình sẽ lưu ở đây Bạn khai báo càng nhiều biếnthì càng cần nhiều bộ nhớ RAM Tuy vậy, thực sự thì cũng hiếm khinào bộ nhớ RAM lại trở thành thứ mà bạn phải bận tâm 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 bạn có thể đọc
và ghi dữ liệu của mình vào đây mà không phải lo bị mất khi cúp điệngiống như dữ liệu trên SRAM
Các cổng vào/ra
Arduino UNO có 14 chân digital dùng để đọc hoặc xuất tín hiệu Chúng chỉ có 2mứ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ỗichân đều có các điện trở pull-up từ được cài đặt ngay trong vi điều khiểnATmega328 (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:
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ớithiết bị khác thông qua 2 chân này Kết nối bluetooth thường thấy nóinôm na chính là kết nối Serial không dây Nếu không cần giao tiếpSerial, bạn không nên sử dụng 2 chân này nếu không cần thiết
Chân PWM (~): 3, 5, 6, 9, 10, và 11: cho phép bạn 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, bạn có thể điềuchỉ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
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ềnphát dữ liệu bằng giao thức SPI với các thiết bị khác
LED 13: trên Arduino UNO có 1 đèn led màu cam (kí hiệu chữ L).
Khi bấm nút Reset, bạn 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
Arduino UNO có 6 chân analog (A0 → A5) cung cấp độ phân giải tín
Với chân AREF trên board, bạn có thể để đưa vào điện áp tham chiếu
khi sử dụng các chân analog Tức là nếu bạn cấp điện áp 2.5V vào
Trang 16chân này thì bạn có thể dùng các chân analog để đo điện áp trongkhoảng từ 0V → 2.5V với độ phân giải vẫn là 10bit.
2 Sơ đồ mạch
Trang 18int g_array[3]; // store the RGB value
int g_flag = 0; // filter of RGB queue
floatg_SF[3]; // save the RGB Scale factor
unsignedchar ketqua = 0;
unsignedchar black = 0, white = 0, other = 0;
pinMode(OUT, INPUT);
digitalWrite(S1, HIGH);
}
// Select the filter color
void TSC_FilterColor(int Level01, intLevel02)
Trang 20pinMode(IR2, INPUT);
pinMode(RELAY, OUTPUT);
pinMode(LED, OUTPUT);
servo2.attach(11); // ket noi servo vao chan 10
Timer1.attachInterrupt(TSC_Callback); // gan ham vao ngat tran timer1
attachInterrupt(0, TSC_Count, RISING); //gan ham vao ngat canh len chan out cua cam bien mau
Trang 21g_SF[1] = 255.0/ g_array[1] ; //G lay thong so moi truong
g_SF[2] = 255.0/ g_array[2] ; //B lay thong so moi truong
Serial.println("R");Serial.println(g_array[0] ;
Serial.println("G");Serial.println(g_array[1] ;
Serial.println("B");Serial.println(g_array[2] ;
Serial.println(digitalRead(IR2));
if(g_array[0]> 200 && g_array[0]< 500 && g_array[0] > (g_array[1] &&
g_array[0] < g_array[2] {
//black++;
//black_servo();
servo2.write(30);
goc = servo2.read();
Serial.print("Góc hiện tại: "); Serial.println(goc);
ketqua = 1;
Trang 22goc = servo2.read();
Serial.print("Góc hiện tại: "); Serial.println(goc);
}
Trang 25
PHẦN IV KẾT QUẢ
1 Đã đạt được
Dựng được code để khởi chạy cho sản phẩm
Sản phẩm chạy đúng theo quy trình, nguyên lí hoạt động, cảm biến màu sắc TCS
3200 nhận biết màu đúng theo dải màu đã được quy định
2 Chưa đạt được
Động cơ servo chưa hoạt động đúng theo code chương trình đã được khởi tạo sẵn
PHẦN V TÀI LIỆU THAM KHẢO
https://www.youtube.com/watch?v=AGRZ_69O2nE&t=122s
https://mualinhkien.vn/huong-dan-su-dung-module-cam-bien-mau-sac-tcs3200
Trang 26https://www.studocu.com/vn/document/truong-cao-dang-cong-nghe-bach-khoa-ha-noi/matm25hshhdhbhsbkzbhz-n-zhhs/he-thong-dem-va-phan-loai-san-pham-theo-mau-sac/39657673? fbclid=IwAR1d9L9RI40eAN_xDmc-4XjKeXcW5LLBfuFM5iIiR13LZ-kAn9bizyLCWf0