1. Trang chủ
  2. » Giáo Dục - Đào Tạo

xe tự hành nhận d i ệ n làn đường

29 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Trang 2

Danh sach thanh SHH

vien

Sa

LN

( ) J2

Trang 3

TINH TOAN, THIET KE, CHE TAO, LAP DAT

THUC NGHIEM, DANH GIA VA KINH NGHIEM RUT RA DUOC KHILAM MO HINH

KET LUAN, KIEN NGHI, BUOC PHAT TRIEN

Trang 4

CHUONG 1: MO DAU/TONG QUAN

Trang 5

CHUONG 2: CO SO LY THUYET

ARDUINO

Trang 6

CHƯƠNG 2: CƠ SỞ LÝ

CHAN SO (DIGITAL PIN)

| ——— CHÂN NÓI TIẾP

Trang 7

CHUONG 2: CO SO LY THUYET

L298N

Trang 8

- f= « - a > cv »

~~ r f9 an w 8 tư 5® ee en ` Đb a >

DrowdCam Viindows Chent

Trang 9

CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT

Trang 10

CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT

Sơ đô kết nôi dây dẫn

Trang 11

CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT

Mo hinh xe va gia d@ dién thoai hoàn chỉnh

Trang 12

CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT

int TS = 5; //Khai báo thêm biến command kiểu char ( Lưu trừ được 1 kí tự) doc gid tr: digitalwrite(Ps, HIGH); int PT= 8: gui lén tu Python ( N,L,R)

ant TH = 45; analogwrite(enT, T); toc , 2 motor bên trái quay nhanh hơn 2 motor bén phai giup xe ré phai

int PL = 83; analogwrite(enP, T); { //khai báo 6 biến tương đương các chân để điều khiến các motor thông qua mạch

cầu H bao gồm: 2 biến Enable (enT, enP) và 4 biến(TT, TS, PT, PS) đế thay đối - tị aa

chiều quay của các động cơ Khai báo thêm 5 biến (T,TH,TL,PN,PL) đề điều // wéu command = N thì gửi tín hiệu khiến tới cầu H khiến 4 motor quay cùn| digital Write(TT, LOW); chỉnh nhanh tốc độ của cắc bánh xe khi xe đi thẳng,rẽ trấi,rễ phải toc và đi tới,

//giao tiép Serial voi toc dO 9600 bps

}

pinMode(PS, OUTPUT); // Nếu command = L thi gui tín hiệu khiến tới cầu H khiến 4 motor quay kha j

// thiết lập các chân 3 4 5 § 9 16 là các chân đầu ra toc , 2 motor bền phai quay nhanh hon 2 motor ben trai giúp xe rẻ trái i} MNẾU c nd = 5 thì gửi tín hiêu khiển tới cầu H thiển 4 motor ngừng quay

Trang 13

CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT

int ent = 3: int T = 45; pinMode(enT, OUTPUT);

command == N

int TS int TL = 83; pinMode(TS, OUTPUT);

‹ pinMode(PT, OUTPUT); :

- —" ey e ash DinmMode( inMode(PS, OUTPUT) Ps, , - 4 bánh Xe quay

int enP=10 ; Khai báo các biên

chỉnh sửa nhanh Khai bảo các cung chiêu

ben phải quay [ | trai quay

Khai bao chan arduino é

Bi Be pein a chan dau ra

kêt nôi với mạch câu H Serial begin(9600) ;

Gidtri toc | |-Gitrị tố độ

độ bánh quay { [banh quay

nhanh là TL nhanh là PL

‘quay cham ' quay chậm là

Xe chưa hoạt động là TN PN,

if (Serial.available() > @)

kiêm tra coi có nhận được tín hiệu hay chưa

char command = Serial.read(); |

Trang 14

CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT

goc

cam = cv.VideoCapture(0) src = cam.read()[1]

window_name1= ‘Hinh goc

cv.imshow(window_ name1, src)

Trang 15

CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT

if lines is not None:

for ¡ in range(0, len(lines)):

Hinh2=np.copy(src) rho = lines[i][O][O] #truy

| ee cap rho

Hinh2{:,:,:]=6 theta = lines[i][O][1] #truy

image = cv.blur(src, ksize) x

gay nhieu

dst = cv.Canny(image, 50, 200, None, if (rho>0 and theta<0 76)

lines = cv.HoughLines(dst, 1, np.pi / #gan gia tri cho mang

Trang 16

CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT

theta=theta2[i] cv.COLOR_ BGR2GRAY)

a = math.cos(theta) (thresh, anh_NhiPhan) =

pti = (int(x0 + 480*(-b)), int(yO + 640*(a)))

Trang 17

CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT

Trang 18

CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT

A=(320-Dem1)-(Dem2-320) T=20

if abs(A)<=T and lines is not None: ser.write(b'N’)

Trang 19

CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT

r * f tˆ ry ` £

` Va ø ‘ “

> > 4 4 * ‹

i * J ’ `

