Tải bản đầy đủ (.docx) (62 trang)

Điều khiển xe mô hình từ xa bằng điện thoại android và bluetooth

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.5 MB, 62 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH

BÁO CÁO ĐỒ ÁN MÔN HỌC 2
Đề tài: XE ĐIỀU KHIỂN TỪ XA DÙNG ĐIỆN THOẠI
ANDROID VÀ BLUETOOTH.

GVHD : Ths.NGUYỄN THANH BÌNH.
SVTH : LÊ TẤN ĐẠT.
MSSV : 12141047.

Tp.Hồ Chí Minh, ngày

tháng 1 năm 2016


MỤC LỤC


LIỆT KÊ HÌNH ẢNH
Hình

Trang

Hình 1: Khả năng kết nối các thiết bị qua Bluetooth…………………………………...4
Hình 2: Mặt trước và sau của Module Blutooth HC05…………………………………5
Hình 3: Sơ đồ chân PIC16F887…………………………………………………….…..6
Hình 4: Thanh ghi RCSTA……………………………………………………………..8
Hình 5: Tóm tắt chức năng các bit trong thanh ghi…………………………………….8
Hình 6: Sơ đồ khối của khối nhận dữ liệu PIC16F887………………………………..10


Hình 7: Dạng song nhận dữ liệu………………………………………………………11
Hình 8: Sơ đồ khối PWM của PIC16F887……………………………………………13
Hình 9: Dạng sóng PWM……………………………………………………………..14
Hình 10: Giao diện lập trình CCS………………………………………………….….15
Hình 11: Các phiên bản của hệ điều hành android…………………………………....17
Hình 12: Kiến trúc hệ điều hành Android…………………………………………….18
Hình 13: Môi trường lập trình cho Android…………………………………………..19
Hình 14: AndroidManifest.xml……………………………………………………….20
Hình 15: Vòng đời của một Activity………………………………………………….22
Hình 16: Sơ đồ phần cứng của hệ thống………………………………………………24
Hình 17: Sơ đồ nguyên lý khối nguồn………………………………………………...26
Hình 18: Sơ đồ nguyên lý khối xữ lý trung tâm………………………………………27
Hình 19: Trở treo……………………………………………………………………...28
Hình 20: Cửa sổ thiết kế giao diện Android Studio………………………….………..33
Hình 21: Mục chỉnh sữa thuộc tính của các control…………………………………..33
Hình 22: Giao diện màn hình tiêu đề…………………………………………………34
Hình 23: Activity login………………………………………………………………..35
Hình 24: Activity điều khiển………………………………………...…………….….36
Hình 25: Các file Java trong Project……………………………………………….….36
Hình 26: Giao diện Proteus 7.8………………………………………………….…….40
Hình 27: Cách lấy linh kiện trong Proteus 7.8…………………………………….…..41
Hình 28: Sơ đồ nguyên lý khối nguồn và khối xử lý trung tâm………………………42
Hình 29: Sơ đồ mạch in khối nguồn và điều khiển trung tâm………………………...42
Hình 30: Kết quả thi công phần cứng…………………………………………………43
Hình 31: Kết quả thi công phần mềm…………………………………………………44
Hình 32: Vi điều khiển PIC16F887…………………………………………………...46
Hình 33: Bluetooth HC 05…………………………………………………………….46
Hình 34: Driver L298…………………………………………………………………47
Hình 35: Động cơ DC được lắp ghép với bánh xe……………………………………47



ĐỒ ÁN MÔN HỌC 2

LỜI CAM ĐOAN VÀ CÁM ƠN.
Đề tài này là do tôi tự thực hiện dựa vào một số tài liệu và không sao chép từ tài
liệu hay công trình đã có trước đó. Nếu có sao chép tôi hoàn toàn chịu trách nhiệm.
Em xin chân thành cảm ơn thầy NGUYỄN THANH BÌNH đã tận tình hướng dẫn, chỉ bảo,
và tạo mọi điều kiện thuận lợi giúp chúng em hoàn thành đồ án này với kết quả tốt nhất.

SVTH: LÊ TẤN ĐẠT-1241047

Trang 4


ĐỒ ÁN MÔN HỌC 2

CHƯƠNG 1 : GIỚI THIỆU YÊU CẦU – GIỚI HẠN CỦA
ĐỀ TÀI
1.1 GIỚI THIỆU
-

-

