Danh sach thanh SHH
vien
Sa
LN
( ) J2
Trang 3TINH 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 4CHUONG 1: MO DAU/TONG QUAN
Trang 5
CHUONG 2: CO SO LY THUYET
ARDUINO
Trang 6CHƯƠNG 2: CƠ SỞ LÝ
CHAN SO (DIGITAL PIN)
| ——— CHÂN NÓI TIẾP
Trang 7CHUONG 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 9CHUONG 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 13CHUONG 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 14CHUONG 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 15CHUONG 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 16CHUONG 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 17CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT
Trang 18CHUONG 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 19CHUONG 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 20CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT
Code Python
17
Trang 21CHUONG 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 22CHUONG 3: TINH TOAN, THIET KE, CHE TAO, LAP DAT
Arduino UNO
19
Trang 23CHUONG 4: THUC NGHIEM, DANH GIA VA KINH NGHIEM RUT RA DUOC KHI LAM M
8’ Minh oox §' Hình oo‹
Trang 24CHUONG 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 25CHUONG 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 26CHUONG 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 28CHUONG 5: KET LUAN, KIEN NGHI, BUOC PHAT TRIEN
Trang 29
THANKS FOR LISTENING