báo cáo cảm biến màu sắc

25 5 0
báo cáo cảm biến màu sắc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI KHOA CƠ KHÍ  - - BÁO CÁO PROJECT PHÂN BIỆT SẢN PHẨM DỰA THEO MÀU SẮC Học phần: Cảm biến hệ thống đo GVHD: Bùi Thanh Lâm Sinh viên thực Trịnh Hồng Anh ( Trưởng nhóm ) Lê Trường Sơn Nguyễn Ngọc Huy Nguyễn Trường An Hồng Văn Thoan Khóa: K16 Mã lớp: 20222ME6044006 Năm học: 2022 - 2023 MỞ ĐẦU 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 Module cảm biến màu TCS 3200 Relay(Rơ-le): Cảm biến ánh sáng: Động Servo: Bảng mạch điều khiến Adruino UNO R3 11 PHẦN II NGUYÊN LÝ HOẠT ĐỘNG .16 Nguyên lí 16 Sơ đồ mạch 16 Code chương trình 17 PHẦN III VIDEO SẢN PHẨM 24 PHẦN IV KẾT QUẢ 25 Đã đạt 25 Chưa đạt 25 PHẦN V TÀI LIỆU THAM KHẢO 25 MỞ ĐẦU Trong nhà máy, phân xưởng, xí nghiệp, nơi có số lượng hàng hóa lớn, cơng việc phân loại sản phẩm, dùng theo cách thông thường cho nhân công phân loại sản phẩm tốn nhiều nhân công hiệu không cao Vậy chúng em tìm hiểu, nghiên cứu, phương pháp phân loại sản phẩm dựa theo màu sắc giúp cho việc phân loại sản phẩm thực theo cách máy móc, cơng nghiệp, giảm nhân lực tăng xuất cho việc sản xuấ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ồng ngoại nhận biết vật cản, relay trung gian, động servo, vi điều khiển Arduino UNO R3 mơi trường code Arduino mơ quy trình vận hành dự án 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 Module cảm biến màu TCS 3200 Module cảm biến màu TCS3200 module cảm biến phát đầy đủ màu sắc, bao gồm cảm biến TCS3200 với khả nhận biết màu RGB led màu trắng Các TCS3200 phát đo lường gần tất màu sắc nhìn thấy Các lọc màu bên TCS3200 phân bố khắp mảng để loại bỏ sai lệch vị trí điểm màu Bên dao động tạo sóng vng ngõ tỉ lệ với cường độ màu sắc  Cấu tạo:  Sơ đồ chân Tên chân Mô tả S1,S0 (1,2) Ngõ vào chọn tỉ lệ tần số ngõ OE (3) Ngõ vào cho phép xuất tần số chân OUT (tích cực mức thấp) GND (4) Chân nối đất VDD (5) Chân cấp nguồn (2,7 – 5,5V) OUT (6) Ngõ tần số thay đổi phụ thuộc cường độ màu sắc S2, S3 (7,8) Ngõ vào chọn loại photodiode  Thông số kỹ thuật  · Chuyển đổi cường độ ánh sáng thành tần số có độ phân giải cao  · Lập trình lựa chọn lọc màu sắc khác dạng tần số xuất  · Giao tiếp trực tiếp với vi điều khiển  · Điện áp 2.7 – 5.5V  · Kích thước: 28.4 x 28.4mm  · Tần số ngõ có độ rộng xung 50%  · Tần số tỉ lệ với ánh sáng có cường độ màu sắc khác  · Tần số ngõ nằm khoảng Hz- 500KHz  Nguyên lý hoạt động  Cảm biến màu TCS3200 gồm khối hình vẽ phía dưới:  Khối mảng ma trận 8×8 gồm photodiode Photodiode đơn giản linh kiện bán dẫn chuyển đổi ánh sáng thành dòng điện  * 16 photodiode lọc màu đỏ (red)  * 16 photodiode lọc màu xanh (green)  * 16 photodiode lọc màu xanh dương (blue)  * 16 photodiode trắng không lọc (clear)  Bản chất loại photodiode lọc ánh sáng có màu sắc khác Khi lựa chọn lọc màu cho phép nhận biết màu màu khác bị chặn Ví dụ, lựa chọn lọc màu xanh (green) có ánh sáng tới màu xanh thơng qua, màu đỏ màu xanh dương bị chặn lại hình minh họa bên Vì vậy, nhận cường độ ánh sáng màu xanh Tương tự vậy, lựa chọn lọc màu khác nhận ánh sáng màu đỏ (red) màu xanh dương (blue)  Tại thời điểm có lọc màu chọn Việc chọn lọc màu thực thông qua chân S2 S3 bảng S2 S3 Loại lọc L L Red L H Blue H L Clear (no filter) H H Green  Khối thứ hai cảm biến màu TCS3200 chuyển đổi dòng điện sang tần số Các giá trị đọc từ photodiode chuyển đổi thành sóng vng có tần số tỷ lệ thuận với cường độ ánh sáng phản xạ khỏi bề mặt vật thể Cuối cùng, dùng vi điều khiển đề đọc sóng vuông ngõ lấy kết màu sắc  Các chân S0 S1 sử dụng để điều chỉnh tần số đầu Nó chia tỷ lệ thành giá trị đặt trước sau: 2%, 20% 100% Các vi điều khiển khác có cấu hình cho định thời khác Chức chia tỷ lệ tần số cho phép ngõ cảm biến tối ưu hóa cho vi điều khiển khác  S0 S1 Tỷ lệ tần số ngõ L L Power down L H 2% H L 20% H H 100%  Tần số ngõ module cảm biến màu TCS3200 khoảng Hz ~ 500 kHz Tần số ngõ có dạng xung vng với tần số khác tương ứng với màu sắc cường độ sáng khác  Chúng ta lựa chọn tỉ lệ tần số ngõ mức khác bảng cho phù hợp với phần cứng đo tần số Relay(Rơ-le): Là công tắc điện tử có khả bật tắt dịng có cường độ lớn nhiều so với dòng vận hành Có thể hiểu đơn giản, relay địn bẩy điện, có tác dụng chuyển mạch Relay bật vận hành dịng điện có cường độ nhỏ có khả bật giúp thiết bị khác sử dụng dịng có cường độ lớn nhiều so với dòng hành  Cấu tạo: Bản chất relay nam châm điện hệ thống tiếp điểm đóng cắt, thiết kế theo kiểu modem dễ dàng lắp đặt sử dụng Cấu tạo relay bao gồm khối bản:   Khối tiếp thu - Nơi tiếp nhận tín hiệu đầu vào 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 tin từ khối tiếp thu 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 nhiệm vụ cấp từ khối trung gian, phát tín hiệu cho mạch điều khiển Ngun lý hoạt động:  Khi dịng điện cơng suất nhỏ chạy qua mạch điện thứ kích hoạt nam châm điện, tạo từ trường, tín hiệu Từ trường thu hút 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 nhiều  Khi dòng điện bị ngắt, nam châm ngừng hoạt động, không tạo thị trường Lúc này, tiếp điểm bị lực kéo lò xo ban đầu kéo vị trí cũ, tương ứng với mạch điện thứ bị ngắt Cảm biến ánh sáng: Cảm biến ánh sáng thiết bị có khả phát đo lượng ánh sáng môi trường xung quanh  Cấu tạo: Cảm biến CDS bao gồm hai kim loại dẫn điện nối với CdS CdS chất bán dẫn có khả đ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 CdS, độ dẫn điện thay đổi Điều photons ánh sáng kích thích electron CdS, tăng cường di chuyển chúng làm tăng số lượng electron tự Do đó, độ dẫn điện CdS tăng lên điện trở giảm  Khi cảm biến CDS kết nối với mạch điện, thay đổi điện trở CdS dẫn đến thay đổi điện áp Mạch điện sử dụng thơng số để tính toán mức độ chiếu sáng Động Servo:  Cấu tạo nguyên lý hoạt động: -Động servo yêu cầu ta phải cấp nguồn (2 dây) nhận điều khiển từ mạch (1 dây), dây thường đánh màu sau: · Đỏ: nhận điện nguồn, tuỳ vào loại động mà giá trị khác · Đen/Nâu: nối với cực âm mạch · Vàng/Cam: nhận tín hiệu từ mạch điều khiển -Động servo kết hợp động DC, hệ thống điều khiển vị trí, bánh Vị trí trục động DC điều chỉnh thiết bị điện tử điều khiển servo, dựa tỷ số nhiệm vụ (duty ratio) tín hiệu PWM chân SIGNAL -Nói cách đơn giản điện tử điều khiển điều chỉnh vị trí trục cách điều khiển động DC Dữ liệu liên quan đến vị trí trục gửi qua chân SIGNAL Dữ liệu vị trí để điều khiển phải gửi dạng tín hiệu PWM thơng qua chân tín hiệu (SIGNAL) động servo -Tần số tín hiệu PWM (Pulse Width Modulated) thay đổi tùy theo loại mô tơ servo Điều quan trọng hệ số nhiệm vụ (DUTY RATIO) tín hiệu PWM Dựa hệ số nhiệm vụ này, thiết bị điện tử điều khiển điều chỉnh trục -Trong mô tơ servo analog thơng thường, tín hiệu PWM với khoảng thời gian 20 ms sử dụng để điều khiển động Tín hiệu 20 ms có tần số 50 Hz -Chiều rộng xung thay đổi ms để điều khiển vị trí trục động · Độ rộng xung 1ms làm cho trục servo dừng vị trí độ · Độ rộng xung 1,5ms khiến trục servo đặt vị trí 90 độ, vị trí hành trình · Độ rộng xung 2ms khiến trục servo nằm vị trí 180 độ Thay đổi độ rộng xung 1ms 2ms di chuyển trục servo thay đổi từ độ đến 180 độ Bạn đặt trục động góc độ mà bạn mong muốn cách điều chỉnh độ rộng xung cho phù hợp Bảng mạch điều khiến Adruino UNO R3  Cấu tạo nguyên lý hoạt động:  Một vài thông số Arduino UNO R3 Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ cấp qua cổng USB) Tần số hoạt động 16 MHz Dòng tiêu thụ khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC Số chân Digital I/O 14 (6 chân hardware PWM) Số chân Analog (độ phân giải 10bit) Dòng tối đa chân I/O 30 mA Dòng tối đa (5V) 500 mA Dòng tối đa (3.3V) 50 mA Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bootloader SRAM KB (ATmega328) EEPROM KB (ATmega328)  Vi điều khiển Arduino UNO sử dụng vi điều khiển họ 8bit AVR ATmega8, ATmega168, ATmega328 Bộ não xử lí tác vụ đơn giản đ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 trạm đo nhiệt độ - độ ẩm hiển thị lên hình LCD,… hay ứng dụng khác mà bạn xem  Năng lượng Arduino UNO cấp nguồn 5V thơng qua cổng USB cấp nguồn ngồi với điện áp khuyên dùng 7-12V DC giới hạn 6-20V Thường cấp nguồn pin vng 9V hợp lí bạn khơng có sẵn nguồn từ cổng USB Nếu cấp nguồn vượt ngưỡng giới hạn trên, bạn làm hỏng Arduino UNO  Các chân lượng  GND (Ground): cực âm nguồn điện cấp cho Arduino UNO Khi bạn dùng thiết bị sử dụng nguồn điện riêng biệt chân phải nối với  5V: cấp điện áp 5V đầu Dòng tối đa cho phép chân 500mA  3.3V: cấp điện áp 3.3V đầu Dòng tối đa cho phép chân 50mA  Vin (Voltage Input): để cấp nguồn cho Arduino UNO, bạn nối cực dương nguồn với chân cực âm nguồn với chân GND  IOREF: điện áp hoạt động vi điều khiển Arduino UNO đo chân Và dĩ nhiên ln 5V Mặc dù bạn không lấy nguồn 5V từ chân để sử dụng chức khơng phải cấp nguồn  RESET: việc nhấn nút Reset board để reset vi điều khiển tương đương với việc chân RESET nối với GND qua điện trở 10KΩ  Arduino UNO khơng có bảo vệ cắm ngược nguồn vào Do bạn phải cẩn thận, kiểm tra cực âm – dương nguồn trước cấp cho Arduino UNO Việc làm chập mạch nguồn vào Arduino UNO biến thành miếng nhựa chặn giấy khuyên bạn nên dùng nguồn từ cổng USB  Các chân 3.3V 5V Arduino chân dùng để cấp nguồn cho thiết bị khác, chân cấp nguồn vào Việc cấp nguồn sai vị trí làm hỏng board Điều khơng nhà sản xuất khuyến khích  Cấp nguồn ngồi khơng qua cổng USB cho Arduino UNO với điện áp 6V làm hỏng board  Cấp điện áp 13V vào chân RESET board làm hỏng vi điều khiển ATmega328  Cường độ dòng điện vào/ra tất chân Digital Analog Arduino UNO vượt 200mA làm hỏng vi điều khiển  Cấp điệp áp 5.5V vào chân Digital Analog Arduino UNO làm hỏng vi điều khiển  Cường độ dòng điện qua chân Digital Analog Arduino UNO vượt 40mA làm hỏng vi điều khiển Do không dùng để truyền nhận liệu, bạn phải mắc điện trở hạn dòng Lưu ý:  Bộ nhớ Vi điều khiển Atmega328 tiêu chuẩn cung cấp cho người dùng:  32KB nhớ Flash: đoạn lệnh bạn lập trình lưu trữ nhớ Flash vi điều khiển Thường có khoảng vài KB số dùng cho bootloader đừng lo, bạn cần 20KB nhớ đâu  2KB cho SRAM (Static Random Access Memory): giá trị biến bạn khai báo lập trình lưu Bạn khai báo nhiều biến cần nhiều nhớ RAM Tuy vậy, thực nhớ RAM lại trở thành thứ mà bạn phải bận tâm Khi điện, liệu SRAM bị  1KB cho EEPROM (Electrically Eraseble Programmable Read Only Memory): giống ổ cứng mini – nơi bạn đọc ghi liệu vào mà lo bị cúp điện giống liệu SRAM  Các cổng vào/ra Arduino UNO có 14 chân digital dùng để đọc xuất tín hiệu Chúng có mức điện áp 0V 5V với dòng vào/ra tối đa chân 40mA Ở chân có điện trở pull-up từ cài đặt vi điều khiển ATmega328 (mặc định điện trở khơng kết nối) Một số chân digital có chức đặc biệt sau:  chân Serial: (RX) (TX): dùng để gửi (transmit – TX) nhận (receive – RX) liệu TTL Serial Arduino Uno giao tiếp với thiết bị khác thông qua chân Kết nối bluetooth thường thấy nói nơm na kết nối Serial khơng dây Nếu không cần giao tiếp Serial, bạn không nên sử dụng chân không cần thiết  Chân PWM (~): 3, 5, 6, 9, 10, 11: cho phép bạn xuất xung PWM với độ phân giải 8bit (giá trị từ → 28-1 tương ứng với 0V → 5V) hàm analogWrite() Nói cách đơn giản, bạn điều chỉnh điện áp chân từ mức 0V đến 5V thay cố định mức 0V 5V chân khác  Chân giao tiếp SPI: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK) Ngồi chức thơng thường, chân dùng để truyền phát liệu giao thức SPI với thiết bị khác  LED 13: Arduino UNO có đèn led màu cam (kí hiệu chữ L) Khi bấm nút Reset, bạn thấy đèn nhấp nháy để báo hiệu Nó nối với chân số 13 Khi chân người dùng sử dụng, LED sáng Arduino UNO có chân analog (A0 → A5) cung cấp độ phân giải tín hiệu 10bit (0 → 210-1) để đọc giá trị điện áp khoảng 0V → 5V Với chân AREF board, bạn để đưa vào điện áp tham chiếu sử dụng chân analog Tức bạn cấp điện áp 2.5V vào chân bạn dùng chân analog để đo điện áp khoảng từ 0V → 2.5V với độ phân giải 10bit PHẦN II NGUYÊN LÝ HOẠT ĐỘNG Nguyên lí Sau cấp nguồn cho mạch, ban đầu chưa có vật qua cảm biến ánh sáng, hệ thống chưa hoạt động Khi có vật cản qua cảm biến ánh sáng, đèn cảm biến tắt ( phát vật cản) sau cảm biến ánh sáng gửi thơng tin arduino, Aruino tiếp nhận thông tin truyền đến Relay trung gian ( đèn xanh relay sáng) để kích hoạt cảm biến màu sắc TCS3200, lúc led đơn trắng TCS 3200 sáng bắt đầu phân tích mẫu vật trước mặt Sau phân tích xong led đơn tắt, tín hiệu truyền arduino Arduino nhận tín hiệu xác định màu sắc theo dải màu code sẵn lên hình, đồng thời gửi tín hiệu đến động servo góc quay theo màu sắc mà nhận biết Và sau thời gian Servo quay trở lại vị trí ban đầu để tiếp tục chuẩn bị cho lần hoạt động tới Sơ đồ mạch Code chương trình #include #include ServoTimer2 servo2; #define IR2 #define S0 #define S1 #define S2 #define S3 #define OUT #define RELAY 12 #define LED int g_count = 0; // count the frequecy int g_array[3]; value // store the RGB int g_flag = 0; queue // filter of RGB float g_SF[3]; Scale factor // save the RGB unsigned char ketqua = 0; unsigned char black = 0, white = 0, other = 0; int goc; void TSC_Init() { pinMode(S0, OUTPUT); // set ouput, input pinMode(S1, OUTPUT); pinMode(S2, OUTPUT); pinMode(S3, OUTPUT); pinMode(OUT, INPUT); digitalWrite(S0, LOW);// OUTPUT FREQUENCY SCALING 2% digitalWrite(S1, HIGH); } // Select the filter color void TSC_FilterColor(int Level01, int Level02) { if(Level01 != 0) Level01 = HIGH; if(Level02 != 0) Level02 = HIGH; digitalWrite(S2, Level01); digitalWrite(S3, Level02); } void TSC_Count() { g_count ++ ; } void TSC_Callback() { switch(g_flag) { case 0: // Serial.println("->WB Start"); TSC_WB(LOW, LOW); Red break; //Filter mau case 1: g_array[0] = g_count; TSC_WB(HIGH, HIGH); Green break; case 2: g_array[1] = g_count; TSC_WB(LOW, HIGH); break; case 3: g_array[2] = g_count; TSC_WB(HIGH, LOW); break; default: g_count = 0; break; } } void TSC_WB(int Level0, int Level1) { g_count = 0; g_flag ++; TSC_FilterColor(Level0, Level1); Timer1.setPeriod(1000000); } void setup() { pinMode(IR2, INPUT); //Filter mau pinMode(RELAY, OUTPUT); pinMode(LED, OUTPUT); servo2.attach(11); TSC_Init(); // ket noi servo vao chan 10 //khoi dong cam bien mau Serial.begin(9600); Timer1.initialize(); // defaulte is 1s 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 delay(4000); for(int i=0; i 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 tại: "); Serial.println(goc); ketqua = 1; Serial.print("RED");//Serial.print(black);Serial.print("W");Serial.print(white); Serial.print("O");Serial.println(other); } else { other++; ketqua = 1; //Serial.print("B");Serial.print(black);Serial.print("W");Serial.print(white);Ser ial.print("O");Serial.println(other); } if(g_array[0]> 520 && g_array[0]< 1000 && g_array[0] > (g_array[1]) && g_array[0] < g_array[2]){ ketqua = 1; //white++; //white_servo(); servo2.write(90); goc = servo2.read(); Serial.print("Góc tại: "); Serial.println(goc); Serial.print("NÂU");//Serial.print(black);Serial.print("W");Serial.print(white); Serial.print("O");Serial.println(other); } else { other++; ketqua = 1; //Serial.print("B");Serial.print(black);Serial.print("W");Serial.print(white);Ser ial.print("O");Serial.println(other); } off_led(); } } if(ketqua == 1){ ketqua = 0; on_bangtai(); off_led(); delay(4000); return_servo(); } } void off_bangtai(){ digitalWrite(RELAY, LOW); // Serial.println("OFF BTAI"); } void on_bangtai(){ digitalWrite(RELAY, HIGH); // Serial.println("ON BTAI"); } void on_led(){ digitalWrite(LED, HIGH); // Serial.println("ON LED"); } void off_led(){ digitalWrite(LED, LOW); // Serial.println("OFF LED"); } //void black_servo(){ //delay(2000); // Serial.println("red servo"); //} /*void white_servo(){ servo2.write(1500); delay(2000); // Serial.println("green servo"); }*/ void return_servo(){ update_servo(1000,1000); } void update_servo(unsigned char ser1, unsigned char ser2) { servo2.write(ser2); delay(2000); } PHẦN III VIDEO SẢN PHẨM PHẦN IV KẾT QUẢ Đã đạt Dựng code để khởi chạy cho sản phẩm Sản phẩm chạy theo quy trình, ngun lí hoạt động, cảm biến màu sắc TCS 3200 nhận biết màu theo dải màu quy định Chưa đạt Động servo chưa hoạt động theo code chương trình 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 https://www.studocu.com/vn/document/truong-cao-dang-cong-nghe-bach-khoa-hanoi/matm25hshhdhbhsbkzbhz-n-zhhs/he-thong-dem-va-phan-loai-san-pham-theo-mausac/39657673?fbclid=IwAR1d9L9RI40eAN_xDmc-4XjKeXcW5LLBfuFM5iIiR13LZ-kAn9bizyLCWf0

Ngày đăng: 20/11/2023, 21:40

Tài liệu cùng người dùng

Tài liệu liên quan