Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 93 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
93
Dung lượng
5,73 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THƠNG XÂY DỰNG MƠ HÌNH XE TRỊ CHƠI TRẺ EM ỨNG DỤNG CÔNG NGHỆ OCR GVHD:Nguyễn Văn Hiệp SVTT:Nguyễn Minh Dũng MSSV:15141122 SVTT:Đặng Minh Lâm MSSV:15141193 SKL007335 Tp Hồ Chí Minh, tháng 08/2019 BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN - ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP - Y SINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: XÂY DỰNG MƠ HÌNH XE TRỊ CHƠI TRẺ EM ỨNG DỤNG CÔNG NGHỆ OCR GVHD: ThS Nguyễn Văn Hiệp SVTH: Nguyễn Minh Dũng Đặng Minh Lâm TP Hồ Chí Minh - 08/2019 Tp HCM, ngày 10 tháng 03 năm 2020 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Chuyên ngành: Hệ đào tạo: Khóa: I TÊN ĐỀ TÀI: XÂY DỰNG MƠ HÌNH XE TRÕ CHƠI TRẺ EM ỨNG DỤNG CÔNG NGHỆ OCR II NHIỆM VỤ Các số liệu ban đầu: - Vi điều khiển: Arduino Uno R3 - Các loại module: L298N, HC - 06 - Cảm biến: Thanh cảm biến hồng ngoại TCRT5000L - Nguồn: Pin 18650 Nội dung thực hiện: - Tìm hiểu nguyên lý hoạt động cảm biến hồng ngoại TCRT5000L - Tìm hiểu chuẩn truyền thơng nhƣ USART, SPI - Thiết kế thi cơng mơ hình xe thô - Thiết kế thực dây thiết bị mơ hình xe - Thiết kế thực mơ hình đƣờng chạy dành cho mơ hình xe - Thiết kế thực mơ hình biển báo gắn mơ hình đƣờng chạy - Thiết kế phần mềm thông báo điện thoại Android - Viết chƣơng trình điều khiển cho Arduino, nạp code chạy thử nghiệm sản phẩm - Chỉnh sửa hoàn thiện hệ thống - Thực viết luận văn báo cáo - Tiến hành báo cáo đề tài tốt nghiệp III NGÀY GIAO NHIỆM VỤ: 10/3/2020 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 20/7/2020 V HỌ VÀ TÊN CÁN BỘ HƢỚNG DẪN: ThS Nguyễn Văn Hiệp CÁN BỘ HƢỚNG DẪN BM ĐIỆN TỬ CƠNG NGHIỆP – Y SINH LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Nguyễn Minh Dũng MSSV: 15141122 Họ tên sinh viên 2: Đặng Minh Lâm MSSV: 15141193 Tên đề tài: XÂY DỰNG MƠ HÌNH XE TRÕ CHƠI TRẺ EM ỨNG DỤNG CƠNG NGHỆ OCR Tuần/ngày Tuần Tuần Tuần Tuần Tìm Tìm Gia Ard Gia Tuần Tuần Kế L2 Tuần Tuần 10 Tuần 11 Tuần 12 Tìm Th Ho Viế Viế qua Tuần 13 Tuần 14 Tuần 15 Tuần 16 Th Tiế Kiể dụn Kiể Tiế Tuần 17 Ho GV HƢỚNG DẪN (Ký ghi rõ họ tên) iii LỜI CAM ĐOAN Đề tài nhóm tự thực dƣới hƣớng dẫn giảng viên ThS Nguyễn Văn Hiệp Đề tài dựa vào số tài liệu trƣớc khơng chép từ tài liệu hay cơng trình có trƣớc Nhóm thực đề tài Nguyễn Minh Dũng Đặng Minh Lâm iv LỜI CẢM ƠN Nhóm em xin gửi lời cảm ơn sâu sắc đến Thầy Nguyễn Văn Hiệp, ngƣời trực tiếp hƣớng dẫn giúp đỡ tạo điều kiện để nhóm hồn thành tốt đề tài Mặc dù kiến thức nhóm cịn hạn chế nhƣng thầy nhiệt tình giúp đỡ, vạch hƣớng cho phù hợp Xin chân thành cảm ơn quý thầy cô Giảng viên khoa Điện - Điện Tử, trƣờng Đại Học Sƣ Phạm Kỹ Thuật Tp.HCM giúp đỡ nhóm q trình thực đồ án Ngồi nhóm cịn nhận quan tâm, giúp đỡ gia đình, bạn bè, anh chị trƣờng để hồn thành đồ án Do kiến thức hạn chế nên q trình thực khơng tránh khỏi sai sót mong thầy bạn góp ý để nhóm hồn thành đồ án tốt Xin chân thành cảm ơn! Nhóm thực đề tài Nguyễn Minh Dũng Đặng Minh Lâm v MỤC LỤC Trang bìa i NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ii LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP iii LỜI CAM ĐOAN iv LỜI CẢM ƠN v MỤC LỤC vi LIỆT KÊ HÌNH viii LIỆT KÊ BẢNG ix TÓM TẮT xi CHƢƠNG 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN 1.5 BỐ CỤC CHƢƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ CÔNG NGHỆ OCR 2.2 CÁC CHUẨN TRUYỀN DỮ LIỆU 2.2.1 Chuẩn giao tiếp UART 2.2.2 Chuẩn truyền thông SPI 2.3 TỔNG QUAN VỀ HỆ ĐIỀU HÀNH ANDROID 2.3.1 Khái niệm hệ điều hành android 2.3.2 Giao diện 2.3.3 Ứng dụng 11 2.3.4 Ƣu nhƣợc điểm hệ điều hành Android 13 CHƢƠNG 3: TÍNH TỐN VÀ THIẾT KẾ 14 3.1 ĐẶT VẤN ĐỀ 14 3.2 GIỚI THIỆU VỀ HỆ THỐNG VÀ SƠ ĐỒ KHỐI 14 3.3 THIẾT KẾ VÀ TÍNH TỐN CÁC MƠ HÌNH 15 3.3.1 Thiết kế mơ hình xe 15 3.3.2 Thiết kế mơ hình đƣờng (line) xe chạy 17 3.3.3 Thiết kế mơ hình biển báo 19 3.4 THIẾT KẾ VÀ TÍNH TỐN CÁC KHỐI 19 3.4.1 Sơ đồ khối mạch điều khiển xe 19 vi 3.4.2 Thiết kế khối 21 CHƢƠNG 4: THI CÔNG HỆ THỐNG 34 4.1 GIỚI THIỆU 34 4.2 THI CÔNG HỆ THỐNG 34 4.2.1 Sơ đồ nguyên lý 34 4.2.2 Thi công Board mạch 36 4.3 ĐĨNG GĨI VÀ THI CƠNG MƠ HÌNH 38 4.3.1 Đóng gói mơ hình xe 38 4.3.2 Hồn tất mơ hình đƣờng chạy 41 4.4 LẬP TRÌNH HỆ THỐNG 42 4.4.1 Lƣu đồ giải thuật 42 4.4.2 Phần mềm lập trình cho vi điều khiển 48 4.4.3 Phần mềm lập trình cho điện thoại, máy tính 50 4.5 VIẾT TÀI LIỆU HƢỚNG DẪN SỬ DỤNG, THAO TÁC 52 CHƢƠNG 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 53 5.1 GIỚI THIỆU 53 5.2 KẾT QUẢ ĐẠT ĐƢỢC 53 5.3 KẾT QUẢ THỰC NGHIỆM 53 5.3.1 Thiết kế thi công tủ 54 5.3.2 Phần cứng, giao diện điều khiển 56 5.3.3 App android 57 5.4 NHẬN XÉT, ĐÁNH GIÁ 59 5.4.1 Nhận xét 59 5.4.2 Đánh giá 59 CHƢƠNG 6: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 61 6.1 KẾT LUẬN 61 6.2 HƢỚNG PHÁT TRIỂN 61 TÀI LIỆU THAM KHẢO 62 PHỤ LỤC 63 vii LIỆT KÊ HÌNH Hình Trang Hình 2.1 Giản đồ truyền liệu UART Hình 2.2 Giao tiếp SPI Hình 2.3.Logo hệ điều hành Android Hình 2.4 Giao diện thiết bị chạy hệ điều hành Android .10 Hình 2.5 Thanh trạng thái thiết bị chạy hệ điều hành Android 11 Hình 2.6 Kho ứng dụng Google Play Store 12 Hình 3.1 Hình ảnh minh họa cho hệ thống .14 Hình 3.2 Phân bố linh kiện dự kiến mặt xe 16 Hình 3.3 Phân bố linh kiện dự kiến mặt dƣới xe .17 Hình 3.4 Mơ hình đƣờng (line) xe chạy .18 Hình 3.5 Sơ đồ khối xe 20 Hình 3.6 Board arduino UNO R3 .22 Hình 3.7 Sơ đồ chân Arduino Uno 23 Hình 3.8 Thanh cảm biến dò line 27 Hình 3.9 Module Bluetooth HC - 06 28 Hình 3.10 Module L298N 29 Hình 3.11 Động DC giảm tốc 30 Hình 3.12 Cịi chíp 31 Hình 3.13 Chiếc điện thoại sử dụng cho hệ thống 32 Hình 4.1 Sơ đồ ngun lý tồn mạch 34 Hình 4.2 Sơ đồ mạch làm gọn dây cho xe phần nguồn 35 Hình 4.3 Sơ đồ mạch làm gọn dây cho xe phần Bluetooth Buzzer 35 Hình 4.4 Mạch in theo sơ đồ mạch hình 4.3 36 Hình 4.5 Mạch in thi cơng theo sơ đồ mạch hình 4.3 36 Hình 4.6 Mạch in theo sơ đồ mạch hình 4.2 37 Hình 4.7 Mạch in thi cơng theo sơ đồ mạch hình 4.2 37 Hình 4.8 Hình ảnh mặt xe 38 Hình 4.9 Hình ảnh mặt dƣới xe 38 Hình 4.10 Hình ảnh xe đƣợc đóng hộp 39 Hình 4.11 Hình ảnh xe đƣợc đóng hộp 40 Hình 4.12 Hình ảnh xe đƣợc đóng hộp 41 Hình 4.13 Mơ hình đƣờng chaỵ 41 Hình 4.14 Lƣu đồ chƣơng trình thực chức dị line 42 Hình 4.15 Sơ đồ bố trí mắt hồng ngoại cảm biến 43 Hình 4.16 Lƣu đồ chƣơng trình thực chức xử lý liệu gởi 44 Hình 4.17 Hình ảnh mơ tả cách thức chọn hƣớng mắt hồng ngoại .45 Hình 4.18 Lƣu đồ chƣơng trình App Android 47 Hình 4.19 Giao diện phần mềm lập trình Arduino IDE 48 Hình 4.20 Giao diện phần mềm Android Studio 50 Hình 4.21 Giao diện phần thiết kế giao diện cho ứng dụng 51 Hình 5.1 Hình ảnh thực tế mơ hình đƣờng (line) xe chạy 54 Hình 5.2 Mơ hình xe bắt gặp lệnh “STOP” dừng lại hú cịi 55 Hình 5.3 Các linh kiện đƣợc phân bố kết nối với 56 Hình 5.4 Giao diện app điện thoại 57 viii TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Sách tham khảo [1] Nguyễn Văn Hiệp - Đinh Quang Hiệp, “Lập trình android ”, Nhà xuất ĐH [2] 2013 Nguyễn Đình Phú, “Giáo trình Vi xử lí ”, Trƣờng ĐHSPKT, Tp.HCM, [3] Văn Trọng Công – Phạm Thiên Đông, “Ứng dụng công nghệ OCR điều khiển Led màu sáng theo màu mong muốn”, Đồ án môn học trƣờng ĐHSPKT, Tp.HCM, Website tham khảo [1] www.arduino.vn [2] www.wikipedia.org [3] www.alldatasheet.com BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC PHỤ LỤC Code Arduino Chƣơng trình thực chức xe chạy theo line #include /*=========================================================================== =====================*/ /* L298N Pin define */ #define inA1 #define inA2 #define inB1 #define inB2 #define ENA 10 #define ENB 11 /* Traffic signs */ #define BOARD_STOP "stop" #define BOARD_FAST "fast" #define BOARD_TURN_LEFT "left" #define BOARD_TURN_RIGHT "right" #define BOARD_NORMAL "normal" /* IR-Pack Pin define */ #define IR_eye_1 15 #define IR_eye_2 16 #define IR_eye_3 17 #define IR_eye_4 18 #define IR_eye_5 19 /* IR current status */ #define LEFT_4 0b00001 #define LEFT_3 0b00011 #define LEFT_2 0b00010 #define LEFT_1 0b00110 #define MIDDLE 0b00100 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC #define RIGHT_1 0b01100 #define RIGHT_2 0b01000 #define RIGHT_3 0b11000 #define RIGHT_4 0b10000 /* PWM value for Motor*/ #define NORMAL_SPEED 85 #define FAST_SPEED 100 #define STOP_MOTOR /* Horn Pin define */ #define Horn #define MAX_WAIT_TIME_FOR_EXECUTE_MESSAGE 3000 /* Message from Phone*/ struct exec_message { bool is_executed; char message[20]; bool is_copied; }; /* Non-blocking timer */ struct non_blocking_timer { unsigned long time_start; bool timer_is_running; }; /*=========================================================================== =====================*/ /* Global variable*/ / Buffer to store message data from Bluetooth char mess_data[100]; / The index of buffer data uint8_t index_mess = 0; // Hold the lastest status of IR eye BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC bool eye_status[5] = {false, false, false, false, false}; / This car is stop before ? static uint8_t pre_stop = 0; / Initalize soft serial to communicate with Bluetooth module SoftwareSerial Bluetooth(2, 3); // RX, TX / Store the Command (CMD) from Bluetooth exec_message phone_message = {false, "", false}; non_blocking_timer clean_message_timer = {0, false}; /*=========================================================================== =====================*/ /* Prototype */ void go_straight(); void go_back(); void turn_left(); void turn_right(); void stop_car(); /*================================*/ bool have_Bluetooth_message(); void checking_IR_eyes(); bool read_IR_num(int eye_no); void clean_all_after_execute_cmd(); void make_decision(int8_t status); void clean_buffer(); bool check_message_is_valid(); uint8_t check_eye_status(); /*=========================================================================== =====================*/ /* Setup step*/ void setup() { /* Setup serial port */ Serial.begin(9600); Bluetooth.begin(9600); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC /* Configure Horn pin */ pinMode(Horn, OUTPUT); /* Configure L298N control pin */ pinMode(inA1, OUTPUT); pinMode(inA2, OUTPUT); pinMode(inB1, OUTPUT); pinMode(inB2, OUTPUT); /* Configure Infrared module */ pinMode(IR_eye_1, INPUT); pinMode(IR_eye_2, INPUT); pinMode(IR_eye_3, INPUT); pinMode(IR_eye_4, INPUT); pinMode(IR_eye_5, INPUT); /* Configure channel of L298N */ pinMode(ENA, OUTPUT); pinMode(ENB, OUTPUT); /* Enable channel for motor speed*/ set_normal_speed(); delay(7000); } /*=========================================================================== =====================*/ /* Main loop */ void loop() { checking_IR_eyes(); have_Bluetooth_message(); /* Unblock to Debug IR status*/ / for (int i = 4; i >= 0; i ) / / Serial.print(eye_status[i]); Serial.print("\n"); if (clean_message_timer.timer_is_running) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC checking_timer(); choose_direction(); } /*=========================================================================== =====================*/ bool have_Bluetooth_message() { char charater_in; while (Bluetooth.available()) { charater_in = Bluetooth.read(); if (charater_in == 0x0D || charater_in == '\n') { mess_data[index_mess] = '\0'; index_mess = 0; if ((phone_message.is_copied == false) && (check_message_is_valid())) { strcpy(phone_message.message, mess_data); Serial.print(phone_message.message); Serial.print("\n"); phone_message.is_copied = true; phone_message.is_executed = false; start_timer_now(); } return true; } else { mess_data[index_mess++] = charater_in; } } return false; } void start_timer_now() { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC clean_message_timer.time_start = millis(); clean_message_timer.timer_is_running = true; } void checking_timer() { if ((millis() - clean_message_timer.time_start) >= MAX_WAIT_TIME_FOR_EXECUTE_MESSAGE) { clean_all_after_execute_cmd(); } } void choose_direction() { int8_t status; /* Check if have command*/ if ((phone_message.is_copied == true) && (phone_message.is_executed == false)) { if (strcmp(phone_message.message, BOARD_STOP) == && pre_stop == 0) { stop_car(); Serial.print("Stop Car\n"); use_horn(3, 1000); set_normal_speed(); pre_stop = 1; clean_all_after_execute_cmd(); } else if (strcmp(phone_message.message, BOARD_TURN_RIGHT) == && eye_status[0] == true) { Serial.print("CMD right\n"); turn_left(); delay(750); pre_stop = 0; clean_all_after_execute_cmd(); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC } else if (strcmp(phone_message.message, BOARD_TURN_LEFT) == && eye_status[4] == true) { Serial.print("CMD left\n"); turn_right(); delay(750); pre_stop = 0; clean_all_after_execute_cmd(); } else if (strcmp(phone_message.message, BOARD_FAST) == 0) { set_fast_speed(); Serial.print("CMD fast\n"); pre_stop = 0; clean_all_after_execute_cmd(); } else if (strcmp(phone_message.message, BOARD_NORMAL) == 0) { set_normal_speed(); Serial.print("CMD normal\n"); pre_stop = 0; clean_all_after_execute_cmd(); } } status = check_eye_status(); make_decision(status); } void clean_all_after_execute_cmd() { clean_buffer(); phone_message.is_executed = true; phone_message.is_copied = false; strcpy(phone_message.message, ""); strcpy(mess_data, ""); // Turn off timer BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC clean_message_timer.timer_is_running = false; index_mess = 0; } void make_decision(int8_t status) { switch (status) { case LEFT_4: turn_right(); break; case LEFT_3: turn_right(); break; case LEFT_2: turn_right(); break; case LEFT_1: turn_right(); break; case MIDDLE: go_straight(); break; case RIGHT_1: turn_left(); break; case RIGHT_2: turn_left(); break; case RIGHT_3: turn_left(); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH PHỤ LỤC break; case RIGHT_4: turn_left(); break; default: break; } } uint8_t check_eye_status() { uint8_t result = 0; result += (uint8_t)eye_status[4]; result += (uint8_t)eye_status[3]