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

XE điều KHIỂN FOLLOW ME (có code)

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 (900.38 KB, 40 trang )

ĐỒ ÁN TỐT NGHIỆP

XE ĐIỀU KHIỂN “FOLLOW ME”

1


MỤC LỤC

2


DANH MỤC CÁC HÌNH VẼ

DANH MỤC CÁC BẢNG BIỂU

3


DANH MỤC CÁC TỪ VIẾT TẮT

GPS

Global Positioning System

I2C

Inter-integrated Circuit

LCD


Liquid Crystal Display

NMEA

National Marine Electronics Assocition

UART

Universal Asynchronous Receiver-Transmitter

4


ĐỒ ÁN TỐT NGHIỆP
Trang 5/37

CHƯƠNG 1.

GIỚI THIỆU ĐỀ TÀI

1.1 Giới thiệu
Xe điều khiển là một trong các loại robot quen thuộc, được sử dụng với
nhiều mục đích khác nhau, có thể ứng dụng trong đời sống từ những việc nhỏ
nhặt đến những việc con người không thể làm được.

Hình 1-1 Xe golf “follow me”[5]

Hình 1-2 Cách hoạt động[9]

Xe điều khiển Follow Me



ĐỒ ÁN TỐT NGHIỆP
Trang 6/37

Xe điều khiển “Follow me” là xe hay robot tự động đi theo người điều khiển,
hoạt động nhờ sự định hướng của la bàn số và tọa độ GPS của xe với người
thông qua đường truyền bluetooth. Nó còn có thể phụ giúp mang, di chuyển đồ
vật.
Xe “Follow me”:
-

Ưu điểm: điều khiển qua bluetooth, đáp ứng nhiều nhu cầu, phục vụ đời sống,
ứng dụng nhiều mục đích.

-

Khuyết điểm: hoạt động dựa trên GPS nên chỉ sử dụng ở ngoài trời thoáng, sai
số la bàn nếu gần các thiết bị có trường điện từ.
Đề tài sử dụng chíp vi điều khiển Atmega328p, cảm biến la bàn số
HMC5883L, điều khiển qua module bluetooth HC-05, module GPS NEO7.
1.2 Mục tiêu đề tài
Thiết kế mạch vi điều khiển Atmega328p, hiểu được cảm biến là bàn số, tìm
hiểu dữ liệu GPS cũng như các công thức tính toán, biết được thuật toán hoạt
động định hướng giữa la bàn và tọa độ GPS.
Lấy dữ liệu tọa độ từ module GPS chuyển qua vi điều khiển bằng module
bluetooth, thiết kế xe có thể ứng dụng thực tế.
1.3 Hướng thực hiện đề tài
Đọc tài liệu tìm hiểu cảm biến la bàn số HMC5883L, module GPS NEO7, vi
điều khiển Atmega328p, lấy thông tin GPS của smartphone.

Tìm hiểu thuật toán tìm đường giữa hướng của la bàn số và tọa độ GPS, củng
cố kỹ năng lập trình, đọc hiểu datasheet, tài liệu liên quan, củng cố kỹ năng thiết
kế mạch, vẽ mô hình xe.

Xe điều khiển Follow Me


ĐỒ ÁN TỐT NGHIỆP
Trang 7/37

CHƯƠNG 2.

THIẾT KẾ ĐỀ TÀI

1.4 Sơ đồ khối
1.1.1 Sơ đồ khối

GPS
HC-05

Xe “Follow Me”
GPS
La bàn
HC-05
LCD

Hình 2-2 Sơ đồ khối của hệ thống

Vi điều khiển


Màn hình LCD
Xe điều khiển Follow Me


ĐỒ ÁN TỐT NGHIỆP
Trang 8/37

Hình 2-3 Sơ đồ khối của xe

Nguồn(pin)

Bluetooth
HC-05

UART

Hình 2-2 Sơ đồ khối phía phát

Xe điều khiển Follow Me

Vi điều khiển

UART

M


ĐỒ ÁN TỐT NGHIỆP
Trang 9/37