Trong những năm gần đây công nghệ truyền nhận dữ liệu không dây đang có
những bước phát triển mạnh mẽ, góp công lớn trong việc phát triển các hệ thống
điều khiển, giám sát từ xa, đặc biệt là các hệ thống thông minh. Hiện nay, có khá
nhiều công nghệ không truyền nhận dữ liệu không dây như RF, Wifi, Bluetooth,
NFC,…Trong đó, Bluetooth là một trong những công nghệ được phát triển từ lâu
và luôn được cải tiến để nâng cao tốc độ cũng như khả năng bảo mật. Trên thị
trường Việt Nam hiện nay chưa có nhiều sản phẩm điều khiển thiết bị không dây,

đa số những sản phẩm hiện có đều là nhập khẩu từ nước ngoài với giá thành cao.
Việc nghiên cứu và thiết kế sản phẩm ứng dụng công nghệ không dây có ý nghĩa
lớn. Do đó em quyết định chọn đề tài “ Điều khiển xe từ xa bằng điện thoại
Android và Bluetooth”
Đề tài ứng dụng công nghệ Bluetooth phổ biến trên nhiều thiết bị, đặc biệt điểm
mới của đề tài so với các sản phẩm hiện có là điều khiển thông qua điện thoại giúp
tận dụng những chiếc SmartPhone có sẵn của người dùng.
- Yêu cầu đề tài:
• Thiết kế xe mô hình gọn nhẹ và hoạt động ổn định.
• Phần mềm điều khiển trên điện thoại dung lượng nhỏ, giao diện đơn
giản, dễ dàng sử dụng. Hỗ trợ nhiều dòng điện thoại chạy hệ điều
hành Android.

1.2 GIỚI HẠN
-

Hiện nay, trên thị trường có khá nhiều sản phẩm có chức năng điều khiển thiết bị
bằng điện thoại di động. Bên cạnh đó do em chỉ mới làm quen với lập trình
Android nên sản phẩm của em chỉ có một số chức năng cơ bản:
• Xe di chuyển với bốn hướng cơ bản Tiến, Lùi, Trái, Phải.
• Phần mềm kết nối với Bluetooth cố định biết trước địa chỉ.
• Phần mềm chỉ gửi dữ liệu xuống Bluetooth.
• Cho phép duy nhất một tài khoản sử dụng cố định.
- Một số tính năng chưa có trên sản phẩm:
• Chưa di chuyển đa hướng được.
• Phần mềm chưa chọn kết nối với Bluetooth bất kỳ.
• Phần mêm chưa cập nhật trạng thái từ bộ điều khiển trung tâm.
• Chưa cho phép đăng ký sử dụng chương trình.

SVTH: LÊ TẤN ĐẠT-1241047


Trang 5


ĐỒ ÁN MÔN HỌC 2

: CƠ SỞ LÝ THUYẾT
2.1 CÔNG NGHỆ KHÔNG DÂY BLUETOOTH.

1.2.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.

1.2.2 Đặc điểm của công nghệ Bluetooth.
2.1.1.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ị kết nối có thể lên đến 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.
- 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, 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ợ.
2.1.1.2 Nhược điểm.
- Khoảng cách kết nối còn ngắn so với các công nghệ kết nối không dây khác.
SVTH: LÊ TẤN ĐẠT-1241047

Trang 6


ĐỒ ÁN MÔN HỌC 2
-

1.2.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.

Hình 1: Khả năng kết nối các thiết bị qua Bluetooth


1.2.4 Lịch sử phát triển Bluetooth.
Blutooth 1.0 (7/1999): 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.
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).

SVTH: LÊ TẤN ĐẠT-1241047

Trang 7


ĐỒ ÁN MÔN HỌC 2
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.
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ẩnWifi
thế hệ đầu tiên, phạm vi hiệu quả nhất chỉ trong vòng 10m.
Bluetooth 4.0 (30/06/2010): 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.

1.2.5 Module Bluetooth HC 05
2.1.5.1 Giới thiệu về Module Bluetooth HC 05.

Module Bluetooth HC-06 được thiết kế để chuyển đổi giao tiếp nối
tiếp không đồng bộ và thành giao tiếp không dây Bluetooth và ngược
lại.

Hình 2: Mặt trước và sau của Module Blutooth HC05.
2.1.5.2 Đặt điểm kỹ thuật của Module Blutooth HC05.
 Điện thế hoạt động của UART 3.3 - 5V.
 Dòng điện khi hoạt động: khi Pairing 30 mA, sau khi pairing hoạt động truyền nhận
bình thường 8 mA
 Baudrate UART có thể chọn được: 1200, 2400, 4800, 9600, 19200, 38400, 57600,
115200
SVTH: LÊ TẤN ĐẠT-1241047

Trang 8


ĐỒ ÁN MÔN HỌC 2
 Kích thước của module chính: 28 mm x 15 mm x 2.35 mm
 Dải tần sóng hoạt động: 2.4GHz
 Bluetooth protocol: Bluetooth Specification v2.0+EDRo
 Thiết lập mặt định:
