Đề tài Robot dò đường đi theo vạch trắng dùng AT89C52

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.

pdf15 trang | Chia sẻ: tuandn | Lượt xem: 2314 | Lượt tải: 3download
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