1.1.2 Chức năng các khối
Phần phía phát: sử dụng 1 vi điều khiển đọc giá trị của module GPS, truyền
chuỗi thông tin qua bluetooth bằng module HC-05. Hai module bluetooth tự
động kết nối với nhau sau vài giây khi cấp nguồn.
Khối Bluetooth HC-05: truyền nhận thông tin chuỗi GPS.
Khối vi điều khiển: Atmega 328P đọc dữ liệu bluetooth, GPS và cảm biến la
bàn, xử lý số liệu và xuất tín hiệu điều khiển động cơ.
Khối nguồn (pin): sử dụng pin lipo 11,1V cung cấp cho động cơ và toàn
mạch.
Khối L298: nhận tín hiệu điều khiển, sử dụng mạch cầu H điều khiển động
cơ DC.
Khối động cơ: sử dụng 2 động cơ DC giảm tốc, là thành phần tạo sự di
chuyển của mô hình.
1.5 Tìm hiểu các thành phần, module
1.1.3 Vi điều khiển Atmega328P
Đồ án dùng chíp vi điều khiển Atmega328P 8-bit, nhỏ nhẹ, đủ cung cấp các
điều kiện để đọc, xử lý tín hiệu và điều khiển.
Atmega328p là một trong những vi điều khiển họ AVR mới, sản xuất bởi
hãng ATmel, là 1 trong những dòng vi điều khiển 8 bit nhưng mạnh mẽ, được hỗ
trợ bootloader và ngôn ngữ lập trình C,C++.

Hình 2-3 Atmega328P [8]

Xe điều khiển Follow Me


ĐỒ ÁN TỐT NGHIỆP
Trang 10/37

Bảng 2-1 Tóm tắt Atmega328P [8]


-

Điện áp hoạt động

-

Digital I/O pin

-

PWM Digital I/O Pins

-

Analog Input Pins

-

Cường độ dòng điện trên mỗi I/O pin

-

Kết nối

-

Flash Memory

-


SRAM

-

EEPROM

-

Tốc độ

Xe điều khiển Follow Me

1.8-5 V
14
6
6
20 mA
I2C, SPI, UART
32KB
2KB
1KB
16MHz


ĐỒ ÁN TỐT NGHIỆP
Trang 11/37

1.1.4 Cảm biến la bàn số HMC5883L
Cảm biến HMC5883L là cảm biến la bàn gồm 3 trục cảm biến điện trở từ và

có bộ chuyển đổi ADC 12 bit.
HMC5883L có kích thước nhỏ gọn, dùng để xác định phương hướng, có thể
ứng dụng trong máy bay điều khiển, điện thoại thông minh, các thiết bị định
hướng cá nhân, robot tìm đường.
Cảm biến la bàn cho phép xuất các dữ liệu thô của 3 trục x, y, z từ đó có thể
tính toán dữ liệu theo nhu cầu sử dụng dựa vào datasheet.
Cảm biến HMC5883L dùng truyền thông kết nối I2C với vi điều khiển với
tốc độ nhanh 160Hz, độ chính xác cao đến 1 hay 2 độ, độ phân giải tính toán ±8
gauss.
Giao tiếp I2C (Inter-integrated Circuit): là một chuẩn giao tiếp ở phạm vi
ngắn, tốc độ truyền nhận cao, giao thức kiểu Multi-Master Multi-Slave, chỉ sử
dụng hai dây SCL và SDA để truyền nhận dữ liệu, tiết kiệm chân giao tiếp cho
vi điều khiển và có thể nối nhiều thiết bị trên cùng một bus I2C.
Cảm biến kết nối với vi điều khiển theo chuẩn giao tiếp I2C, SCL nối với
chân 28, SDA nối với chân 27.

Hình 2-4 Cảm biến la bàn số HMC5883L [7]

Cảm biến la bàn số HMC5883L gồm 5 chân, đề tài chỉ dùng 4 chân: 2 chân
nguồn với mức điện áp 3-5 V, 2 chân truyền nhận dữ liệu SDA và SCL.

Xe điều khiển Follow Me


ĐỒ ÁN TỐT NGHIỆP
Trang 12/37

1.1.5 GPS (Global Positioning System)
GPS là hệ thống định vị toàn cầu, xác định vị trí dựa trên vị trí của các vệ
tinh nhân tạo do Hoa Kỳ thiết kế,xây dựng, quản lý và cho phép mọi người sử

dụng một số chức năng miễn phí toàn cầu.
Trong một thời điểm, tọa độ của một điểm trên bề mặt trái đất sẽ được xác
định nếu xác định được khoảng cách từ điểm đó đến ít nhất 3 vệ tinh.

Hình 2-5 GPS [5]

