Xây dựng mô hình xe trò chơi trẻ em ứng dụng công nghệ OCR

84 20 0
Xây dựng mô hình xe trò chơi trẻ em ứng dụng công nghệ OCR

Đ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

TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN-ĐIỆN TỬ ĐỘC LẬP - TỰ DO - HẠNH PHÚC o0o -BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 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: Nguyễn Minh Dũng MSSV: 15141122 Đặng Minh Lâm MSSV: 15141193 Chuyên ngành: Điện tử công nghiệp Mã ngành: 41 Hệ đào tạo: Đại học quy Mã hệ: Khóa: 2015 Lớp: 15141DT1B 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 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 ii TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC o0o Tp HCM, ngày 14 tháng 05 năm 2020 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 Xác nhận GVHD Nội dung Tuần Tìm hiểu cảm biến dị line Tuần Tìm hiểu Arduino Uno R3 Module L298N Tuần Giao tiếp module cảm biến dò line TCRT5000 Arduino Giao tiếp Module L298N Arduino Tuần Tuần Tuần Tuần Kết nối phần cứng Module cảm biến dò line, Module L298N, Module Bluetooth với Arduino Tuần 10 Tìm hiểu ứng dụng Android Studio Thiết kế ứng dụng điện thoại android Hồn thiện xe dị line Tuần 11 Viết chương trình cho xe chạy theo line Tuần 12 Viết chương trình gửi liệu từ app Arduino thông qua Bluetooth Tuần 13 Tuần 14 Tuần 15 Tuần 16 Tuần 17 Thiết kế thi cơng mơ hình Tiến hành chạy thử Kiểm tra lại phần cứng, giao tiếp phần cứng ứng dụng điện thoại Kiểm tra lại toàn hệ thống Tiến hành viết báo cáo cho đề tài Hoàn thiện đề tài GV HƯỚNG DẪN (Ký ghi rõ họ tên) iii LỜI CAM ĐOAN Đề tài nhóm tự thực 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ế 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 để hoàn thành đồ án Do kiến thức cịn 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.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU .2 1.3 NỘI DUNG NGHIÊN CỨU .2 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.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 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ơ đồ nguyên lý toà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 xe 38 Hình 4.10 Hình ảnh xe đóng hộp 39 Hình 4.11 Hình ảnh xe đóng hộp 40 Hình 4.12 Hình ảnh xe đó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 phân bố kết nối với 56 Hình 5.4 Giao diện app điện thoại 57 viii Hình 5.5 Giao diện app điện thoại 57 Hình 5.6 Giao diện app điện thoại 58 ix LIỆT KÊ BẢNG Bảng Trang Bảng 2.1: Cấu trúc tổng quát Arduino UNO R3 26 Bảng 4.1: Tính tốn chọn khối nguồn 33 Bảng 4.2: Bảng trạng thái chọn hướng cho mơ hình xe 43 Bảng 5.1: Số lần thực nghiệm 59 x TÓM TẮT Trong năm gần đây, công nghệ nhận diện kí tự chữ viết ứng dụng rộng rãi nhiều lĩnh vực đời sống Và nhận thấy lĩnh vực đồ chơi mơ hình cho trẻ em lĩnh vực hay kết hợp với cơng nghệ để tăng tính sáng tạo giúp cho sản phẩm độc đáo thu hút nhiều đối tượng người dùng Đề tài nhằm mục đích thiết kế thi cơng mơ hình xe trị chơi trẻ em với phương pháp nhận diện kí tự hình ảnh thơng qua cơng nghệ OCR xi CHƯƠNG 5: KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ Thực lệnh “NORMAL” 20 20 ĐẠT Thực lệnh “LEFT” 20 17 ĐẠT Thực lệnh “RIGHT” 20 18 ĐẠT Bảng 5.1 Số liệu thực nghiệm BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 60 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Sau khoảng 16 tuần nghiên cứu tìm hiểu, nhóm hồn thành đồ án thi công sản phẩm xe dị đường ( line) ứng dụng cơng nghệ OCR đáp ứng yêu cầu đặt ban đầu: - Sản phẩm thi cơng hồn thiện, dây gọn gàng mang vào sử dụng - Các chức đưa hoạt động mượt mà, ổn định - App android có giao diện trực quan, dễ sử dụng - Thời gian trễ app tùy thuộc vào việc xe chạy ổn định bắt chữ tốt - Thời gian hoạt động xe chưa cao 6.2 HƯỚNG PHÁT TRIỂN - Thiết kế xe với mẫu mã đẹp mắt hơn, bắt mắt thu hút e nhỏ - Tăng dung lượng Pin để xe hoạt động nhiều - Bổ sung thêm tính xe có đèn Led nhấp nháy, xe chạy lùi, quay vịng,… BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 61 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 Quốc Gia, Tp.HCM, 2015 [2] Nguyễn Đình Phú, “Giáo trình Vi xử lí ”, Trường ĐHSPKT, Tp.HCM, 2013 [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 62 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 63 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 64 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 65 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 66 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 67 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 68 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 69 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 70 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]

Ngày đăng: 26/05/2021, 10:42

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

  • Đang cập nhật ...

Tài liệu liên quan