Tải bản đầy đủ

Robot tự hành bám đường

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ VIỄN THÔNG
**********************

BÁO CÁO ĐỒ ÁN THIẾT KẾ 2
Đề tài: Robot tự hành bám đường

Giáo viên hướng dẫn:

PGS.TS Nguyễn Văn Khang

Lớp:

KSTN – ĐTVT – K58

Nhóm 8

Hà Nội 1-2017


LỜI NÓI ĐẦU


Ngày nay, nền khoa học kỹ thuật đang phát triển như vũ bão, rất nhiều các phát
minh, sản phẩm công nghệ mới ra đời. Các robot tự động đang là xu hướng công nghệ
tương lai vì sự tiện dụng, khả năng hoạt động chính xác trong các điều khiện khắc
nghiệt với con người. Một yêu cầu cơ bản của các robot tự động là khả năng hoạt động
theo chức năng mong muốn mà không cần sự can thiệp của con người trong quá trình
làm việc. Đây là cơ hội, cũng là thách thức cho các sinh viên kỹ thuật nói chung và
sinh viên trường Đại học Bách Khoa Hà Nội nói riêng. Để chuẩn bị kiến thức và kỹ
năng cần thiết trong bối cảnh nói trên, môn học Đồ án 2 được đưa vào chương trình
đào tạo kỹ sư Điện tử viễn thông để cho sinh viên môi trường làm việc sáng tạo, thực
hiện các ý tưởng kỹ thuật. Trong thời lượng môn học này, dưới sự hướng dẫn vủa
PGS.TS Nguyễn Văn Khang, nhóm chúng em thực hiện đề tài Thiết kế xe tự hành bám
đường, thực hiện nhiệm vụ di chuyển theo một quỹ đạo định sẵn.
Xe tự hành bám đường là một trong những ý tưởng robot cơ bản nhất, có thể
được sử dụng cho mục đích vận tải trong quy mô nhỏ, hoặc kết hợp với các modun
khác để thực hiện các nhiệm vụ phức tạp hơn.
Chúng em xin cảm ơn sự hướng dẫn, chia sẻ tận tình của PGS.TS Nguyễn Văn
Khang giúp chúng em hoàn thành đề tài này. Trong thời lượng hạn chế của môn học,
với kỹ năng và kinh nghiệm ít ỏi, chúng em không thể tránh khỏi những sai sót, rất
mong được sự góp ý của thầy và các bạn để đề tài được hoàn thiện hơn.
Hà Nội, tháng 1 năm 2017

1


MỤC LỤC
LỜI NÓI ĐẦU............................................................................................................... 1
MỤC LỤC.................................................................................................................... 2
DANH MỤC HÌNH VẼ, BẢNG BIỂU.........................................................................3
I.

Giới thiệu chung....................................................................................................4

II.

Cơ sở lý thuyết...................................................................................................4

1.

Bộ điều khiển PID............................................................................................4



2.

Phương pháp điều xung PWM (Pulse Width Modulation) [1]..........................6

3.

Bộ cảm biến ánh sáng sử dụng LED thu phát...................................................7

III.

Ý tưởng...............................................................................................................8

IV.

Yêu cầu...............................................................................................................8

1.

Yêu cầu chức năng...........................................................................................8

2.

Yêu cầu phi chức năng.....................................................................................9

V.

Sơ đồ khối, chức năng các khối.........................................................................9
2.

Sơ đồ khối........................................................................................................9

3.

Chức năng các khối..........................................................................................9

VI.

Thiết kế, lựa chọn linh kiện, thực hiện...........................................................10

1.

Thiết kế cơ khí................................................................................................10

2.

Thiết kế, lựa chọn linh kiện phần cứng điều khiển.........................................12

3.

Thiết kế thuật toán, lập trình điều khiển.........................................................21

VII.

Kết quả..........................................................................................................26

1.

Robot:.............................................................................................................26

2.

Kết quả chạy và đánh giá:...............................................................................26

KẾT LUẬN CHUNG..................................................................................................26
TÀI LIỆU THAM KHẢO...........................................................................................27
PHỤ LỤC.................................................................................................................... 27