Các vệ tinh bay quanh trái đất theo một quỹ đạo chính xác, phát tín hiệu
thông tin xuống. Các máy thu GPS tiếp nhận dữ liệu và tính toán lượng giác xác
định được vị trí người dùng.
Máy thu GPS hay các module GPS phải nhận được tín hiệu ít nhất của 3 vệ
tinh để tính được kinh độ và vĩ độ, càng nhận được nhiều vệ tinh thì càng tính
được nhiều thông tin của người sử dụng.
Đề tài sẽ sử dụng module GPS NEO 7 để thu tín hiệu GPS từ các vệ tinh.
Mạch GPS NEO 7 có kích thước nhỏ gọn, tích hợp sẵn anten thu sóng nhưng
phải đặt anten ở nơi thoáng đãng không bị chướng ngịa vật che trên đầu.

Xe điều khiển Follow Me


ĐỒ ÁN TỐT NGHIỆP
Trang 13/37

Mạch GPS NEO 7 có độ ổn định và khả năng bắt sóng cao, chuẩn giao tiếp
UART với vi điều khiển. Mạch sẽ trả về một chuỗi dữ liệu NMEA thu được từ
vệ tinh, từ đó lập trình giải mã chuỗi để tìm được thông tin cần thiết.

Hình 2-6 Module GPS NEO 7 [6]

Chuỗi NMEA là 1 chuỗi giao tiếp hay có thể gọi là ngôn ngữ giao tiếp giữa
các thiết bị như máy đo vận tốc, hướng gió, la bàn, máy thu GPS do Hiệp hội

điện tử hàng hải quốc gia Mỹ (National Marine Electronics Assocition) định
nghĩa và quản lý.
Chuỗi NMEA sử dụng chuỗi mã ASCII đơn giản, truyền tuần tự theo một
chiều duy nhất trong một thời điểm, chuỗi bắt đầu bởi dấu $, các số liệu cách
nhau bởi dấu phẩy và khoảng trắng.

Hình 2-7 Chuỗi NMEA [9]

Xe điều khiển Follow Me


ĐỒ ÁN TỐT NGHIỆP
Trang 14/37

Phân tích chuỗi NMEA:
-

GPGGA là Global Positioning System Fix Data chứa các dữ liệu nâng
cao độ chính xác của vị trí.

-

UTC Time: thời gian hiện tại

-

Latintude: vĩ độ dạng ddmm.mmmm

-


N/S-EW Indicator: các hướng Đông, Tây, Nam, Bắc.

-

Longtitude: kinh độ dạng ddmm.mmmm

-

Position Fix: ≠0 là sự hợp lệ của chuỗi.

-

HDOP: độ chính xác của vị trí, càng nhỏ càng tốt.

-

Checksum: kiểm tra tính hợp lệ của dữ liệu nhận được

Đề tài sẽ sử dụng dữ liệu kinh độ, vĩ độ của GPS để tính toán các thông tin vị
trí dựa vào việc giải mã chuỗi NMEA.
1.1.6 Module bluetooth HC-05

Hình 2-8 Module bluetooth HC-05 [3]

Đề tài sẽ sử dụng giao thức bluetooth để truyền nhận tín hiệu giữa người
dùng và xe; và sử dụng module bluetooth HC-05 do module này có chức năng
vừa là slave vừa là master nên có thể dễ dàng áp dụng 1 trong 2 kiểu truyền
nhận.

Xe điều khiển Follow Me



ĐỒ ÁN TỐT NGHIỆP
Trang 15/37

Module HC-05 có tính phổ biến cao, là bluetooth thế hệ 2.0, hoạt động ở tần
số 2.4GHz, khoảng cách truyền khi không có vật cản là 10-12m. Module HC-05
rất phổ biến hiện nay, được sử dụng nhiều trong các dự án ứng dụng với phạm vi
nhỏ.
1.1.7 Động cơ

Hình 2-9 Động cơ GA25 100RPM [3]

Đề tại sẽ dùng động cơ DC 12V GA25 để làm phần chuyển động cho xe di
chuyển.
Động cơ GA25:
-

-

Điện áp hoạt động: 3-12V
Tốc độ: 100RPM (100 vòng/phút ở điện áp 12V)
Do tốc độ động cơ hơi chậm nhưng sẽ được moment khỏe, có thể tải được
nhiều, dòng tải lớn nên sử dụng mạch điều khiển động cơ có dòng chịu tải tốt;
trong để tài sẽ sử dụng IC l298 để làm mạch điều khiển động cơ.
- Động cơ có giá đỡ, trục nối bánh xe và sử dụng bánh xe loại 65mm.

1.1.8 Nguồn cung cấp

Xe điều khiển Follow Me



ĐỒ ÁN TỐT NGHIỆP
Trang 16/37

Hình 2-10 Pin lipo 11.1 V [3]