- Baud rate: 9600

- Check parity: None
- Bits: 8
- Stop bit: 1
- Pairing code: 1234

1.3 VI ĐIỀU KHIỂN PIC16F887A.

1.3.1 Tổng quan về PIC16F887.
[1] PIC16F887 là vi điều khiển 8-bit có kiến trúc Harvard của
Microchip có những thông số kỹ thuật như sau:
Clock hoạt động tối đa 20MHz.
Chu kỳ máy bằng bốn lần chu kỳ xung clock.
Chip có nhiều dạng vỏ khác nhau, loại chip được sử dụng trong đề tài là
loại 40 chân PDIP.
Điện áp hoạt động rộng từ 2V đến 5.5V.
Bộ nhớ dữ liệu và bộ nhớ chương trình tách biệt nhau, bus địa chỉ cũng
như bus dữ liệu là riêng biệt. Bộ nhớ chương trình Flash 8K ô nhớ cho
phép ghi 100,000 lần. Mỗi ô nhớ có 14 bit. Bộ nhớ dữ liệu RAM có 512
Byte gồm các thanh ghi chức năng đặc biệt và các thanh ghi đa mục
đích. Ngoài ra PIC16F887 được tích hợp 256 Byte EEPROM cho phép
ghi đến 1,000,000 lần.
35 chân I/O của 5 port điều khiển là PortA, PortB, PortC, PortD, PortE.
Bộ chuyển đổi ADC 10-bit với 14 kênh.
Bộ timer0 8-bit, bộ timer1 16-bit và bộ timer2 8-bit.
Module Capture, Compare và PWM
Module Enhanced USART hỗ trợ RS-485, RS-232.

SVTH: LÊ TẤN ĐẠT-1241047

Trang 9



ĐỒ ÁN MÔN HỌC 2

1.3.2 Sơ đồ chân PIC16F887.

Hình 3 : Sơ đồ chân PIC16F887.

1.3.3 Truyền dữ liệu EUSART.
Vi điều khiển PIC16F887 có khối truyền dữ liệu đồng bộ, bất đồng bộ đa năng cải tiến.

Khối truyền dữ liệu nối tiếp đa năng bao gồm bộ phát xung clock tạo tốc độ truyền, các
thanh ghi dịch và bộ đệm dữ liệu rất cần thiết để thực hiện truyền hoặc nhận dữ
liệu nối tiếp một cách độc lập. Khối EUSART cũng có thể xem là giao tiếp truyền
dữ liệu nối tiếp SCI (Serial Communication Interface), có thể định cấu hình cho truyền
dữ liệu bất đồng bộ song công hoặc đồng bộ bán song công .
Truyền dữ liệu song công được sử dụng để truyền dữ liệu giữa các hệ thống ngoại vi như
thiết bị đầu cuối CRT và máy tính.
Truyền dữ liệu đồng bộ bán song công được sử dụng để truyền dữ liệu giữa các hệ thống
ngoại vi như các bộ ADC, DAC, bộ nhớ nối tiếp Eeprom hoặc các bộ vi điều khiển. Các
thiết bị này thường không có nguồn xung clock bên trong để tạo tốc độ baud nên cần
phải sử dụng nguồn xung clock từ bên ngoài.
 Khối truyền dữ liệu của PIC16F887 có khả năng:




Hoạt động truyền và dữ liệu song công bất đồng bộ.
Bộ đệm nhận chứa được 2 kí tự.
Bộ đệm phát chứa 1 kí tự.


SVTH: LÊ TẤN ĐẠT-1241047

Trang 10


ĐỒ ÁN MÔN HỌC 2








Có thể lập trình chiều dài dữ liệu 8 bit hoặc 9 bit.
Có khối phát hiện địa chỉ 9 bit.
Có khối phát hiện bộ đệm nhận bị tràn.
Có khối phát hiện lỗi khung của kí tự nhận về.
Có thể hoạt động chế độ chủ ở kiểu truyền dữ liệu đồng bộ bán song công.
Có thể hoạt động chế độ tớ ở kiểu truyền dữ liệu đồng bộ bán song công.
Có thể lập trình chọn cực cho xung clock ở chế độ truyền đồng bộ.

- Khối EUSART được sử dụng cho các cấu trúc mở rộng theo sau, thích hợp cho hệ thống

bus mạng kết nối cục bộ (LIN: Local Interconnect Network):






Tự động phát hiện và thiết lập tốc độ baud.
Có khối đánh thức PIC khỏi chế độ ngủ.
Phát kí tự ngừng 13 bit. [1]