2


DANH MỤC HÌNH VẼ, BẢNG BIỂU

Figure 1 Minh họa bộ điều khiển PID............................................................................4
Figure 2 Đồ thị xung PWM...........................................................................................7
Figure 3 Hình ảnh cặp LED thu phát.............................................................................8
Figure 4 Mô tả hoạt động cảm biến của cặp LED thu phát [2]......................................8
Figure 5 Sơ đồ khối robot tự hành bám đường..............................................................9
Figure 6 Khung cơ khí của robot.................................................................................12
Figure 7 Sơ đồ nguyên lý khối hạ áp...........................................................................12
Figure 8 Sơ đồ thiết kế cảm biến.................................................................................13
Figure 9 Hình ảnh bộ cảm biến dò đường....................................................................14
Figure 10 Mô tả cách điều hướng xe tự hành [2].........................................................15
Figure 11 Mô tả cách kết nối L293D...........................................................................16
Figure 12 Sơ đồ nguyên lý khối điều khiển công suất.................................................17
Figure 13 Sơ đồ nguyên lý khối điều khiển trung tâm.................................................19
Figure 14 Khối tạo dao động.......................................................................................20
Figure 15 Mạch reset...................................................................................................20
Figure 16 Sơ đồ nguyên lý khối hiển thị trạng thái......................................................20
Figure 17 Mạch điều khiển robot.................................................................................21
Figure 18 Phần cứng hoàn thiện robot tự hành bám đường.........................................21
Figure 19 Lưu đồ thuật toán đọc cảm biến và hiển thị trạng thái.................................22
Figure 20 Thuật toán điều khiển PID...........................................................................23
Figure 21 Thuật toán điều khiển động cơ.....................................................................24
Figure 22 Thuật toán tổng quát cho MCU...................................................................25

Table 1 Bảng chọn chi tiết cơ khí cho robot.................................................................11

3


I.

Giới thiệu chung
Robot đã và đang xuất hiện trong cuộc sống của chúng ta từ lâu và ngày càng trở

thành một phần không thể thiếu trong cuộc sống hiện đại. Chúng đã góp phần mình
vào công cuộc lao động, chính robot đang làm nên một cuộc cách mạng về lao động,
khoa học, và đang phục vụ đắc lực cho các ngành khoa học như: Khoa học quân sự,
khoa học giáo dục, các ngành dịch vụ, giải trí.
Trong đề tài này, nhóm em sẽ thực hiện thiết kế một robot tự hành bám đường từ
các bước đầu tiên như đưa ra yêu cầu chức năng, phi chức năng… cho tới bước đưa ra
sản phẩm mẫu hoàn chỉnh.
II. Cơ sở lý thuyết
1. Bộ điều khiển PID
PID là cách viết tắt của các từ Proportional (tỉ lệ), Integral (tích phân),
Differential (đạo hàm). PID là phương pháp xuất hiện từ sớm nhưng vẫn được sử
dụng phổ biến trong các ứng dụng điều khiển tự động. Để hiểu về bản chất của
giải thuật điều khiển PID, xét ví dụ điều khiển vị trí của một xe sử dụng động cơ
DC trên đường thẳng, động cơ sinh ra lực để đẩy xe chạy tới hoặc lui trên đường
thẳng như hình dưới

Figure 1 Minh họa bộ điều khiển PID
Gọi F là lực do động cơ tạo ra điều khiển xe. Ban đầu xe ở vị trí A, đặt ra
nhiệm vụ là điều khiển lực F một cách tự động để đẩy xe đến đúng vị trị O với
các yêu cầu: chính xác, nhanh, ổn định
Nếu vị trí của xe xa với vị trí mong muốn (điểm O), hay nói cách khác là sai
số e lớn, ta cần tác động lực F lớn để đưa xe về O. Ý tưởng đơn giản là dùng
quan hệ tuyến tính:
(1)
4