Xe sẽ sử dụng pin lipo 3S là nguồn nuôi chính cho toàn bộ mạch.
Dòng xả tối đa của pin là 2.2×25=55A, dung lượng 2200mA, điện áp từ
10.6V đến 12.6V, độ bền tốt để hoạt động lâu dài và dễ dàng sạc lại.
Ngoài ra, đề tài sẽ sử dụng mạch hạ áp để chuyển từ nguồn pin xuống 5V
cung cấp cho vi điều khiển cùng các module ngoại vi.

Xe điều khiển Follow Me


ĐỒ ÁN TỐT NGHIỆP
Trang 17/37

CHƯƠNG 3.

LẬP TRÌNH VÀ THIẾT KẾ HỆ THỐNG

1.6 Mô hình đề tài
Yêu cầu: gửi dữ liệu GPS thông qua bluetooth của 2 module bluetooth HC05, đọc và tính toán góc của la bàn số, xử lý dữ liệu GPS của module, tính toán,
lập trình xe chạy đến một vị trí định sẵn, lập trình xe chạy theo vị trí người sử
dụng.
Mục đích: hiểu rõ hệ thống GPS cũng như các cách ứng dụng nó, hiểu được
các công thức lượng giác tính toán vị trí, điều hướng.
1.7 Nguyên lí hoạt động

1.1.9 Sơ đồ nguyên lí

Hình 3-4 Sơ đồ nguyên lí

1.1.10

Xe điều khiển Follow Me


ĐỒ ÁN TỐT NGHIỆP
Trang 18/37

Lưu đồ giải thuật
Bắt đầu

S
Kiểm tra kết nối bluetooth

Đ
GPS nhận được
GPS của xe

Vi Điều Khiển
Tính góc la bàn

Tính góc xoay và khoảng cách (>3m)
S

Đ
Xe dừng


PID hiệu chỉnh tốc độ, hướng xoay của xe

L298, động cơ

LOOP
LCD

Hình 3-5 Lưu đồ giải thuật của xe

Xe điều khiển Follow Me


ĐỒ ÁN TỐT NGHIỆP
Trang 19/37

Bắt đầu

S
Kiểm tra kết nối Bluetooth

Đ

S
Kiểm tra dữ liệu GPS

Vi điều khiển

LOOP
HC-05 truyền dữ liệu GPS


Hình 3-3 Lưu đồ giải thuật phía phát

Xe điều khiển Follow Me


ĐỒ ÁN TỐT NGHIỆP
Trang 20/37

1.1.11 Nguyên lý hoạt động
Xe điều khiển “Follow me” hoạt động dựa trên thuật toán tìm đường kết hợp
giữa tọa độ vi trí GPS và điều hướng la bàn số, giúp xe có thể nhận biết hướng
đi và khoảng cách đến vị trí người sử dụng điện thoại.
Trước hết, người sử dụng và xe phải được kết nối bluetooth với nhau thông
qua module bluetooth HC-05. Sau đó, vi điều khiển phía phát gửi chuỗi GPS
sang cho phía xe, giải mã sẽ thu được kinh độ, vĩ độ của người sử dụng.
La bàn số sẽ cho ra được góc lệch so với cực Bắc, giống các la bàn thông
thường sẽ chỉ ra các góc tương ứng với 4 hướng Đông, Tây, Nam, Bắc, đề tài sẽ
quy về -180o - 0o - 180o tương ứng 1 vòng tròn để tiện tính toán.
Vi điều khiển đọc, giải mã chuỗi NMEA sẽ lấy được kinh độ, vĩ độ của
module GPS đặt trên xe. Qua đó, chúng ta sẽ có 2 vị trí tọa độ là tọa độ của xe
và tọa độ của điện thoại. Xe sẽ chạy tới tọa độ của điện thoại.
Đồ án sẽ dùng công thức Haversine tính khoảng cách giữa hai tọa độ địa lý.
Hai tọa độ A(lat1,long1) và B(lat2,long2) tương ứng với 2 tọa độ GPS của xe và
điện thoại.
Công thức Havesine được tính toán như sau :









R là bán kính Trái Đất, quy ước là 6371 km.
∆lat = lat2 –lat1
∆long = long2 – long1
h = sin2 + cos (lat1)*cos (lat2)*sin
c = 2* atan2 (, )
d = R*c, trong đó d là khoảng cách giữa 2 điểm.
Các giá trị tọa độ phải được đổi từ góc sang radian, hàm atan2(x,
y) tương đương arctan.

Xe điều khiển Follow Me


ĐỒ ÁN TỐT NGHIỆP
Trang 21/37

