Một phương tiệngiao thông thông minh được trang bị các thiết bị và cảm biến để thông báo cho tài xếbiết tình trạng của xe và hiện đại hơn nữa là một hệ thống xe tự hành và đó là lý donhó
Trang 1ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG
THI CÔNG VÀ THIẾT KẾ MÔ HÌNH XE TỰ HÀNH
THEO CHỈ DẪN TỪ SMARTPHONE
GVHD: ThS.NGUYỄN VĂN HIỆP SVTH: NGUYỄN VĂN NAM MSSV: 12141143
SVTH: TRƯƠNG HOÀNG PHÚ MSSV: 12141171
SKL004497
Tp Hồ Chí Minh, tháng 07/2016
Trang 2Bộ Môn Điện Tử Công Nghiệp
Tp Hồ Chí Minh, ngày tháng năm 2015
LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP
Họ tên sinh viên 1: Trương Hoàng Phú
Họ tên sinh viên 2: Nguyễn Văn Nam
Tên đề tài: Thi công và thiết kế mô hình xe tự hành theo chỉ dẫn từ Smartphone
Tuần 1 Tìm giáo viên hướng dẫn, trình bày và chọn đề
tài
Tuần 2 Đề cương chi tiết về các nội dung cần nghiên cứu,
tìm mua mô hình xe
Tuần 3 Đề ra hướng giải quyết nhằm đáp ứng các yêu
cầu đề ra ban đầu
Tiếp tục tìm mua mô hình xe phù hợp (nếuchưa có)
Giao thức truyền thông Internet Client – Server
Cách sử dụng máy chủ ảo Google
Spreadsheets
Hệ thống định vị toàn cầu GPS.
Tuần 4+5 Nghiên cứu VĐK ARM STM32F10x, đại
cương về KIT STM32F103VET6
Nghiên cứu cách điều khiển module ArduinoNano
Tìm hiểu cách sử dụng và giao tiếp giữa viđiều khiển với các module và cảm biến có sửdụng
Tuần 6+7+8+9 Tương tác dữ liệu giữa vi điều khiển ARM với
máy chủ và điện thoại với máy chủ
Nghiên cứu cơ bản về hệ điều hành Android.
Tích hợp Google Maps API, Places API vào
trong Android Project
Viết ứng dụng điều khiển, giám sát và thiết lậphoạt động cho xe
Trang 3 Hoàn thành mô hình.
Trang 4sản phẩm.
Tuần 14+15 Viết báo cáo, tạo slide báo cáo
Tuần 16 Hoàn thành đề tại, tiến hành bảo vệ đề tài
GV HƯỚNG DẪN(Ký và ghi rõ họ và tên)
Trang 5BÔ MÔN ĐIỆN TỬ CÔNG NGHIỆP
PHIẾU ĐÁNH GIÁ KHÓA LUẬN TỐT NGHIỆP
I Thông tin chung
- Tên đề tài: THI CÔNG VÀ THIẾT KẾ MÔ HÌNH XE TỰ HÀNH THEO CHỈ DẪN
TỪ SMARTPHONE
- Họ và tên giáo viên hướng dẫn: Nguyễn Văn Hiệp
II Nhận xét về khóa luận
2.1 Đánh giá chung (hoàn thành bao nhiêu phần trăm mục tiêu của đề tài):
2.2 Ưu điểm của đề tài:
2.3 Khuyết điểm của đề tài:
2.4 Thái độ làm việc của sinh viên:
2.5 Kết quả chính thu được:
2.6 Đề nghị: Được bảo vệ Không được bảo vệ
Tp HCM, ngày … tháng… năm 2016
Giáo viên hướng dẫn
(Ký và ghi rõ họ tên)
Trang 61. Thông tin sinh viên
Họ và tên: Trương Hoàng Phú MSSV: 12141171
Tel: 01685503078 Email: 12141171@student.hcmute.edu.vn
Họ và tên: Nguyễn Văn Nam MSSV: 12141143
Tel: 0979963624 Email: 12141143@student.hcmute.edu.vn
2. Thông tin đề tài
Tên của đề tài: THI CÔNG VÀ THIẾT KẾ MÔ HÌNH XE TỰ HÀNH
THEO HƯỚNG DẪN TỪ SMARTPHONE.
Mục đích của đề tài: cũng cố các kiến thức chuyên ngành cũng như trao dồi các kiến thứcmới và các kỹ năng để chuẩn bị cho các công việc sắp tới sau khi tốt nghiệp Thiết kế ra một sản phẩm công nghệ có tiềm năng phát triển trong tương lai tại Việt Nam trong lĩnh vực giao thông vận tải
Đồ án tốt nghiệp được thực hiện tại: Bộ môn Điện Tử Công Nghiệp, Khoa Điện - Điện
Tử, Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Thời gian thực hiện: Từ ngày 21/3/2016 đến 7/7/2016
- Tìm hiểu hệ thống định vị toàn cầu GPS
- Nghiên cứu VĐK ARM STM32F10x, đại cương về KIT STM32F103VET6 Viếtchương trình điều khiển cho VĐK này bằng phần mềm KeilC v5, khai báo sử dụng các ngoạivi
- Nghiên cứu cách điều khiển KIT Arduino Nano, viết chương trình điều khiển cho
nó với Arduino IDE
- Tìm hiểu cách sử dụng các module cảm biến, giao tiếp chúng với vi điều khiển đểthực hiện các chức năng như định vị, tránh vật cản tĩnh, xác định hướng đi
- Nghiên cứu và ứng dụng giao thức truyền thông Client – Server
- Tìm hiểu cách sử dụng Google Spreadsheets (máy chủ ảo)
- Tìm hiểu hệ điều hành Android, cách sử dụng phần mềm Android Studio
- Viết ứng dụng điện thoại để điều khiển, giám sát và thiết lập hoạt động cho mô hình Đăng ký API Key cho ứng dụng
- Tính toán thiết kế và thi công các mạch chức năng (nguồn, công suất)
- Thi công mô hình hoàn chỉnh
- Vận hành thử mô hình
- Cân chỉnh mô hình
- Viết cuốn báo cáo đề tài
- Báo cáo đề tài tốt nghiệp
Trang 7nghiên cứu của chúng tôi dưới sự hướng dẫn Thạc sỹ Nguyễn Văn Hiệp.
Các kết quả công bố trong ĐATN là trung thực và không sao chép từ bất kỳ công trình nào khác
Trang 8Đề tài này là do chúng tôi tự thực hiện dựa vào một số tài liệu và không sao chép từ tài liệu hay công trình đã có trước đó Nếu có bất kỳ sự gian lận nào chúng tôi xin chịu tráchnhiệm về nội dung đồ án của mình.
TP.HCM, ngày 7 tháng 7 năm 2016
Người thực hiện
Nguyễn Văn Nam Trương Hoàng Phú
Trang 9Chúng em xin chân thành cảm ơn quý thầy, cô Trường Đại Học Sư Phạm Kỹ Thuật TP.HCM đã tận tình dạy dỗ chúng em trong suốt những năm qua Trong đó phải kểđến quý thầy cô trong khoa Điện – Điện Tử đã truyền đạt những kiến thức, kinh nghiệm cùng với sự đam mê của mình như đốt lên những ngọn lửa đam mê khám phá trong mỗi chúng em và rồi từ những kiến thức, đam mê đó chúng em kết lại thành một đồ án cuối cùng, đồ án tốt nghiệp do chính tay mình tạo ra, nó như một bàn đạp đầu tiên để bước vàonhững cánh cửa lớn hơn.
Đặc biệt, nhóm xin chân thành cảm ơn thầy Nguyễn Văn Hiệp đã tận tình giúp đỡchúng em trong quá trình lựa chọn đề tài và hỗ trợ chúng em trong quá trình thực hiện đềtài Trong quá trình thực hiện đồ án cũng xảy ra nhiều khó khăn, thiếu sót nhưng được sựđôn đốc và góp ý của thầy chúng em đã gặt hái được nhiều kiến thức và kinh nghiệm.Một lần nữa chúng em xin cảm ơn thầy Bên cạnh đó, nhóm chúng em xin cảm ơn thầyNguyễn Đình Phú, thầy Nguyễn Tấn Như đã cho chúng em mượn phòng D401 để thamkhảo tài liệu và thực hiện đồ án Và cũng gửi lời cảm ơn đến những người bạn đã đónggóp ý kiến, động viên tinh thần giúp cho nhóm thực hiện đề tài đạt hiệu quả hơn
Cuối cùng, chúng con chân thành cảm ơn sự động viên và hỗ trợ của gia đình vàcha mẹ trong suốt thời gian học tập Chúng con xin gửi lời cảm ơn trân trọng nhất đến cha mẹ, người đã sinh ra và nuôi dưỡng chúng con nên người cũng như là tạo điều kiệnthuận lợi để chúng con có thể hoàn thành đề tài của mình
TP.HCM, ngày 7 tháng 7 năm 2016
Sinh viên thực hiện đồ án
Nguyễn Văn Nam Trương Hoàng Phú
Trang 10LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
LIỆT KÊ HÌNH VẼ v
LIỆT KÊ BẢNG vii
TÓM TẮT viii
Chương 1 TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 MỤC TIÊU 2
1.3 NỘI DUNG NGHIÊN CỨU 2
1.4 GIỚI HẠN 2
1.5 BỐ CỤC 3
Chương 2 CƠ SỞ LÝ THUYẾT 4
2.1 HỆ THỐNG ĐỊNH VI TOÀN CẦU (GPS) VÀ HỆ TOẠ ĐỘ ĐỊA LÝ 4
2.2 GIAO THỨC HTTP– TCP/IP 9
2.2.1 TCP/IP 9
2.2.2 GIAO THỨC HTTP 10
2.3 HỆ ĐIỀU HÀNH ANDROID 15
2.3.1 TỔNG QUAN 15
2.3.2 GIỚI THIỆU VỀ NỀN TẢNG CỦA HỆ ĐIỀU HÀNH ANDROID: 16
Chương 3 TÍNH TOÁN VÀ THIẾT KẾ 24
3.1 TỔNG QUAN VỀ YÊU CẦU THIẾT KẾ HỆ THỐNG 24
3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG 25
3.2.1 THIẾT KẾ SƠ ĐỒ ĐIỀU KHIỂN 26
3.2.2 TÍNH TOÁN VÀ THIẾT KẾ MÔ HÌNH XE 27
3.2.3 SERVER INTERNET 41
3.2.4 PHẦN MỀM ỨNG DỤNG TRÊN ĐIỆN THOẠI 45
Chương 4 THI CÔNG HỆ THỐNG 49
4.1 THI CÔNG HỆ THỐNG: 49
4.1.1 BOARD ĐIỀU KHIỂN 49
4.1.2 GIAO TIẾP MODULE WIFI VỚI WEB SERVER (GOOGLE SPREADSHEET) 50
4.2 LẬP TRÌNH BOARD ĐIỀU KHIỂN 54
4.2.1 NỘI DUNG CHƯƠNG TRÌNH ĐIỀU KHIỂN 54
Trang 114.3 LẬP TRÌNH ỨNG DỤNG TRÊN ANDROID 68
4.3.1 NỘI DUNG CHƯƠNG TRÌNH ANDROID 68
4.3.2 LƯU ĐỒ GIẢI THUẬT 69
4.3.3 PHẦN MỀM ANDROID STUDIO 73
4.3.4 CHƯƠNG TRÌNH TRÊN ANDROID. 74
4.4 HƯỚNG DẪN SỬ DỤNG VÀ VẬN HÀNH HỆ THỐNG 87
4.4.1 HỆ THỐNG XE 87
4.4.2 PHẦN MỀM ĐIỆN THOẠI 87
Chương 5: KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 90
5.1 SẢN PHẨM SAU KHI HOÀN THÀNH 90
5.1.1 MÔ HÌNH XE 90
5.1.2 ỨNG DỤNG TRÊN ĐIỆN THOẠI 91
5.2 KẾT QUẢ CHẠY HỆ THỐNG 93
5.2.1 MÔ HÌNH XE 93
5.2.2 ỨNG DỤNG TRÊN ĐIỆN THOẠI 97
5.2.3 CLOUD SERVER (GOOGLE SPREADSHEETS) 98
5.3 KIẾN THỨC CÓ ĐƯỢC TRONG QUÁ TRÌNH THIẾT KẾ SẢN PHẨM 98
Chương 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 99
6.1 KẾT LUẬN 99
6.2 HƯỚNG PHÁT TRIỂN 99
TÀI LIỆU THAM KHẢO 100
PHỤ LỤC 101
Trang 12Hình Trang
Hình 2.1: Cách sắp xếp kinh độ và vĩ độ trên trái đất 6
Hình 2.2: Phân bố kinh tuyến trên trái đất 7
Hình 2.3: Biểu thức toạ độ của tích vô hướng 8
Hình 2.4: Biểu diễn đoạn đường di chuyển AD trên mặt phẳng toạ độ 9
Hình 2.5: Mô hình truyền dữ liệu của TCP/IP 10
Hình 2.6: Mô hình truyền thông Client – Server 11
Hình 2.7: Cấu trúc của một URL. 12
Hình 2.8: Quy trình hoạt động của kết nối HTTP 13
Hình 2.9: Cú pháp của một HTTP yêu cầu 14
Hình 2.10: Cú pháp của một HTTP trả lời 15
Hình 2.11: Kiến trúc của HĐH Android 16
Hình 2.12: Nội dung mặc định của một Manifest.xml 17
Hình 2.13: Nội dung mặc định của một tập tin java 18
Hình 2.14: Tạo một Activity mới. 18
Hình 2.15: Vòng đời của một Activity 19
Hình 2.16: Chuyển đổi giữa 2 Activity 20
Hình 2.17: Vòng đời của một Service 21
Hình 2.18: Một số thiết bị/cảm biến định vị GPS 21
Hình 2.19: Một số thiết bị/cảm biến đo khoảng cách 22
Hình 2.20: Xử lý ảnh cho xe ô tô 22
Hình 2.21: Cảm biến la bàn số HMC5883L 22
Hình 3.1: Sơ đồ khối của hệ thống. 25
Hình 3.2: Sơ đồ điều khiển. 26
Hình 3.3: Mô hình xe. 27
Hình 3.4: Hình dáng và sơ đồ mạch điện bên trong của TIP122. 28
Hình 3.5: Sơ đồ nguyên lý của khối khuếch đại công suất. 29
Hình 3.6: Hình module ESP8266-01 30
Hình 3.7: Module GPS Ublox Neo 7M. 31
Hình 3.8: Module cảm biến HMC5883L 32
Hình 3.9: Vector lực từ tại điểm đo 32
Hình 3.10: Hình ảnh thực tế cảm biến siêu âm SRF-05 33
Hình 3.11: Dạng sóng điều khiển và phản hồi của SRF-05 34
Hình 3.12: Dạng sóng điều khiển động sơ RC Servo 9G. 34
Hình 3.13: Khung truyền của UART 36
Hình 3.14: IC ổn áp 5V LM7805. 38
Hình 3.15: Sơ đồ kết nối IC ổn áp 5V LM7805. 38
Hình 3.16: Hình ảnh thực tế IC AMS1117 38
Hình 3.17: Sơ đồ kết nối IC AMS1117 39
Hình 3.18: Sơ đồ mạch của khối nguồn. 40
Hình 3.19: Sơ đồ nguyên lý phần kết nối. 40
Hình 3.20: Sơ đồ nguyên lý phần mạch công suất. 41
Hình 3.21: Giao diện của một Spreadsheet 42
Hình 3.22: Tạo một Google Form mới. 43
Trang 13Hình 3.26: Form hoàn chỉnh 44
Hình 3.27: Giới thiệu 45
Hình 3.28:Trợ giúp 46
Hình 3.29: Cảnh báo(trái), Hoàn thành(phải) 46
Hình 3.30: Điều khiển. 47
Hình 4.1: Sơ đồ mạch in phần mạch nguồn 50
Hình 4.2: Sơ đồ mạch in phần mạch công suất. 50
Hình 4.3: Lỗi 400 Bad Request từ máy chủ 51
Hình 4.4: DeviceID 52
Hình 4.5: Máy chủ cập nhật dữ liệu mới được yêu cầu. 52
Hình 4.6: Máy chủ chứa dữ liệu đường đi. 53
Hình 4.7: Dữ liệu trả về từ máy chủ khi được yêu cầu 53
Hình 4.8: Dữ liệu nhận về ESP8266 54
Hình 4.9: Chọn dòng Arm sử dụng 63
Hình 4.10: Thêm thư viện vào project 64
Hình 4.11: Thêm file.h vào 64
Hình 4.12 : Biên dịch và nạp code 65
Hình 4.13: Chọn thiết bị và phiên bản Android 74
Hình 4.14: Hoàn tất tạo project 74
Hình 4.15: Biểu tượng của ứng dụng. 87
Hình 4.16: Giao diện khởi động ứng dụng 87
Hình 4.17: Giao diện hướng dẫn sử dụng ứng dụng 87
Hình 4.18: Tìm kiếm điểm đến. 88
Hình 4.19: Hiển thị quãng đường 88
Hình 4.20: Thông báo hoàn thành quãng đường. 89
Hình 4.21: Cảnh báo sự cố. 89
Hình 5.1: Board mạch sau khi đã in và lắp ráp linh kiện 90
Hình 5.2: Mô hình xe sau khi đã hoàn thành 91
Hình 5.3: Biểu tượng của ứng dụng. 91
Hình 5.4: Giao diện khởi động ứng dụng và hướng dẫn sử dụng 92
Hình 5.5: Giao diện tìm kiếm điểm đến. 92
Hình 5.6: Giao diện hiển thị lộ trình xe sẽ chạy 92
Hình 5.7: Thông báo hoàn thành quãng đường. 93
Hình 5.8: Cảnh báo sự cố. 93
Hình 5.9: Dữ liệu các lộ trình. 96
Trang 14Bảng Trang
Bảng 4.1: Liệt kê linh kiện sử dụng trên board 49
Trang 15Giao thông thông minh hay thành phố thông mình, những thuật ngữ không cònquá xa lạ trên thế giới và tại Việt Nam thì nó đã dần hình thành một cái nhìn ngày càng
rõ nét hơn về một cuộc sống đầy văn minh trong tương lai Xe tự hành là một trongnhững dự án nhằm xây dựng một hệ thống giao thông thông minh
Sự ra đời của các thiết bị điều khiển từ xa là bược ngoạt lớn cho nền KH-KT củanhân loại Xe điều khiển từ xa là một trong số đó, người dùng có thể thoải mái điềukhiển xe theo ý mình mà không cần phải lại gần Dần dần, khoảng cách điều khiểnngày càng được tăng xa hơn và dần vụt khỏi tầm mắt của con người Lúc này có mộtgiải pháp đặt ra là thiết lập một dữ liệu quãng đường hẵn hoi để xe tự chạy, ngoài ra nócũng sẽ được trang bị đầy đủ các hệ thống cảm biến, phân tích dữ liệu để giúp chạy xe
an toàn và tuân thủ luật lệ giao thông Đây là một chủ đề khó nhưng không phải làkhông thể làm được, nếu thành công thì nó sẽ đem lại rất nhiều lợi ích cho nước nhà(giảm thiểu tai nạn giao thông, giảm thiểu các chi phí y tế, tiết kiệm nhiên liệu, tiếtkiệm thời gian và bảo vệ môi trường) Đó chính là lý do nhóm em chọn đề tài: Thiết kế
và thi công mô hình xe tự hành theo chỉ dẫn từ Smartphone Mô hình này có khả năng
đi đến một điểm bất kỳ trên bản đồ giao thông nhờ khả năng định vị và xác địnhhướng Bên cạnh đó, chức năng tránh vật cản sẽ hỗ trợ xe vận hành an toàn không vachạm và toàn bộ sẽ được thiết lập và giám sát trên Smartphone, mọi lúc mọi nơi đềubiết được xe đang ở đâu, đang đi đâu
Với đề tài này, nhóm em mong muốn đề tài này sẽ là cơ sở nền tảng bước đầucho các nhóm sau có chung ý tưởng tiếp tục thực hiện Nếu thành công, chắc chắn sẽ
là một bước tiến mạnh mẽ của nền KH-KT Việt Nam và hơn nữa nó sẽ giúp phát triểnngành giao thông vận tải của nước nhà lên một tầm cao mới
Trang 16Chương 1 TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Ngày nay sự tiến bộ của KH-KT đã mang đến cho con người một cuộc sống ngàycàng văn minh và lý tưởng hơn Cũng không quá lắm khi nói như thế vì, ngày càng cónhiều thiết bị “thông minh” được ra đời nhằm giúp con người trong mọi lĩnh vực(công-nông nghiệp, dịch vụ,…) và giao thông là một trong số đó Một phương tiệngiao thông thông minh được trang bị các thiết bị và cảm biến để thông báo cho tài xếbiết tình trạng của xe và hiện đại hơn nữa là một hệ thống xe tự hành và đó là lý donhóm em chọn đề tài này để thực hiện
“Xe tự hành không còn là viễn tưởng, không lâu nữa nó sẽ có mặt rộng rãi trêntoàn cầu. Mercedes - Benz, BMW, Tesla đã và đang chuẩn bị ra mắt những mẫu xe
được giới thiệu có khả năng tự vận hành và mạnh mẽ nhất là Google, họ đã tuyên bố đang chạy thử nghiệm các mẫu xe tự hành trên đường phố California từ hè năm 2015.
Xe tự hành được chia ra thành 2 loại chính là bán tự động và hoàn toàn tự động:
Loại xe hoàn toàn tự động là những mẫu xe có thể di chuyển từ điểm A đến điểm
B và tự xử lý các tình huống gặp phải trên đường mà không cần đến con người
Loại xe bán tự động là những loại xe chỉ có một số hệ thống tự động được trang
bị bên trong xe, nó đòi hỏi lúc nào cũng phải có tài xế và những hệ thống này nhằm hỗ trợtài xế lưu thông xe an toàn hơn
Xe hơi có tính năng lái tự động sẽ ra mắt thị trường vào năm 2019.“Theo Tổ
chức IHC Automotive thì ước tính doanh số bán xe tự hành sẽ tăng lên 11,8 triệu chiếcvào năm 2035 Trong số này, 7 triệu xe sẽ thuộc dạng bán tự hành, và 4,8 triệu xe hoàntoàn di chuyển tự động.”
Những xe tự hành sẽ giúp giảm thiểu một cách đáng kể tai nạn giao thông haygiảm bớt gánh nặng mà người điều khiển phải chịu đựng trên đường cao tốc hay khitắc đường bởi tất cả đều được tự động hóa Hệ thống xe tự hành sẽ giúp từ việc pháthiện điểm mù, cảnh báo làn đường khi khởi hành đến quản lý gia nhập làn đường vàthậm chí tự đậu xe,
Hầu hết các nguyên nhân chính gây ra tai nạn giao thông chính là từ người tài xế
Trang 17năng làm chủ trên đường bởi nhiệm vụ này sẽ được máy tính phụ trách Thật khó khi
kỳ vọng vào mức độ giảm thiểu tai nạn sẽ là 100% nhưng xe tự hành sẽ thay đổi đáng
kể con số chục ngàn trường hợp tử vong xảy ra mỗi năm tại nhiều quốc gia
1.2 MỤC TIÊU
Về phần xe: hoàn thành một mô hình xe tự hành, xe sẽ được kết nối Enthernet để
giao tiếp với smartphone, kết nối giao tiếp với các module và cảm biến, tự động chạyđến được một vị trí đã được đặt trước bằng smartphone và tự tránh các vật cản tĩnhtrên đường đi
Về phần ứng dụng điện thoại: thiết kế và viết một ứng dụng hoàn chỉnh chạy
trên hệ điều hành Android, giao tiếp truyền nhận dữ liệu với mô hình xe, tích hợp cácphương thức của Google Maps để thực hiện việc tìm kiếm địa điểm, đường đi, lấy cácthông tin chỉ dẫn về đường đi gửi về mô hình xe
1.3 NỘI DUNG NGHIÊN CỨU
Nội dung 1: Tìm hiểu hệ thống định vị toàn cầu GPS
Nội dung 2: Nghiên cứu VĐK ARM STM32F10x, đại cương về KIT
STM32F103VET6
Nội dung 3: Nghiên cứu giao tiếp VĐK với các module, cảm biến và truyền
nhận dữ liệu thông qua Enthernet
Nội dung 4: Nghiên cứu module cảm biến la bàn, cảm biến khoảng cách
Nội dung 5: Tìm hiểu hệ điều hành Android.
Nội dung 6: Viết ứng dụng điều khiển xe, hiển thị tọa độ GPS, lộ trình di
chuyển trên giao diện Google Maps, thiết kế giao diện điều khiển
Nội dung 7: Thiết kế mô hình
Nội dung 8: Đánh giá kết quả thực hiện.
1.4 GIỚI HẠN
Phụ thuộc hoàn toàn vào độ chính xác của các cảm biến
Độ chính xác của định vị còn hạn chế, sai số khoảng 2-2,5m
Xuất hiện thời gian trễ của việc truyền dữ liệu giữa điện thoại và xe.
Không tránh được vật cản động.
Trang 18 Chưa tuân thủ luật giao thông.
1.5 BỐ CỤC
Chương 3: Thiết Kế và Tính Tóan
Chương 5: Kết Quả, Nhận Xét và Đánh Giá
Chương 6: Kết Luận và Hướng Phát Triển
Chương 1: Tổng Quan.
Chương này trình bày vấn đề dẫn nhập, lý do chọn đề tài, mục tiêu, nội dung
nghiên cứu, các giới hạn và bố cục đồ án
Chương 2: Cơ Sở Lý Thuyết.
Giới thiệu các linh kiện, thiết bị sử dụng thiết kế hệ thống, các chuẩn truyền, giaothức
Chương 3: Tính Toán Và Thiết Kế Hệ Thống.
Tính toán thiết kế, đưa ra sơ đồ nguyên lí của hệ thống
Chương 4: Thiết Kế Hệ Thống.
Thiết kế hệ thống, lưu đồ, đưa ra giải thuật và chương trình
Chương 5: Kết Quả, Nhận Xét, Đánh Giá.
Đưa ra kết quả đạt được sau một thời gian nghiên cứu, một số hình ảnh của hệ
thống, đưa ra những nhận xét, đánh giá toàn bộ hệ thống
Chương 6: Kết Luận và Hướng Phát Triển.
Trình bày những kết luận về hệ thống những phần làm rồi và chưa làm, đồng thờinếu ra hướng phát triển cho hệ thống
Trang 19Chương 2 CƠ SỞ LÝ THUYẾT
2.1 HỆ THỐNG ĐỊNH VI TOÀN CẦU (GPS) VÀ HỆ TOẠ ĐỘ ĐỊA LÝ
Hệ thống định vị toàn cầu (Global Positioning System – GPS) là hệ thống xác định vị
trí dựa trên vị trí của các vệ tinh nhân tạo, do Bộ Quốc phòng Hoa Kỳ thiết kế, xây dựng, vận hành
và quản lý Trong cùng một thời điểm, tọa độ của một điểm trên mặt đất sẽ được xác định nếu xácđịnh được khoảng cách từ điểm đó đến ít nhất ba vệ
tinh[3]
Các vệ tinh GPS bay vòng quanh Trái Đất hai lần trong một ngày theo một quỹđạo rất chính xác và phát tín hiệu có thông tin xuống Trái Đất Các máy thu GPS nhậnthông tin này và bằng phép tính lượng giác tính được chính xác vị trí của người dùng
Về bản chất máy thu GPS so sánh thời gian tín hiệu được phát đi từ vệ tinh với thờigian nhận được chúng Sai lệch về thời gian cho biết máy thu GPS ở cách vệ tinh bao
xa Rồi với nhiều quãng cách đo được tới nhiều vệ tinh máy thu có thể tính được vị trícủa người dùng và hiển thị lên bản đồ điện tử của máy
Ứng Dụng của GPS: Ứng dụng của GPS là rất lớn, ngoài chức năng định vị trên các
thiết bị cá nhân và quân sự thì các nó cũng được ứng dụng rất nhiều trên các
phương tiện giao thông:
Lưu trữ lộ trình từng xe và hiển thị lại lộ trình của từng xe trên cùng mộtmàn hình
Xem lại lộ trình xe theo thời gian và vận tốc tùy chọnQuản lý theo dõi một hay nhiều xe tại mỗi thời điểmBáo cáo cước phí và tổng số km của từng xe (ngày/tháng)Cảnh báo khi xe vượt quá tốc độ, vượt ra khỏi vùng giới hạn
Trang 20 Chức năng chống trộm.
Hệ toạ độ địa lý: là một hệ tọa độ cho phép tất cả mọi điểm trên Trái Đất đều có thể
xác định được bằng một tập hợp các số có thể kèm ký hiệu Các tọa độ thường gồm số biểu diễn vịtrí thẳng đứng, và hai hoặc ba số biểu diễn vị trí nằm ngang Hệ tọa độ
phổ biến hiện nay là hệ hệ tọa độ cầu tương ứng với tâm Trái Đất với các tọa độ là vĩ
độ, kinh độ và cao độ
Vĩ độ (ký hiệu: φ) của một điểm bất kỳ trên mặt Trái Đất là góc tạo thành) của một điểm bất kỳ trên mặt Trái Đất là góc tạo thành
giữa đường thẳng đứng (phương của dây dọi, có đỉnh nằm ở tâm hệ tọa độ-chính là trọngtâm của địa cầu) tại điểm đó và mặt phẳng tạo bởi xích đạo Đường tạo bởi các điểm cócùng vĩ độ gọi là vĩ tuyến, và chúng là những đường tròn đồng tâm trên bề mặt Trái Đất.Mỗi cực là 90 độ: cực bắc là 90° B; cực nam là 90° N Vĩ tuyến 0° được chỉ định là đườngxích đạo, một đường thẳng tưởng tượng chia địa cầu thành Bán cầu bắc và Bán cầu nam
Kinh độ (ký hiệu: λ) của một điểm trên bề mặt Trái Đất là góc tạo ra giữa) của một điểm trên bề mặt Trái Đất là góc tạo ra giữa
mặt phẳng kinh tuyến đi qua điểm đó và mặt phẳng kinh tuyến gốc Kinh độ có thể là kinh
độ đông hoặc tây, có đỉnh tại tâm hệ tọa độ, tạo thành từ một điểm trên bề mặt Trái Đất vàmặt phẳng tạo bởi đường thẳng ngẫu nhiên nối hai cực bắc nam địa lý Những đường thẳngtạo bởi các điểm có cùng kinh độ gọi là kinh tuyến Tất cả các kinh tuyến đều là nửa đườngtròn, và không song song với nhau: theo định nghĩa, chúng hội tụ tại hai cực bắc và nam.Đường thẳng đi qua Đài Thiên văn Hoàng gia
Greenwich (gần London ở Liên hiệp Vương quốc Anh và Bắc Ireland) là đường thamchiếu có kinh độ 0° trên toàn thế giới hay còn gọi là kinh tuyến gốc Kinh tuyến đốicực của Greenwich có kinh độ là 180°T hay 180°Đ
B MÔN ĐI N T CÔNG NGHI P Ộ MÔN ĐIỆN TỬ CÔNG NGHIỆP ỆN TỬ CÔNG NGHIỆP Ử CÔNG NGHIỆP ỆN TỬ CÔNG NGHIỆP 5
Trang 21Hình 2.1 Cách sắp xếp kinh độ và vĩ độ trên trái đất.
Phương pháp xác định quãng đường và góc giữa hai toạ độ địa lý với cực bắc
của trái đất:
Sự phân bố các vĩ tuyến không giống như các kinh tuyến, các mặt phẳng tạo bởi các
vĩ tuyến luôn song song với nhau trong khi các mặt phẳng được tạo bởi các kinh tuyếnlại cắt nhau trên đường thẳng đi qua trục của trái đất, vậy nên giá trị khoảng cách củamột đơn vị vĩ độ sẽ luôn bằng nhau tại mọi vị trí trên trái đất còn giá trị khoảng cáchcủa một đơn vị kinh độ sẽ nhỏ nhất ở hai cực và lớn nhất khi ở xích đạo Do vậy, tuỳvào vị trí đang xét mà ta có các thông số tính khác nhau
Trang 22Hình 2.2 Phân bố kinh tuyến trên trái đất.
Ý tưởng tính toán góc giữa hai toạ độ với hướng bắc và khoảng cách giữa chúng
Vì khoảng cách các kinh độ là không đều nhau cho nên ta không thể tính toándựa bằng phương pháp mặt phẳng toạ độ mà không quy đổi, tuy nhiên trái đất rất rộnglớn, vậy nên khi chúng ta chỉ xét trong một thành phố, nhất là một thành phố gần xích
đạo như thành phố Hồ Chí Minh thì ta có thể coi như các kinh tuyến và vĩ tuyến là cácđường thẳng vuông góc với nhau, và khi khoảng cách của một đơn vị kinh tuyến bằngkhoảng cách của một đơn vị vĩ tuyến thì chúng ta có thể áp dụng các phương pháp tínhgóc và khoảng cách giữa hai điểm và một vector trong mặt phẳng Tại thành phố HồChí Minh là nơi đang xét có toạ độ 10°10’ – 10°38’ Bắc và 106°22’ – 106°54’ Đông,vậy chúng ta chọn kinh độ 106 và vĩ độ 10 làm chuẩn để tính toán
Ta có:
Độ dài của một độ vĩ độ trên kinh độ 106:
Dlat = 2πR/360 = 111701,0721(m).R/360 = 111701,0721(m) (2.1)
Trang 23 Độ dài của một kinh độ trên vĩ độ 10:
Dlng= 2πR/360 = 111701,0721(m).Rsin(90°-10°)/360
= Dlat * sin(80°) = 110004,0819(m)
Độ dài của một vĩ độ là không đổi tại mọi vị trí trên trái đất, vậy nên ta chọn
khoảng cách của một độ vĩ độ làm đơn vị chuẩn để tính toán trong mặt phẳng toạ độ
Khi đó tỷ lệ độ dài một độ vĩ độ trên một độ kinh độ sẽ là:
T = Dlat / Dlng = 1/ sin(80°)= 1,015427 (2.3)Khi tính toán, chúng ta chỉ cần nhân giá trị kinh độ cho T là có thể tính toán với
các công thức trong mặt phẳng toạ độ vì khi tính toán các vector trong mặt phẳng yêu
cầu hai trục x,y có độ dài đơn vị bằng nhau Để tính góc giữa hai toạ độ với hướng bắc
ta có thể dùng công thức tính tích vô hướng của hai vector, một vector tạo bởi hai toạ
độ và một vector chỉ hướng bắc( vector đơn vị của trục vĩ độ)
Hình 2.3 Biểu thức toạ độ của tích vô hướng.
Ví dụ : chọn điểm hiện tại có toạ độ địa lý ( kinh độ; vĩ độ) là A(106,11; 10,56 ) và
Tương tự áp dụng công thức toạ độ của tích vô hướng ta có góc của ⃗⃗⃗⃗⃗ so với hướng bắc(tương ứng với ⃗ ( 0 ; 1 ) ) là : 71,56°.
B MÔN ĐI N T CÔNG NGHI P Ộ MÔN ĐIỆN TỬ CÔNG NGHIỆP ỆN TỬ CÔNG NGHIỆP Ử CÔNG NGHIỆP ỆN TỬ CÔNG NGHIỆP 8
Trang 24Hình 2.4 Biểu diễn đoạn đường di chuyển AD trên mặt phẳng toạ độ
Bộ giao thức TCP/IP được coi là một tập hợp các tầng Mỗi tầng giải quyết mộttập các vấn đề liên quan đến việc truyền tải dữ liệu, và cung cấp cho các giao thức tầngcấp trên một dịch vụ được định nghĩa rõ ràng dựa trên việc sử dụng các dịch vụ củacác tầng thấp hơn Hay nói cách khác, các tầng trên gần với người dùng hơn và làmviệc với dữ liệu trừu tượng hơn, chúng dựa vào các tầng cấp dưới để biến đổi dữ liệuthành các dạng mà cuối cùng có thể truyền đi trong môi trường vật lý
Trang 25Bốn tầng của TCP/IP: tầng ứng dụng (Application Layer), tầng giao vận
(Transport Layer), tầng mạng (Internet Layer) và tầng liên kết (Link Layer)
Hình 2.5 Mô hình truyền dữ liệu của TCP/IP
Application Layer (Tầng ứng dụng): Tầng cao nhất trong cấu trúc phân lớpcủa TCP/IP Tầng này bao gồm tất cả các chương trình ứng dụng sử dụng các dịch vụ sẵn
có thông qua một chồng giao thức TCP/IP như DHCP, DNS, HTTP, FTP, Telnet, SMTP,
… Chúng sẽ tương tác với tầng vận chuyển để truyền hoặc nhận dữ liệu
Transport Layer (Tầng giao vận): Gồm 2 phần chính là giao thức TCP và giao thức UDP
Internet Layer (Tầng mạng): IP (Ipv4, Ipv6)
Link Layer (Tầng lien kết): Ethernet, Wifi, Token Ring, PPP, Frame Relay…
2.2.2 GIAO THỨC HTTP
HTTP là một giao thức hoạt động trên cơ chế yêu cầu – phản ứng trong mô hìnhđiện toán khách – máy chủ, nghĩa là HTTP cho phép giao tiếp giữa máy chủ và máykhách Máy khách sẽ gửi một yêu cầu bằng giao thức HTTP đến máy chủ (tùy vàotừng ứng dụng mà chọn yêu cầu khác nhau), sau đó máy chủ sẽ phản ứng lại yêu cầu
Trang 26HTTP thuộc tầng ứng dụng của bộ giao thức TCP/IP (Các giao thức nền tảng cho
Internet)
Hình 2.6 Mô hình truyền thông Client – Server
Để máy chủ hiểu được yêu cầu của máy khách muốn làm gì cần phải thông quacác phương thức HTTP Các phương thức HTTP đã được định nghĩa hiện này là: GET,POST, HEAD, OPTIONS, PUT, DELETE, TRACE [5] Trong đó:
HTTP GET: lấy một nguồn tài nguyên hiện có trên máy chủ.
HTTP POST: tạo ra một nguồn tài nguyên mới.
Dựa theo ý nghĩa của 2 phương thức HTTP này, ta sẽ dùng nó để giao tiếp với
máy chủ nhằm trao đổi dữ liệu
Sau khi nhận được yêu cầu từ máy khách thì máy chủ sẽ phản hồi lại một thôngbáo và trong thông báo này sẽ chứa các mã trạng thái nhằm nói cho máy khách biếtrằng yêu cầu có được chấp nhận hay đã xảy lỗi gì rồi Một số mã trạng thái thường gặphoặc mắc phải là:
2xx: điều này nói với máy khách rằng các yêu cầu đã được xử lý thành công,
mã phổ biến là 200 OK, các mã ít phổ biến hơn là 202, 203, 204, 205 và 206
3xx: điều này đòi hỏi máy khách phải có hành động bổ sung, hành động tiếptheo phải được thực hiện để hoàn tất yêu cầu, mã phổ biến là 301(đối tượng yêu cầu đãđược chuyển), ít phổ biến hơn là 303, 304
4xx: máy khách gặp lỗi, các mã này được sử dụng khi máy chủ nghĩ rằng máykhách đã bị lỗi, hoặc bằng cách yêu cầu một nguồn tài nguyên không hợp lệ
Trang 27hoặc thực hiện một yêu cầu xấu Các mã phổ biến nhất trong lớp này là 404 Not Found, ít gặp hơn là 400, 401, 403, 405, 409.
5xx: mã số được sử dụng để chỉ ra lỗi của máy chủ trong khi xử lý yêu cầu,
các mã lỗi thông dụng nhất là 500 Internal Server Error hay 501 và 503
URL thường được gọi là một địa chỉ web hay là một tham chiếu đến một tàinguyên của máy chủ, mọi truyền thông web đều được thông qua URL Các URL cómột cấu trúc đơn giản gồm các thành phần được thể hiện qua ví dụ sau:
Hình 2.7 Cấu trúc của một URL.
Trong đó:
protocol: giao thức http hoặc có thể sẽ là https cho truyền thông bảo mật
host: server hay máy chủ
port: cổng kết nối, thông thường sẽ là 80.
resource path: đường dẫn đến nguồn tài nguyên nào đó.
query: truy vấn.
e Quy trình hoạt động trong kết nối HTTP:
Gồm có 5 bước như sau:
Bước 1: máy khách sẽ khởi tạo kết nối TCP bằng việc gửi yêu cầu đến server.
Máy chủ nhận được yêu cầu và chấp nhận kết nối bằng việc gửi trả lời về cho máykhách một thông báo Nếu sau khoảng thời gian RTT mà không nhận được trả lời từphía máy chủ thì máy khách sẽ gửi lại yêu cầu
Bước 2: sau khi kết nối được thiết lập, máy khách sẽ gửi thông điệp yêu cầu chứa
tên đường dẫn của các đối tượng đến máy chủ
Trang 28(vd: www.myserver.com/homepage/project.php) Máy chủ nhận được thông điệp yêucầu và tiến hành lấy ra các đối tượng được yêu cầu Sau đó, các đối tượng được đónggói thành thông điệp trả lời và gửi đến máy khách.
Bước 3: máy chủ đóng kết nối TCP (Lưu ý: máy chủ chỉ đóng kết nối TCP khi
chắc chắn rằng máy khách nhận được thông điệp trả lời)
Bước 4: máy khách nhận thông điệp trả lời chứa tập tin dưới định dạng HTML,
Json,
Bước 5: lặp lại các bước từ 1-4 cho các đối tượng khác.
Hình 2.8 Quy trình hoạt động của kết nối HTTP
Thông điệp HTTP được viết bằng văn bản ASCII thông thường, do vậy ngườidùng có thể đọc được Có 2 dạng thông điệp HTTP: thông điệp HTTP yêu cầu vàthông điệp HTTP trả lời
Thông điệp HTTP yêu cầu:
Trang 29Hình 2.9 Cú pháp của một HTTP yêu cầu
Trong đó:
Request line: là dòng đầu tiên của thông điệp HTTP yêu cầu Request line
bao gồm có 3 trường như: cách thức (method), URL, phiên bản (version).Trường cách thức (method) có thể chứa các giá trị khác nhau, bao gồmGET, POST, HEAD, Phần lớn các thông điệp HTTP yêu cầu đều sử dụngphương thức GET Các phương thức GET được sử dụng khi máy khách yêucầu một đối tượng được xác định trong trường URL Phương thức POST lànhững phương thức mà máy khách sử dụng khi người dùng điền vào mộtbiểu mẫu (form) nào đó, chẳng hạn như người dung muốn nhập một từ khóanào đó vào google.com đề tìm kiếm thông tin Nếu phương thức là POSTthì Entity body của thông điệp yêu cầu sẽ chứa thông tin mà người dùng đãđiền Phương thức HEAD tương tự như GET, nhưng khi máy chủ nhậnđược yêu cầu bằng phương thức HEAD, nó sẽ trả về thông điệp HTTP vàkhông chứa đối tượng được yêu cầu
Header line: là các dòng tiếp theo
Sp: bao gồm các giá trị về khoảng trống.
Blank line: bao gồm các giá trị điều khiển trở về đầu dòng, xuống hàng (cr, lf)
Entity Body (nếu có): là phần thân của thông điệp HTTP yêu cầu
Trang 30Hình 2.10 Cú pháp của một HTTP trả lời
Thông điệp HTTP trả lời có ba phần:
Dòng trạng thái (status line): gồm 3 trường là phiên bản của giao thức(version), mã trạng thái (status code), trạng thái tương ứng (phrase) và các giá trị khoảngtrống (sp), điều khiển trở về đầu dòng, xuống hàng (cr, lf)
Dòng tiêu đề (header lines)
Thân thông điệp (entity body) Thân (Body) là thành phần chính của thông điệp hay là nội dung yêu cầu
2.3 HỆ ĐIỀU HÀNH ANDROID
2.3.1 TỔNG QUAN
Android được các công ty công nghệ lựa chọn khi họ cần một hệ điều hànhkhông nặng nề, có khả năng tinh chỉnh, và giá rẻ chạy trên các thiết bị công nghệ caothay vì tạo dựng từ đầu Ngoài các thiết kế chạy trên điện thoại và máy tính bảng,Android đã xuất hiện trên TV, máy chơi game và các thiết bị điện tử khác
Android chiếm 75% thị phần điện thoại thông minh trên toàn thế giới vào thờiđiểm quý 3 năm 2012, với tổng cộng 500 triệu thiết bị đã được kích hoạt và 1,3 triệulượt kích hoạt mỗi ngày Sự thành công của hệ điều hành cũng khiến nó trở thành mụctiêu trong các vụ kiện liên quan đến bằng phát minh, góp mặt trong cái gọi là "cuộcchiến điện thoại thông minh" giữa các công ty công nghệ
Tới thời điểm hiện nay thì hệ điều hành Android đã trải qua một chặng đường dàikhông ngừng phát triểu với các phiên bản khác nhau như: Cupcake, Donut, Eclair,
Trang 31Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jelly Beans, Kitkat, Lollipop
và mới nhất là phiên bản Android 6.0 Marshmallow
2.3.2 GIỚI THIỆU VỀ NỀN TẢNG CỦA HỆ ĐIỀU HÀNH ANDROID:
a Kiến trúc của nền tảng gồm có 5 tầng [2], đó là:
Hình 2.11 Kiến trúc của HĐH Android
Khung tổ chức ứng dụng
Tầng thư viện
Thời gian chạy Android (Android Runtime)
Tầng hạt nhân Linux
b Các phần mềm ứng dụng trên Android:
Việc phát triển phần mềm cho Android OS có thể được thực hiện trên hệ điềuhành Windows hay trên hệ điều hành nguồn mở Linux và các công cụ phục vụ việc lậptrình ứng dụng trên Android OS gồm:
B MÔN ĐI N T CÔNG NGHI P Ộ MÔN ĐIỆN TỬ CÔNG NGHIỆP ỆN TỬ CÔNG NGHIỆP Ử CÔNG NGHIỆP ỆN TỬ CÔNG NGHIỆP 16
Trang 32 Java for Developers 8 (JDK phiển bản mới nhất): do các phần mềm chạy trênAndroid OS đều phát triển trên nền tảng Java nên cần có bộ thư viện của Java, được cungcấp miễn phí cho người phát triển phần mềm bởi Oracle.
Android SDK – Android Studio: công cụ trực tiếp để viết ứng dụng c Các
thành phần cơ bản trong Android Project:
Mỗi ứng dụng Android đều có một tập tin tên AndroidManifest.xml, được lưu ởthư mục gốc (root) của ứng dụng Tập tin manifest mô tả những thông tin cần thiết củaứng dụng cho hệ điều hành Android, những thông tin này hệ điều hành cần phải biếttrước khi nó chạy bất kỳ ứng dụng nào File AndroidManifest.xml sẽ tự động phát sinhkhi tạo một Android project Trong file Manifest bao giờ cũng có 3 thành phần chính
đó là: application, permission và version [2]
Hình 2.12 Nội dung mặc định của một Manifest.xml
Cũng như tập tin Manifest thì tập tin java cũng sẽ tự phát sinh khi tạo mộtAndroid project, tập tin này được sử dụng để quản lý các thuộc tính được khai báotrong file XML của ứng dụng và các tài nguyên hình ảnh Mã nguồn của tập tin nàyđược tự động phát sinh khi có bất kỳ một sự kiện nào xảy ra làm thay đổi các thuộctính của ứng dụng
Trang 33Hình 2.13 Nội dung mặc định của một tập tin java
Activity là một thành phần chính của một ứng dụng Android, được dùng để hiểnthị một màn hình và nắm bắt các hoạt động xảy ra trên màn hình đó, chẳng hạn nhưchụp ảnh, gửi mail,… Mỗi Activity là một giao diện người dùng Tạo một Activitytrong Android Studio cực kỳ đơn giản (Android Studio cũng đã hỗ trợ một số Activitycho các ứng dụng đặc biệt phổ biến)
Hình 2.14 Tạo một Activity mới.
Trang 34Một Activity sẽ có 3 trạng thái cơ bản đó là:
Active: khi nó xuất hiện trên màn hình điện thoại và nhận tương tác người
dùng như là click, trượt,…
Paused: khi nó không còn là trọng tâm trên màn hình nhưng vẫn hiển thị
trước người dùng
Stopped: khi nó hoàn toàn bị che khuất
Vòng đời của một Activity: hình chữ nhật vuông thể hiện các phương thứcCallback mà chúng ta có thể khai báo để gọi thực thi một số thao tác khi hoạt độngchuyển sang trạng thái khác Các trạng thái chính của một Activity được thể hiện bởicác ô màu [2]
Hình 2.15 Vòng đời của một Activity
Trong sơ đồ về vòng đời của một Activity, dễ nhận thấy rằng trước khi Activityđược chạy thì phương thức onResume() đã được gọi trước và khi Activity bị hủy thì
Trang 35phương thức onPause() đã được gọi trước Tại sao lại nhấn mạnh vấn đề này, nguyên
nhân sẽ được tìm hiểu ở phần đối tượng SharePreference
Intent là một cấu trúc dữ liệu mô tả cách thức, là đối tượng của một Activity.Trong một ứng dụng Android thì thường có nhiều Activity và chúng hoạt động hoàntoàn độc lập với nhau, Intent sẽ là cầu nối giữa các Activity, giúp chúng có thể truyền
dữ liệu cho nhau
Hình 2.16 Chuyển đổi giữa 2 Activity
Intent là một đối tượng được mô tả trong lớp android.content.Intent.
Service là một trong bốn thành phần cơ bản của một ứng dụng Android (Activity,Service, BroadcastReceiver, ContentProvider), đây là thành phần chạy ngầm và làmnhững công việc không cần tới giao diện như chơi nhạc hay xử lý tính toán,…
Để khởi chạy một service thì ta phải gọi hàm Context.startService() hay dừng bằng hàm Context.stopService()/Service.stopSelf()/Service.stopService() Chỉ cần một lệnh stopService() để ngừng Service lại cho dù lệnh startService() được gọi nhiều lần.
Một Service có 3 phương thức được gọi đến trong vòng đời của nó: onCreate(),onStart(Intent intent), onDestroy() Giống như một Acctivity thì một Service cũng sẽtiến hành cài đặt ban đầu ở onCreate() và giải phóng tất cả các tài nguyên còn lại ởonDestroy()
Trang 36Hình 2.17 Vòng đời của một Service
Tóm lại, lập trình Service cũng tương tự như lập trình cho một Activity để thựchiện một chức năng nào đó mà không cần có giao diện (chạy ngầm) và nó hoạt độngđộc lập với các ứng dụng khác đang chạy Sau khi startService() thì Service sẽ tiếp tụcchạy cho đến khi stopService() được gọi
2.4 KHẢO SÁT LINH KIỆN, THIẾT BỊ SỬ DỤNG:
Dựa trên mục tiêu về các chức năng của sản phẩm đề ra ban đầu thì một số linh kiện vàthiết bị có thể phù hợp như:
Định vị GPS: hiện nay có khá nhiều module, cảm biến có chức năng định vị GPSnhư Arduino GPS, GPS Ublox với các phiên bản khác nhau, Module Sim
900/900A,…
Hình 2.18 Một số thiết bị/cảm biến định vị GPS.
Trang 37 Đo khoảng cách tránh vật cản: hiện nay có khá nhiều cảm biến nhằm hỗ trợ tránh vật cản thông dụng như cảm biến hồng ngoại, cảm biến siêu âm,…
Hình 2.19 Một số thiết bị/cảm biến đo khoảng cách
Phức tạp hơn nhưng mang lại hiệu quả tốt hơn đó là các giải pháp xử lý ảnh
Hình 2.20 Xử lý ảnh cho xe ô tô.
Xác định hướng: dựa trên nguyên tắc hoạt động của một là bàn thì phổ biến hiện này là cảm biến la bàn số với nhiều phiên bản và dạng khác nhau, quen thuộc trong nghiên cứu và học tập là cảm biến la bàn số HMC5883L.
Hình 2.21 Cảm biến la bàn số HMC5883L.
Vi điều khiển: hiện nay có rất nhiều các dòng vi điều khiển khác nhau nhằm phục vụ với từng mục đích khác nhau Với các ứng dụng nhỏ có thể chọn các dòng như STM8, PIC16, 8051 với ứng dụng phức tạp thì các dòng PIC16/18, STM32, AVR đều có thể thực hiện.
Trang 38 Điện thoại: tất cả các dòng Smartphone đang chạy hệ điều hành Android,
một số nhà sản xuất điện thoại như: Samsung, Sony, Asus, HTC, LG,…
Trang 39Chương 3 TÍNH TOÁN VÀ THIẾT KẾ
3.1 TỔNG QUAN VỀ YÊU CẦU THIẾT KẾ HỆ THỐNG
Để thực hiện đề tài, nhóm em đưa ra một số phương án để điều khiển xe tự hành chạy theo chỉ dẫn từ smartphone như sau:
trong các lộ trình đó bằng smartphone, và smartphone sẽ gửi lộ trình được lựa chọn xuống
mô hình xe, sau đó xe sẽ chạy theo lộ trình đó Ưu điểm của phương án này là đơn giảnnhưng xe chỉ có thể chạy theo các lộ trình có sẵn, muốn thay đổi phải can thiệp vào chươngtrình trên xe
trình đó xuống mô hình xe thông qua kết nối có dây hoặc Bluetooth, RF, hồng ngoại…Ưuđiểm là đáp ứng nhanh, lộ trình có thể tuỳ biến theo người dùng nhưng vì
truyền trực tiếp nên khoảng cách truyền dữ liệu bị giới hạn trong phạm vi hẹp
mạng internet, smartphone hoặc xe sẽ đóng vai trò là một SERVER và thiết bị còn lại sẽgửi, nhận dữ liệu từ SERVER đó Khi đó dữ liệu có thể truyền đi mà không bị giới hạnkhoảng cách, chỉ cần cả hai thiết bị có kết nối internet, tuy nhiên nhược điểm của
phương án này là tính bảo mật không cao, dễ bị hack do SERVER tự thiết kế không
được chuyên nghiệp
Phương án 4: Giống như phương án 3 nhưng thay vì một trong hai thiết bị
là SERVER thì cả hai thiết bị cùng truy cập và sử dụng một SERVER chung có sẵntrên internet Vì là SERVER được thiết kế cho thương mại nên tính ổn định và bảo mậtrất cao tuy nhiên việc truyền nhận với SERVER sẽ trở lên phức tạp và phải theo đúngphương pháp mà SERVER đó quy định
thiết kế riêng sao cho phù hợp với đề tài Với phương án này thì chi phí bỏ ra để tạo mộtSERVER là rất lớn nhưng vì thiết kế riêng cho việc truyền thông giữa xe và điện thoại nênviệc truyền nhận, truy cập sẽ dễ dàng hơn
Trang 40Lựa chọn phương án: Sau khi xem xét về kiến thức có được, chi phí, thời
gian… và khả năng của nhóm thì nhóm em lựa chọn phương án 4 làm phương án thựchiện cho đề tài này Khi đó sơ đồ khối của hệ thống sẽ như hình sau:
Hình 3.1 Sơ đồ khối của hệ thống.
Để thực hiện phương án này, nhóm em đặt ra các yêu cầu sau:
Xác định được vị trí hiện tại và hướng của xe
Tự vẽ lộ trình từ vị trí hiện tại của xe và điểm đến.
Chạy chính xác theo lộ trình.
Xe có thể chạy trên đường.
Tự động né nếu có vật cản trước mặt.
Đáp ứng nhanh, cập nhật dữ liệu kịp thời.
Khoảng cách chạy đủ xa.
Có thể giám sát ở bất kì nơi đâu.
Mô hình xe chắc chắn, có thể chạy được trên đường.
Với yêu cầu trên thì Smartphone sẽ đóng vai trò là thiết bị giám sát vị trí hiện tạicủa xe, chọn đích đến, vẽ ra lộ trình cho xe di chuyển, gửi dữ liệu toạ độ dựa vào lộtrình đó xuống mô hình xe Còn mô hình xe sẽ là vật di chuyển, xe sẽ xác định toạ độ
và gửi lên điện thoại thông qua internet, sau đó nhận lộ trình được gửi xuống từ điệnthoại (nếu có) và tính toán kết hợp với xác định hướng để tự động chạy theo lộ trình đóđến đích Vì yêu cầu mô hình xe có thể chạy trên đường nên nhóm em chọn điều khiển
xe chạy theo toạ độ địa lý Để xác định vị trí hiện tại theo toạ độ địa lý của xe để điềukhiển thì nhóm em chọn dùng hệ thống định vị toàn cầu GPS, do vậy lộ trình xe cầnchạy sẽ là tập hợp các toạ độ địa lý và xe cần chạy đến
3.2 TÍNH TOÁN VÀ THIẾT KẾ HỆ THỐNG
Như vậy từ yêu cầu trên thì nhóm em cần tính toán thiết kế các nội dung sau: