You are on page 1of 48

HỌC VIỆN CÔNG NGHỆ BCVT CS TP.

HCM
KHOA KỸ THUẬT ĐIỆN TỬ II


ĐỒ ÁN HỆ THỐNG NHÚNG

ĐỀ TÀI:

XE ĐIỀU KHIỂN TỪ XA DÙNG ANDROID

GVHD: Ths. Tôn Thất Bảo Đạt


SVTH MSSV
1.Nguyễn Ngọc Hà N102102011
2.Đặng Xuân Hiệu N102102013
3.Trịnh Văn Long N102102025

TP.HCM THÁNG 10 NĂM 2013

1
PHẦN A
GIỚI THIỆU

2
LỜI CẢM ƠN

Để đề tài được hoàn thành theo đúng thời gian qui định đồng thời đạt được
kết quả đề ra không chỉ là sự nỗ lực của bản thân người thực hiện đề tài mà còn
có sự giúp đỡ, sự chỉ bảo của thầy cô giáo và chia sẻ kinh nghiệm từ các bạn sinh
viên.
Người thực hiện đề tài xin chân thành cảm ơn :
 Sự chỉ dẫn và góp ý chân thành của thầy Tôn Thất Bảo Đạt. Cám ơn thầy đã
nhiệt tình cung cấp thông tin hướng dẫn và hỗ trợ kiểm tra, khắc phục các thông
tin chưa chính xác.
 Các bạn sinh viên trong lớp đã giúp đỡ rất nhiều về mặt phương tiện, sách
vở, ý kiến . . .
Trong quá trình thực hiện đề tài này, mặc dù người thực hiện đề tài đã rất
cố gắng, song sẽ không tránh khỏi thiếu sót. Rất mong nhận được sự góp ý, phê
bình, chỉ dẫn của quý thầy cô và các bạn sinh viên.

Người thực hiện đề tài:

Nguyễn Ngọc Hà

Đặng Xuân Hiệu

Trịnh Văn Long

3
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN:
…………………………………………………………………………………......
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………

TP HCM, ngày … tháng … năm 2013


Ký tên:

4
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN:
…………………………………………………………………………………......
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………
……………………………………………………………………………………

TP HCM, ngày … tháng … năm 2013


Ký tên:

5
LỜI NÓI ĐẦU
Ngày nay việc ứng dụng cho các hệ thống nhúng ngày càng trở nên phổ
biến: từ những úng dụng đơn giản như điều khiển một chốt đền giao thông định
thời, đếm sản phẩm trong dây chuyền sản xuất, điều khiển động cơ điện một
chiều, xoay chiều, … đến những ứng dụng phức tạp như điều khiển robot, hệ
thống kiểm soát, các hệ thống tự động, các thiết bị máy móc tự động,..Với mong
muốn giới thiệu những ứng dụng cơ bản của hệ thống nhúng trong đời sống hiện
đại và để mọi người biết đến ứng dụng cũng như tầm quan trọng của các hệ
thống nhúng, nhóm đề tài đã tìm hiểu và thực hiện đề tài “ XE ĐIỀU KHIỂN TỪ
XA DÙNG ANDROID”

6
MỤC LỤC
PHẦN A: GIỚI THIỆU
Trang bìa………………………………………………………………………..
Lời cảm ơn ............................................................................................................
Phiếu giao đề tài ....................................................................................................
Nhận xét của giáo viên hướng dẫn ........................................................................
Nhận xét của giáo viên phản biện .........................................................................
Lời nói đầu ............................................................................................................
Mục lục..................................................................................................................
Liệt kê hình ...........................................................................................................
Liệt kê bảng ...........................................................................................................
PHẦN B: NỘI DUNG
CHƯƠNG 1: GIỚI THIỆU ................................................................................ 11
1.1 Lý do chọn đề tài ............................................................................................. 11
1.2 Mục đích của đề tài ......................................................................................... 11
1.3 Đối tượng và phạm vi nghiên cứu ................................................................... 11
1.4 Hướng nghiên cứu và phát triển ...................................................................... 11
CHƯƠNG 2: TỔNG QUAN VỀ ĐỒ ÁN .......................................................... 12
2.1 Ý tưởng thiết kế............................................................................................... 12
2.1.1 Thiết bị điều khiển .................................................................................... 12
2.2.2 Thiết bị ngoại vi ........................................................................................ 12
2.2 Mô hình hệ thống ............................................................................................ 12
2.3 Nội dung đồ án ................................................................................................ 12
CHƯƠNG 3: TÌM HIỂU VỀ HỆ ĐIỀU HÀNH&GIAO TIẾP NGOẠI VI .. 13
3.1 Công nghệ không dây Bluetooth ..................................................................... 13
3.1.1 Khái niệm .................................................................................................. 13
3.1.2 Đặc điểm của công nghệ Bluetooth .......................................................... 13
3.1.2.1 Ưu điểm .............................................................................................. 13
3.1.2.2 Khuyết điểm ....................................................................................... 14
3.1.3 Hoạt động ................................................................................................. 14
3.1.4 Các thế hệ Bluetooth ................................................................................ 14
3.1.5 Vấn đề bảo mật trong công nghệ Bluetooth.............................................. 15
3.1.5.1 Bảo mật .............................................................................................. 15
3.1.6 Các khái niệm trong công nghệ Bluetooth ................................................ 16
3.1.6.1 Master Unit......................................................................................... 16
3.1.6.2 Slaver Unit ......................................................................................... 16
3.1.6.3 Piconet ................................................................................................ 17
3.1.6.4 Scatternet ............................................................................................ 18
3.1.7 Định nghĩa các liên kết vật lý trong Bluetooth ......................................... 18
3.1.8 Trạng thái của thiết bị Bluetooth............................................................... 19
3.1.9 Các chế độ kết nối ..................................................................................... 19
3.1.10 Kỹ thuật trải phổ nhảy tần số trong công nghệ Bluetooth ...................... 19
3.1.10.1 Khái niệm ......................................................................................... 19
3.1.10.2 Kỹ thuật nhảy tần số trong công nghệ Bluetooth ............................. 20
3.1.11 Cơ chế hoạt động của Bluetooth .............................................................. 22
3.1.11.1 Cơ chế truyền và sửa lỗi ................................................................... 22

7
3.1.11.2 Quá trình hình thành piconet ............................................................ 23
3.1.12 Module Bluetooth HC-05........................................................................ 25
3.1.12.1 Giới thiệu modul Bluetooth HC-05.................................................. 25
3.1.12.2 Đặc tả phần cứng .............................................................................. 26
3.1.12.3 Tập lệnh AT cho module Bluetooth HC-05 .................................... 29
3.2 Tổng quan về hệ điều hành Android ............................................................... 30
3.2.1 Giới thiệu về Android ............................................................................... 30
3.2.2 Lịch sử hình thành ..................................................................................... 30
3.2.3 Tính năng Android .................................................................................... 32
3.2.4 Kiến trúc của hệ điều hành Android ......................................................... 32
3.2.4.1 Tầng ứng dụng ................................................................................... 33
3.2.4.2 Application Farmwork ....................................................................... 33
3.2.4.3 Library ................................................................................................ 34
3.2.4.4 Android runtime .................................................................................. 34
3.2.4.5 Linux Kernel ....................................................................................... 34
3.2.5 Chu kỳ ứng dụng trên android .................................................................. 35
3.2.5.1 Chu kỳ sống thành phần ...................................................................... 36
3.2.5.2 Activity Stack ...................................................................................... 36
3.2.5.3 Các trạng thái của chu kỳ sống ........................................................... 36
3.2.5.4 Chu kỳ sống của ứng dụng .................................................................. 38
3.2.5.5 Các sự kiện trong chu kỳ sống của ứng dụng ..................................... 38
3.2.5.6 Thời gian sống của ứng dụng .............................................................. 38
3.2.5.7 Thời gian hiển thị cảu Activity ........................................................... 38
3.2.5.8 Các phương thức của chu kỳ sống ...................................................... 38
CHƯƠNG 4 : THIẾT KẾ MÔ HÌNH XE ĐIỀU KHIỂN ............................... 40
4.1 Phân tích và xác định yêu cầu ......................................................................... 40
4.2 Xây dựng hệ thống .......................................................................................... 40
4.2.1 Ứng dụng trên Android ............................................................................. 40
4.2.2 Thiết kế phần cứng .................................................................................... 42
4.2.2.1 Khối xử lý ........................................................................................... 42
4.2.2.2 Khối nguồn .......................................................................................... 44
4.2.2.3 Mạch driver động cơ ........................................................................... 44
4.2.3 Lập trình Firmwave ................................................................................... 47
4.2.4 Thiết kế xe ................................................................................................. 47
CHƯƠNG 4 : KẾT QUẢ&HƯỚNG PHÁT TRIỂN ĐỀ TÀI ........................ 48
5.1 Đánh giá kết quả thực hiện đề tài .................................................................... 48
5.2 Hướng phát triển ............................................................................................. 48
TÀI LIỆU THAM KHẢO .................................................................................. 48

8
LIỆT KÊ HÌNH
Hình 2.1 Mô hình hệ thống ................................................................................... 12
Hình 3.1 Logo Bluetooth....................................................................................... 13
Hình 3.2 Một số thiết bị sử dụng công nghệ Bluetooth ........................................ 15
Hình 3.3 Kiến trúc Piconet trong Bluetooth ......................................................... 17
Hình 3.4 Một Scatternet gồm 2 Piconet ................................................................ 18
Hình 3.5 Kỹ thuật trải phổ nhảy tần số ................................................................. 20
Hình 3.6 Các packet truyền trên các tần số khác nhau ......................................... 20
Hình 3.7 Các packet truyền trên khe thời gian...................................................... 21
Hình 3.8 Cấu trúc gói tin Bluetooth ...................................................................... 21
Hình 3.9 Cấu tạo một packet ................................................................................. 22
Hình 3.10 Mô hình piconet ................................................................................... 23
Hình 3.11 Quá trình truy vấn tạo kết nối .............................................................. 24
Hình 3.12 Truy vấn tạo kết nối giữa các thiết bị trong thực tế ............................. 24
Hình 3.13 Modul Bluetooth HC-05 ...................................................................... 25
Hình 3.14 Sơ đồ chân modul Bluetooth HC-05 .................................................... 27
Hình 3.15 Sơ đồ nguyên lý module Bluetooth HC-05 .......................................... 29
Hình 3.16 Logo Android ....................................................................................... 30
Hình 3.17 Android timeline .................................................................................. 31
Hình 3.18 Mô hình kiến trúc nền tảng hệ điều hành Andorid .............................. 33
Hình 3.19 Mô hình hợp tác giữa máy ảo Dalvik và Navite code.......................... 35
Hình 3.20 Activity Stack ....................................................................................... 36
Hình 3.21 Chu kỳ sông của Activity ..................................................................... 37
Hình 4.1 Lưu đồ thuật toán trên Android ............................................................. 41
Hình 4.2 Icon ứng dụng ........................................................................................ 41
Hình 4.3 Giao diện điều khiển .............................................................................. 41
Hình 4.4 Thông tin ứng dụng ................................................................................ 42
Hình 4.5 Dò tìm thiết bị ........................................................................................ 42
Hình 4.6 Sơ đồ tổng quát ...................................................................................... 42
Hình 4.7 Sơ đồ chân Atmega8 .............................................................................. 43
Hình 4.8 Sơ đồ nguyên lý mạch Atmega8 ............................................................ 43
Hình 4.9 Mạch nguồn ............................................................................................ 44
Hình 4.10 Sơ đồ chân IC L298 ............................................................................. 44
Hình 4.11 Sơ đồ nguyên lý IC L298 ..................................................................... 45
Hình 4.12 Mạch logic dùng 74HC04 và 74HC08 ................................................. 45
Hình 4.13 Sơ đồ nguyên lý toàn mạch .................................................................. 46
Hình 4.14 Lưu đồ thuật toán cho Atmega8 ........................................................... 47
Hình 4.15 Mô hình xe ........................................................................................... 47

LIỆT KÊ BẢNG
Bảng 1 Mô tả chức năng các chân của module ..................................................... 27
Bảng 2 Mộ số lệnh AT cho module Bluetooth HC-05 ......................................... 29
Bảng 3 Mô tả trạng thái của xe ............................................................................. 46

9
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

PHẦN B
NỘI DUNG

10
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

CHƯƠNG 1 : GIỚI THIỆU


1.1 Lý do chọn đề tài
Trong mấy chục năm qua, khoa học máy tính và xử lý thông tin có những bước tiến
vượt bậc và ngày càng có những đóng góp to lớn vào cuộc cách mạng khoa học kỹ thuật
hiện đại. Đặc biệt sự ra đời và phát triển nhanh chóng của kỹ thuật số làm cho ngành điện
tử trở nên phong phú và đa dạng hơn. Nó góp phần rất lớn trong việc đưa kỹ thuật hiện
đại thâm nhập rộng rãi vào mọi lĩnh vực của hoạt động sản xuất, kinh tế và đời sống xã
hội. Từ những hệ thống máy tính lớn đến những hệ thống máy tính cá nhân, từ những
việc điều khiển các máy công nghiệp đến các thiết bị phục vụ đời sống hằng ngày của
con người.
Với mong muốn tìm hiểu nguyên lý, kỹ thuật trong các hệ thống điều khiển. được sự
hướng dẫn của thầy ThS. Tôn Thất Bảo Đạt nhóm đã chọn đề tài : “ Xe điều khiển từ xa
dùng android “.
1.2 Mục đích của đề tài
Mục đích nghiên cứu của đề tài này là nghiên cứu họ vi điều khiển AVR cụ thể là
Atmega8 , phương pháp lập trình cho AVR bằng ngôn ngữ C trên trình biên dịch
Codevison AVR, lập trình ứng dụng android dùng SDK, giao tiếp không dây Bluetooth…
1.3 Đối tượng và phạm vi nghiên cứu
Vi điều khiển sử dụng là AVR Atmega8, để nắm được cấu trúc phần cứng, lập trình
phần mềm và ứng dụng vào thực tế.
Động cơ DC .
Phần mềm điều khiển trên android.
Modul bluetooth HC-05
1.4 Hướng nghiên cứu và phát triển
Ứng dụng kiến thức đã học trên lớp để thiết kế vào ứng dụng cụ thể mà ở đây là xe
điều khiển từ xa qua sóng bluetooth dùng android
Nắm bắt được cấu trúc phần cứng, sơ đồ khối, bố trí chân, tập lệnh điều khiển cho
AVR ATMega8. Tìm hiểu cách thức điều khiển động cơ DC điều khiển bằng IC L298.
Tìm hiểu về lập trình phần mềm android giao tiếp Bluetooth. Kết quả cuối cùng là xe
hoạt động ổn định , điều khiển bằng phần mềm trên điện thoại.

11
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

CHƯƠNG 2 : TỔNG QUAN VỀ ĐỒ ÁN


2.1 Ý TƯỞNG THIẾT KẾ
2.1.1 Thiết bị điều khiển:
Việc xây dựng ứng dụng trên hệ điều hành Android tương đối thuận lợi, dễ dàng
bởi đây là hệ điều hành mã nguồn mở với cộng đồng sử dụng đông đảo. Việc phát triển
ứng dụng được thực hiện dễ dàng bất cứ khi nào có thể mà không bị ghog bó bới bộ điều
khiển riêng biệt. Qua đó nhóm đã dã thực hiện tạo 1 ứng dụng trên chiếc smartphone
chạy android, ứng dụng này có nhiệm vụ điều khiển thiết bị ngoại vi thông qua sóng
Bluetooth
2.2.2 Thiết bị ngoại vi:
Nhóm đề tài sử dụng 1 modul Bluetooth để truyền nhận dữ liệu với Mobile và
được điều khiển bởi 1 vi điều khiển. VI điều khiển có nhiệm vụ chính là xử lý tín hiệu
nhận được từ modul Bluetooth và điều khiển 2 động cơ DC của xe.
Để đơn giản trong việc lập trình nhóm đã chọn dùng vi điều khiển Atmega8, đây
là con vi điều khiển quen thuộc, đáp ứng được các yêu cầu của đề tài, việc lập trình cho
Atmega8 cũng khá dễ dàng nhờ công cụ Codevision AVR.
2.2 Mô hình hệ thống
Khái quát mô hình hệ thống

Hình 2.1 Mô hình hệ thống

2.3 Nội dung đồ án


Nội dung của đồ án được chia làm 4 phần chính
- Tổng quan về đồ án
- Tìm hiểu về hệ điều hành và giao tiếp ngoại vi
- Thiết kế mô hình xe điều khiển
- Kết quả và hướng phát triển

12
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

CHƯƠNG 3 : TÌM HIỂU VỀ HỆ ĐIỀU HÀNH


VÀ GIAO TIẾP NGOẠI VI
3.1 CÔNG NGHỆ KHÔNG DÂY BLUETOOTH
3.1.1 Khái niệm
Bluetooth là một công nghệ cho phép truyền thông giữa các thiết bị với nhau mà
không cần dây dẫn. Nó là một chuẩn điện tử, điều đó có nghĩa là các hãng sản xuất muốn
có đặc tính này trong sản phẩm thì họ phải tuân theo các yêu cầu của chuẩn này cho sản
phẩm của mình. Những tiêu chuẩn kỹ thuật này đảm bảo cho các thiết bị có thể nhận ra
và tương tác với nhau khi sử dụng công nghệ Bluetooth.
Ngày nay phần lớn các nhà máy đều sản xuất các thiết bị có swur dụng công nghệ
Bluetooth. Các thiết bị này gồm có điện thoại di động, máy tính và thiết bị hỗ trợ cá nhân
PDA ( Prosonal Digital Assistant ) . Công nghệ Bluetooth là một công nghệ dựa trên tần
số vô tuyến và bất cứ một thiết bị nào có tích hợp bên trong công nghệ này đều có thể
truyền thông với các thiết bị khác với một khoảng cách nhất định về cự ly để đảm bảo
công suất cho việc phát và nhận sóng. Công nghệ này thường được sử dụng để truyền
thông giữa hai loại thiết bị khác nhau. Ví dụ: Bạn có thể hoạt động trên máy tính với một
bàn phím không dây, sử dụng bộ tai nghe không dây để nói chuyện trên điện thoại di
động của bạn hoặc bổ sung thêm một cuộc hẹn vào lịch biểu PDA của một người bạn từ
PDA của bạn.

Hình 3.1 Logo Bluetooth – là sự kết hợp của 2 ký tự Rune cổ : ( Hagall ) và ( Bjarkan )
tương đương với 2 ký tự H và B trong chữ Latin là viết tắt của Harald Bluetooth

3.1.2 Đặc điểm của công nghệ Bluetooth


3.1.2.1 Ưu điểm
- Tiêu thụ năng lượng thấp, cho phép ứng dụng được nhiều loại thiết bị bao gồm
các thiết bị cầm tay và điện thoại di động
- giá thành ngày một giảm
- khoảng cách giao tiếp cho phép giữa hai thiết bị đầu cuối có thể lên đến 10m,
khoảng cách giữa thiết bị đầu cuối và access point có thể lên tới 100m
- Bluetooth sử dụng băng tần 2.4GHz. Tốc độ truyền dữ liệu có thể đạt tới mức tới
đa 1Mbps mà các thiết bị không cần phải trực tiếp thấy nhau

13
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