Sử dụng công thức tính được khoảng cách giữa xe và người dùng, khi xe đi
đúng hướng thì khoảng cách sẽ nhỏ dần và đến 1 khoảng cách nhất định sẽ dừng
lại. Do sai số của cả hai thiết bị GPS nên đồ án sẽ dùng khoảng cách nhỏ hơn 3m
để xe dừng lại.
Để biết được hướng hay góc từ xe đến người dùng, đồ án sẽ dùng công thức
tính góc xoay (Bearing angle) của 2 tọa độ so với góc Bắc 0 o. Công thức được
tính như sau :
 x = sin (∆long)*cos (lat2)
 y = cos (lat1)*sin(lat2) – sin(lat1)*cos(lat2)*cos(∆long)
 Góc so với góc 0o = atan2(x, y)*
Khi biết được góc giữa xe và người so với góc Bắc, chúng ta truyền góc

bearing vào hệ PID của xe, xe sẽ chạy theo góc bearing được điều chỉnh bởi hệ
vòng kín PID.
1.1.12 Kiểm tra, các bước thực hiện, thiết kế mô hình xe
Viết chương trình đọc giá trị thô 3 trục của la bàn số và tính toán theo 2 trục
song song với mặt đất để có được góc la bàn từ 0→360 độ. Chuyển đổi góc
0→180 và -180→0. Tiếp theo, viết chương trình cho xe luôn chạy theo 1 góc
cho trước dựa theo thuật toán PID và hiệu chỉnh các hệ số PID ổn định.
Ở phía phát, khi nhận được tín hiệu GPS, vi điều khiển sẽ lấy một chuỗi
thông tin GPS để gửi qua bluetooth. Có thể thêm một vài điều kiện gửi chuỗi
thông tin để thích hợp truyền nhận với phía xe.
Đối với module GPS NEO7 đặt trên xe di chuyển, chúng ta sẽ kết nối với vi
điều khiển theo giao tiếp UART và module sẽ trả về các giá trị 1 giây 1 lần, viết
chương trình giải mã chuỗi NMEA để lấy giá trị vĩ độ, kinh độ.

Xe điều khiển Follow Me


ĐỒ ÁN TỐT NGHIỆP
Trang 22/37

Hình 3-4 Bán kính sai số của GPS NEO7

Hình 3-5 Sai số tọa độ của GPS NEO7

Xe điều khiển Follow Me


ĐỒ ÁN TỐT NGHIỆP
Trang 23/37


Hình trên cho thấy được độ chính xác của module GPS NEO7 sử dụng phần
mềm chuyên dụng của nhà sản xuất. Hình ảnh cho thấy được độ sai số của tọa
độ vị trí gồm vĩ độ và kinh độ; sai số trong khoảng 12m là ổn định. Do sai số
khá lớn so với phạm vi đường truyền của bluetooth nên cũng gây khó khăn việc
tính toán các giá trị.
Sau khi lấy được tọa độ của module GPS, tiền hành viết chương trình cho xe
chạy tới 1 điểm cố định cho trước tọa độ. Sau đó, khi có sự ổn định, chúng ta kết
hợp với tọa độ di chuyển nhận được từ bluetooth.
Tính toán khoảng cách và góc xoay khi có được 2 tọa độ GPS của xe và
người dùng, truyền góc xoay vào hệ PID để hệ thống tự điều chỉnh tốc độ động
cơ để xe có the xoay đúng hướng với người dùng.
Mô hình xe được vẽ 2D trên AutoCad và nguyên liệu là mica 3mm:

Hình 3-6 Bản vẽ xe

1.1.13 Kết quả, thiết kế, gia công mạch

Xe điều khiển Follow Me


ĐỒ ÁN TỐT NGHIỆP
Trang 24/37

Sau khi kiểm thử và kết hợp viết chương trình giữa các module, chúng ta sẽ
vẽ mạch in để thu gọn và có hình thức đẹp hơn.

Hình 3-7 Mặt dưới của mạch

Hình 3-8 Mặt trên gồm các linh kiện


Mạch được vẽ trên phần mềm Proteus, trên mạch gồm: vi điều khiển, mạch
IC L298 điều khiển động cơ DC và các chuẩn giao tiếp với các module.

Xe điều khiển Follow Me


ĐỒ ÁN TỐT NGHIỆP
Trang 25/37

Hình 3-9 Mô hình xe và mạch phát

Trên xe có gắn thêm màn hình LCD để hiện thị 2 tọa độ GPS, góc la bàn, góc
giữa 2 tọa độ so với cực Bắc và vòng LED để chỉ độ lệch của xe so với góc 0o.

Xe điều khiển Follow Me


×