Thanh ghi điều khiển và trạng thái của khối nhận RCSTA.
- Tổ chức thanh ghi nhận dữ liệu.

Hình 4: Thanh ghi RCSTA.

SVTH: LÊ TẤN ĐẠT-1241047

Trang 11


ĐỒ ÁN MÔN HỌC 2

Hình 5: Tóm tắt chức năng các bit trong thanh ghi
Khối nhận dữ liệu EUASRT.
Dữ liệu nhận vào ở chân RX/DT và điều khiển khối khôi phục dữ liệu. Khối khôi phục dữ
liệu là khối dịch tốc độ cao hoạt động gấp 16 lần tốc độ baud, trong khi đó thanh ghi
nhận dữ liệu (RSR:Receive Shift Register) hoạt động dịch dữ liệu cùng với tốc độ baud.
Khi tất cả 8 bit hoặc 9 bit dữ liệu được dịch vào thì ngay lập tức sẽ được truyền cho bộ
đệm chứađược 2 kí tự dạng FIFO, nếu có thêm một ký tự nữa mà phần mềm chưa đọc 2
byte đã nhận thì sẽ phátsinh lỗi tràn. Phần mềm không thể truy xuất bộ đệm FIFO và
thanh.

Khởi tạo quá trình nhận dữ liệu:
Thiết lập giá trị cho cặp thanh ghi SPBRGH và SPBRG và BRGH và bit BRG16 để cótốc
độ baud mong muốn.

- Nếu nhận dữ liệu 9 bit thì thiết lập bit cho phép RX9 lên 1.
- Làm bit CREN lên 1 để cho phép nhận dữ liệu.
Nếu muốn sử dụng ngắt thì cho bit RCIE lên 1, cho phép ngắt ngoại vi và cho phép ngắt
toàn cục.
Cờ báo ngắt RCIF sẽ lên 1 khi một kí tự chuyển từ RSR sang bộ đệm, ngắt sẽ phát
sinhnếu được phép.
- Đọc thanh ghi trạng thái nhận RCSTA để kiểm tra các cờ báo lỗi.
- Nhận dữ liệu 8 bit từ thanh ghi RCREG.
- Nếu có lỗi tràn xảy ra thì xóa bit cho phép nhận CREN.
Khởi tạo quá trình nhận dữ liệu ở chế độ phát hiện 9 bit địa chỉ: chế độ này thường được
dùngtrong hệ thống truyền theo chuẩn RS-485.
Thiết lập giá trị cho cặp thanh ghi SPBRGH và SPBRG và BRGH và bit BRG16 để cótốc
độ baud mong muốn.
Cho phép truyền dữ liệu bất đồng bộ bằng cách xóa bit SYNC làm bit SPEN lên 1.
Nếu muốn sử dụng ngắt thì cho bit RCIE lên 1, cho phép ngắt ngoại vi và cho phép ngắt
toàn cục.
-





-

-


-

SVTH: LÊ TẤN ĐẠT-1241047


Trang 12


ĐỒ ÁN MÔN HỌC 2

Hình 6: Sơ đồ khối của khối nhận dữ liệu PIC16F887.
-

Nếu nhận dữ liệu 9 bit thì thiết lập bit cho phép RX9 lên 1.
Cho phép phát hiện địa chỉ 9 bit bằng cách cho bit ADDEN lên 1.
Làm bit CREN lên 1 để cho phép nhận dữ liệu.
Cờ báo ngắt RCIF sẽ lên 1 khi một kí tự chuyển từ RSR sang bộ đệm, ngắt sẽ phát
sinhnếu được phép.
Đọc thanh ghi trạng thái nhận RCSTA để kiểm tra các cờ báo lỗi. Bit thứ 9 luôn là 1.
Nhận dữ liệu 8 bit từ thanh ghi RCREG, phần mềm sẽ tiến hành kiểm tra địa chỉ của thiết
bị.
Nếu có lỗi tràn xảy ra thì xóa bit cho phép nhận CREN.
Nếu đúng địa chỉ của thiết bị thì tiến hành xóa bit ADDEN để cho phép nhận dữ liệu
vàobộ đệm và phát sinh ngắt.

SVTH: LÊ TẤN ĐẠT-1241047

Trang 13


ĐỒ ÁN MÔN HỌC 2
Hình 7: Dạng song nhận dữ liệu.
Giải thích dạng sóng:
Dạng sóng tín hiệu thứ nhất: là dữ liệu nhận về ở chân RX/DT, có 3 kí tự được nhận liên