7 ` , 4 4 , t4 ` ` f

> W Tự v39

4 ' ‘ ø * ‘ ¢ « * 7 á °« 4 » : 4 " e 4 * `

+ ` & = \ b ; ; ‘ ’ ’ Í Te * ï ` ĩ § X

ie ` , ` « + « ee * ` * *“ự ` ` ⁄ - « « ® - : 4 ` : > 4 w : r ‘ ’ 4 : ` " xã w w ' ’ 4 ' 4

4

ý w

‹ ( 4 + woe e 4 , 6 « í § ` í % + X + ’ ry ý e ' f , - ' '

† , ry ® «4 ` ằẳẲồỒ * ẳẲ * e ¥ ~ 4 ` ` * ` * ` ự ` > ' ~ Fee +\ , ` * “ ' ` ` - > > 4 k& ` ; > '

“ở {dq ` “ 7 í

' 4 4 ’ ; « 4 tạ 4 * 4 , «+ “+ 4 ` § “a 4 tự 4 : i! ( ( ( ' > ` : « ` ' " - „

` 4 ‘ \ 4 ¿ ? W

>? 9 í

4 ` * ‹

= , í : ie ở

+ ory * ( ‘><

4 , ø tớ ø 4 ` > — \ > ` ` ` 3 ø ø ` ` ` > Í ` ' 5% &Š " X " > { 7 ," & : ' " ` "1 >

cee

dữ , )£

` ` ~~, ( : * ‘ +

- * « =ư ^ +, Ắ ` rọ ` ` M* ’ ; - `

Trang 20

CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT

Code Python

17

Trang 21

CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT

Code Python

cv.putText(Hinh2, "Dem2", (Dem2,B-S),cv.FONT_HERSHEY_SIMPLEX,1, (0,0,255), 2, cv LINE_AA )

#Xét các điều kiện đề gửi tín hiệu đến arduno điều khiển xe

#abs(): gia tri tuyệt đối Line is not None là điều kiện có tôn tại đường thẳng

#Điều kiện để xe đi thẳng

if abs(A)<=T and lines is not None:

cv.putText(src, "STRAIGHT", (240,35),cv.FONT_HERSHEY_SIMPLEX,1, (255,0,0), 2, cv LINE AA)

print(‘Thang’)

#Gửi tín hiệu điều khiến xe chạy thẳng

ser.Write(b'N') time.sleep(0.008)

#Điều kiện đề rẽ trái

#Điều kiện đề rẽ phải

#Hién thi src va Hinh2

cv.imshow(window_namel1, src)

cv.imshow(window_namez2, Hinh2)

#Chd phim q Khinhan q thi thoat khdi vong lap

if cv.waitKey(1) & OxFF == ord(‘q’): break

Trang 22

CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT

Arduino UNO

19

Trang 23

CHUONG 4: THUC NGHIEM, DANH GIA VA KINH NGHIEM RUT RA DUOC KHI LAM M

8’ Minh oox §' Hình oo‹

Trang 24

CHUONG 4: THUC NGHIEM, DANH GIA VA KINH NGHIEM RUT RA DUOC KHI LAM MO HINH

Uu diém

Xe có khả năng chạy được trên đường mồ

phóng

Xe có khả năng tự dừng lại khi hết đường line

Xe chạy khá ồn định không lắc ngang nhiều

khi đi thăng, xe vào cua không cán vào line đường

Code arduino và python xử li anh kha tron tru, thoi gian delay 1a rat it

ý» điểm

Xe vào cua chưa thực sự ồn định (chưa thê cua ở

øóc cua lớn)

Tô c độ khi vào cua là cô định nên chưa thực sự phù

hợp với mọi trường hợp

Có thể bị nhiễu nêu xuất hiện 1 đường thang có kích

thước lớn hơn kích thước mà code đã lọc

Do độ trễ của camera nên quá trình xử lý còn có độ trễ

nhỏ (xe không thê chạy được ở tô c độ lớn nhất)

Khi xe gap sự cô bị mất line đường, code không thể

tự nhận biết và khắc phục.

Trang 25

CHUONG 4: THUC NGHIEM, DANH GIA VA KINH NGHIEM RUT RA DUOC KHI LAM MO HINH

Kinh nghiệm rút ra được khi làm mô hình

Ore:idleam

22

Trang 26

CHUONG 5: KET LUAN, KIEN NGHI, BUOC PHAT TRIEN 23

cos

Trang 27

CHUONG 5: KET LUAN, KIEN NGHI, BUOC PHAT TRIEN

Thiết kê phân cứng còn nhiêu khó khăn

Camera của xe không được tôi ưu Hiéu biét vé python chua sau

Viéc giao tiép gitra python va arudino còn nhiêu

| Stn

Ah me

ye

Trang 28

CHUONG 5: KET LUAN, KIEN NGHI, BUOC PHAT TRIEN

Trang 29

THANKS FOR LISTENING

Ngày đăng: 22/08/2024, 14:16

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w