Một phương tiện giao 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ý do
Trang 1KHOA ĐIỆN - ĐIỆN TỬ
ĐỒ Á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
Tp Hồ Chí Minh, tháng 07/2016
S K L 0 0 4 4 9 7
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
tài
tìm mua mô hình xe
cầu đề ra ban đầu
Tiếp tục tìm mua mô hình xe phù hợp (nếu chư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
cương về KIT STM32F103VET6
Nghiên cứu cách điều khiển module Arduino Nano
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ập hoạt động cho xe
Tuần 10+11 Viết chương trình cho vi điều khiển thực hiện
các chức năng đã đề ra ban đầu
Thiết kế và thi công các mạch chức năng
Hoàn thành mô hình
Trang 3sản phẩm
Tuần 14+15 Viết báo cáo, tạo slide báo cáo
GV HƯỚNG DẪN (Ký và ghi rõ họ và tên)
Trang 4PHIẾU ĐÁNH GIÁ KHÓA LUẬN TỐT NGHIỆP
I Thông tin chung
- Họ và tên sinh viên: Nguyễn Văn Nam MSSV: 12141143
- Họ và tên sinh viên: Trương Hoàng Phú MSSV: 12141171
- 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ệ
Trang 51 Thông tin sinh viên
Họ và tên: Trương Hoàng Phú MSSV: 12141171
Họ và tên: Nguyễn Văn Nam MSSV: 12141143
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ức mớ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ết chươ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ại vi
- 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 6nghiê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
Trang 7i
Đề 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ách nhiệ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 8ii
Chú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ào nhữ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ầy Nguyễn Đình Phú, thầy Nguyễn Tấn Như đã cho chúng em mượn phòng D401 để tham khả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 đã đóng gó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ện thuậ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
Trang 9iii
LỜ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
4.2.2 LƯU ĐỒ GIẢI THUẬT 55
Trang 10iv
4.2.4 CHƯƠNG TRÌNH TRÊN BOARD ĐIỀU KHIỂN 65
4.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 11v
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
Hình 3.23: Sửa tên cho các tiêu đề 43
Trang 12vi
Hình 3.25: Tạo thành công một Spreadsheets 44
Hì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 13vii
Bảng Trang
Bảng 4.1: Liệt kê linh kiện sử dụng trên board 49
Trang 14an 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ết kiệ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 định hướ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 va chạ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 đều biế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 đầu cho 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ển ngành giao thông vận tải của nước nhà lên một tầm cao mới
Trang 15BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 1
Chươ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ày cà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ện giao 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ý do nhó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ên toà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ếc và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àn toà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 hay giả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 khi tắ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át hiệ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ế Với xe tự hành, sự phân tâm khi mệt mỏi hay say rượu sẽ không ảnh hưởng tới khả
Trang 16BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 2
nă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ĩnh trê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ác phươ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ác thô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 17BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 3
Chưa tuân thủ luật giao thông
1.5 BỐ CỤC
Chương 1: Tổng Quan
Chương 2: Cơ Sở Lý Thuyết
Chương 3: Thiết Kế và Tính Tóan
Chương 4: Thi công hệ thống
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, giao thứ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ời nếu ra hướng phát triển cho hệ thống
Trang 18BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 4
Chươ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ận thô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ời gian 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:
Giám sát lộ trình đường đi của phương tiện theo thời gian thực: vận tốc, hướng di chuyển và trạng thái tắt/mở máy, quá tốc độ của xe…
Xác định vị trí xe chính xác ở từng góc đường (vị trí xe được thể hiện nhấp nháy trên bản đồ), xác định vận tốc và thời gian xe dừng hay đang chạy, biết được lộ trình hiện tại xe đang đi (real time)
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ột màn hình
Xem lại lộ trình xe theo thời gian và vận tốc tùy chọn
Quản lý theo dõi một hay nhiều xe tại mỗi thời điểm
Bá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 19BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 5
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 độ
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ọng tâ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à đường xí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
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ẳng tạ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 đường trò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 tham chiế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 đối cực của Greenwich có kinh độ là 180°T hay 180°Đ
Trang 20BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 6
Hì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ến lạ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ủa mộ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ách củ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 21BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 7
Hì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án dự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ộng lớ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ằng khoả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ính gó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) (2.1) Với R= 6400000(m) là bán kính trái đất
Trang 22BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 8
Độ dài của một kinh độ trên vĩ độ 10:
= 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à
Trang 23BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 9
Hì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ột tậ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ầng cấ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ủa cá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àm việ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ệu thành các dạng mà cuối cùng có thể truyền đi trong môi trường vật lý
b Mô hình truyền dữ liệu của TCP/IP:
Trang 24BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 10
Bố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ớp củ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
a Tổng quan
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áy khá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ào từ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 25BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 11
HTTP 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
b Phương thức HTTP GET và HTTP POST:
Để 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 qua cá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
c Mã trạng thái:
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ông bá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ết rằ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ặp hoặ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ếp theo 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áy khá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 26BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 12
hoặ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
d Định vị tài nguyên hệ thống – Uniform Resource Locater (URL):
URL thường được gọi là một địa chỉ web hay là một tham chiếu đến một tài nguyê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áy khá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 27BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 13
(vd: www.myserver.com/homepage/project.php) Máy chủ nhận được thông điệp yêu cầ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 đóng gó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
f Thông điệp HTTP:
Thông điệp HTTP được viết bằng văn bản ASCII thông thường, do vậy người dù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 28BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 14
Hì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ồm GET, POST, HEAD, Phần lớn các thông điệp HTTP yêu cầu đều sử dụng phương thức GET Các phương thức GET được sử dụng khi máy khách yêu cầ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ột biểu mẫu (form) nào đó, chẳng hạn như người dung muốn nhập một từ khóa nào đó vào google.com đề tìm kiếm thông tin Nếu phương thức là POST thì 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
Thông điệp HTTP trả lời:
Trang 29BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 15
Hì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ảng trố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ành khô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ệ cao thay 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ệu lượ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ục tiê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ộc chiế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ài không ngừng phát triểu với các phiên bản khác nhau như: Cupcake, Donut, Eclair,
Trang 30BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 16
Froyo, 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:
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ều hà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ập trình ứng dụng trên Android OS gồm:
Trang 31BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 17
Java for Developers 8 (JDK phiển bản mới nhất): do các phần mềm chạy trên Android 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 cung cấ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:
Android Manifest.xml:
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ết trước khi nó chạy bất kỳ ứng dụng nào File AndroidManifest.xml sẽ tự động phát sinh khi 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
File R.java:
Cũng như tập tin Manifest thì tập tin java cũng sẽ tự phát sinh khi tạo một Android project, tập tin này được sử dụng để quản lý các thuộc tính được khai báo trong 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ộc tính của ứng dụng
Trang 32BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 18
Hình 2.13 Nội dung mặc định của một tập tin java
Activity:
Activity là một thành phần chính của một ứng dụng Android, được dùng để hiển thị 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 Activity trong Android Studio cực kỳ đơn giản (Android Studio cũng đã hỗ trợ một số Activity cho các ứng dụng đặc biệt phổ biến)
Hình 2.14 Tạo một Activity mới
Trang 33BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 19
Mộ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ức Callback mà chúng ta có thể khai báo để gọi thực thi một số thao tác khi hoạt động chuyể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ởi cá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 34BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 20
phươ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:
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àn toà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 (dịch vụ):
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àm nhữ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 35BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 21
Hì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ực hiệ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ục chạ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ị GPS như 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 36BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 22
Đ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 37BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 23
Đ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 38BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 24
Chươ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:
Phương án 1: Cài sẵn các lộ trình trên xe và người dùng sẽ lựa chọn một
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ản như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ương trình trên xe
Phương án 2: Thiết lập lộ trình trên điện thoại và gửi trực tiếp dữ liệu lộ
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
Phương án 3: Kế thừa phương án 2 nhưng môi trường truyền dữ liệu là
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ạn khoả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ẵn trên internet Vì là SERVER được thiết kế cho thương mại nên tính ổn định và bảo mật rấ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 đúng phương pháp mà SERVER đó quy định
Phương án 5: Tương tự như phương án 4 nhưng SERVER sử dụng sẽ được
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ột SERVER 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ên việc truyền nhận, truy cập sẽ dễ dàng hơn
Trang 39BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 25
Lự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ực hiệ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ại củ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ện thoạ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ều khiể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ần chạ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:
Thiết kế sơ đồ khối hệ thống
Trang 40BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 26
Mô hình xe
SERVER internet
Phần mềm trên điện thoại
3.2.1 THIẾT KẾ SƠ ĐỒ ĐIỀU KHIỂN
Hình 3.2 Sơ đồ điều khiển
Các khối sử dụng trong mạch:
Khối xử lý trung tâm : Sử dụng vi điều khiển để giao tiếp với các module, cảm
biến từ các khối khác sau đó xử lý và xuất tín hiệu để điều khiển động cơ
Khối điều khiển và giám sát : Sử dụng ứng dụng trên điện thoại android để gửi
và nhận dữ liệu từ khối xử lý trung tâm thông qua SERVER trên internet
Khối SERVER : Lưu trữ dữ liệu gửi lên từ khối xử lý trung tâm và khối điều
khiển giám sát
Khối định vị GPS: Sử dụng module GPS để gửi tín hiệu toạ độ GPS về cho vi
điều khiển