tục.
Dạng sóng tín hiệu thứ hai: cho biết sau khi nhận xong 1 kí tự (nhận xong bit stop) thì nạp
lưuvào thanh ghi bộ đệm.
Dạng sóng tín hiệu thứ ba: cho biết tín hiệu RCIDL xuống mức 0 khi phát hiện bit start và
lên 1khi phát hiện bit stop.
Dạng sóng tín hiệu thứ năm: cho biết cờ nhận RCIF lên mức 1 khi nhận được 1 kí tự và
xuốngmức 0 khi đã tiến hành đọc xong các kí tự đã nhận.
Dạng sóng tín hiệu thứ sáu: cho biết bit báo lỗi tràn OERR lên mức 1 khi nhận tới 3 kí tự.
Dạng sóng tín hiệu thứ bảy: cho biết khi xóa bit CREN thì xóa luôn bit báo lỗi tràn OERR.
Dạng sóng tín hiệu thứ tư: cho biết tiến hành đọc 2 byte dữ liệu (đã mất 1 byte), khi đọc
xong thìxóa luôn cờ báo ngắt.


-

1.3.4 Ngắt trong vi điều khiển PIC16F887.
2.2.4.1. Tổng quan về ngắt.
- Ngắt sử dụng trong vi xử lý hay vi điều khiển hoạt động như sau: vi xử lý hay vi điều

khiển luônthực hiện một chương trình thường gọi là chương trình chính, khi có tác động
từ bên ngoài bằng phầncứng hay tác động bên trong làm cho vi xử lý ngừng thực hiện
chương trình chính để thực hiện mộtchương trình khác (còn gọi là chương trình phục vụ
ngắt ISR) và sau khi thực hiện xong vi xử lý trở lạithực hiện tiếp chương trình chính.
Quá trình làm gián đoạn vi xử lý thực hiện chương trình chính xemnhư là ngắt.
- Có nhiều tác động làm ngừng chương trình chính gọi là các nguồn ngắt, ví dụ khi
timer/counterđếm tràn sẽ phát sinh yêu cầu ngắt.
- Ngắt đóng một vai trò quan trọng trong lập trình điều khiển, vi xử lý hay vi điều khiển sử
dụngngắt để đáp ứng nhiều sự kiện quan trọng khác trong mà vẫn đảm bảo thực hiện
được chương trình chính.
- Ví dụ trong khi vi điều khiển đang thực hiện chương trình chính thì có dữ liệu từ hệ thống

khác gởi đến, khi đó vi điều khiển ngừng chương trình chính để thực hiện chương trình
phục vụ ngắt nhận dữ liệu xong rồi trở lại tiếp tục thực hiện chương trình chính.
2.2.4.2. Các nguồn ngắt của PIC16F887.
Vi điều khiển PIC 16F887 có nhiều nguồn ngắt:
Ngắt ngoài RB0/INT.
Ngắt của timer T0 khi đếm tràn.
Ngắt của timer T1 khi đếm tràn.
Ngắt của timer T2 khi giá trị đếm bằng giá trị của thanh ghi PR2.
Ngắt portB thay đổi.
Ngắt truyền và nhận dữ liệu EUSART.
SVTH: LÊ TẤN ĐẠT-1241047

Trang 14


ĐỒ ÁN MÔN HỌC 2
-

Ngắt của bộ chuyển đổi ADC.
Ngắt khi ghi dữ liệu vào Eeprom.
Ngắt của khối CCP tăng cường.
Ngắt đánh thức CPU với nguồn công suất cực thấp.
Ngắt của khối truyền dữ liệu đồng bộ MSSP.

1.3.5 Điều khiển độ rộng xung PWM.
Nguyên lý điều chế độ rộng xung PWM
- Nguyên lý điều chế độ rộng xung là mạch tạo ra xung vuông có chu kỳ là hằng số nhưng
hệ số công tác (còn gọi là hệ số chu kỳ - duty cycle) có thể thay đổi được. Sự thay đổi
của hệ số chu kỳ làm thay đổi điện áp trung bình hoặc dòng điện trung bình.
- Sự thay đổi điện áp hoặc dòng trung bình dùng để điều khiển các tải như động cơ DC thì

làm thay đổi tốc độ động cơ, điều khiển bóng đèn thì làm thay đổi cường độ sáng của
bóng đèn, …
2.2.5.2. Cấu trúc khối điều chế độ rộng xung PWM.
2.2.5.1.

SVTH: LÊ TẤN ĐẠT-1241047

Trang 15


ĐỒ ÁN MÔN HỌC 2

-

-

