1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

80 2 0

Đ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

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 .2 CHƢƠNG 2: CƠ SỞ LÝ THUYẾT .4 2.1 TỔNG QUAN VỀ CÔNG NGHỆ OCR 2.2 CÁC CHUẨN TRUYỀN DỮ LIỆU .6 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 Hoà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 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 đƣợc ứ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 nhƣ giúp cho sản phẩm độc đáo thu hút đƣợc nhiều đối tƣợng ngƣời dùng Đề tài nhằm mục đích thiết kế thi cơng đƣợc 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 1: TỔNG QUAN CHƢƠNG 1: TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ Thế giới sóng cách mạng cơng nghiệp 4.0 Cơng nhận dạng kí tự quang học ngày đƣợc nâng cấp sử dụng rộng rãi ứng dụng đời sống Đặc biệt, nhận dạng kí tự quang học dù khơng cịn điều q mẻ nhƣng công nghệ đƣợc áp dụng phổ biến để giải vấn đề nhƣ giảm tải giấy tờ lƣu trữ, từ giúp tối ƣu mặt kinh phí trì giấy tờ lƣu trữ tài liệu cho doanh nghiệp cơng ty Ngồi cơng nghệ cịn đƣợc ứng dụng phần mềm phát xử lý tình vi phạm luật giao thông thông qua hệ thống camera giám sát, hệ thống hỗ trợ sống cho ngƣời già ngƣời khiếm thị, hỗ trợ cho việc nhập liệu, xử lí hóa đơn loại chứng từ Việc cơng nghệ ngày phát triển giúp cho tính xác cơng nghệ nhận dạng kí tự đƣợc tăng đáng kể, hệ thống dần thông minh nhận dạng đƣợc hầu hết phông chữ phổ biến Một số hệ thống cịn có khả tái tạo lại định dạng tài liệu gần giống với gốc bao gồm: hình ảnh, cột, bảng biểu… hay thành phần văn Trƣớc có nhiều đề tài nghiên cứu ứng dụng sử dụng công nghệ nhận dạng kí tự quang học nhƣ đề tài “Ứng dụng công nghệ OCR điều khiển Led màu sáng theo màu mong muốn” Ở tác giả sử dụng ESP8266 liên kết ứng dụng Android với sở liệu thời gian thực Firebase để truyền nhận liệu xử lý chức năng.[3] Qua thơng tin trên, nhóm em định làm đề tài “Thiết kế thi cơng mơ hình xe trị chơi trẻ em ứng dụng công nghệ OCR” Hệ thống sử dụng vi điều khiển trung tâm module Arduino Uno R3, cảm biến hồng ngoại TCRT5000L, module L298N, động DC giảm tốc, điện thoại thông minh dùng hệ điều hành Android dùng để làm camera cho xe module Bluetooth HC - 06 Ngƣời dùng tùy ý thay đổi vị trí biến báo mơ hình nhƣ lệnh biển báo liệu nhận đƣợc đƣợc gởi Arduino thông qua ứng dụng cài đặt điện thoại sử dụng hệ điều hành Android [1] BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CHƢƠNG 1: TỔNG QUAN 1.2 MỤC TIÊU Thiết kế thi cơng đƣợc mơ hình xe trị chơi trẻ em sử dụng cơng nghệ OCR Giúp cho mơ hình trị chơi tang thêm tính sáng tạo nhƣ hấp dẫn bé 1.3 NỘI DUNG NGHIÊN CỨU - NỘI DUNG 1: Tìm hiểu nguyên lý hoạt động cảm biến hồng ngoại TCRT5000L - NỘI DUNG 2: Tìm hiểu chuẩn truyền thơng USART, SPI - NỘI DUNG 3: Tìm hiểu giao tiếp đƣợc cảm biến hồng ngoại TCRT5000L, module điều khiển động L298N, module Bluetooth HC - 06 với Arduino Uno R3 - NỘI DUNG 4: Thiết kế app Android Studio - NỘI DUNG 5: Thiết kế thi cơng mơ hình xe trị chơi mơ hình đƣờng chạy có biển báo - NỘI DUNG 6: Đánh giá kết thực 1.4 GIỚI HẠN - Mơ hình xe có kích thƣớc 23.5x16x21, mơ hình đƣờng chạy có kích thƣớc 80x120 - Dùng điện thoại thông minh sử dụng hệ điều hành Android để làm camera cho xe - Sử dụng module Hc – 06 để truyện nhận liệu với điện thoại thông qua app Android điện thoại - Sử dụng module cảm biến hồng ngoại TCRT5000L - Mơ hình đƣờng chạy có cắm biển báo mà dễ dàng thay đổi vị trí biển báo với 1.5 BỐ CỤC - Chƣơng 1: Tổng quan Chƣơng trình bày đặt vấn đề, lý chọn đề tài, mục tiêu, nội dung nghiên cứu, giới hạn thông số bố cục đồ án - Chƣơng 2: Cơ sở lý thuyết BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CHƢƠNG 1: TỔNG QUAN Chƣơng trình bày lý thuyết module, cảm biến linh kiện sử dụng hệ thống, chuẩn truyền thông, giao thức - Chƣơng 3: Thiết kế tính tốn Chƣơng thiết kế sơ đồ khối, sơ đồ nguyên lí khối hệ thống thực tính tốn thiết kế - Chƣơng 4: Thi cơng hệ thống Chƣơng trình bày lƣu đồ giải thuật, thiết kế app android, viết chƣơng trình hệ thống, thiết kế sơ đồ mạch in PCB - Chƣơng 5: Kết quả, nhận xét đánh giá Chƣơng trình bày kết thi cơng phần cứng kết hình ảnh thực tế tủ, nhận xét đánh giá chung sản phẩm - Chƣơng 6: Kết luận hƣớng phát triển Trong chƣơng đƣa kết đạt đƣợc, phân tích ƣu nhƣợc điểm đề xuất hƣớng phát triển đề tài BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CHƢƠNG 2: CƠ SỞ LÝ THUYẾT CHƢƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ CƠNG NGHỆ OCR OCR đƣợc hình thành từ lĩnh vực nghiên cứu nhận dạng mẫu, trí tuệ nhận tạo machine vision Mặc dù công việc nghiên cứu học thuật tiếp tục, phần công việc OCR chuyển sang ứng dụng thực tế với kỹ thuật đƣợc chứng minh Nhận dạng ký tự quang học (dùng kỹ thuật quang học chẳng hạn nhƣ gƣơng ống kính) nhận dạng ký tự số (sử dụng máy quét thuật tốn máy tính) lúc đầu đƣợc xem xét nhƣ hai lĩnh vực khác Bởi có ứng dụng tồn với kỹ thuật quang học thực sự, thuật ngữ Nhận dạng ký tự quang học đƣợc mở rộng bao gồm ý nghĩa nhận dạng ký tự số Đầu tiên hệ thống nhận dạng yêu cầu phải đƣợc huấn luyện với mẫu ký tự cụ thể Các hệ thống "thơng minh" với độ xác nhận dạng cao hầu hết phông chữ trở nên phổ biến Một số hệ thống cịn có khả tái tạo lại định dạng tài liệu gần giống với gốc bao gồm: hình ảnh, cột, bảng biểu, thành phần văn Hiện nay, với chữ Việt, phần mềm nhận dạng chữ Việt in VnDOCR 4.0 có khả nhận dạng trực tiếp loại tài liệu đƣợc quét qua máy quét, không cần lƣu trữ dƣới dạng tệp ảnh trung gian Các trang tài liệu đƣợc quét lƣu trữ dƣới dạng tệp tin nhiều trang Kết nhận dạng đƣợc lƣu trữ sang định dạng Microsoft Word, Excel phục vụ tốt nhu cầu số hóa liệu Ngồi ra, cịn có dự án OCR Tiếng Việt có tên VietOCR, đƣợc phát triển dựa tảng mã nguồn mở tesseract-ocr Google tài trợ VietOCR có khả nhận dạng chữ Việt tốt Đây chƣơng trình nguồn mở Java/.NET, hỗ trợ nhận dạng cho dạng ảnh PDF, TIFF, JPEG, GIF, PNG, BMP ABBYY - hãng công nghệ hàng đầu giới lĩnh vực Nhận dạng ký tự quang học tiến hành nghiên cứu triển khai công nghệ nhận dạng Tiếng Việt vào tháng năm 2009 Với công nghệ độ xác việc nhận dạng tài liệu chữ in Nhận dạng ký tự quang học (OCR) 1/3 Tiếng Việt lên tới 99% (cứ nhận dạng 100 ký tự có chƣa đến ký tự sai) Công nghệ ABBYY chấp nhận hầu hết định dạng ảnh đầu vào nhƣ: PDF, TIFF, JPEG, GIF, PNG, BMP, PCX, DCX, DjVu Kết nhận dạng đƣợc lƣu BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CHƢƠNG 5: KẾT QUẢ - NHẬN XÉT – ĐÁNH GIÁ “NORMAL” Thực lệnh “LEFT” Thực lệnh “RIGHT” 20 17 ĐẠT 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 đƣợc yêu cầu đặt ban đầu: - Sản phẩm đƣợc thi cơng hồn thiện, dây gọn gàng mang vào sử dụng - Các chức đƣợ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 đƣợc 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 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: 01/11/2022, 12:16

Xem thêm:

w