Trong đó Kp là một hằng số dương nào đó mà ta gọi là hệ số P (Proportional
gain), e là sai số cần điều chỉnh, ở ví dụ này là khoảng cách từ điểm đích O với vị
trí hiện tại của xe. Mục tiêu điều khiển là đưa e tiến về O càng nhanh càng tốt.
Với Kp lớn thì F cũng lớn và xe nhanh chóng tiến về vị trí O. Tuy nhiên, lực F
lớn sẽ gây ra gia tốc lớn cho xe làm xe đi quá điểm O, lúc này sai số e lại khác 0,
theo đó lực F sẽ lại xuất hiện theo chiều ngược lại để kéo xe lại điểm O. Quá
trình này lặp lại, xe sẽ dao động qua lại quanh điểm O. Đề xuất để giải quyết vấn
đề này là sử dụng thành phần tương tự như “thắng” trong bộ điền khiển. Ý tưởng
lúc này là khi xe ở xa O thì bộ điều khiển sinh lực F lớn nhưng khi xe tiến gần O
thì thành phần “thắng” sẽ giảm tốc độ xe lại. Khi xe dao động quanh điểm O thì
tốc độ xe sẽ cao nhất tại O tức là khi xe tiến về gần O, đạo hàm của sai số e sẽ
tăng nhưng ngược chiều lực F, do vậy ta có thể sử dụng đạo hàm này để làm
thành phần thắng để giảm “độ vọt lố” cho xe, thành phần này là thành phần D
(Difference) trong bộ điều khiển PID. Thêm thành phần D này vào bộ điều khiển,
ta thu được bộ điều khiển PD như sau:
(2)
Trong đó là vận tốc thay đổi của sai số e và Kd là hằng số không âm gọi là hệ
số D (Differential gain).
Lúc này khi xe tiến gần về O, lực F gồm 2 thành phần…. Một vấn đề nảy sinh
là nếu thành phần D quá lớn so với thành phần P hoặc bản thân thành phần P quá
nhỏ khi xe đang tiến gần tới O (chưa tới O) thì xe đã dừng hẳn do không thắng
nổi lực ma sát tĩnh, thành phần D lúc này bằng 0 do e không biến thiên, sai số e
trong tình huống này gọi là sai số trạng thái tĩnh (steady state error). Để khắc
phục tình trạng này, giải pháp đưa ra là đưa thêm vào bộ thành phần có chức
năng “cộng dồn” sai số. Khi sai số trạng thái tĩnh xảy ra, 2 thành phần P và D
không đủ để đáp ứng, thành phần điều khiển mới sẽ “cộng dồn” sai số theo thời
gian và làm tăng lực F theo thời gian. Đến lúc lực F sẽ đủ lớn để thắng ma sát
tĩnh và đẩy xe tiến tiếp về đích O. Thành phần cộng dồn này chính là thành phần
I (Integral) trong bộ điều khiển PID. Lúc này ta có bộ điều khiển đầy đủ là PID:
(3)

5


Tùy vào mục đích và đối tượng điều khiển, các thành phần có thể được bỏ bớt.
Công việc thiết kế bộ điều khiển PID là chọn các hệ số Kp, Kd, và Ki để bộ điều
khiển hoạt động như kỳ vọng (gọi là quá trình PID gain tunning).
Để chọn Kp, Kd, Ki:
- Chọn Kp trước: thử bộ điều khiển P, điều chỉnh để thời gian đáp ứng đủ
nhanh, chấp nhận “độ vọt lố” nhỏ.
- Thêm thành phần D để loại “độ vọt lố”: tăng Kd từ từ, thử nghiệm và
chọn giá trị thích hợp. Có thể xuất hiện sai số trạng thái tĩnh
- Thêm thành phần I : tăng Ki từ bé đến lớn để loại sai số trạng thái tĩnh
nhưng không cho độ vọt lố xuất hiện trở lại
2. Phương pháp điều xung PWM (Pulse Width Modulation) [1]
Là phương pháp điều chỉnh điện áp ra tải, hay nói cách khác là phương
pháp điều chế dựa trên sự thay đổi độ rộng của chuỗi xung vuông, dẫn đến sự
thay đổi điện áp ra.
- Kỹ thuật PWM được sử dụng để điều khiển nhanh chậm của động cơ hay
cao hơn là điều khiển ổn định tốc độ động cơ.
- Các PWM khi biến đổi thì có cùng 1 tần số và khác nhau về độ rộng của
sườn dương hoặc sườn âm
*) Nguyên lý:
Trong khoảng thời gian 0 – t1 , cho mở toàn bộ điện áp nguồn đưa ra tải. Còn
trong khoảng thời gian t1 – T, cắt nguồn cung cấp cho tải. Vì vậy với t 1 thay
đổi từ 0 tới T, toàn bộ hoặc một phần điện áp được cung cấp cho tải.