Hình 8: Sơ đồ khối PWM của PIC16F887.
Khối PWM gồm có 2 mạch so sánh: mạch so sánh 2 dữ liệu 8 bit nằm bên dưới và mạch
so sánh 2dữ liệu 10 bit nằm bên trên.
Mạch so sánh 8 bit sẽ so sánh giá trị đếm của Timer2 với giá trị của thanh ghi PR2
(PeriodRegister), giá trị trong Timer2 tăng từ giá trị đặt trước cho đến khi bằng giá trị
của PR2 thì mạch so sánhsẽ kích flip flop RS làm ngõ ra RC2/CCP1 lên mức 1. Đồng
thời nạp giá trị 10 bit từ thanh ghi CCPR1Lsang thanh ghi CCPR1H.
Timer2 bị reset và bắt đầu đếm lại cho đến khi giá trị của Timer2 bằng giá trị của
CCPR2H thìmạch so sánh sẽ reset flip flop RS làm ngõ ra RC2/CCP1 về mức 0.
Quá trình này lặp lại liên tục để tạo ra dạng sóng PWM liên tục.
Dạng sóng điều chế PWM:

Hình 9: Dạng sóng PWM.
SVTH: LÊ TẤN ĐẠT-1241047


Trang 16


ĐỒ ÁN MÔN HỌC 2
- Chu kỳ không thay đổi, muốn thay đổi thời gian xung ở mức 1 thì ta thay đổi hệ số chu kỳ

(DutyCycle). Khi hệ số chu kỳ thay đổi thì điện áp hay dòng trung bình thay đổi.
- Hệ số chu kỳ càng lớn thì dòng trung bình càng lớn, nếu điều khiển động cơ sẽ làm thay
đổi tốc độ.
- Chú ý : PIC 16F887 có 2 khối PWM nên các tên như CCPx, thanh ghi CCPRxL,
CCPRxH với x có thể là 1 hoặc 2.
2.2.5.3. Công thức tính chu kỳ PWM.
TOSC là chu kỳ của tụ thạch anh tạo dao động.
PVTMR2 (Prescale Value) giá trị chia trước của timer2
2.2.5.4. Tính hệ số chu kỳ xung PWM.
- Hệ số chu kỳ được thiết lập bởi giá trị lưu trong thanh ghi 10 bit gồm thanh ghi 8 bit
CCPRxL và 2bit còn lại là bit thứ 4 và thứ 5 lưu ở trong thanh ghi CCPxCON – kí hiệu
là CCPxCON<5:4>.
- Công thức:
-

-

Trong đó:

Chú ý: ký hiệu <5:4> cho biết vị trí bit thứ 5 và thứ 4.

1.3.6 Phần mềm lập trình CCS.
2.2.6.1 Giới thiệu về CCS.

CCS là trình biên dịch lập trình ngôn ngữ C cho Vi điều khiển PIC của hãng Microchip.

Chương trình là sự tích hợp của 3 trình biên dich riêng biết cho 3 dòng PIC khác nhau
đó là:
- PCB cho dòng PIC 12‐bit opcodes.
- PCM cho dòng PIC 14‐bit opcodes.
- PCH cho dòng PIC 16 và 18‐bit.
Tất cả 3 trình biên dich này đuợc tích hợp lại vào trong một chương trình bao gồm cảtrình
soạn thảo và biên dịch là CCS, phiên bản mới nhất là PCWH Compiler Ver 5.052.
Giống như nhiều trình biên dich C khác cho PIC, CCS giúp cho người sử dụng nắm bắt
nhanh được vi điều khiển PIC và sử dụng PIC trong các dự án. Các chương trình diều
khiển sẽ được thực hiện nhanh chóng và đạt hiệu quả cao thông qua việc sử dụng ngôn
ngữ lạp trình cấp cao – Ngôn ngữ C.
SVTH: LÊ TẤN ĐẠT-1241047

Trang 17


ĐỒ ÁN MÔN HỌC 2

Hình 10: Giao diện lập trình CCS.

2.2.6.2 Các lệnh về Ngắt và UART của PIC16F887 trong CCS.

Các lệnh Ngắt.
- ENABLE_INTERRUPTS(LEVEL): có chức năng cho phép ngắt.
- DISABLE_INTERRUPTS(LEVEL): có chức năng cấm ngắt.
- LEVEL là các biến số được định nghĩa trong file thư viện *.h
- Ví dụ:




ENABLE_INTERRUPTS(GLOBAL);
ENABLE_INTERRUPTS(INT_RDA);
Các lệnh UART.
- SETUP_UART(BAUD, STREAM): thiết lập tốc độ baud cho EUART.
Ví dụ: setup_uart(9600);
- PUTS(STRING): có chức năng gởi từng kí tự ra port nối tiếp, sau khi gởi
xong chuỗi kí tự thì tự động gởithêm kí tự RETURN (có mã là 13) và kí
tự xuống hàng (LINE-FEED có mã là 10).
Ví dụ: puts(“ | HELLO| ”);
- Value = Getc() : có chức năng chờ cho đến khi có kí tự gởi đến thì nhận.
Ví dụ: kitu = getc();