- Dễ dàng trong việc phát triển ứng dụng: Bluetooth kết nối một ứng dụng này với
một ứng dụng khác thông qua chuẩn Bluetooth profiles, do đó có thể độc lập về
phần cứng cững như hệ điều hành sử dụng.
- Tính tương thích cao, được nhiều nhà sản xuất phần cứng cũng như phần mềm
hỗ trợ
3.1.2.2 Khuyết điểm
- Sử dụng mô hình adhoc -> không thể thiết lập các ứng dụng thời gian thực
- Khoảng cách kết nối còn ngắn so với công nghệ mạng không dây khác.
- Số thiết bị active, pack cùng lúc trong một piconect còn hạn chế.
- Tốc độ truyền không cao
3.1.3 Hoạt động
Bluetooth là chuẩn kết nối không dây tầm ngắn, thiết kế cho các kết nối thiết bị cá
nhân hay mạng cục bộ nhỏ trong phạm vi băng tần từ 2.4GHz đến 2.485GHz. Bluetooth
được thiết kế hoạt động trên 79 tần số đơn lẻ. Khi kết nối , nó sẽ tự động tìm ra tần số
tương thích để di chuyển đến thiết bị cần kết nối trong khu vực nhằm đảm bảo sự liên
tục.
Về tầm phủ sóng, bluetooth có 3 class: class 1 có công suất 100mW với tầm phủ
sóng gần 100m; class 2 có công suất 2,5mW tầm phủ sóng khoảng 10m; và class 3 là
1mW với tầm phủ sóng khoảng 5m
Bản thân bên trong Bluetooth hiện nay là một tập hợp nhiều giao thức hoạt động
khác nhau. Ví dụ, A2DP ( Advvanced Audio Distribution Profile) là cơ chế truyền dẫn
âm thanh stereo qua sóng bluetooth tới các tai nghe, loa; FTP( File Transfer Protocol) là
cơ chế chuyển đổi dữ liệu qua kết nối Bluetooth giữa các thiết bị ( hay còn gọi là File
Transfer Services ); hay OBEX, được phát triển bởi chính nhà mạng Verizon , cho phép
xóa dữ liệu thông qua Bluetooth.
3.1.4 Các thế hệ Bluetooth
- Blutooth 1.0 ( 7/1999 ): là phiên bản đầu tiên được đưa ra thị trường với tốc độ
kết nối ban đầu là 1Mbps. Tuy nhiên, trên thực tế tốc độ kết nối của thế hệ này
chưa bao giờ đạt quá mức 700Kbps
- Bluetooth 1.1 ( 2001 ): Đánh dấu bước phát triển mới của công nghệ Bluetooth
trên nhiều lĩnh vực khác nhau với sự quan tâm của nhiều nhà sản xuất mới.
- Bluetooth 1.2 ( 11/2003 ): Bắt đầu có nhiều tiến bộ đáng kể. Chuẩn này hoạt
động dựa trên băng tần 2.4GHz và tăng cường kết nối thoại. Motorola RARZ là
thế hệ điện thoại di đọng đầu tiên tích hợp Bluetooth 1.2
- Bluetooth 2.0 + ERD (2004): đã bắt đầu nâng cao tốc độ và giảm thiểu một nửa
năng lượng tiêu thụ so với trước đây. Tốc độ của chuẩn Bluetooth lên đến
2.1Mbps với chế độ cải thiện kết nối truyền tải – ERD ( Enhanced data rate ) ,
song ERD vẫn chỉ là chế độ tùy chọn, phụ thuộc vào các hãng sản xuất có đưa vào
thiết bị hay không. Các thiết bị tiêu biểu ứng dụng Bluetooth 2.0 + ERD là : Apple
iPhone, HTC Touch Pro và T-Mobile’s Android G1.
- Bluetooth 2.1 + ERD(2004) : đây chính là thế hệ nâng cấp của Bluetooth 2.0 có
hiệu năng cao hơn và tiết kiệm năng lượng hơn. Chuẩn này chủ yếu được sử dụng
trong điện thoại, máy tính và các thiết bị di động khác.

14
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

- Bluetooth 3.0 + HS(2008): có tốc độ truyền dữ liệu đạt mức 24Mbps – bằng
sóng Blutooth – High Speed, tương đương chuẩn Wifi thế hệ đầu tiên, phạm vi
hiệu quả nhất chỉ trong vòng 10m
- Bluetooth 4.0: được đưa ra ngày 30/06/2010, là chuẩn Bluetooth mới nhất hiện
nay. Bluetooth 4.0 là sự kết hợp của “classic Bluetooth” ( Bluetooth 2.1 và 3.0),
“Bluetooth high speed” ( Bluetooth 3.0 + HS) và “ Bluetooth low energy -
Bluetooth năng lượng thấp ( Bluetooth Smart Ready/ Bluetooth Smart).
“Bluetooth low enegry” là một phần của Bluetooth 4.0 với một giao thức tiêu
chuẩn của Bluetooth 1.0 vào 4.0 nhằm phục vụ cho những ứng dụng năng lượng
cực thấp.
Bluetooth Smart chỉ hoạt động ở chế độ đơn tần( single radio) hướng đến khả
năng phát tín hiệu cho các thiết bị trong lĩnh vực y tế thông qua cảm biến tích hợp,
các thông tin thu được chỉ có thể gửi được qua thiết bị có Bluetooth Smart Ready.
Các thiết bị Bluetooth Smart sẽ không có tốc độ cao như 3.0 nhưng bù lại chúng
tiêu thụ năng lượng rất thấp, pin của chúng thậm chí đủ hoạt động với thời gian
vài năm
Trong khi đó, phiên bản Bluetooth Smart Ready hoạt động ở hai dãy tín hiệu
(dual radio ) lại hội đủ các điều kiện trên và hoàn toàn tương thích ngược với
chuẩn 3.0. Thiết bị Bluetooth Smart Ready có thể vừa kết nối với các thiết bị
Bluetooth thông thường vừa có khả năng nhận dữ liệu truyền tải từ các thiết bị
Bluetooth Smart. Các thiết bị dùng chuẩn Bluetooth Smart Ready gồm điện thoại,
máy tính bảng, tivi và PC và đã được triển khai trên nhiều Smartphone hiện nay.

Hình 3.2 Một số thiết bị sử dụng công nghệ Bluetooth


3.1.5 Vấn đề bảo mật trong công nghệ Bluetooth
3.1.5.1 Bảo mật
Khi sử dụng công nghệ này, chắc hẳn mọi người ai cũng quan tâm đến vấn đề bảo
mật của nó. Tùy thuộc vào cách nó được cấu hình mà công nghệ bluetooth có thể khá an
toàn, tuy nhiên nhiều thiết bị Bluetooth có số lượng ngắn các chữ số sử dụng trong mã
PIN có thể gây nguy hiểm cho các thiết bị này.

15
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

Nếu ai đó có thể phát hiện ra thiết bị Bluetooth của bạn, thì người này hoàn toàn
có khả năng gửi các tin nhắn không yêu cầu và lạm dụng dịch vụ Bluetooth của bạn hoặc
xâm nhập hay sửa đổi dữ liệu của bạn. Các virut hoặc các mã nguy hiểm khác cũng có
thể lợi dụng công nghệ này để làm hại thiết bị. Nếu đã bị xâm nhập, dữ liệu của bạn có
thể sẽ bị sửa đổi, làm tổn hại hay bị đánh cắp hoặc mất.
3.1.5.2 Phương pháp bảo vệ
- vô hiệu hóa Bluetooth khi không sử dụng chúng – Trừ khi bạn kích hoạt việc
truyền tải thông tin từ thiết bị này đến một thiết bị khác, nếu không bạn nên vô
hiệu hóa công nghệ này để tránh những người không hợp lệ có thể xâm nhập.
- Sử dụng Bluetooth trong chế độ ẩn – khi kích hoạt Bluetooth- hãy đặt nó trong
trạng thái “ không thể phát hiện “. Chế độ ẩn nhằm ngăn chặn các thiết bị khác
nhận ra thiết bị của bạn. Điều này không ngăn cản bạn kết nối đến các thiết bị
Bluetooth khác. Thậm chí cả hai cũng có thể nhận ra nhau để kết nối nếu chúng
cùng trong chế độ ẩn. Các thiết bị như điện thoại di động và tai nghe không dây
cần phải đặt trong chế độ “ không phát hiện “ kết nối ban đầu thì chúng luôn nhận
ra thiết bị kia mà không cần tìm kiếm lại kết nối nữa cho lần tiếp theo.
- Cẩn thận với những nơi sử dụng Bluetooth- Cần phải quan tâm đến môi trường
khi ghép đôi thiết bị của bạn hoặc hoạt đọng trong chế độ có thể phát hiện
- Đánh giá các thiết lập bảo mật – hầu hết các thiết bị đều có nhiều đặc tính giúp
trang bị cần thiết cho bản thân, vô hiệu hóa bất kỳ tính năng hoặc các kết nối
không cần thiết có thể. Kiểm tra các thiết lập, thiết lập bảo mật đặc biệt và lựa
chọn các tùy chọn cần thiết đối với bạn mà không gây ra mức rủi ro cao
- Khai thác triệt để các tùy chọn bảo mật- Tìm hiểu kỹ các tùy chọn bảo mật mà
thiết bị Bluetooth của bạn có thể cung cấp, từ đó khai thác triệt để những tính năng
tác dụng của chúng như sự mã hóa và thẩm định.

3.1.6 Các khái niệm trong công nghệ Bluetooth


3.1.6.1 Master Unit:
Là thiết bị duy nhất trong 1 Piconet, Master thiết lập đồng hồ đếm xung và kiểu
bước nhảy (hopping) để đồng bộ tất cả các thiết bị trong cùng piconet mà nó đang quản
lý, thường là thiết bị đầu tiên chuyển đổi dữ liệu. Master cũng quyết định số kênh truyền
thông. Mỗi Piconet có một kiểu hopping duy nhất.
3.1.6.2 Slaver Unit:
Là tất cả các thiết bị còn lại trong piconet, một thiết bị không là Master thì phải
là Slave. Tối đa 7 Slave dạng Active và 255 Slave dạng Parked (Inactive) trong 1
Piconet. Có 3 dạng Slave trong một Piconet:

- Active: Slave hoạt động, có khả năng trao đổi thông tin với Master và các
Slave Active khác trong Piconet. Các thiết bị ở trạng thái này được phân
biệt thông qua 1 địa chỉ MAC (Media Access Control) hay AMA (Active
Member Address ) - đó là con số gồm 3 bit. Nên trong 1 Piconet có tối đa 8
thiết bị ở trang thái này (1 cho Master và 7 cho Slave).