Figure 2 Đồ thị xung PWM

6


Đồ thị trên là dạng xung điều chế trong 1 chu kỳ thì thời gian xung lên (sườn
dương) nó thay đổi dãn ra hoặc co vào. Như vậy, thời gian xung lên càng lớn
trong 1 chu kỳ càng lớn thì điện áp đầu ra sẽ càng lớn.
: điện áp ra
: điện áp tối đa
: độ rộng xung
: chu kỳ
3. Bộ cảm biến ánh sáng sử dụng LED thu phát
 LED thu:
LED thu hay photodiode thực chất là một tiếp nối p-n có đặc tính thay
đổi độ dẫn khi có ánh sáng kích thích. Trong mạch, LED thu được mắc nối
tiếp với một điện trở lớn và phân cực ngược. Khi bị che sáng thì dẫn điện
yếu, khi có ánh sáng cường độ lớn chiếu vào thì dẫn mạnh. Photodiode có tần
số đáp ứng nhanh, phù hợp để chế tạo bộ dò đường.
 LED phát:
Do sử dụng photodiode nên màu sắc của LED ko quan trọng mà chỉ cần
quan tâm cường độ sáng, ta chọn LED siêu sáng hồng ngoại. Điện áp đặt trên
các LED siêu sáng khoảng 2V, dòng điện qua LED từ 10 tới 15mA, ta chọn
điện trở hạn dòng cho LED:
Chọn Rled = 220
Hình ảnh 1 cặp LED thu phát:

Figure 3 Hình ảnh cặp LED thu phát
Nguyên lý cảm biến ánh sáng sử dụng cặp LED thu phát

7


Hoạt động:
Khi có bề mặt màu trắng
ngay dưới cảm biến (cặp
LED), cường độ tia phản
xạ lớn dẫn tới điện áp ra
của cảm biến lớn. Ngược
lại, điện áp ra của cảm
biến nhỏ khi bề mặt màu
đen. Dựa vào tín hiệu thu
được, vi xử lý có thể
Figure 4 Mô tả hoạt động cảm biến của cặp
phân biệt được các màu.
LED thu phát [2]
III. Ý tưởng
Robot có nhiệm vụ di chuyển theo một quỹ đạo định sẵn được gọi là xe tự hành
bám đường. Robot tự hành bám đường có thể di chuyển theo một đường, đường đi có
thể được nhận biết như một dòng màu đen trên bề mặt trắng ( hoặc ngược lại ) hoặc có
thể là một đường vô hình như một từ trường
IV. Yêu cầu
1. Yêu cầu chức năng
- Sử dụng bộ cảm biến ánh sáng bằng LED thu để nhận biết đường đi
- Robot di chuyển theo theo đường đi từ điểm bắt đầu tới điểm kết thúc (đường đi
là vạch màu đen trên nền trắng)
2. Yêu cầu phi chức năng
a. Công suất tiêu thụ nhỏ, nguồn nuôi pin hoặc ắc quy, duy trì được hoạt động
của Robot trong thời gian dài (1h).
b. Tự điều chỉnh khi lệch khỏi quỹ đạo, độ rộng của quỹ đạo 4cm.
c. Có công tắc bật, tắt và reset robot.
d. Cảm biến nhận biết đường hoạt động chính xác trong điều kiện sáng thay đổi
(trong phòng hay ngoài trời)
e. Kích thước 20cm * 15 cm * 10 cm hoặc nhỏ hơn
f. Chi phí sản xuất : nhỏ hơn 500K
V. Sơ đồ khối, chức năng các khối
2. Sơ đồ khối