SVTH: LÊ TẤN ĐẠT-1241047

Trang 18


ĐỒ ÁN MÔN HỌC 2
value = KBHIT(): có chức năng trả về kết quả đúng nếu có kí tự đã nhận
và trả về kết quả sai nếu khôngcó kí tự.
Ví dụ: if (KBHIT) kitu = getc(); // nếu có kí tự thì nhận
 Các lệnh PWM.
- SETUP_CPPx(Mode): Khởi tạo khối CPP x.
- SETUP_TIMER_2: Cấu hình cho timer2.
- SET_TIMERx(value): Thiết lập giá trị bắt đầu cho timer2.
- SET_PWM_DUTY(value): Thiết lập hệ số chu kỳ PWM.
-


1.4 ỨNG DỤNG ANDROID.

1.4.1 Hệ điều hành Android.
 Giới thiệu:
- Android là một hệ điều hành dựa trên nền tảng Linux được thiết kế dành cho các thiết bị

di động có màn hình cảm ứng như điện thoại thông minh và máy tính bảng. Ban đầu,
Android được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài chính từ Google và
sau này được chính Google mua lại vào năm 2005. Android ra mắt vào năm 2007 cùng
với tuyên bố thành lập Liên minh thiết bị cầm tay mở: một hiệp hội gồm các công ty
phần cứng, phần mềm, và viễn thông với mục tiêu đẩy mạnh các tiêu chuẩn mở cho các
thiết bị di động. Chiếc điện thoại đầu tiên chạy Android được bán vào tháng 10 năm
2008.
- Ngoài các phiên bản android mới hiện nay : ngày 3/11/2014 Android 5.0 Lollipop đã ra
mắt và chính thức được cập nhật cho các thiết bị . Và hiện nay phiên bản mới nhất của
android là Android 6.0 Marshmallow được tung ra thị trường vào ngày 5/10/2015.

SVTH: LÊ TẤN ĐẠT-1241047

Trang 19


ĐỒ ÁN MÔN HỌC 2

Hình 11 : Các phiên bản của hệ điều hành android.

 Kiến trúc hệ điều hành Android.

SVTH: LÊ TẤN ĐẠT-1241047


Trang 20


ĐỒ ÁN MÔN HỌC 2

Hình 12: Kiến trúc hệ điều hành Android.
-

Lược đồ trên thể hiện các thành phần của hệ điều hành Android, qua lược đồ
ta có thể thấy hệ điều hành android gồm năm thành phần chính là Aplication, Aplication
framework, libraries, android runtime và linux kernel.
 Công cụ phát triển Android :
- Các bộ công cụ phục vụ việc lập trình ứng dụng trên Android OS gồm:

• Java for Developers 7 (JDK): do các phần mềm chạy trên Android OS đều được phát

triển trên nền tảng ngôn ngữ java nên ta cần bộ thư viện của Java, được cung cấp miễn
phí cho người phát triển phần mềm bởi Oracle.
• Android Studio : bộ công cụ dùng để lập trình, phát triển phần mềm cho Java, được cung
cấp miễn phí từ trang web : “ />• Android software development Kit (Android SDK) plugin: là tập hợp các công cụ và thư

viện để phát triển các ứng dụng cho Android OS. Sau khi cài đặt thì Android SDK sẽ
được tích hợp vào chương trình Android Studio.

SVTH: LÊ TẤN ĐẠT-1241047

Trang 21


ĐỒ ÁN MÔN HỌC 2


1.4.2 Lập trình Android.
-

Ngôn ngữ lập trình chính thức của Android là Java.
Môi trường lập trình cho Android : Trước đây, lập trình với android sử dụng Eclipse và
cài đặt plugin vào để code. Nhưng hiện nay Google đã chính thức release bản Android
Studio riêng (giống như Visual Studio của Microsoft đó), tất cả những gì cần lập trình
cho android cũng như các plug-in đều sẽ được tích hợp và có thể cài mở rộng.

-

Hình 13 : Môi trường lập trình cho Android.
Có thể nói Android Studio là một môi trường phát triển tích hợp (IDE - Integrated
Development Environment) tuyệt vời, được dựa trên một tên tuổi nổi tiếng IntelliJ IDE.
Như tên gọi, Android Studio là một môi trường thiết kế và phát triển ứng dụng cho nền
tảng Android. Môi trường phát triển này rất dễ cài đặt, thiết lập và có thể tạo ra một dự
án (project) mới chỉ sau vài giây.