16
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

- Standby: Standby là một dạng inactive, thiết bị trong trạng thái này không
trao đổi dữ liệu, sóng radio không có tác động lên, công suất giảm đến tối
thiểu để tiết kiệm năng lượng, thiết bị không có khả năng dò được bất cứ
mã truy cập nào. Có thể coi là những thiết bị trong nằm ngoài vùng kiểm
soát của Master.

- Parked: là một dạng inactive, chỉ 1 thiết bị trong 1 Piconet thường xuyên
được đồng bộ với Piconet, nhưng không có 1 địa chỉ MAC. Chúng như ở
trạng thái "ngủ" và sẽ được Master gọi dậy bằng tín hiệu "beacon" (tín hiệu
báo hiệu). Các thiết bị ở trạng thái Packed được đánh địa chỉ thông qua
địa chỉ PMA (Packed Member Address). Đây là con số 8 bits để phân biệt
các packed Slave với nhau và có tối đa 255 thiết bị ở trạng thái này trong 1
Piconet.
3.1.6.3 Piconet:
Picotnet là tập hợp các thiết bị được kết nối thông qua kỹ thuật
Bluetooth theo mô hình Ad-Hoc (đây là kiểu mạng được thiết lập cho nhu cầu truyền
dữ liệu hiện hành và tức thời, tốc độ nhanh và kết nối sẽ tự động huỷ sau khi truyền
xong). Trong 1 Piconet thì chỉ có 1 thiết bị là Master. Đây thường là thiết bị đầu tiên tạo
kết nối, nó có vai trò quyết định số kênh truyền thông và thực hiện đồng bộ giữa các
thành phần trong Piconet, các thiết bị còn lại là Slave. Đó là các thiết bị gửi yêu cầu đến
Master.

Lưu ý rằng, 2 Slave muốn thực hiện liên lạc phải thông qua Master bởi chúng
không bao giờ kết nối trực tiếp được với nhau, Master sẽ đồng bộ các Slave về thời
gian và tần số. Trong 1 Piconet có tối đa 7 Slave đang hoạt động tại 1 thời điểm.
Các mô hình Piconet :
Minh hoạ một Piconet gồm nhiều Slave:

Hình 3.3 : Kiến trúc Piconet trong Bluetooth

17
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

3.1.6.4 Scatternet:
Là 2 hay nhiều Piconet độc lập và không đồng bộ, các Piconet này kết hợp lại
truyền thông với nhau.
- Lưu ý:
+ Một thiết bị có thể vừa là Master của Piconet này, vừa là Slave của Piconet
khác.
+ Vai trò của 1 thiết bị trong Piconet là không cố định, có nghĩa là nó có thể
thay đổi từ Master thành Slave và ngược lại, từ Slave thành Master. Ví dụ nếu
Master không đủ khả năng cung cấp tài nguyên phục vụ cho Piconet của mình thì
nó sẽ chuyển quyền cho 1 Slave khác giàu tài nguyên hơn, mạnh hơn, bởi vì trong 1
piconet thì Clock và kiểu Hopping đã được đồng bộ nhau sẵn.

- Ví dụ một Scatternet :

Hình 3.4 Một Scatternet gồm 2 Piconet


3.1.7 Định nghĩa các liên kết vật lý trong Bluetooth:
- Asynchronous connectionless (ACL): được thiết lập cho việc truyền dữ liệu,
những gói dữ liệu cơ bản (primarily packet data). Là một kết nối point-to-
multipoint giữa Master và tất cả các Slave tham gia trong piconet. Chỉ tồn tại
duy nhất một kết nối ACL. Chúng hỗ trợ những kết nối chuyển mạch gói
(packet-switched connection) đối xứng và không đối xứng. Những gói tin đa
khe dùng ACL link và có thể đạt tới khả năng truyền tối đa 723 kbps ở một
hướng và 57.6 kbps ở hướng khác. Master điều khiển độ rộng băng tầng của
ACL link và sẽ quyết định xem trong một piconet một slave có thể dùng băng
tầng rộng bao nhiêu. Những gói tin broadcast truyền bằng ACL link, từ
master đến tất cả các slave. Hầu hết các gói tin ACL đều có thể truyền lại.
- Synchronous connection-oriented (SCO): hỗ trợ kết nối đối xứng, chuyển
mạch mạch (circuit-switched), point-to-point giữa một Master và một Slave
trong 1 piconet. Kết nối SCO chủ yếu dùng để truyền dữ liệu tiếng nói. Hai
khe thời gian liên tiếp đã được chỉ định trước sẽ được dành riêng cho SCO
link. Dữ liệu truyền theo SCO link có tốc độ 64kbps. Master có thể hỗ trợ
tối đa 3 kết nối SCO đồng thời. SCO packet không chứa CRC (Cyclic
Redundancy Check) và không bao giờ truyền lại. Liên kết SCO được thiết

18
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

lập chỉ sau khi 1 liên kết ACL đầu tiên được thiết lập.
3.1.8 Trạng thái của thiết bị Bluetooth:
Có 4 trạng thái chính của 1 thiết bị Bluetooth trong 1 piconet:
- Inquiring device (inquiry mode): thiết bị đang phát tín hiệu tìm thiết bị
Bluetooth khác.
- Inquiry scanning device (inquiry scan mode): thiết bị nhận tín hiệu inquiry
của thiết bị đang thực hiện inquiring và trả lời.
- Paging device (page mode): thiết bị phát tín hiệu yêu cầu kết nối với thiết bị
đã inquiry từ trước.
- Page scanning device (page scan mode): thiết bị nhận yêu cầu kết nối từ
paging device và trả lời.
3.1.9 Các chế độ kết nối
- Active mode: trong chế độ này, thiết bị Bluetooth tham gia vào hoạt động
của mạng. Thiết bị master sẽ điều phối lưu lượng và đồng bộ hóa cho các thiết bị
slave.
- Sniff mode: là 1 chế độ tiết kiệm năng lượng của thiết bị đang ở trạng thái
active. Ở Sniff mode, thiết bị slave lắng nghe tín hiệu từ mạng với tần số giảm hay
nói cách khác là giảm công suất. Tần số này phụ thuộc vào tham số của ứng dụng.
Đây là chế độ ít tiết kiệm năng lượng nhất trong 3 chế độ tiết kiệm năng lượng.
- Hold mode: là 1 chế độ tiết kiệm năng lượng của thiết bị đang ở trạng thái
active. Master có thể đặt chế độ Hold mode cho slave của mình. Các thiết bị có thể
trao đổi dữ liệu ngay lập tức ngay khi thoát khỏi chế độ Hold mode. Đây là chế độ
tiết kiệm năng lượng trung bình trong 3 chế độ tiết kiệm năng lượng.
- Park mode: là chế độ tiết kiệm năng lượng của thiết bị vẫn còn trong mạng
nhưng không tham gia vào quá trình trao đổi dữ liệu (inactive). Thiết bị ở chế độ
Park mode bỏ địa chỉ MAC, chỉ lắng nghe tín hiệu đồng bộ hóa và thông điệp
broadcast của Master. Đây là chế độ tiết kiệm năng lượng nhất trong 3 chế độ tiết
kiệm năng lượng.

3.1.10 Kỹ thuật trải phổ nhảy tần số trong công nghệ Bluetooth
3.1.10.1 Khái niệm
Bluetooth sử dụng kỹ thuật vô tuyến được gọi là trải phổ nhảy tần số ( Frequency
Hopping Spectrum-FHSS), chia nhỏ dữ liệu được gửi đi và truyền từng khúc dữ liệu lên
79 tần số. Trong dạng cơ bản của nó, sự điều chế là sự đánh tín hiệu dịch tần số Gausse(
GFSK). Nó đạt được tốc độ truy cập là 1Mbs, tốc độ truy cập tối đa của nó có thể lên đến
3Mbs. Bluetooth hoạt động ở dãi tần 2.4GHz.
Truyền trải phổ là kỹ thuật truyền tín hiệu sử dụng nhiều tần số cùng 1 lúc (DSSS-
Direct Sequence Spead Spectrum) hoặc luân phiên FHSS để tăng khả năng chống nhiễu,
bảo mật và tốc độ truyền dữ liệu.
Trải phổ nhảy tần số là kỹ thuật phân chia giải băng tần thành một tập hợp các
kênh hẹp và thực hiện việc truyền tín hiệu trên các kênh đó bằng việc nhảy tuần tự qua
các kênh theo một thứ tự nào đó

19
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

Hình 3.5 Kỹ thuật trải phổ nhảy tần số


3.1.10.2 Kỹ thuật nhảy tần số trong công nghệ Bluetooth
Giải băng tần ISM 2.4GHz được chia thành 79 kênh, với tốc độ nhảy là 1600 lần
trong một giây, điều đó có thể tránh được nhiễu tốt và chiều dài của các packet ngắn lại,
tăng tốc độ truyền thông. Hầu hết các nước dùng 79 bước nhảy, mỗi bước nhảy cách
nhau 1MHz, bắt đầu ở 2.402GHz và kết thúc ở 2.480GHz. ở một vài nước, chẳng hạn
như Pháp, Nhật phạm vi của dải băng tần này được giảm còn 23 bước nhảy

Hình 3.6 Các Packet truyền trên các tần số khác nhau

20
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

Hình 3.7 Các Packet truyền trên khe thời gian.

- Việc truyền nhận sử dụng các khe thời gian. Chiều dài 1 khe thời gian thông
thường là 625µs. Một packet thường nằm trong khe đơn, nhưng cũng có thể mở
rộng ra 3 hay 5 khe, yêu cầu tần số phải không đổi cho đến khi toàn bộ packet gửi
xong.
- Sử dụng packet đa khe, tốc độ truyền dữ liệu cao hơn nhờ phần header của mỗi
packet chỉ đòi hỏi 1 lần 220µs. có thể hiểu ngắn gọn là thời gian truyền 3 packets
đơn khe sẽ lớn hơn thời gian truyền 1 packet 3 khe. Bù lại, trong môi trường có
nhiều tín hiệu truyền, các packet dài chiếm nhiều timeslot dễ bị nhiều hơn do đo
dễ bị mất hơn.
- Mỗi packet chứa 3 phần : Access Code, Header, Payload