8


Figure 5 Sơ đồ khối robot tự hành bám đường
3. Chức năng các khối
a. Khối cảm biến vị trí: nhận biết đường đi thông qua cảm biến ánh sáng
b. Khối điều khiển trung tâm: nhận tín hiệu vào từ khối cảm biến vị trí, thực
hiện thuật toán để điều khiển mạch công suất để đáp ứng
c. Khối điều khiển công suất: nhận tín hiệu từ khối điều khiển trung tâm, điều
khiển công suất khối thực thi
d. Khối hiển thị: nhận tín hiệu từ khối điều khiển trung tâm, thể hiện trạng thái
vị trí của xe
e. Khối thực thi: 2 động cơ độc lập được điều khiển tốc độ bằng khối điều
khiển công suất
f. Khối nguồn: đưa điện áp vào khối hạ áp, cấp nguồn trực tiếp cho khối điều
khiển công suất
g. Khối hạ áp: lấy điện áp từ khối nguồn, đưa ra điện áp 5V để nuôi khối cảm
biến vị trí, khối điều khiển trung tâm, và khối hiển thị
VI. Thiết kế, lựa chọn linh kiện, thực hiện
1. Thiết kế cơ khí
Robot chỉ yêu cầu đơn thuần là bám đường, vì vậy yêu cầu về cơ khí của xe
không cần phải cầu kỳ, chỉ cần đảm bảo độ bền, giá thảnh rẻ.

Lựa chọn phần tử kết cấu:
9


-

Giá đỡ chính kích thước 70mm*85mm.
Hai bánh xe đường kính 35mm gắn vào trục 2 động cơ khác nhau.
Một bánh xe đa hướng gắn ở đầu xe.
2 động cơ một chiều.
Nguồn pin 12V
Mạch CPU thu nhận, phân tích và đưa ra lệnh điều khiển
Mạch cảm biến thu nhận thông tin.
IC điều khiển công suất

10


Bảng lựa chọn chi tiết cơ khí cho robot:
Tên

Số

Thông số

Khung xe

lượng
1
Chất liệu: thép
Kích

Hình ảnh

thước:

70mm*85mm*
50mm

Động cơ DC 2

Động cơ có hộp

và bánh xe

giảm tốc, đường
kính

bánh

xe

35mm

Bánh

dẫn 1

đường

Bu lông, đai
ốc

Table 1 Bảng chọn chi tiết cơ khí cho robot

Khung robot:

11


Figure 6 Khung cơ khí của robot
2. Thiết kế, lựa chọn linh kiện phần cứng điều khiển
a. Khối nguồn:
Sử dụng nguồn pin 12V. Pin được đặt trong cell holder để dễ dàng thay khi
hết pin.
b. Khối hạ áp:
Dùng nguồn 12V từ khối nguồn, sau đó dùng tụ lọc, hạ áp dùng 7805 để lấy
ra điện áp 5V ổn định cung cấp cho khối xử lý trung tâm và bộ cảm biến vị trí
và khối hiển thị.

Figure 7 Sơ đồ nguyên lý khối hạ áp
Nguồn dành cho motor driver điều khiển 2 động cơ được lấy trực tiếp từ pin
c. Khối cảm biến vị trí :
Khối cảm biến vị trí đóng vai trò quan trọng trong điều khiển cho xe đi
đúng theo vạch màu được vẽ sẵn. Cảm biến được thực hiện sử dụng đôi LED
12


