THIẾT KẾ XE ROBOT ĐIỀU KHIỂN BẰNG SMARTPHONE, SỬ DỤNG KIT LAUNCHPAD VÀ LẬP TRÌNH TRÊN MÔI TRƯỜNG ENERGIA

64 879 3
THIẾT KẾ XE ROBOT ĐIỀU KHIỂN BẰNG SMARTPHONE, SỬ DỤNG KIT LAUNCHPAD VÀ LẬP TRÌNH TRÊN MÔI TRƯỜNG ENERGIA

Đ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

THIẾT KẾ XE ROBOT ĐIỀU KHIỂN BẰNG SMARTPHONE, SỬ DỤNG KIT LAUNCHPAD VÀ LẬP TRÌNH TRÊN MÔI TRƯỜNG ENERGIA Sản phẩm cuối cùng của nhóm em là Mô hình xe robot được điều khiển bởi smart phone thông qua bluetooth, lập trình trên môi trường Energia: gồm có hai chế độ hoạt động chính là chế độ điều khiển bằng tay và chế độ chạy tự động. Ở chế độ điều khiển bằng tay: Các tín hiệu điều khiển ‘tới’, ‘lui’, ‘trái’, ‘phải’, ‘tăng tốc độ’, ‘giảm tốc độ’ được điện thoại gửi đến module bluetooth, rồi thông qua module này đến bộ vi xử lý, điều khiển hoạt động của 2 motor làm xe di chuyển. Ở chế độ tự động: xe sử dụng sóng siêu âm để đo khoảng cách từ xe tới vật cản gần nhất, từ đó đưa ra hướng di chuyển thích hợp. Sản phẩm được xây dựng nhằm hướng tới mục đích sử dụng trong nhiều lĩnh vực quan trọng như: thăm dò địa hình, phát hiện tai nạn ở những nơi con người khó vươn tới được, cứu hộ… Sản phẩm sử dụng một trong nhưng vi xử lý đơn giản và rẻ tiền nhất của TI là kit Launchpad MSP430G2553, thiết kế đơn giản với các module thông dụng như module bluetooth HC05, module siêu âm SFR05, IC cầu H L298… Nhờ vậy mà giá thành sản phẩm thấp. Xe robot có thể được điều khiển bởi bất kì điện thoại nào có chạy hệ điều hành, sử dụng bluetooth; sóng siêu âm sử dụng nguyên lý phản xạ để tránh vật cản. Sản phẩm được lập trình trên môi trường Energia với giao diện đơn giản, gần gũi với người sử dụng, và được hỗ trợ mã nguồn mở bởi một cộng đồng người dùng rất lớn

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA TP.HCM KHOA ĐIỆN TỬ VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: THIẾT KẾ XE ROBOT ĐIỀU KHIỂN BẰNG SMARTPHONE, SỬ DỤNG KIT LAUNCHPAD VÀ LẬP TRÌNH TRÊN MÔI TRƯỜNG ENERGIA Tp Hồ Chí Minh ,Tháng năm 2015 Lời cam đoan LỜI CAM ĐOAN Tóm tắt đề tài TÓM TẮT ĐỀ TÀI - - - - Sản phẩm cuối nhóm em Mô hình xe robot điều khiển smart phone thông qua bluetooth, lập trình môi trường Energia: gồm có hai chế độ hoạt động chế độ điều khiển tay chế độ chạy tự động Ở chế độ điều khiển tay: Các tín hiệu điều khiển ‘tới’, ‘lui’, ‘trái’, ‘phải’, ‘tăng tốc độ’, ‘giảm tốc độ’ điện thoại gửi đến module bluetooth, thông qua module đến vi xử lý, điều khiển hoạt động motor làm xe di chuyển Ở chế độ tự động: xe sử dụng sóng siêu âm để đo khoảng cách từ xe tới vật cản gần nhất, từ đưa hướng di chuyển thích hợp Sản phẩm xây dựng nhằm hướng tới mục đích sử dụng nhiều lĩnh vực quan trọng như: thăm dò địa hình, phát tai nạn nơi người khó vươn tới được, cứu hộ… Sản phẩm sử dụng vi xử lý đơn giản rẻ tiền TI kit Launchpad MSP430G2553, thiết kế đơn giản với module thông dụng module bluetooth HC05, module siêu âm SFR05, IC cầu H L298… Nhờ mà giá thành sản phẩm thấp Xe robot điều khiển điện thoại có chạy hệ điều hành, sử dụng bluetooth; sóng siêu âm sử dụng nguyên lý phản xạ để tránh vật cản Sản phẩm lập trình môi trường Energia với giao diện đơn giản, gần gũi với người sử dụng, hỗ trợ mã nguồn mở cộng đồng người dùng lớn Mục lục MỤC LỤC LỜI CAM ĐOAN TÓM TẮT ĐỀ TÀI MỤC LỤC 1.1 Đặt vấn đề: 1.2 Hướng giải quyết: CHƯƠNG II: CƠ SỞ LÝ THUYẾT 2.1Vi điều khiển/vi xử lý Launchpad MSP430G2553: 2.2 Module bluetooth HC05: 2.4 IC L298: CHƯƠNG III: THIẾT KẾ PHẦN CỨNG 3.1 Tổng quan thiết kế hệ thống: 3.2 Quy trình hoạt động hệ thống: 10 3.3 Một số hình ảnh cấu trúc, khí xe: 11 3.4 Sơ đồ nguyên lý mạch: 15 3.5 Layout mạch cầu H điều khiển động cơ: 15 CHƯƠNG IV: THIẾT KẾ PHẦN MỀM 16 4.1 Giới thiệu ENERGIA: 16 4.2 Phần mềm điều khiển xe robot qua Bluetooth điện thoại: 19 4.3 Lưu đồ thuật toán cho hệ thống: 22 4.4 Nội dung code Energia nạp cho Launchpad: 25 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 32 TÀI LIỆU THAM KHẢO: 33 CHƯƠNG 1:GIỚI THIỆU ĐỀ TÀI 1.1 Đặt vấn đề: Thứ nhất, nay, hầu hết ngành công nghiệp nước ta có quy mô lớn chất lượng chưa cao hạn chế khoa học kĩ thuật, máy móc thiết bị thô sơ nên suất lao động đạt mức trung bình lợi nhuận giảm phải thuê mướn lượng máy móc lớn, công ty nước không tránh khỏi tình trạng Ví dụ ngành khai thác than hay khai thác khoáng sản,trước bắt tay vào khai thác cần thăm dò địa hình để đặt máy móc Vấn đề đặt với địa hình đồi núi sâu vào lòng đất mà ảnh sáng yếu tố an toàn bé Và trình thuê xe dò địa hình tốn thời gian tài Thứ hai , qua thực tế nước ta có máy móc can thiệp vào trường hợp khẩn cấp,nguy hiểm cứu hộ cách tự động Thứ ba, trình phát triển khoa học rõ ráng phát triển smartphone,ngày tiện dụng phổ biến Nhưng để nghe,gọi,hay tính thông dụng khác ý nghĩa smartphone chưa đủ lớn Để can thiệp nhiều vào đời sống người,chúng ta dùng smartphone “đũa phép”,điều khiển vật xung quanh Do đó,để đáp ứng nhu cầu cấp bách làm tăng yếu tố an toàn cho người tận dụng phổ biến smartphone , nhóm chúng em bắt tay vào thực đề tài : “THIẾT KẾ XE ROBOT ĐIỀU KHIỂN BẰNG SMARTPHONE VÀ TỰ ĐỘNG DÒ ĐƯỜNG 1.2 Hướng giải quyết: Mục tiêu đặt cho đề tài cần thiết kế xe có khả dò đường robot tự động,phát vật cản đường điều khiển chuyển động thông qua smartphone Các yêu cầu đặt xe phải hoạt động ổn định lâu dài,tự động điều khiển smartphone Với yêu cầu đặt ra,nhóm chúng em tìm tòi ứng dụng thành công module Bluetooth HC-05 để giao tiếp với điện thoại,nhận liệu từ điện thoại,đưa vào trung tâm xử lý nhằm điều khiển xe robot theo ý muốn Trong trường hợp địa hình khuất tầm nhìn, tối tăm, nguy hiểm, cách xa người điều khiển vấn đề tự dò đường, phát vật cản đảm bảo an toàn quan trọng Nhóm em khắc phục điều cách cho xe robot hoạt động chế độ tự động, dùng cảm biến siêu âm SRF05 có khả phát vật cản tầm xa khoảng từ 3-4m, từ xe tự đưa định di chuyển hợp lý Chương 2: Cơ sở lý thuyết CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Vi điều khiển/vi xử lý Launchpad MSP430G2553: a) Giới thiệu qua họ vi điều khiển MSP430G2553 Vi điều khiển (Micro controller unit – MCU ) đơn vị xử lý nhỏ, tích hợp toàn nhớ ROM , RAM , port truy xuất , giao tiếp ngoại vi trực tiếp chip nhỏ gọn MSP430 có số phiên như: MSP430x1xx, MSP430x2xx, MSP430x3xx, MSP430x4xx, MSP430x5xx b) Phần cứng MSP430G2553 - Sơ đồ cấu trúc MSP430: - Sơ đồ chân : Chip MSP430 có kích thước nhỏ gọn , với 20 chân kiểu chân DIP Bao gồm port I/O (hay GPIO general purprose input/ output: cổng nhập xuất chung) - Giải thích sơ lược chân : Chương 2: Cơ sở lý thuyết  Chân số chân cấp nguồn Vcc ( ký hiệu chip DVCC ) , nguồn cho chip cấp mức 3,3V, cấp nguốn cao mức chip hoạt động sai hay cháy chip  Chân 20 chân nối cực âm (0V)  Chân reset : Chính chân số 16 RST, dấu gạch ngang đầu có nghĩa chân tích cực mức thấp Mục đích củaviệc reset nhằm cho chương trình chạy lại từ đầu  Mạch dao động: Cũng giống dòng vi điều khiển khác MSP430 hỗ trợ người dùng thạch anh ( external crystal ), thạch anh ngoại vi cho phép lên tới 32,768 kHz mà thôi, tín hiệu mắc chân 18 19 Nhưng MSP430 lại hỗ trợ thạch anh nội lên đến 16Mhz, tùy vào cách khai báo lập trình Và mặc định chip thạch anh nội Như không cần thiết phải sử dụng mạch dao động ngoại cho chip giống dòng khác  Port I/O :  Port 1: có chân từ P1.0 đến P1.7 tương ứng với chân từ 2-7 14 , 15  Port 2: gồm có chân P2.0 – P2.7 ứng với chân – 13 , 18,19 Ngoài chức I/O pin port chân đa chức c) Sơ đồ khối kit LaunchPad : Chương 2: Cơ sở lý thuyết 2.2 Module bluetooth HC05: Tổng quan : Bluetooth module SLAVE cho phép vi điều khiển kết nối với thiết bị ngoại vi: smartphone, laptop, usb bluetooth thông qua giao tiếp Serial gửi nhận tín hiệu chiều Module bluetooth tích hợp board cho phép ta sử dụng nguồn từ 3.5V đến 6V cung cấp cho board mà không cần lo lắng chênh lệch điện áp 3V - 5V gây hỏng board Bluetooth module gồm chân theo thứ tự: KEY, VCC, GND, TX, RX, STATE Đây module bluetooth SLAVE nghĩa ta chủ động kết nối vi điều khiển, mà cần sử dụng smartphone, laptop, bluetooth usb để dò tín hiệu kết nối từ smartphone, laptop, bluetooth usb, Sau kết nối thành công, ta gửi nhận tín hiệu từ vi điều khiển đến thiết bị Hình ảnh module bluetooth: a) Bảng biểu diễn kết nối bluetooth với launchpad: BLUETOOTH MODULE MSP430 LAUNCHPAD VCC 3V-5V GND GND TX RX RX TX Chương 2: Cơ sở lý thuyết Nhiệm vụ: Module Bluetooth làm nhiệm vụ nhận liệu từ smartphone đưa liệu vào kit MSP430LAUNCHPAD để bắt đầu xử lý điều khiển động xe Yêu cầu: Baud rate = 9600 2.3 Cảm biến siêu âm SRF05: a) Tổng quan cảm biến siêu âm SRF05: Cảm biến SRF05 loại cảm biến khoảng cách dựa nguyên lý thu phát siêu âm Cảm biến gồm phát thu sóng siêu âm Sóng siêu âm từ đầu phát truyền không khí, gặp vật cản (vật cần đo khoảng cách tới) phản xạ ngược trở lại đầu thu ghi lại Vận tốc truyền âm không khí giá trị xác định trước, thay đổi Do xác định khoảng thời gian từ lúc phát sóng siêu âm tới lúc phản xạ đầu thu quy đổi khoảng cách từ cảm biến tới vật thể Cảm biến SRF05 cho khoảng cách đo từ 3cm tới 3m SRF05 thiết lập cách hoạt động thông qua chân điều khiển MODE Nối không nối chân MODE xuống GND cho phép cảm biến điều khiển thông qua giao tiếp dùng chân hay chân IO Ở đây, ta dùng MODE ( chân MODE để trống ) b) Nguyên lý hoạt động: Modun cảm biến SRF05 có hai chân TRIGGER ECHO riêng biệt Khi chân MODE để trống (chân MODE có điện trở kéo lên VCC, để trống nhận mức điện áp VCC) SRF05 sử dụng chân chức TRIGGER ECHO cho việc điều khiển hoạt động cảm biến Hình vẽ biểu diễn sơ đồ chân SRF05 Chương 2: Cơ sở lý thuyết Hình vẽ biểu diễn điều khiển SRF05 Từ hình vẽ mô tả trên, để điều khiển SRF05 MODE1 cần cấp cho chân TRIGGER xung điều khiển với độ rộng tối thiểu 10uS Sau khoảng thời gian, đầu phát sóng siêu âm phát sóng siêu âm, vi xử lý tích hợp modun tự xác định thời điểm phát sóng siêu âm thu sóng siêu âm Vi xử lý tích hợp đưa kết thu chân ECHO Độ rộng xung vuông chân ECHO tỉ lệ với khoảng cách từ cảm biến tới vật thể Công thức tính khoảng cách đến vật cản: ờ ứ ̣ â ( ) ( ) 2.4 IC L298: a) Giới thiệu: IC L298 IC tích hợp nguyên khối gồm mạch cầu H bên Với điện áp làm tăng công suất đầu từ 5V – 47V , dòng lên đến 4A, L298 thích hợp ứng dụng công suất nhỏ động DC loại vừa … Hình vẽ cho IC L298 Bluetooth dùng kỹ thuật sửa lỗi tiến FEC (Forward Error Correction) để sửa sai nhiễu tự nhiên truyền khoảng cách xa FEC cho phép phát lỗi, biết sửa sai truyền tiếp (khác với kỹ thuật BEC-Backward Error Control phát hiện, sửa, yêu cầu truyền l i) Giao thức băng tần sở (Baseband) Bluetooth kết hợp chuyển m ch chuyển đổi packet Các khe thời gian đƣợc dành riêng cho packet phục vụ đồng Thực bƣớc nhảy tần cho packet đƣợc truyền Một packet danh nghĩa chiếm timeslot, nhƣng mở rộng chiếm đến hay timeslot Bluetooth hỗ trợ kênh liệu bất đồng bộ, hay kênh tín hiệu tho i đồng lúc, hay kênh hỗ trợ lúc liệu bất đồng tín hiệu đồng 1.1.11.2 Quá trình hình thành piconet Hình 1.10 Mô hình piconet Một Piconet đƣợc t o cách: Có Master rồi, Master thực Paging để kết nối với Slave Một Unit ( Master hay Slave ) lắng nghe tín hiệu (code) mà thiết bị truy cập đƣợc Khi có chuyển đổi vai trò Master Slave Khi có Unit chuyển sang trang thái Active Để thiết lập kết nối mới, tiến trình INQUIRY hay PAGE bắt đầu Tiến trình Inquiry cho phép Unit phát Unit khác tầm ho t động với địa đồng hồ chúng Tiến trình Paging thực t o kết nối Kết nối thực thiết bị mang địa Bluetooth Unit thiết lập kết nối phải thực tiến trình paging tự động trở thành Master kết nối Trong tiến trình paging, áp dụng vài chiến lƣợc paging Có chiến lƣợc paging bắt buộc tất thiết bị Bluetooth phải hỗ trợ, chiến lƣợc dùng Unit gặp lần đầu tiên, trƣờng hợp tiến trình paging theo sau tiến trình inquiry Hai Unit sau kết nối nhờ dung chiến lƣợc bắt buộc này, sau chọn chiến lƣợc paging khác Sau thủ tục Paging (PAGE), Master thăm dò Slave cách gửi packet POLL thăm dò hay packet NULL rỗng theo nhƣ Slave yêu cầu Chỉ có Master gửi tín hiệu POLL cho Slave, ngƣợc l i Các vai trò thiết bị Piconet là: - Stand by : Không làm - Inquiry : Tìm thiết bị vùng lân cận - Paging :Kết nối với thiết bị cụ thể - Connecting : Nhận nhiệm vụ Hình 1.11: Quá trình truy vấn t o kết nối Mô hình truy vấn thiết bị thực tế: Hình 1.12: Truy vấn t o kết nối thiết bị thực tế Khi thiết bị t o paging muốn t o kết nối tầng trên, gửi yêu cầu kết nối host theo nghi thức LMP (Link Manament Protocol) Khi Unit quản lý host nhận đƣợc thông điệp, thông báo cho host biết kết nối Thiết bị từ xa chấp nhận (gửi thông điệp chấp nhận theo nghi thức LMP) không chấp nhận kết nối (gửi thông điệp không chấp nhận theo nghi thức LMP) Khi thiết bị không yêu cầu thủ tục thiết lập liên kết từ xa cả, gửi thông điệp "thiết lập hoàn thành" Thiết bị nhận đƣợc yêu cầu từ thiết bị khác Khi thiết bị khác sẵn sàng t o liên kết, gửi thông điệp "thiết lập hoàn thành" Sau thiết bị trao đổi packet kênh logic khác với LMP PHỤ LỤC II TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID 2.2.1 Giới thiệu android Hệ điều hành Android hệ điều hành mở, hoàn thiện, cho phép ngƣời dùng tùy biến Tƣơng thích với hầu hết nhà sản xuất phần cứng Hình 2.1 : Logo Android 2.2.2 Lịch sử hình thành Ban đầu, Android hệ điều hành cho thiết bị cầm tay dựa lõi Linux công ty Android Inc (California, Mỹ) thiết kế Công ty sau đƣợc Google mua l i vào năm 2005 bắt đầu xây dựng Android Platform Các thành viên chủ chốt t i Android Inc gồm có: Andy Rubin, Rich Miner, Nick Sears, and Chris White Hình 1.17: Android timeline Và sau tiếp, vào cuối năm 2007, thuộc Liên minh Thiết bị Cầm tay Mã Nguồn mở (Open Handset Alliance) gồm thành viên bật ngành viễn thông thiết bị cầm tay nhƣ: Texas Instruments, Broadcom Corporation, Google, HTC, Intel, LG, Marvell Technology Group, Motorola, Nvidia,Qualcomm, Samsung Electronics, Sprint Nextel, T-Mobile, ARM Holdings, Atheros Communications, Asustek Computer Inc, Garmin Ltd, Softbank, Sony Ericsson, Toshiba Corp, and Vodafone Group,… Mục tiêu Liên minh nhanh chóng đổi để đáp ứng tốt cho nhu cầu ngƣời tiêu dùng kết tảng Android Android đƣợc thiết kế để phục vụ nhu cầu nhà sản xuất thiết, nhà khai thác lập trình viên thiết bị cầm tay Phiên SDK lần phát hành vào tháng 11 năm 2007, hãng TMobile công bố điện tho i Android T-Mobile G1, smartphone dựa tảng Android Một vài ngày sau đó, Google l i tiếp tục công bố mắt phiên Android SDK release Candidate 1.0 Trong tháng 10 năm 2008, Google đƣợc cấp giấy phép mã nguồn mở cho Android Platform Khi Android đƣợc phát hành số mục tiêu kiến trúc cho phép ứng dụng tƣơng tác đƣợc với sử dụng l i thành phần từ ứng dụng khác Việc tái sử dụng không đƣợc áp dụng cho dịch vụ mà đƣợc áp dụng cho thành phần liệu giao diện ngƣời dùng Vào cuối năm 2008, Google cho phát hành thiết bị cầm tay đƣợc gọi Android Dev Phone ch y đƣợc ứng dụng Android mà không bị ràng buộc vào nhà cung cấp m ng điện tho i di động Mục tiêu thiết bị cho phép nhà phát triển thực thí nghiệm thiết bị thực ch y hệ điều hành Android mà ký hợp đồng Vào khoảng thời gian Google cho phát hành phiên vản vá lỗi 1.1 hệ điều hành Ở hai phiên 1.0 1.1 Android chƣa hỗ trợ softkeyboard mà đòi hỏi thiết bị phải sử dụng bàn phím vật lý Android cố định vấn đề cách phát hành SDK 1.5 vào tháng Tƣ năm 2009, với số tính khác Chẳng h n nhƣ nâng cao khả ghi âm truyền thông, vật dụng, live folder Các phiên cảu android - Android 1.0 : 23/11/2008 - Android 1.1 : 9/2/2009 - Android 1.5 Cupcake : 30/4/2009 - Android 1.6 Donut : 30/9/2009 - Adroid 2.0/2.1 Eclair : 11/2009 - Android 2.2 Froyo : 20/05/2010 - Android 2.3 Gingerbread : 06/12/2010 - Android 3.0/3.1 Honeycomb : 22/2/2011 - Android 4.0 Ice Cream Sandwich : 19/10/2011 - Android 4.1 Jelly Bean : 9/7/2012 - Android 4.2 Jelly Bean : 11/2012 - Android 4.3 Jelly Bean : 24/7/2013 - Android 4.4 KitKat : mắt 223 nh An roi - Lƣu trữ: sử dụng SQLite, sở liệu quan hệ, trọng lƣợng nhẹ cho liệu lƣu trữ - Kết nối: Hỗ trợ GSM/EDGE, IDEN, CDMA, EV-DO, UTMS, Bluetooth ( A2DP AVRCP ), Wifi, LTE Wimax - Tin nhắn: hỗ trợ SMS MMS - Trình duyệt web: dựa WebKit mã nguồn mở, với V8 JavaScript Chrome - Truyền thông hỗ trợ : Bao gồm hỗ trợ cho phƣơng tiện truyền thông: H.263, H.264 ( 3GP MP4 container ), MPEG-4 SP, AMR, AMR-WB, AAC, HEAAC, MP3, MIDI, OggVorbis, WAV, JPEG, PNG,GIF BMP - Hỗ trợ phần cứng: Accelerometer cảm biến, máy ảnh, kỹ thuật số Compass, cảm biến tiệm cận GPS - Multi-touch : hỗ trợ hình cảm ứng đa điểm - Đa chức năng: Hỗ trợ ứng dụng đa tác vụ - Hỗ trợ Flash: Android 2.3 hỗ trợ Flash 10.1 - Tethring: Hỗ trợ chia sẻ kết nối Internet điểm phát sóng không dây/có dây 2.2.4 Kiến trúc c a hệ iều hành Android Kiến trúc hệ điều hành Android gồm lớp bản: - Nền ứng dụng ( Application Framework) - Thƣ viện ( Libraries ) - Android Runtime - Linux Kernel Hình 1.18: Mô hình kiến trúc tảng hệ điều hành Android 2.2.4.1 Tầng ứng dụng Hệ điều hành Android tích hợp sẵn số ứng dụng nhƣ email client, SMS, lịch điện tử, đồ, trình duyệt web, sổ liên l c số ứng dụng khác Ngoài tầng tầng chứa ứng dụng đƣợc phát triển ngôn ngữ java 2.2.4.2 Application Farmwork Tầng hệ điều hành Android cung cấp tảng phát triển ứng dụng mở qua cho phép nhà phát triển ứng dụng có khả t o ứng dụng vô sáng t o phong phú Các nhà phát triển ứng dụng đƣợc tự sử dụng tính cao cấp thiết bị phần cứng nhƣ: thông tin định vị địa lý, khả ch y dịch vụ dƣới nền, thiết lập đồng hồ báp thức, thêm notification vào status bar hình thiết bị… Ngƣời phát triển ứng dụng đƣợc phép sử dụng đầy đủ API đƣợc dùng ứng dụng tích hợp sẵn android Kiến trúc ứng dụng Android đƣợc thiết kế nhằm mục đích đơn giản hóa việc tái sử dụng component Qua ứng dụng công bố tính mà muốn chia sẻ cho ứng dụng khác Phƣơng pháp tƣơng tự cho phép thành phần đƣợc thay ngƣời sử dụng Tầng bao gồm tập services thành phần sau: - Một tập phong phú mở rộng bao gồm đối tƣợng View đƣợc dùng để xây dựng ứng dụng nhƣ : list, gird, text box, button chí trình duyệt web nhúng vào ứng dụng - Content Provider: Cho phép ứng dụng truy xuất dwux liệu từ ứng dụng khác chia sẻ liệu chúng - Resource Manager: cung cấp khả truy xuất tài nguyên non-code nhƣ hình ảnh file layout - Notification Manager: cung cấp khả hiển thị custom alert status bar - Activity Manager: Giúp quản lý vòng đời ứng dụng 2.2.4.3 Library Android bao gồm tập hợp thƣ viện C/C++ đƣợc sử dụng nhiều thành phần khác hệ thống android Một số thwu viện đƣợc liệt kê dƣới đây: - System C library: thể đƣợc xây dựng từ BSD thƣ viện hệ thống C chuẩn ( libc), đƣợc điều chỉnh để tối ƣu hóa cho thiết bị ch y Linux - Media Libarary : Bộ thwu viện hỗ trợ trình diễn ghi định d ng âm hình ảnh phổ biến - Surface manager: Quản lý hiên rthij nội dung 2D 3D - LibWebCore : web browser engine đ i đƣợc swur dụng trình duyệt android lần trình duyệt nhứng web view đƣợc sử dụng ứng dụng - SGL: Engine hỡ trợ đồ họa 2D - 3D library: Một thể đƣợc xây dựng dựa APIs OpenGL ES 1.0 Những thƣ viện sử dụng tăng tốc 3D phần cứng lẫn phần mềm để tối ƣu hóa hiển thị 3D - Free Type: Bitmap and vector font rending - SQLite: DBMS nhỏ gọn m nh mẽ 2.2.4.4 Android Runtime Hệ diều hành android tích hợp sẵn tập hợp thƣ viện cốt lõi cung cấp hầu hết chức có sẵn thƣ viện lõi ngôn ngƣ lập trình java Mọi ứng dụng Android ch y mọt tiến trình riêng với thể máy ảo Dalvik Máy ảo Dalvak thực tế biến thể máy ảo java đƣợc sửa đổi bổ sung công nghệ đặc trƣng thiết bị di động Nó đƣợc xây dựng với mục đích làm cho thiết bị di động ch y nhiều máy ảo cách hiệu Trƣớc thực thi, bát kỳ ứng dụng đƣợc convert thành file thực thi với định d ng nén Dalvik Executable (.dex) Định d ng đƣợc thiết kế phù hợp với thiết bị h n chế nhớ nhƣ tốc độ xử lý Ngoài máy ảo Dalvik swur dụng nhân Linux để cung cấp tính nhƣ thread, low-level memory management 2.2.4.5 Linux Kernel Hệ điều hành Android đƣợc xây dựng nhân Linux 2.6 cho dịch vụ hệ thống cốt lõi nhƣ: security, memory management, process management, network stack, driver model Bộ nhân làm nhiệm vụ nhƣ lớp trung gian kết nối phần cứng thiết bị phần ứng dụng Hình 1.19 : Mô hình hợp tác máy ảo Dalvik Navite code JNI: Java Native Interface (Tƣơng tự khái niệm Application Programming Interface) Java Native Interface: framework cho phép mã lệnh viết Java ch y máy ảo java gọi đƣợc gọi ứng dụng viết native code (Ứng dụng đƣợc viết cho phần cứng cụ thể hệ điều hành cụ thể) thƣ viện viết C, C++ Assembly Bằng cách sử dụng JNI, Android cho phép ứng dụng ch y máy ảo Dalvik sử dụng phƣơng thức đƣợc viết ngôn ngữ cấp thấp nhƣ: C, C++, Assembly Qua nhà phát triển ứng dụng xây dựng ứng dụng dựa thƣ viện viết C, C++, Assembly nhằm tăng tốc độ thực thi ứng dụng sử dụng tính mức thấp mà ngôn ngữ Java không hổ trợ Tuy nhiên ngƣời phát triển ứng dụng cần phải cân nhắc gia tăng độ phức t p ứng dụng định sử dụng thƣ viện 2.2.5 Chu kỳ ứng dụng andorid Một tiến trình Linux gói gọn ứng dụng Android đƣợc t o cho ứng dụng codes cần đƣợc run ch y khi: - Nó không phụ thuộc Hệ thống cần lấy l i nhớ mà chiếm giữ cho ứng dụng khác Một khác thƣờng đặc tính Android thời gian sống tiến trình ứng dụng không đƣợc điều khiển trực tiếp bới Thay vào đó, đƣợc xác định hệ thống qua kết hợp của: - Những phần ứng dụng mà hệ thống biết ch y - Những phần quan trọng nhƣ ngƣời dùng Bao nhiêu vùng nhớ chiếm lĩnh hệ thống 2.2.5.1 Chu kỳ sống thành phần Các thành phần ứng dụng có chu kỳ sống, tức thành phần từ lúc bắt đầu khởi t o đến thời điểm kết thúc Giữa đó, đôi lúc chúng active inactive, trƣờng hợp activies visible invisible 2.2.5.2 Activity Stack Bên hệ thống activity đƣợc quản lý nhƣ activity stack Khi Activity đƣợc start, đƣợc đặt đỉnh stack trở thành activity ch y activity trƣớc bên dƣới activity không thấy suốt trình activity tồn t i Nếu ngƣời dùng nhấn nút Back activity kết tiếp stack di du yển lên trở thành active Hình 1.20: Activity Satck 2.2.5.3 Các trạng thái c a chu kỳ sống Hình 1.21: Chu kỳ sống Activity Một Activity chủ yếu có chu kỳ sau: Active running: Khi Activity đƣợc ch y hình Activity tập trung vào thao tác ngƣời dùng ứng dụng Paused: Activity đƣợc t m dừng (paused) focus nhƣng ngƣời dùng trông thấy Có nghĩa Activity nhƣng không bao phủ đầy hình Một Activity t m dừng sống nhƣng bị kết thúc hệ thống trƣờng hợp thiếu vùng nhớ Stopped: Nếu hoàn toàn bao phủ Activity khác Nó tr ng thái thông tin thành viên Ngƣời dùng không thấy thƣờng bị lo i bỏ trƣờng hợp hệ thống cần vùng nhớ cho tác vụ khác 2.2.5.4 Chu kỳ sông c a ứng dụng Trong ứng dụng Android có chứa nhiều thành phần thành phần có chu trình sống riêng Và ứng dụng đƣợc gọi kết thúc tất thành phần ứng dụng kết thúc Activity thành phần cho phép ngƣời dùng giao tiếp với ứng dụng Tu y nhiên, tất Activity kết thúc ngƣời dùng không giao tiếp đƣợc với ứng dụng nhƣng nghĩa ứng dụng kết thúc Bởi Activity thành phần có khả tƣơng tác ngƣời dùng có thành phần khả tƣơng tác với ngƣời dùng nhƣ Service, Broadcast receiver Có nghĩa thành phần không tƣơng tác ngƣời dùng ch y background dƣới giám sát hệ điều hành ngƣời dùng tự tắt chúng 2.2.5.5 Các kiện chu kỳ sống c a ứng dụng Nếu Activity đƣợc t m dừng dừng hẳn, hệ thống bỏ thông tin khác từ vùng nhớ việc finish() (gọi hàm finish() nó), đơn giản giết tiến trình Khi đƣợc hiển thị lần với ngƣời dùng, phải đƣợc hoàn toàn restart phục hồi l i tr ng thái trƣớc Khi Activity chu yển qua chuyển l i tr ng thái, phải báo việc chuyển việc gọi hàm transition Tất phƣơng thức móc nối mà b n override để làm tƣơng thich công việc ứng dụng thay đổi tr ng thái Tất Activity bắt buộc phải có onCreate() để khởi t o ứng dụng Nhiều Activity thực onPause() để xác nhận việc thay đổi liệu mặt khác chuẩn bị dừng ho t động với ngƣời dùng 2.2.5.6 Thời gian sống cảu ứng dụng Bảy phƣơng thức chuyển tiếp định nghĩa chu kỳ sống Activity Thời gian sống Activity diễn lần gọi onCreate() đến tr ng thái cuối gọi onDestroy() Một Activity khởi t o toàn tr ng thái toàn cục onCreate(), giải phóng tài nguyên tồn t i onDestroy() 2.2.5.7 Thời gian hiển thị c a Activity Visible lifetime activity diễn lần gọi onStart() gọi onStop() Trong suốt khoảng thời gian ngƣời dùng thấy activity hình, có nghĩa không bị foreground tƣơng tác với ngƣời dùng Giữa phƣơng thức ngƣời dùng trì tài nguyên để hiển thị activity đến ngƣời dùng 2 Cá phƣơng thức c a chu kỳ sống Phƣơng thức: onCreate() - Đƣợc gọi activity lần đƣợc t o - Ở b n làm tất cài đặt tĩnh (t o view, kết nối liệu đến list…) - Phƣơng thức gửi qua đối tƣợngBundle chứa đựng từ tr ng thái trƣợc Activity - Luôn theo sau onStart() Phƣơng thức: onRestart() - Đƣợc gọi sau activity đƣợc dừng, khoảng khởi động lần (stared again) - Luôn theo sau onStart() Phƣơng thức: onStart() - Đƣợc gọi trƣớc activity visible với ngƣời dùng - Theo sau onResume() activity đến tr ng thái foreground onStop() nế trở nên ẩn Phƣơng thức: onResume() - Đƣợc gọi trƣớc activity bắt đầu tƣơng tác với ngƣời dùng - T i thời điểm activity dỉnh stack activity - Luôn theo sau onPause() Phƣơng thức: onPause() - Đƣợc gọi hệ thống resuming activity khác - Phƣơng thức điển hình việc giữ l i không đổi liệu - Nó nên đƣợc diễn cách nhanh chóng activity không đƣợc resumed trở l i - Theo sau onResume activity trở từ trƣớc, onStop trở nên visible với ngƣời dùng - Tr ng thái activity bị giết hệ thống Phƣơng thức: onStop() - Đƣợc gọi activity không thuộc tầm nhìn ngƣời dùng - Nó diễn bị hủy, activity khác vữa đƣợc resumed bao phủ - Đƣợc theo sau onRestart() activity đở l i để tƣơng tác với ngƣời dùng, onDestroy() activity bỏ - Tr ng thái activity bị giết hệ thống Phƣơng thức: onDestroy() - Đƣợc gọi trƣớc activity bị hủy - Đó lần gọi cuối mà activity đƣợc nhận - Nó đƣợc gọi khác activity hoàn thành, hệ thống t m thời bị hủy diệt để tiết kiệm vùng nhớ - B n phân biệt kịch với phƣơng isFinshing() Tr ng thái activity đƣợc giết hệ thống [...]... Stellaris và TivaC Launchpad Energia có môi trường lập trình rất đơn giản và thân thiện với người sử dụng Điều này giúp người dùng có thể tạo ra những ứng dụng dễ dàng hơn trên Launchpad mà không cần phải hiểu chi tiết về phần cứng Giao diện sử dụng của Energia Thêm một ưu điểm nữa là Energia có môi trường mã nguồn mở liên tục được cập nhật và phát triển bởi cộng đồng người dùng rất lớn trên thế giới,... mềm điều khiển xe robot qua Bluetooth trên điện thoại: Phần mềm trên có tên Bluetooth SPP Để kết nối với Module HC 05 thì nhấn CONNECT, nhấp vào “HC-05” và nhấn CONNECT Khi kết nối thành công sẽ có thông báo: “Connect with: HC-05” Khi nhấn các nút: 19 Chương 4: Thiết kế phần mềm         Nút lên: gởi mã ‘1’, xe chạy thẳng Nút xuống: gởi mã ‘2’, xe chạy lùi Nút trái: gởi mã ‘3’, xe rẽ trái Nút... 4.1 Giới thiệu về ENERGIA 4.1.1 Energia là gì? Energia là một nền tảng mã nguồn mở được sử dụng để xây dựng các ứng dụng điện tử, tạo ra bởi Robert Wessels tháng 1-2012; với phần mềm hỗ trợ phát triển tích hợp IDE dùng để soạn thảo, biên dịch code và nạp chương trình cho board Energia được xây dựng như một phiên bản của Wiring/Arduino IDE, nhưng thay vì lập trình trên board Arduino, Energia hỗ trợ cho... chương trình nháy LED dùng Energia: - Đầu tiên kết nối Launchpad với máy tính qua cổng USB Từ cửa sổ chương trình Enegia: Tools > Board > LaunchPad w/MSP430G2553 (16 MHz) Có thể sử dụng chương trình nháy LED từ rất nhiều ví dụ có sẵn của Energia như sau: File > Examples > 1 Basics > Blink Complie chương trình trình bằng cách nhấn nút “checkmark button” Download code xuống Launchpad bằng cách nhấn nút... con: 23 Chương 4: Thiết kế phần mềm 4.3.2 Lưu đồ chương trình con để xe robot chạy tự động: 24 Chương 4: Thiết kế phần mềm 4.4 Nội dung code Energia nạp cho Launchpad: unsigned int nadc=0; float temp_C=0.0; float temp_F=0.0; int pwm_level=7000; //mức băm xung int pwm_level_stand=6000; //mức băm xung chuẩn int distance; //khoảng cách xe đến vật cản (cm) //hc 06 int data_bt; //dữ liệu hc06 nhận được //srf... theo quỹ đạo đặt trước trên điện thoại Mỗi khi gặp vật cản trên hành trình, xe có khả năng tránh vật cản rồi trở về đường đi cũ  Nhằm ứng dụng trong việc thăm dò địa hình, cứu hộ, xe sẽ được trang bị thêm camera có khả năng chụp và gửi hình ảnh về  Ngoài khả năng điều khiển qua bluetooth, hệ thống sẽ được thêm chức năng điều khiển và trao đổi thông tin qua mạng Internet  Trên đây là những định hướng... người sử dụng đưa đến vi điều khiển  Khối cảm biến siêu âm SRF05: được dùng ở mode điều khiển tự động của xe, dùng cảm biến khoảng cách từ xe tới vật cản dựa trên nguyên lý 9 Chương 3: Thiết kế phần cứng thu phát siêu âm Khoảng cách này sẽ được vi xử lý tính toán để đưa ra tín hiệu điều khiển xe di chuyển tránh vật cản  Khối MCU MSP430G2553: giao tiếp với module bluetooth, cảm biến siêu âm SRF05;... lúc nó phản xạ về đầu thu sẽ quy đổi được khoảng cách từ cảm biến tới vật thể o Nếu ‘khoảng cách’ > 20cm: xe di chuyển tới o Nếu 10cm < ‘khoảng cách’ < 20cm xe rẽ trái hoặc rẽ phải Nếu ‘khoảng cách’ < 10cm: xe di chuyển lùi 10 Chương 3: Thiết kế phần cứng 3.3 Một số hình ảnh về cấu trúc, cơ khí của xe: 11 Chương 3: Thiết kế phần cứng 12 Chương 3: Thiết kế phần cứng 13 Chương 3: Thiết kế phần cứng 14 Chương... encoder giúp phản hồi và cân chỉnh tốc độ hai động cơ Hướng phát triển đề tài:  Hiện tại xe có hai chức năng chính là điều khiển bằng điện thoại qua bluetooth và chức năng chạy tự động Để đảm bảo tính hữu dụng và đa năng của sản phẩm, trong tương lai chúng em hướng tới xây dựng khả năng chạy trên mọi địa hình cho xe, gắn thêm encoder giúp phản hồi và cân chỉnh tốc độ hai động cơ, đọc và hiển thị tốc... đến các chân đầu vào của IC cầu H L298, điều khiển hoạt động của 2 motor làm xe di chuyển b) Mode điều khiển tự động: Ở chế độ này sẽ không sử dụng chức năng điều khiển di chuyển tới/lui, trái/phải bằng tay nữa Mà xe sẽ tự đo khoảng cách từ nó đến vật cản gần nhất, rồi từ đó đưa ra quyết định về hướng di chuyển tiếp theo Xe sử dụng sóng siêu âm từ đầu phát của cảm biến siêu âm truyền đi trong không

Ngày đăng: 07/05/2016, 01:47

Từ khóa liên quan

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

Tài liệu liên quan