Hình 3.8 Cấu trúc gói tin Bluetooth

- Kích thước của access code và header là cố định


 Access Code : Gồm 72bits, dùng trong việc đồng bộ dữ liệu, định danh,
báo hiệu.

21
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

 Header :

Hình 3.9 Cấu tạo một packet


Trong header có 54 bits:
+ 3 bits được dùng trong việc định địa chỉ, do đó có tối đa 7 Active Slave.
+ 4 bits tiếp theo cho biết loại packet
+ 1 bits điều khiển luồng
+ 1 bits ARQ : cho biết packet là Broadcast không có ACK.
+ 1 bits Sequencing: lọc bỏ những packet trùng do truyền lại
+ 8 bits HEC : kiểm tra tính toàn vẹn của header.

Tổng cộng có 18bits, các bit đó được mã hóa với 1/3 FEC ( Forward Error
Correction ) để có được 54 bits
 PayLoad : phần chứa dữ liệu truyền đi, có thể thay đổi từ 0 tới
2744bit/packet. Payload có thể là dữ liệu data hoặc voice.
3.1.11 Cơ chế hoạt động của Bluetooth.
3.1.11.1 Cơ chế truyền và sửa lỗi:
Kỹ thuật Bluetooth thực sự là rất phức tạp. Nó dùng kỹ thuật nhảy tần số trong
các timeslot (TS), được thiết kế để làm việc trong môi trường nhiễu tần số radio,
Bluetooth dùng chiến lược nhảy tần để tạo nên sức mạnh liên kết truyền thông và
truyền thông thông minh. Cứ mỗi lần gửi hay nhận một
packet xong, Bluetooth lại nhảy sang một tần số mới, như thế sẽ tránh được nhiễu từ các
tín hiệu khác.
So sánh với các hệ thống khác làm việc trong cùng băng tần, sóng radio của
Bluetooth nhảy tần nhanh và dùng packet ngắn hơn. Vì nhảy nhanh và packet ngắn sẽ
làm giảm va chạm với sóng từ lò vi sóng và các phương tiện gây nhiễu khác trong khí
quyển.
Có 3 phương pháp được sử dụng trong việc kiểm tra tính đúng đắn của dữ liệu
truyền đi:
. - Forwad Error Corrrection: thêm 1 số bit kiểm tra vào phần Header hay
Payload của packet.

22
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

- Automatic Repeat Request: dữ liệu sẽ được truyền lại cho tới khi bên nhận
gửi thông báo là đã nhận đúng.
- Cyclic Redundancy Check: mã CRC thêm vào các packet để kiểm chứng liệu
Payload có đúng không

Bluetooth dùng kỹ thuật sửa lỗi tiến FEC (Forward Error Correction) để sửa sai
do nhiễu tự nhiên khi truyền khoảng cách xa. FEC cho phép phát hiện lỗi, biết sửa sai
và truyền đi tiếp (khác với kỹ thuật BEC-Backward Error Control chỉ phát hiện, không
biết sửa, yêu cầu truyền lại).
Giao thức băng tần cơ sở (Baseband) của Bluetooth là sự kết hợp giữa chuyển
mạch và chuyển đổi packet. Các khe thời gian có thể được dành riêng cho các packet
phục vụ đồng bộ. Thực hiện bước nhảy tần cho mỗi packet được truyền đi. Một
packet trên danh nghĩa sẽ chiếm 1 timeslot,
nhưng nó có thể mở rộng chiếm đến 3 hay 5 timeslot.

Bluetooth hỗ trợ 1 kênh dữ liệu bất đồng bộ, hay 3 kênh tín hiệu thoại đồng
bộ nhau cùng một lúc, hay 1 kênh hỗ trợ cùng lúc dữ liệu bất đồng bộ và tín hiệu
đồng bộ.
3.1.11.2 Quá trình hình thành piconet

Hình 3.10 Mô hình piconet


Một Piconet được tạo bằng 4 cách:
Có Master rồi, Master thực hiện Paging để kết nối với 1 Slave.
Một Unit ( Master hay Slave ) lắng nghe tín hiệu (code) mà thiết bị của nó truy cập được.
Khi có sự chuyển đổi vai trò giữa Master và Slave. Khi có một Unit chuyển sang trang
thái Active
Để thiết lập một kết nối mới, tiến trình INQUIRY hay PAGE sẽ bắt đầu.
Tiến trình Inquiry cho phép 1 Unit phát hiện các Unit khác trong tầm hoạt
động cùng với địa chỉ và đồng hồ của chúng.
Tiến trình Paging mới thực sự là tạo kết nối. Kết nối chỉ thực hiện giữa những

23
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

thiết bị mang địa chỉ Bluetooth. Unit nào thiết lập kết nối sẽ phải thực hiện tiến trình
paging và tự động trở thành Master của kết nối.
Trong tiến trình paging, có thể áp dụng vài chiến lược paging. Có một chiến lược
paging bắt buộc tất cả các thiết bị Bluetooth đều phải hỗ trợ, chiến lược dùng khi các
Unit gặp trong lần đầu tiên, và trong trường hợp tiến trình paging theo ngay sau tiến
trình inquiry. Hai Unit sau khi kết nối nhờ dung chiến lược bắt buộc này, sau đó có thể
chọn chiến lược paging khác.
Sau thủ tục Paging (PAGE), Master thăm dò Slave bằng 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 không có.
Các vai trò của thiết bị trong Piconet là:
- Stand by : Không làm gì cả.
- Inquiry : Tìm thiết bị trong vùng lân cận.
- Paging :Kết nối với 1 thiết bị cụ thể.
- Connecting : Nhận nhiệm vụ.

Hình 3.11: Quá trình truy vấn tạo kết nối.

Mô hình truy vấn các thiết bị trong thực tế:

Hình 3.12: Truy vấn tạo kết nối giữa các thiết bị trong thực tế.

Khi thiết bị tạo paging muốn tạo các kết nối ở các tầng trên, nó sẽ 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 này
nhận được thông điệp, nó thông báo cho host biết về kết nối mới. Thiết bị từ xa có
thể chấp nhận (gửi thông điệp chấp nhận theo nghi thức LMP) hoặc 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).

24
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

Khi thiết bị không yêu cầu bất kỳ thủ tục thiết lập liên kết từ xa nào cả, nó sẽ
gửi thông điệp "thiết lập hoàn thành". Thiết bị này vẫn nhận được yêu cầu từ các thiết
bị khác. Khi một thiết bị khác đã sẵn sàng tạo liên kết, nó cũng gửi thông điệp "thiết
lập hoàn thành". Sau đó 2 thiết bị có thể trao đổi
packet trên kênh logic khác với LMP.
3.1.12 Module Bluetooth HC-05
3.1.12.1 Giới thiệu Module Bluetooth HC-05

Hình 3.13 : Modul Bluetooth HC-05


Module Bluetooth HC-05 được thiết kế đễ sử dungh giao giao tiếp Bluetooth qua
Serial Port, truyền dữ liệu nối tiếp qua wireless.
Đặc điểm kỹ thuật:
- Chuẩn Bluetooth : V2.0+EDR
- Điện áp hoạt động : 3,3VDC/ 30mA
- Chế độ hoạt động : Master , Slave, Loopback
- Kích thước 28mm x 15mm x 2.35mm
- Tần số: 2.4GHz ISM band
- Tốc độ: Asynchronous : 2.1 Mbs (Max)/160kbps
Synchronous : 1Mbps/1Mbps
- Bảo mật : Authentication and encryption
- Giao tiếp : Bluetooth serial port
- Baud Rate mặc định : 38400, databits : 8, Stopbit : 1, Parity : No. Hỗ trợ tốc độ
baud : 9600,19200,38400,57600,115200,230400,460800.
- Nhiệt độ làm việc : -20 ~ 75 độ C
- Độ nhạy : -80dBm

25
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

- Công suất truyền : +4dBm