phát và thu hồng ngoại (IR Rx/Tx). LED phát phát tia hồng ngoại, phản xạ
trở lại vào LED thu. [2]
Bộ cảm biến vị trí cần nhiều cặp LED thu phát như trên. Ở đề tài này,
chúng em dùng 5 cặp LED làm khối cảm biến vị trí. Giá trị điện áp ra từ các
LED thu được đưa về bộ điều khiển trung tâm để quyết định là vạch đường
hay nền.
(*) Để xe nhận biết đường chính xác, các LED bố trí song song, cần xem
xét khoảng cách giữa các cặp LED thu phát, độ rộng vạch quỹ đạo phải nhỏ
hơn khoảng cách giữa 2 LED ngoài cùng; trong đề tài này, chúng em sử dụng
5 cặp LED, 3 cặp LED giữa cách nhau 2 cm, 2 LED ngoài cùng cách LED ở
trong 4cm . Khoảng cách giữa bộ cảm biến tới bề mặt đường nên nhỏ nhất có
thể, chúng em chọn 0.5cm là đủ để LED nhận biết chính xác vạch màu, nếu
cần thiết phải che chắn các LED cẩn thận để đảm bảo không bị nhiễu, ảnh
hưởng tới kết quả đưa về khối điều khiển trung tâm.
Sơ đồ nguyên lý của cảm biến (1 cặp LED thu phát)

Figure 8 Sơ đồ thiết kế cảm biến

Hình ảnh mạch in khối cảm biến vị trí:

13


Figure 9 Hình ảnh bộ cảm biến dò đường

d. Khối thực thi
Xe tự hành này sử dụng hệ thống 2 động cơ độc lập: bên trái và bên phải.
Với hệ thống này, không cần thiết phải sử dụng bánh xe phía trước để điều
hướng như ô tô hay xe đạp. Để điều hướng cho xe tự hành, 2 động cơ phải quay
với tốc độ khác nhau. Ví dụ nếu động cơ bên phải quay nhanh hơn động cơ bên
trái, xe sẽ rẽ trái. Việc điều khiển xe di chuyển và điều hướng trở thành điều
khiển tốc độ của 2 động cơ DC.
Trong đề tài này, nhóm em điều chỉnh hộp giảm tốc để tốc độ tối đa của động
cơ 115 vòng/phút
14


Figure 10 Mô tả cách điều hướng xe tự hành [2]
e. Khối điều khiển công suất
Bộ điều khiển trung tâm (MCU) không thể điều khiển trực tiếp 2 động cơ, vì
vậy ta sử dụng một IC điều khiển động cơ (motor driver) cho để dễ dàng điều
khiển. Chọn IC điều khiển động cơ là L293D, cho phép điều khiển 2 động cơ
DC. Ta sử dụng kỹ thuật PWM để thay đổi tốc độ của động cơ bằng điều khiển
số từ khối điều khiển trung tâm.
*) IC L293D (motor driver) [3]
L293D là IC tích hợp 2 mạch cầu H trong gói 16 chân. Tất cả các mạch kích,
mạch cầu đều được tích hợp sẵn. L293D có điện áp danh nghĩa cao (lớn nhất
36V) và dòng điện danh nghĩa lớn nhất 1.2A nên thích hợp cho các ứng dụng
công suất nhỏ như các động cơ DC loại nhỏ và vừa. IC L293D phù hợp với
những người thiếu kinh nghiệm làm mạch điện tử.
Có 2 mạch cầu H trên mỗi chip L293D nên có thể điều khiển 2 đối tượng chỉ
với 1 chip. Mỗi mạch cầu bao gồm 1 đường nguồn Vs, một đường current
sensing (cảm biến dòng), phần cuối của mạch cầu H không được nối với GND
mà bỏ trống cho người dùng nối một điện trở nhỏ gọi là sensing resistor.
2 động cơ được nối với các chân OUT, động cơ bên trái nối với OUT1,
OUT2, động cơ bên phải nối với OUT3, OUT4. Các chân EnA, EnB cho phép 2
mạch cầu hoạt động bằng cách kéo lên tín hiệu mức cao.

15


Figure 11 Mô tả cách kết nối L293D
Sơ đồ nguyên lý cho bộ điều khiển công suất:

Figure 12 Sơ đồ nguyên lý khối điều khiển công suất
Chip L293D nhận tín hiệu từ khối điều khiển trung tâm, từ đó đưa ra tín hiệu
thay đổi điện áp vào các động cơ DC để điều khiển tốc độ.
f. Khối điều khiển trung tâm
16