1.4.3 Các thành phần cơ bản trong một Android Project.
2.3.3.1 AndroidManifest.xml
Trong bất kì một project Android nào khi tạo ra đều có một file AndroidManifest.xml, file

này được dùng để định nghĩa các screen sử dụng, các
permission cũng như các theme cho ứng dụng. Đồng thời nó cũng chứa thông tin về
phiên bản SDK cũng như main activity sẽ chạy đầu tiên.
File này được tự động sinh ra khi tạo một Android project. Trong file manifest bao giờ
cũng có 3 thành phần chính đó là: application, permission và version.
 Dưới đây là nội dung của một file AndroidManifest.xml của 1 chương trình:


SVTH: LÊ TẤN ĐẠT-1241047

Trang 22


ĐỒ ÁN MÔN HỌC 2

Hình 14: AndroidManifest.xml
 Application

Thẻ <application>, bên trong thẻ này chứa các thuộc tính được định nghĩa cho
ứng dụng Android như:
• android:icon = “drawable resource” : Ở đây đặt đường dẫn đến file icon
của ứng dụng khi cài đặt. VD: android:icon = "@mipmap/ic_launcher"
• android:name = “string” : thuộc tính này để đặt tên cho ứng dụng
Android. Tên này sẽ được hiển thị lên màn hình sau khi cài đặt ứng dụng.
• android:theme = “drawable theme” : huộc tính này để đặt theme cho
ứng dụng. Các theme là các cách để hiển thị giao diện ứng dụng.
Ngoài ra còn nhiều thuộc tính khác…

 Permission

SVTH: LÊ TẤN ĐẠT-1241047

Trang 23


ĐỒ ÁN MÔN HỌC 2
Bao gồm các thuộc tính chỉ định quyền truy xuất và sử dụng tài nguyên của
ứng dụng. Khi cần sử dụng một loại tài nguyên nào đó thì trong file manifest của

ứng dụng cần phải khai báo các quyền truy xuất như sau:
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
2.3.3.2 File R.java
File R.java là một file tự động sinh ra ngay khi tạo ứng dụng, file này được sử dụng để
quản lý các thuộc tính được khai báo trong file XML của ứng dụng và các tài nguyên
hình ảnh.
Mã nguồn của file R.java được tự động sinh khi có bất kì một sự kiện nào xảy xa làm thay
đổi các thuộc tính trong ứng dụng.
Chẳng hạn như, bạn kéo và thả một file hình ảnh từ bên ngoài vào project thì ngay lập tức
thuộc tính đường dẫn đến file đó cũng sẽ được hình thành trong file R.java hoặc xoá một
file hình ảnh thì đường dẫn tương ứng đến hình ảnh đó cũng tự động bị xoá.
Có thể nói file R.java hoàn toàn không cần phải đụng chạm gì đến trong cả quá trình xây
dựng ứng dụng.
2.3.3.3 Chu kỳ tồn tại của ứng dụng Android.
Android có cơ chế quản lý các process theo chế độ ưu tiên (priority). Các process có độ ưu
tiên thấp sẽ bị Android giải phóng mà không hề cảnh báo nhằm đảm bảo tài nguyên.
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.
• Bao nhiêu vùng nhớ chiếm lĩnh trong hệ thống.

Các loại tiến trình (Process) của Android.
• Foreground process: là process của ứng dụng hiện thời đang được người dùng tương
tác.

• Visible process: là process của ứng dụng mà activity đang hiển thị đối với người dùng
(onPaused() của activity được gọi).
• Service process: là Service đang running.
• Background process: là process của ứng dụng mà các activity của nó ko hiển thị với
người dùng (onStoped() của activity được gọi).
• Empty process: process không có bất cứ 1 thành phần nào active.
2.3.3.4 Activity

SVTH: LÊ TẤN ĐẠT-1241047

Trang 24


ĐỒ ÁN MÔN HỌC 2
Activity là một thành phần chính của một ứng dụng android, được dùng để hiển thị một

màn hình và nắm bắt các hoạt động xảy ra trên màn hình đó, chẳng hạn như quay số
điện thoại,chụp ảnh, gửi email, hoặc xem một bản đồ.
Một ứng dụng thường bao gồm nhiều activity được ràng buộc lỏng lẻo với nhau. Thông
thường, một trong những activity trong một ứng dựng được quy định như các activity
“chinh”( main activity), được trình bày cho người dung xem khi ứng dụng được chạy lần
đầu. Mỗi activity sau đó có thể bắt đầu activity khác để thực hiện hành động khác nhau.

Hình 15: Vòng đời của một Activity.

SVTH: LÊ TẤN ĐẠT-1241047

Trang 25



×