- Tự động kết nối với pincode mặc định “1234”
- Tự động reconnect trong 30 phút nếu bị đứt kết nối
Module có 2 chế độ làm việc ( có thể chọn chế độ làm việc bằng cahcs thay đổi trạng
thái chân KEY-34:
- Tự động kết nối
- Đáp ứng theo lệnh: khi làm việc ở chế độ này, chúng ta có thể gửi các lệnh AT để
giao tiếp với module
Gaio tiếp với module bằng giao tiếp nối tiếp không đồng bộ qua hai đường RX và TX
Bằng cách thay đổi trạng thái chân KEY chúng ta có thể cấu hình chế độ hoạt động cho
modue
- Để module làm việc ở chế độ tự động kết nối: KEY phải ở trạng thái Floating (
trạng thái không kết nối )
- Để module làm việc ở chế độ đáp ứng theo lệnh : KEY=’0’, cấp nguồn cho
module, chuyển KEY = ‘1’, lúc này có thể giao tiếp với modul bằng tập lệnh AT
Ở chế độ SLAVE: chúng ta cần thiết lập kết nối từ smartphone, laptop, usb bluetooth
để dò tìm module và ghép nối với pincode mặc định ”1234”
Ở chế độ MASTER : modul sẽ tự động dò tìm thiết bị Bluetooth khác và tiến hành
ghép nối chủ động mà không cần thiết lập gì.
Module tương thích với các vi diều khiển 5V mà không cần chuyển đổi mức giao tiếp
5V về 3.3V như nhiều loại module khác
3.1.12.2 Đặc tả phần cứng
Sơ đồ chân :

26
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

Hình 3.14 : Sơ đồ chân modul Bluetooth HC-05


Bảng1: mô tả chức năng các chân của module:
Tên chân STT chân Loại chân Mô tả chân
GND 13,21,22 VSS Chân đất
3,3v VCC 12 Chân 3,3V Chân nguồn
AIO0 9 2 Hướng Lập trình I/O

27
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

AIO1 10 2 Hướng Lập trình I/O


PIO0 23 2 Hướng RX EN Lập trình I/O, điều khiển output
cho LNA nếu được trang bị.
PIO1 24 2 Hướng TX EN Lập trình I/O, điều khiển LA nếu
được trang bị.
PIO2 25 2 Hướng Lập trình I/O
PIO3 26 2 Hướng Lập trình I/O
PIO4 27 2 Hướng Lập trình I/O
PIO5 28 2 Hướng Lập trình I/O
PIO6 29 2 Hướng Lập trình I/O
PIO7 30 2 Hướng Lập trình I/O
PIO8 31 2 Hướng Lập trình I/O
PIO9 32 2 Hướng Lập trình I/O
PIO10 33 2 Hướng Lập trình I/O
PIO11 34 2 Hướng Lập trình I/O
ResetB 11 Cmos input with weak Reset nếu LOW
internal pull-up
UART_RST 4 Cmos output, tri-stable UART yêu cầu khi gửi, hoạt động
with weak internal pull- LOW.
up.
UART_CTS 3 Cmos input with weak UART xóa khi gửi, hoạt động
internal pull-down. LOW.
UART_RX 2 Cmos input with weak Dữ liệu vào UART
internal pull-down
UART_TX 1 Cmos output, tri-stable Dữ liệu ra UART
with weak internal pull-
up.
SPI_MOSI 17 Cmos input with weak Serial peripheral interface data
internal pull-down. input
SPI_CSB 16 Cmos input with weak Chip select for serial peripheral
internal pull-up. interface, active low.
SPI_CLK 19 Cmos input with weak Serial peripheral interface clock.
internal pull-down.
SPI_MISO 18 Cmos input with weak Serial peripheral interface data
internal pull-down. output
USB- 15 2 hướng
USB+ 20 2 hướng
NC 14
PCM_CLK 5 2 hướng Synchronous PCM data clock
PCM_OUT 6 Cmos output Synchronous PCM data output
PCM_IN 7 Cmos input Synchronous PCM data input
PCM_SYNC 8 2 hướng Synchronous PCM data strobe

28
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

Sơ đồ nguyên lý module :

Hình 3.15 Sơ đồ nguyên lý module Bluetooth HC-05


3.1.12.3 Tập lệnh AT cho module Bluetooth HC-05
Bảng 2: một số lệnh AT cho module Bluetooth HC-05
Lệnh Trả về Tham số Chức năng
AT OK None Test
AT+RESET OK None Reset
AT+VERSION? +VERSION: <Param> Version number Kiểm tra phiên bản
OK
AT+ORGL OK None Khôi phục trạng
thái mặc định
AT+ADDR? +ADDR:<Param> OK Bluetooth address Địa chỉ bluetooth

AT+NAME=<param> OK Đặt tên cho module


AT+NAME? 1. +NAME:<Param Bluetooth device Tên thiết bị
> OK---success name (mặc định:HC-05)
2. FAIL---failure
AT+RNAME?<param 1. +NAME:<Param Tên thiết bị Đổ trên modul
1> 2> OK---success Bluetooth
2. FAIL---failure

29
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

AT+ROLE? +ROLE:<Param> 0---Slave role Truy vấn chức


OK 1---Master role năng modul
2---Slaver-Loop Mặc định :0
role
AT+PSWD=<param> OK Pincode Đặt mã Pin
Mặc định:”1234”
AT+PSWD? +PSWD:<Param> Pincode Truy vấn mã PIN
AT+UART=<Param>, OK Param1: Baud rate Cấu hình cho cổng
<Param2>,<Param3> Param2: stop bit UART
Param: parity bit
AT+UART? UART=<Param>,<Para Param1: Baud rate Truy vấn thông tin
m2>,<Param3> Param2: stop bit cổng UART
OK Param: parity bit

3.2 TỔNG QUAN HỆ ĐIỀU HÀNH ANDROID


3.2.1 Giới thiệu về android
Hệ điều hành Android là hệ điều hành mở, hoàn thiện, cho phép người dùng tùy
biến nó. Tương thích với hầu hết các nhà sản xuất phần cứng

Hình 3.16 : Logo Android


3.2.2 Lịch sử hình thành
Ban đầu, Android là hệ điều hành cho các thiết bị cầm tay dựa trên lõi Linux
do công ty Android Inc. (California, Mỹ) thiết kế. Công ty này sau đó được Google
mua lại vào năm 2005 và 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.

30
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

Hình 3.17: Android timeline


Và sau tiếp, vào cuối năm 2007, thuộc về Liên minh Thiết bị Cầm tay Mã
Nguồn mở (Open Handset Alliance) gồm các thành viên nổi bật trong ngành viễn
thông và 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 của Liên minh này là nhanh chóng đổi mới để đáp ứng tốt hơn cho
nhu cầu người tiêu dùng và kết quả đầu tiên của nó chính là nền tảng Android.
Android được thiết kế để phục vụ nhu cầu của các nhà sản xuất thiết, các nhà khai thác
và các lập trình viên thiết bị cầm tay.

Phiên bản SDK lần đầu tiên phát hành vào tháng 11 năm 2007, hãng T-
Mobile cũng công bố chiếc điện thoại Android đầu tiên đó là chiếc T-Mobile G1, chiếc
smartphone đầu tiên dựa trên nền tảng Android. Một vài ngày sau đó, Google lại tiếp
tục công bố sự ra mắt phiên bả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 thì một trong số các mục tiêu trong kiến trúc của
nó là cho phép các ứng dụng có thể tương tác được với nhau và có thể sử dụng lại
các thành phần từ những ứng dụng khác. Việc tái sử dụng không chỉ được áp dụng
cho các dịch vụ mà nó còn được áp dụng cho cả các thành phần dữ liệu và giao diện
người dùng.

Vào cuối năm 2008, Google cho phát hành một thiết bị cầm tay được gọi
là Android Dev Phone 1 có thể chạy được các ứng dụng Android mà không bị ràng
buộc vào các nhà cung cấp mạng điện thoại di động. Mục tiêu của thiết bị này là cho
phép các nhà phát triển thực hiện các cuộc thí nghiệm trên một thiết bị thực có thể
chạy hệ điều hành Android mà không phải ký một bản hợp đồng nào. Vào khoảng

31
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

cùng thời gian đó thì Google cũng cho phát hành một phiên vản vá lỗi 1.1 của hệ điều
hành này. Ở cả hai phiên bản 1.0 và 1.1 Android chưa hỗ trợ soft-keyboard mà đòi hỏi
các thiết bị phải sử dụng bàn phím vật lý. Android cố định vấn đề này bằng cách
phát hành SDK 1.5 vào tháng Tư năm 2009, cùng với một số tính năng khác. Chẳng
hạn như nâng cao khả năng ghi âm truyền thông, vật dụng, và các live folder.
Các phiên bả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 : sắp ra mắt

3.2.3 Tính năng Android


- Lưu trữ: sử dụng SQLite, một cơ sở dữ liệu quan hệ, trọng lượng nhẹ cho dữ liệu lưu
trữ.
- Kết nối: Hỗ trợ GSM/EDGE, IDEN, CDMA, EV-DO, UTMS, Bluetooth ( A2DP và
AVRCP ), Wifi, LTE và Wimax
- Tin nhắn: hỗ trợ cả SMS và MMS
- Trình duyệt web: dựa trên WebKit mã nguồn mở, cùng với V8 JavaScript của Chrome.
- Truyền thông hỗ trợ : Bao gồm hỗ trợ cho các phương tiện truyền thông: H.263, H.264
( trong 3GP hoặc MP4 container ), MPEG-4 SP, AMR, AMR-WB, AAC, HE-AAC,
MP3, MIDI, OggVorbis, WAV, JPEG, PNG,GIF và 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 và GPS.
- Multi-touch : hỗ trợ màn hình cảm ứng đa điểm.
- Đa chức năng: Hỗ trợ các ứ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 là một điểm phát sóng không dây/có dây
3.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 4 lớp cơ bản:
- Nền ứng dụng ( Application Framework)
- Thư viện ( Libraries )
- Android Runtime
- Linux Kernel

32
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

Hình 3.18: Mô hình kiến trúc nền tảng hệ điều hành Android
3.2.4.1 Tầng ứng dụng
Hệ điều hành Android tích hợp sẵn một số ứng dụng cơ bản như email client,
SMS, lịch điện tử, bản đồ, trình duyệt web, sổ liên lạc và một số ứng dụng khác. Ngoài ra
tầng này cũng chính là tầng chứa các ứng dụng được phát triển bằng ngôn ngữ java.
3.2.4.2 Application Farmwork
Tầng này của hệ điều hành Android cung cấp một nền tảng phát triển ứng dụng
mở qua đó cho phép nhà phát triển ứng dụng có khả năng tạo ra các ứng dụng vô cùng
sáng tạo và phong phú. Các nhà phát triển ứng dụng được tự do sử dụng các tính năng
cao cấp của thiết bị phần cứng như: thông tin định vị địa lý, khả năng 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 của màn hình thiết bị…
Người phát triển ứng dụng được phép sử dụng đầy đủ bộ API được dùng trong các
ứng dụng tích hợp sẵn của android. Kiến trúc ứng dụng của Android được thiết kế nhằm
mục đích đơn giản hóa việc tái sử dụng các component. Qua đó bất kỳ ứng dụng nào
cũng có thể công bố các tính năng mà nó muốn chia sẻ cho các ứng dụng khác. Phương
pháp tương tự cho phép các thành phần có thể được thay thế bởi người sử dụng
Tầng này bao gồm một tập các services và các thành phần sau:

33
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

- Một tập phong phú và có thể mở rộng bao gồm các đối tượng View được dùng để
xây dựng ứng dụng như : list, gird, text box, button và thậm chí là một trình duyệt
web có thể nhúng vào ứng dụng
- Content Provider: Cho phép các ứng dụng có thể truy xuất dwux liệu từ các ứng
dụng khác hoặc chia sẻ dữ liệu của chúng.
- Resource Manager: cung cấp khả năng truy xuất các tài nguyên non-code như
hình ảnh hoặc file layout.
- Notification Manager: cung cấp khả năng hiển thị custom alert trên thanh status
bar.
- Activity Manager: Giúp quản lý vòng đời của một ứng dụng
3.2.4.3 Library
Android bao gồm một tập hợp các thư viện C/C++ được sử dụng bởi nhiều thành
phần khác nhau trong hệ thống android. Một số các thwu viện cơ bản được liệt kê dưới
đây:
- System C library: một thể hiện được xây dựng từ BSD của bộ thư viện hệ thống
C chuẩn ( libc), được điều chỉnh để tối ưu hóa cho các thiết bị chạy trên nền
Linux.
- Media Libarary : Bộ thwu viện hỗ trợ trình diễn và ghi các định dạng âm thanh
và hình ảnh phổ biến
- Surface manager: Quản lý hiên rthij nội dung 2D và 3D
- LibWebCore : một web browser engine hiện đại được swur dụng trong trình
duyệt của android lần trong trình duyệt nhứng web view được sử dụng trong ứng
dụng.
- SGL: Engine hỡ trợ đồ họa 2D
- 3D library: Một thể hiện được xây dựng dựa trên các APIs của OpenGL ES 1.0.
Những thư viện này sử dụng các tăng tốc 3D bằng 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: một DBMS nhỏ gọn và mạnh mẽ
3.2.4.4 Android Runtime
Hệ diều hành android tích hợp sẵn một tập hợp các thư viện cốt lõi cung cấp hầu
hết các chức năng có sẵn trong các thư viện lõi của ngôn ngư lập trình java. Mọi ứng
dụng của Android chạy trên mọt tiến trình của riêng nó với cùng một thể hiện của máy ảo
Dalvik. Máy ảo Dalvak thực tế là một biến thể của máy ảo java được sửa đổi bổ sung các
công nghệ đặc trưng của thiết bị di động. Nó được xây dựng với mục đích làm cho các
thiết bị di động có thể chạy nhiều máy ảo một cách hiệu quả. Trước khi thực thi, bát kỳ
ứng dụng nào cũng được convert thành file thực thi với định dạng nén Dalvik Executable
(.dex) . Định dạng này được thiết kế phù hợp với các thiết bị hạn chế về bộ nhớ cũng như
tốc độ xử lý. Ngoài ra máy ảo Dalvik swur dụng bộ nhân Linux để cung cấp các tính
năng như thread, low-level memory management .
3.2.4.5 Linux Kernel
Hệ điều hành Android được xây dựng trên bộ nhân Linux 2.6 cho những dịch vụ
hệ thống cốt lõi như: security, memory management, process management, network

34
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

stack, driver model. Bộ nhân này làm nhiệm vụ như một lớp trung gian kết nối phần cứng
thiết bị và phần ứng dụng.

Hình 3.19 : mô hình hợp tác giữa máy ảo Dalvik và Navite code

JNI: Java Native Interface (Tương tự khái niệm Application Programming Interface).
Java Native Interface: là một bộ framework cho phép mã lệnh viết bằng Java chạy trên
máy ảo java có thể gọi hoặc được gọi bởi một ứng dụng viết bằng native code (Ứng dụng
được viết cho một phần cứng cụ thể và trên một hệ điều hành cụ thể) hoặc những bộ thư
viện viết bằng C, C++ hoặc Assembly.
Bằng cách sử dụng JNI, Android cho phép các ứng dụng chạy trên máy ảo Dalvik
có thể sử dụng những phương thức được viết bằng các ngôn ngữ cấp thấp như: C, C++,
Assembly. Qua đó các nhà phát triển ứng dụng có thể xây dựng ứng dụng dựa trên các bộ
thư viện viết bằng C, C++, Assembly nhằm tăng tốc độ thực thi của ứng dụng hoặc sử
dụng những tính năng 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 sự gia tăng độ phức tạp của ứng dụng khi quyết định sử
dụng các bộ thư viện này.
3.2.5 Chu kỳ ứng dụng trên andorid
Một tiến trình Linux gói gọn một ứng dụng Android đã được tạo ra cho ứng dụng
khi codes cần được run và sẽ còn chạy cho đến khi:
- Nó không phụ thuộc.
- Hệ thống cần lấy lại bộ nhớ mà nó chiếm giữ cho các ứng dụng khác. Một sự
khác thường và đặc tính cơ bản của Android là thời gian sống của tiến trình ứng dụng
không được điều khiển trực tiếp bới chính nó. Thay vào đó, nó được xác định bởi hệ
thống qua một kết hợp của:
- Những phần của ứng dụng mà hệ thống biết đang chạy
- Những phần quan trọng như thế nào đối với người dùng

35
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

Bao nhiêu vùng nhớ chiếm lĩnh trong hệ thống.


3.2.5.1 Chu kỳ sống thành phần
Các thành phần ứng dụng có một chu kỳ sống, tức là mỗi thành phần từ lúc bắt
đầu khởi tạo và đến thời điểm kết thúc. Giữa đó, đôi lúc chúng có thể là active hoặc
inactive, hoặc là trong trường hợp activies nó có thể visible hoặc invisible
3.2.5.2 Activity Stack
Bên trong hệ thống các activity được quản lý như một activity stack. Khi một
Activity mới được start, nó được đặt ở đỉnh của stack và trở thành activity đang chạy
activity trước sẽ ở bên dưới activity mới và sẽ không thấy trong suốt quá trình activity
mới tồn tại.
Nếu người dùng nhấn nút Back thì activity kết tiếp của stack sẽ di duyển lên và
trở thành active.

Hình 3.20: Activity Satck

3.2.5.3 Các trạng thái của chu kỳ sống

36
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

Hình 3.21: Chu kỳ sống của Activity

Một Activity chủ yếu có 3 chu kỳ chính sau:


- Active hoặc running: Khi Activity là được chạy trên màn hình. Activity này
tập trung vào những thao tác của người dùng trên ứng dụng.
- Paused: Activity là được tạm dừng (paused) khi mất focus nhưng người dùng
vẫn trông thấy. Có nghĩa là một Activity mới ở trên nó nhưng không bao phủ đầy

37
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

màn hình. Một Activity tạm dừng là còn sống nhưng có thể bị kết thúc bởi hệ thống
trong trường hợp thiếu vùng nhớ.
- Stopped: Nếu nó hoàn toàn bao phủ bởi Activity khác. Nó vẫn còn trạng thái và
thông tin thành viên trong nó. Người dùng không thấy nó và thường bị loại bỏ trong
trường hợp hệ thống cần vùng nhớ cho tác vụ khác.
3.2.5.4 Chu kỳ sông của ứng dụng
Trong một ứng dụng Android có chứa nhiều thành phần và mỗi thành phần đều có một
chu trình sống riêng. Và ứng dụng chỉ được gọi là kết thúc khi tất cả các thành phần
trong ứng dụng kết thúc. Activity là một thành phần cho phép người dùng giao tiếp với
ứng dụng. Tuy nhiên, khi tất cả các Activity kết thúc và người dùng không còn giao tiếp
được với ứng dụng nữa nhưng không có nghĩa là ứng dụng đã kết thúc. Bởi vì ngoài
Activity là thành phần có khả năng tương tác người dùng thì còn có các thành phần
không có khả năng tương tác với người dùng như là Service, Broadcast receiver. Có
nghĩa là những thành phần không tương tác người dùng có thể chạy background dưới sự
giám sát của hệ điều hành cho đến khi người dùng tự tắt chúng.
3.2.5.5 Các sự kiện trong chu kỳ sống của ứng dụng
Nếu một Activity được tạm dừng hoặc dừng hẳn, hệ thống có thể bỏ thông tin khác của
nó từ vùng nhớ bởi việc finish() (gọi hàm finish() của nó), hoặc đơn giản giết tiến trình
của nó. Khi nó được hiển thị lần nữa với người dùng, nó phải được hoàn toàn restart và
phục hồi lại trạng thái trước. Khi một Activity chuyển qua chuyển lại giữa các trạng
thái, nó phải báo việc chuyển của nó bằng việc gọi hàm transition.
Tất cả các phương thức là những móc nối mà bạn có thể override để làm tương thich
công việc trong ứng dụng khi thay đổi trạng thái. Tất cả các Activity bắt buộc phải có
onCreate() để khởi tạo ứng dụng. Nhiều Activity sẽ cũng hiện thực onPause() để xác
nhận việc thay đổi dữ liệu và mặt khác chuẩn bị dừng hoạt động với người dùng.
3.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 trong chu kỳ sống của một Activity. Thời gian
sống của một Activity diễn ra giữa lần đầu tiên gọi onCreate() đến trạng thái cuối cùng
gọi onDestroy(). Một Activity khởi tạo toàn bộ trạng thái toàn cục trong onCreate(), và
giải phóng các tài nguyên đang tồn tại trong onDestroy().
3.2.5.7 Thời gian hiển thị của Activity
Visible lifetime của một activity diễn ra giữa lần gọi một onStart() cho đến khi gọi
onStop(). Trong suốt khoảng thời gian này người dùng có thể thấy activity trên màn
hình, có nghĩa là nó không bị foreground hoặc đang tương tác với người dùng. Giữa 2
phương thức người dùng có thể duy trì tài nguyên để hiển thị activity đến người dùng.
3.2.5.8 Các phương thức của chu kỳ sống
Phương thức: onCreate()
- Được gọi khi activity lần đầu tiên được tạo
- Ở đây bạn làm tất cả các cài đặt tĩnh (tạo các view, kết nối dữ liệu đến list…)
- Phương thức này gửi qua một đối tượngBundle chứa đựng từ trạng thái
trược của Activity
- Luôn theo sau bởi onStart()

38
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

Phương thức: onRestart()


- Được gọi sau khi activity đã được dừng, chỉ một khoảng đang khởi động
lần nữa (stared again)
- Luôn theo sau bởi onStart()

Phương thức: onStart()


- Được gọi trước khi một activity visible với người dùng.
- Theo sau bởi onResume() nếu activity đến trạng thái foreground hoặc
onStop() nế nó trở nên ẩn.

Phương thức: onResume()


- Được gọi trước khi activity bắt đầu tương tác với người dùng
- Tại thời điểm này activity ở trên dỉnh của stack activity.
- Luôn theo sau bởi onPause()

Phương thức: onPause()


- Được gọi khi hệ thống đang resuming activity khác.
- Phương thức này là điển hình việc giữ lại không đổi dữ liệu.
- Nó nên được diễn ra một cách nhanh chóng bởi vì activity kế tiếp sẽ không
được resumed ngay cho đến khi nó trở lại.
- Theo sau bởi onResume nếu activity trở về từ ở trước, hoặc bởi onStop nếu
nó trở nên visible với người dùng.
- Trạng thái của activity có thể bị giết bởi hệ thống.

Phương thức: onStop()


- Được gọi khi activity không thuộc tầm nhìn của người dùng.
- Nó có thể diễn ra bởi vì nó đang bị hủy, hoặc bởi vì activity khác vữa được
resumed và bao phủ nó.
- Được theo sau bởi onRestart() nếu activity đang đở lại để tương tác với
người dùng, hoặc onDestroy() nếu activity đang bỏ.
- Trạng thái của activity có thể bị giết bởi hệ thống.

Phương thức: onDestroy()


- Được gọi trước khi activity bị hủy.
- Đó là lần gọi cuối cùng mà activity này được nhận.
- Nó được gọi khác bởi vì activity đang hoàn thành, hoặc bởi vì hệ thống tạm
thời bị hủy diệt để tiết kiệm vùng nhớ.
- Bạn có thể phân biệt giữa 2 kịch bản với phương isFinshing().
Trạng thái của activity có thể được giết bởi hệ thống.

39
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

CHƯƠNG 4 : THIẾT KẾ MÔ HÌNH XE ĐIỀU


KHIỂN

4.1 PHÂN TÍCH VÀ XÁC ĐỊNH YÊU CẦU


Mục đích của đề tài là thực hiển kết nối và trao đổi dữ liệu giữa ứng dụng trên hệ
điều hành android và vi điều khiển xử lý trên xe. Hệ thống cho phép người dùng có thể
điều khiển thiết bị bằng Mobile android qua Bluetooth
Yêu cầu đặt ra:
- Ứng dụng trên Mobile Android :
+ Thực hiện gửi dữ liệu thông qua sóng Bluetooth
+ Ứng dụng có giao diện thân thiện, dễ sử dụng
+ Ứng dụng hoạt động ổn định
- Thiết bị phần cứng :
+ Nhận giá trị từ module Bluetooth, xử lý và xuất ra driver động cơ để điều khiển
xe
+ Driver có nhiệm vụ điều khiện 2 động cơ DC thực hiện các thao tác di chuyển
cơ bản.
+ xe hoạt động ổn định
4.2 XÂY DỰNG HỆ THỐNG
4.2.1 Ứng dụng trên Android
Lưu đồ thuật toán

40
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

Hình 4.1 Lưu đồ thuật toán trên Android


Hình ảnh ứng dụng :

Hình 4.2 icon ứng dụng Hình 4.3 Giao diện điều khiển

41
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

Hình 4.4 Thông tin ứng dụng Hình 4.5 Dò tìm thiết bị
4.2.2 Thiết kế phần cứng
Sơ đồ khối tổng quát

Hình 4.6 Sơ đồ khối tổng quát


4.2.2.1 Khối xử lý
Mạch xử lý sử dụng vi điều khiển Atmega8 của hãng Atmel. Có nhiệm vụ nhận
tín hiệu từ modul Bluetooth, xử lý và xuất dữ liệu cho modul Driver động cơ.
Khái quá về Atmega8

42
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

- Tốc độ tối đa : 16MHz


- Dung lượng bọ nhớ chương trình : 8Kb
- Bộ nhớ EEPROM : 512 Byte
- Dung lượng bộ nhớ RAM : 1Kb
- Bộ nhớ chương trình có khả năng ghi 10.000 lần, bộ nhớ EEPROM có thể ghi
100.000 lần. Hỗ trợ bootloader, có khả năng tự ghi vào bộ nhớ chương trình, cập
nhật chương trình cho chip mà không cần mạch nạp.
- Timer 8bit: 2
- Timer 16bit: 1
- ADC: 6 kênh, 10bit
- Giao tiếp: I2C, UART, SPI
- Điện áp hoạt động : 2.7V-5.5V ( Atmega8L), 4.5V-5.5V( Atmega8)
Sơ đồ chân

Hình 4.7: Sơ đồ chân Atmega8


-Mạch nguyên lý

Hình 4.8: Sơ đồ nguyên lý mạch Atmega8

43
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

4.2.2.2 Khối nguồn


Mạch sử dụng nguồn Acquy 6V để cấp cho 2 động cơ DC và từ nguồn Acquy 6V qua IC
ổn áp LM7805 để cấp nguồn 5V cho mạch

Hình 4.9: Mạch nguồn


4.2.2.3 Mạch driver động cơ
- IC L298 : là một IC tích hợp nguyên khối gồm 2 mạch cầu H bên trong. Với điện áp
làm tăng công suất đầu ra từ 5V-47V, dòng lên đến 4A, L298 rất phù hợp trong những
ứng dụng công suất nhỏ như động cơ DC,…

Hình 4.10 : Sơ đồ chân IC L298


+ 4 chân INPUT : IN1, IN2, IN3, IN4 được nối lần lượt với các chân 5,7,10,12
của L298. Đây là các chân nhận tín hiệu điều khiển

44
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

+ 4 chân OUTPUT: OUT1, OU2, OUT3, OUT4 được nối với các chân 2,3,13,14
của L298. Các chân này được nối với động cơ
+ hai chân ENA và ENB dùng để điều khiển các mạch cầu H trong L298. Nếu
mức logic “1” thì cho phép mach cầu H hoạt động, nếu mức logic “0” thì mạch cầu H
không hoạt động
+ ENA=0: động cơ không hoạt động
+ ENA=1:
Khi IN1=1, IN2=0 động cơ quay thuận
Khi IN1=0, IN2=1 động cơ quay nghịch
Tương tự cho 2 chân còn lại
Sơ đồ nguyên lý IC L298

Hình 4.11: Sơ đồ nguyên lý IC L298


- Để thực hiện các yêu cầu quay trái, quay phải, tiến, lùi chúng ta cần thêm mạch
logic để tận dụng tối đa 2 cổng PWM của con Atmega8. Ở đây sử dụng cổng
NOT ( 74HC04) và cổng ANG ( 74HC08 )

Hình 4.12: Mạch logic dùng 74HC04 và 74HC08

45
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

Bảng 3: Mô tả trạng thái hoạt động của xe


Trạng DIR DIR PWM PWM 74HC04 74HC08 DC1 DC2
thái 1 2 1 2
Tiến 0 0 990 990 1Y:1 1Y:990-2Y:0 Quay thuận Quay thuận
2Y:1 3Y:990-4Y:0 990 990
Lùi 1 1 990 990 1Y:0 1Y:0-2Y:990 Quay nghịch Quay nghịch
2Y:0 3Y:0-4Y:990 990 990
Trái 0 0 250 750 1Y:1 1Y:250-2Y:0 Quay thuận Quay thuận
2Y:1 3Y:750-4Y:0 250 750
Phải 0 0 750 250 1Y:1 1Y:750-2Y:0 Quay thuận Quay thuận
2Y:1 3Y:250-4Y:0 750 250

Sơ đồ nguyên lý toàn mạch:

Hình 4.13: Sơ đồ nguyên lý toàn mạch

46
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

4.2.3 Lập trình Firmwave


Dựa vào bảng mô tả các trạng thái hoạt động của xe ta có lưu đồ thuật toán sau

Hình 4.14: Lưu đồ thuật toán cho Atmega8


4.2.4 Thiết kế xe
Xe được thiết kế như hình:

Hình 4.15: Mô hình xe

47
Đề tài: Xe điều khiển từ xa dùng Android GVHD: Ths. Tôn Thất Bảo Đạt

CHƯƠNG 5: KẾT QUẢ & HƯỚNG PHÁT TRIỂN


CỦA ĐỀ TÀI
5.1 ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN ĐỀ TÀI
Đề tài “ XE ĐIỀU KHIỂN TỪ XA DÙNG ANDROID” , là một đề tài có tính
dụng cao, có thể sử dụng cho nhiều bài toán thực tế như điều khiển các thiết bị trong nhà,
giám sát và điều khiển các thiết bị báo cháy, báo ga, ổn định nhiệt độ,… Việc xây dựng
thiết bị liên quan đến nhiều mảng kiến thức.
Kết quả đạt được:
- Nắm rõ được giao tiếp Bluetooth
- Tìm hiểu về hệ điều hành android
- Thực hiện viết ứng dụng trên Android
- Thực hiện kết nối và trao đổi dữ liệu giữa Smartphone và Module Bluetooth
- Viết firmwave xử lý dùng Atmega8
- Thiết kế mạch driver cho động cơ DC
Nhược điểm:
- Chưa nhớ được địa chỉ module Bluetooth vào điện thoại nên mỗi lần kết nối phải
tiến hành dò tìm tốn thời gian
- Chưa kiểm soát được xe
- Xe thiết kế khá đơn giản, chưa nhiều tính năng
5.2 HƯỚNG PHÁT TRIỂN
Đề tài đã đạt được một số kết quả nhất định, song để đáp ứng cho một bài toán thực
tế còn chưa thật tối ưu.
- Nghiên cứu hệ điều hành thời gian thực để tăng khả năng xử lý, cũng như tính
linh hoạt của nó
- Tích hợp thêm nhiều chức năng cho xe như: truyền hình ảnh, đo nhiệt độ, độ ẩm,
khoảng cách vật cản, đo độ nghiêng
- Phản hồi được các sự cố về ứng dụng android

TÀI LIỆU THAM KHẢO


1. DKS Groups, Giáo trình vi điều khiển AVR
2. Android Developer, http://developer.android.com/index.html
3. Droid Viet, http://www.droidviet.com/

48

You might also like