Giả thiết rằng các cảm biến có thể nhận biết được :
Các vạch trắng trên sân
Giao của các vạch (nút)
Các cột tháp và các cầu trên không
Rôbot sẽ tìm đường đi và xếp gạch vào các tháp và cầu trên không dựa trên:
Chỉ dò đường và đi theo các vạch trắng trên sân
Quay đầu rẽ phải rẽ trái tại các nút
Thực hiện tìm đường (trên tính toán) và (trên thực tế ) để tìm
đến cầu và tháp từ một vị trí xác định đến nút có cầu trên
không và tháp sao cho có lợi nhất.
Khi gặp trường hợp đối phương đã xếp gạch vào cầu thì ta có
thể cho robot của mình đẩy gạch của đối phương ra hoặc tìm
vị trí xếp gạch khác ưu tiên vị trí có điểm cao hơn.
Sau khi hoàn thành nhiệm vụ robot tự động rẽ sang sân đối
phương để cản đường.
Mỗi robot sẽ mang hai gạch ,hành trình của robot thứ nhất sẽ
đi nhanh xếp hai gạch vào cầu trung tâm ,hai robot còn lại
chiếm hai cầu phải và trái, mỗi con cũng mang hai gạch.Cấu
tạo của ba robot này tương tự nhau ,khác nhau chỉ về lập trình
đường đi.
15 trang |
Chia sẻ: tuandn | Lượt xem: 2298 | Lượt tải: 3
Bạn đang xem nội dung tài liệu Đề tài Robot dò đường đi theo vạch trắng dùng AT89C52, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
BÁO CÁO BÀI TẬP LỚN
Robot dò đường đi theo vạch
trắng dùng AT89C52
Danh sách:
Trần Quang Trung_lớp ĐT2K48
Phan Đức Long_lớp ĐT2K48
Nguyễn Phú Sơn_lớp ĐT2K48
Bùi Duy Minh_lớp ĐT2K48
Nguyễn Ngọc Huy_lớp ĐT2K48
Cù Huy Toàn_lớp ĐT2K48
I.1/Ý tưởng:
Giả thiết rằng các cảm biến có thể nhận biết được :
Các vạch trắng trên sân
Giao của các vạch (nút)
Các cột tháp và các cầu trên không
Rôbot sẽ tìm đường đi và xếp gạch vào các tháp và cầu trên không dựa trên:
Chỉ dò đường và đi theo các vạch trắng trên sân
Quay đầu rẽ phải rẽ trái tại các nút
Thực hiện tìm đường (trên tính toán) và (trên thực tế ) để tìm
đến cầu và tháp từ một vị trí xác định đến nút có cầu trên
không và tháp sao cho có lợi nhất.
Khi gặp trường hợp đối phương đã xếp gạch vào cầu thì ta có
thể cho robot của mình đẩy gạch của đối phương ra hoặc tìm
vị trí xếp gạch khác ưu tiên vị trí có điểm cao hơn.
Sau khi hoàn thành nhiệm vụ robot tự động rẽ sang sân đối
phương để cản đường.
Mỗi robot sẽ mang hai gạch ,hành trình của robot thứ nhất sẽ
đi nhanh xếp hai gạch vào cầu trung tâm ,hai robot còn lại
chiếm hai cầu phải và trái, mỗi con cũng mang hai gạch.Cấu
tạo của ba robot này tương tự nhau ,khác nhau chỉ về lập trình
đường đi.
I.2/ Bài toán
Giả sử tại thời điểm ban đầu robot đứng tại vị trí nút nào đó
có tọa độ (x0,y0)
x0 là vạch ngang y0 là vạch đứng .
Hướng mà robot so với mục tiêu cần chiếm(hướng trong ra
ngoài ,ngoài vào trong, thuận kim đồng hồ, nghịch kim đồng
hồ)
Vị trí (tọa độ) các nút chứa tháp ,cầu trên không là xác định .
Danh sách các vùng không thể đi được( gặp biên, gặp vùng
cấm)
Giải bài toán khi gắp vật cản( do cản của đối phương ,do robot
tự động của mình bị chết) sao cho robot vẫn đến được mục
tiêu.
I.3/ Giải bài toán:
Ta sẽ gắn sân với một hệ tọa độ gốc là góc vuông trái so với
robot viêc dò tìm đường đi dựa vào viêc tính toán trên hệ tọa
độ đó.Đó chính là ma các nút ,đó là giao điểm của vạch nằm
ngang và dọc
Ta gắn hệ tọa độ cho mặt sân như vậy thì nếu ta đặt robot tự động tại nút
trong ô xuất phát nó sẽ có tọa độ là(2,1) cầu trung tâm là(10,10) cầu trái
là(10,15)cầu phải là(10,5) tháp phải(10,1) tháp trái là(10,19). Giả thiết các
cảm biến nhận biết được các vạch trắng
Khi qua một vạch trắng bộ đếm tăng thêm một tương ứng i ,j là bộ theo
hàng ngang và hàng dọc.(i=i+1,j=j+1) và tọa độ của ro bot khi đó là x=xo+i,
y=yo+j.
Do sân có vùng cấm ta lập trình cho robot tự động như sau:
Ro bot trung tâm:
Từ vị trí ban đầu robot đi thẳng đến tọa độ(2,13) rẽ phải 900 đến tọa độ
(8,13) rẽ phải 900 đi thẳng đến tọa độ (8,10) rẽ trái khi tiếp xúc với cầu
trung tâm sẽ cho gạch đẩy vào cột, sau đó lùi lại (8,10) rồi đứng yên khi đã
xếp được gạch hoặc sẽ quay lại đĩa trước vung cấm thả gạch khi bị đối
phương cản hoặc trên cột bị xếp đầy gạch.
Robot trái
Từ vị trí ban đầu đến tọa độ(2,15) rẽ phải 900 đi thẳng đến khi tiếp xúc với
tháp thì đẩy gạch vào cột.
Ro bot phải :
Từ vị trí ban đầu đến vị trí (8,13) rẽ phải 900 , đi thẳng đến toạ độ (8,9)
rẽ phải 900 đi thẳng đến tọa độ(8,5) rẽ trái 900 đi thẳng tiếp xúc với cầu thì
xếp gạch vào cột .Nếu trên cột đã đầy gạch thì robot sẽ tìm đến tháp của
mình để đặt hai viên gạch đó.
Điều đặc biệt của các ro bot là khi gặp cản hoặc cột đã xếp đầy gạch thì
chuyển đến vị trí thuận lợi nhất để sếp gạch.
Về mạch điện tử:
Mạch cảm biến ta dùng cặp led thu phát hồng ngoại , ta phải chỉnh sao cho
đầu ra khi gặp vạch trắng tương ứng với mức 1(điệnáp khoảng 4v) nền xanh
tương ứng với mức 0(điện áp khoảng 1.3v)
Mạch in:
Mạch điều khiển động cơ dùng một rơle một fet:
Mạch in:
Mạch
nguồn:
Mạch at89c52
Mạch
in:
Phần lập trình:
ORG 0H
LJMP MAIN
ORG 30H
MAIN:
MOV P1,#11111111B
MOV P2,#11111111B
SETB P3.0
JB P3.0,MAIN
MOV R3,#11
MOV R4,#0
LCALL KHOIDONG
LCALL DITHANG
ORG 50H
KHOIDONG:
CLR P2.0
CLR P2.2
MOV R5,#10
BATDAU:
CLR P2.0
CLR P2.2
MOV R0,#01
MOV R1,#04
LCALL T_ON
SETB P2.0
SETB P2.2
LCALL T_OFF
DJNZ R5,BATDAU
RET
DITHANG:
LAP:
CLR P2.0
CLR P2.2
MOV C,P1.3
ORL C,P1.4
JNC LAC
JNB P1.3,LECHPHAI1
JNB P1.4,LECHTRAI1
LJMP DEMVACH
LAC:
JB P1.5,LECHPHAI2
JB P1.2,LECHTRAI2
JB P1.6,LECHPHAI3
JB P1.1,LECHTRAI3
JB P1.7,LECHPHAI4
JB P1.0,LECHTRAI4
LJMP DEMVACH
LECHPHAI1:
LJMP CHINHTRAI1
LECHTRAI1:
LJMP CHINHPHAI1
LECHPHAI2:
LJMP CHINHTRAI2
LECHTRAI2:
LJMP CHINHPHAI2
LECHPHAI3:
LJMP CHINHTRAI3
LECHTRAI3:
LJMP CHINHPHAI3
LECHPHAI4:
LJMP CHINHTRAI4
LECHTRAI4:
LJMP CHINHPHAI4
CHINHTRAI1:
MOV R0,#01
MOV R1,#03
SETB P2.0
LCALL T_OFF
CLR P2.0
CLR P2.2
LCALL T_ON
LJMP DEMVACH
CHINHTRAI2:
MOV R0,#01
MOV R1,#04
SETB P2.0
LCALL T_OFF
CLR P2.0
CLR P2.2
LCALL T_ON
LJMP DEMVACH
CHINHTRAI3:
MOV R0,#01
MOV R1,#05
SETB P2.0
LCALL T_OFF
CLR P2.0
CLR P2.2
LCALL T_ON
LJMP DEMVACH
CHINHTRAI4:
MOV R1,#10
SETB P2.0
LCALL T_OFF
CLR P2.0
CLR P2.2
LJMP DEMVACH
CHINHPHAI1:
MOV R0,#01
MOV R1,#03
SETB P2.2
LCALL T_OFF
CLR P2.0
CLR P2.2
LCALL T_ON
LJMP DEMVACH
CHINHPHAI2:
MOV R0,#01
MOV R1,#04
SETB P2.2
LCALL T_OFF
CLR P2.0
CLR P2.2
LCALL T_ON
LJMP DEMVACH
CHINHPHAI3:
MOV R0,#01
MOV R1,#05
SETB P2.2
LCALL T_OFF
CLR P2.0
CLR P2.2
LCALL T_ON
LJMP DEMVACH
CHINHPHAI4:
MOV R1,#10
SETB P2.2
LCALL T_OFF
CLR P2.0
CLR P2.2
LJMP DEMVACH
DEMVACH:
CJNE R4,#0,CHAMLAI
MOV A,P1
ANL A,#00111100B
CJNE A,#00111100B,NHIEU
LJMP DEM
NHIEU:
LJMP LAP
DEM:
DJNZ R3,QUAYLAI
MOV R0,#05
LCALL DELAY
LJMP CHAMLAI
QUAYLAI:
MOV R0,#05
LCALL DELAY
LJMP LAP
CHAMLAI:
MOV R4,#01
DOVACH:
MOV R0,#01
MOV R1,#10
SETB P2.0
SETB P2.2
LCALL T_OFF
CLR P2.0
CLR P2.2
LCALL T_ON
MOV A,P1
ANL A,#00111100B
CJNE A,#00111100B,TROVE
RET
TROVE:
LJMP LAP
ORG 500H
T_ON:
BACK:
MOV TMOD,#01
MOV TL0,#00H
MOV TH0,#0DCH
SETB TR0
HERE:
JNB TF0,HERE
CLR TR0
CLR TF0
DJNZ R0,BACK
RET
ORG 530H
T_OFF:
BACK1:
MOV TMOD,#01
MOV TL0,#00H
MOV TH0,#0DCH
SETB TR0
HERE1:
JNB TF0,HERE1
CLR TR0
CLR TF0
DJNZ R1,BACK1
RET
ORG 550H
DELAY:
BACK2:
MOV TMOD,#01
MOV TL0,#00H
MOV TH0,#0DCH
SETB TR0
HERE2:
JNB TF0,HERE2
CLR TR0
CLR TF0
DJNZ R0,BACK2
RET
END