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á
Trang 1BÁ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
Trang 2I.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
Trang 3
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)
Trang 4Mạch in:
Trang 7Mạch điều khiển động cơ dùng một rơle một fet:
Mạch in:
Trang 8Mạch
nguồn:
Mạch at89c52
Trang 10Mạ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
Trang 11BATDAU:
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:
Trang 12LJMP 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:
Trang 13MOV 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:
Trang 14LJMP 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
Trang 15ORG 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