Vi xử lý để thực thi code điều khiển sẽ lấy input từ bộ cảm biến và đưa ra tín
hiệu điều khiển chuyển động của xe. Ta sử dụng một vi điều khiển (MCU) là đủ
đáp ứng yêu cầu. Họ vi điều khiển phổ biến là AVR từ nhà sản xuất Atmel.
Trong đó, ta chọn ATmega8 vì nó vừa đủ đáp ứng yêu cầu về tài nguyên và giá
rẻ.
*) Các tính năng của ATmega8 [4]
- Vi điều khiển 8 bit của AVR hiệu suất cao, tiêu thụ ít năng lượng
- Cấu trúc RISC với
+ 130 lệnh, hầu hết thực thi trong 1 xung nhịp đồng hồ
+ 32x8 thanh ghi
+ Fully static operation
+ Tốc độ làm việc lên tới 16 MIPS với thạch anh 16MHz
+ Hỗ trợ bộ nhân 2-cycle on-chip.
- Dữ liệu và lập trình ko bay hơi
+ 8KB bộ nhớ ISP cho phép 10,000 ghi, xóa
+ Phần mã khởi động tùy chọn với bit khóa độc lập
+ 512 bytes EEPROM cho phép 100,000 lần ghi, xóa
+ 1KB SRAM nội
+ Khóa lập trình cho software security
- Ngoại vi
+ 2 timer/counter 8-bit với các mode: so sánh và chia tần số
+ 1 timer/counter 16-bit với các mode: so sánh, chia tần số và capture
+ Bộ đếm thời gian thực với bộ dao động riêng biệt
+ 3 kênh PWM
+ 8 kênh biến đổi ADC đối với kiểu TQFP và MLF: 6 kênh 10bit, 2 kênh
8bit
+ 6 kênh biến đổi ADC với kiểu PDIP: 4 kênh 10bit, 2 kênh 8bit
+ Giao diện 2 dây hướng byte nối tiếp (byte-oriented two-wire serial
interface)
+ Master/Slave SPI Serial Interface
+ Watchdog-timer có thể lập trình với bộ dao động on-chip riêng biệt
+ Bộ so sánh tương tự on-chip
- Tính năng đặc biệt
+ Power-on reset và brown-out dectection
+ Bộ tạo dao động RC hiệu chỉnh
17


+ Chế độ ngắt ngoài – trong
+ 5 sleep modes: idle, giảm nhiễu ADC, tiết kiệm năng lượng, powerdown và standby.
- I/O:
+ 23 programmable I/O lines
+ 28-lead PDIP, 32-lead TQFP, and 32-pad MLF
- Nguồn cấp: 4.5 – 5.5V
- Speed Grades: 0 – 16MHz
- Công suất tiêu thụ tại 4MHz, 3V, 25oC
+ Active: 3.6 mA
+ Idle mode: 1.0 mA
+ Power-down mode: 0.5 A
Sơ đồ khối điều khiển trung tâm sử dụng ATmega8

Figure 13 Sơ đồ nguyên lý khối điều khiển trung tâm
Các tín hiệu từ bộ cảm biến vị trí được đưa vào PortC từ 0 tới 4 (tích hợp sẵn bộ
ADC).
Vi điều khiển ATmega8 có 3 kênh PWM, sử dụng 4 port, PD0 tới PD3 và 2 port
PB1 và PB2 để làm input vào khối điều khiển công suất.
Vi điều khiển sử dụng PB0 và PD từ 4 với 7 để đưa ra tín hiệu vào khối hiển thị.
Để vi điều khiển hoạt động chính xác, nhóm sử dụng bộ tạo dao động ngoài
thay vì dao động nội. Xung dao động được đưa vào XTAL1, 2 của ATmega8.

18


Figure 14 Khối tạo dao động
Ngoài ra, xe tự hành này có mạch reset để khởi động lại xe

Figure 15 Mạch reset
g. Khối hiển thị
Khối hiển thị gồm 5LED thể hiện trạng thái của xe:

Figure 16 Sơ đồ nguyên lý khối hiển thị trạng thái
Bảng mạch điều khiển robot:
19


Figure 17 Mạch điều khiển robot
Hình ảnh phần cứng hoàn thiện của robot:

Figure 18 Phần cứng hoàn thiện robot tự hành bám đường
3. Thiết kế thuật toán, lập trình điều khiển
Ý tưởng tổng quát:
Khi xe hoạt động, khối cảm biến vị trí gửi về khối điều khiển trung tâm cụ thể
hơn là vi điều khiển dữ liệu về độ lệch của xe so với đường dưới dạng dãy 5 bit. Độ
lệch của xe là độ lệch của bit 1 so với vị trí giữa của dãy bit. Vi điều khiển dựa vào độ
lệch này mà đưa ra tín hiệu tới bộ điều khiển công suất để thay đổi điện áp vào 2 động
cơ để điều hướng cho xe đi đúng đường.
Một phương pháp hiệu quả, ổn định để thực hiện việc điều khiển này là sử dụng bộ
điều khiển PID.
20


a. Giải thuật đọc cảm biến và điều khiển hiển thị trạng thái
Lưu đồ thuật toán:

Figure 19 Lưu đồ thuật toán đọc cảm biến và hiển thị trạng thái
Việc đọc dữ liệu được thực hiện nhờ hàm readADC() có sẵn trong thư viện adc.h.
Điều khiển các LED trong khối hiển thị nhờ các hàm LEDon(), LEDoff() đã được xây
dựng trong thư viện led.h.
b. Giải thuật điều khiển PID
Thuật toán điều khiển PID lấy 2 giá trị đầu vào là cur_value: giá trị thu
được từ khối cảm biến và req_value: giá trị mong muốn, đưa ra giá trị pid để
điều hướng xe.
Lưu đồ thuật toán điều khiển PID

21


Figure 20 Thuật toán điều khiển PID
pGain, iGain, dGain tương ứng là các giá trị Kp, Ki, Kd trong bộ điều khiển
PID. Qua thử nghiệm thực tế, nhóm em lấy các giá trị gain như sau: pGain = 200, iGain
= 0.15, dGain = 120.
eInteg và ePrev là các biến global để phục vụ tính thành phần đạo hàm và tích
phân trong bộ điều khiển PID.
c. Thuật toán điều khiển công suất 2 động cơ
Lưu đồ thuật toán điều khiển công suất

22


Figure 21 Thuật toán điều khiển động cơ
Thuật toán điều khiển công suất sử dụng các hàm có sẵn trong thư viện motor.h.
Hàm MotorA(uint8_t dir, uint8_t speed) điều khiển 1 motor có 2 tham số đầu vào
dir và speed. Trong đó tham số dir là chiều quay của motor, nhận các giá trị:
MOTOR_STOP – dừng, MOTOR_CW – xoay theo chiều kim đồng hồ, MOTOR_CCW
– xoay ngược chiều kim đồng hồ; tham số speed kiểm soát tốc độ quay, nhận các giá trị
nguyên từ 0 tới 255, trong đó nếu speed = 255 tức là quay với tốc độ lớn nhất có thể, và
tốc độ giảm dần khi giá trị speed nhỏ đi.
23


Hàm MotorB() tương tự như hàm MotorA(). Hai hàm này đã được xác định trước
động cơ mà nó sẽ điều khiển.
Dựa theo thuật toán này, khi xe không lệch khỏi đường thì xe chạy thẳng với công
suất cực đại.
d. Lập trình điều khiển cho MCU ATMega8
Lưu đồ thuật toán điều khiển:

Figure 22 Thuật toán tổng quát cho MCU
Các hàm InitADC(), MotorInit(). LEDInit() là các hàm được định nghĩa trong các
thư viện adc.h, motor.h, led.h nhằm khởi tạo các port điều khiển.
Khi xe chạy, ta kỳ vọng đường sẽ ở dưới phần giữa xe tức là giá trị cảm biến kỳ
vọng là 3 nên hàm PID lấy giá trị req_value = 3
Để giảm thiểu tính toán cho vi điều khiển mà vẫn đảm bảo kiểm soát xe đi đúng
đường, sau mỗi chu kỳ điều khiển thì có delay 10ms.
VII. Kết quả
24


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×