CHƢƠNG 7: GIẢI THUẬT CHƢƠNG TRÌNH 7.1 Lƣu đồ giải thuật

Một phần của tài liệu Robot chơi cờ tướng (Trang 98)

7.1 Lƣu đồ giải thuật

Bắt đầu

Cài đặt ban đầu

Lƣợt đi của Sai Sai Ngƣời chơi nhấn Đúng Đúng Máy sinh nƣớc đi Xử lý ảnh

Điều khiển Robot di chuyển quân cờ Cập nhật nƣớc đi Sai Ván cờ kết Đúng Dừng chƣơng trình

Hình 7.1: Lƣu đồ giải thuật của chƣơng trình CHƢƠNG 7: GIẢI THUẬT CHƢƠNG TRÌNH

7.2 Phƣơng pháp điều khiển cánh tay Robot Scara7.2.1 Phƣơng pháp DDA (Digital Differential Analyzer) 7.2.1 Phƣơng pháp DDA (Digital Differential Analyzer)

Phƣơng pháp DDA dựa trên cơ sở thay vi phân bằng hiệu số các giá trị tọa độ tại các thời điểm lấy mấu, khoảng thời gian lấy mẫu gọi là chi kỳ DDA.

Ví dụ: di chuyển theo đƣờng thằng từ điểm hiện tại đến điểm (x,y,z) tọa độ tƣơng đối với vận tốc v, khoảng đƣờng đi là L = x 2 + y 2 + z 2

, thời gian di chuyển T = L/v, vận tốc di

chuyển theo mỗi trục là vx=x/T, vy=y/T,vz=z/T. Ta chia thời gian T thành n khoảng chu kỳ TDDA, (n-1)TDDA<T≤nTDDA, trong mỗi chu kỳ khoảng thời gian di chuyển là ∆xi, ∆yi = ∆xi

*vy/vx, ∆zi = ∆xi *vz/vx. Ở đầu và cuối thời gian T, lƣợng di chuyển thay đổi phù hợp quá trình tăng tốc, vận tốc không đổi, giảm tốc và ngừng sao cho ∑ ∆xi = x , tƣơng tự cho các trục y và z.

Hình 7.2: Nội suy tuyến tính.

Giả sử cần di chuyển theo trục x và y khoảng cách a và b mm theo thứ tự, tƣơng ứng với góc α và góc β với khoảng đƣờng di chuyển là L = a 2

+ b

2 và tổng góc phải di chuyển là γ. Động cơ bƣớc có độ phân giải 1.80/ xung đƣợc điều khiển ở chế độ vi bƣớc với độ chia là 16 và hệ thống truyền động 2:1 thì số xung trên mỗi động cơ tƣơng ứng là nα = α*16*2/1.8, nβ= β*16*2/1.8, tổng xung n = γ*16*2/1.8 . Dấu của α, β quy định chiều quay của động cơ, số xung phát ra tƣơng ứng với góc quay của động cơ. Ta dùng sơ đồ sau để phát xung, cứ mỗi xung nhịp f thanh ghi qx đƣợc cộng với nα , nα đƣợc lấy giá trị tuyệt đối, nếu qx ≥ |n| thì phát một xung cho động cơ thứ nhất và qx = qx - |n|, nếu qx < |n| thì không phát xung, tƣơng tự cho qy.

Bảng 7.1: Ví dụ về phát xung cho 2 động cơ. Cho α=56.250,β = 33.750,γ=65.60 quy đổi ra số xung là 1000,600 và 1166

Chu kỳ Qx Qy Xung 1 Xung 2

0 1000 600 0 0 1 2000 834 120034 1 1 2 1834 668 634 1 0 3 1668 502 1234 68 1 1 4 1502 336 668 1 0 5 1336 170 1268 102 1 1 6 1170 4 702 1 0 7 1004 1302 136 0 1 8 2004838 736 1 0

Mỗi động cơ đƣợc điều khiển bằng 2 chân một chân DIR và một chân PUL. Hai động cơ đƣợc điều khiển bởi bốn chân P2.0,P2.1,P2.2,P2.3.

7.2.2 Phƣơng pháp điều khiển sử dụng trong luận văn

Cánh tay Robot Scara trong luận văn sử dụng phƣơng pháp DDA vận tốc hằng.

Tọa độ của các quân cờ đƣợc tính toán trƣớc và chuyển về bảng tọa độ với các góc tƣơng ứng. Bảng tọa độ này đƣợc lƣu dƣới dạng hằng số trong suốt chƣơng trình điều khiển.

Đối với những vị trí có thể có hai cách di chuyển, chƣơng trình điều khiển sẽ tự chọn quỹ đạo di chuyển ngắn nhất.

Sau khi đã chọn đƣợc góc di chuyển tối ƣu, chƣơng trình sẽ đƣa ra số xung cần cấp cho mỗi động cơ và gọi hàm DDA.

7.3 Thuật toán xử lý ảnh nhận dạng nƣớc đi

Ứng dụng của xử lý ảnh trong đề tài là xác định vị trí của các quân cờ có trên bàn cờ từ đó xuất ra ma trận bàn cờ đƣa về chƣơng trình chơi cờ xử lý và sinh nƣớc đi mới. Đầu tiên webcam sẽ chụp hình bàn cờ và đƣa về máy tính. Tại đây ảnh sẽ đƣợc xử lý ban đầu bao gồm lọc nhiễu, cắt , chuyển hệ….Quân cờ bao gồm 2 màu xanh và đỏ. Trƣớc tiên ta sẽ nhận dạng các quân cờ màu đỏ, xác định tọa độ của chúng và đƣa vào ma trận bàn cờ với giá trị là 3. Tƣơng tự với các quân cờ màu xanh chúng cũng đƣợc xác định vị trí và đƣa vào ma trận bàn cờ với giá trị là 1. Sau mỗi lần xử lý nhƣ vậy ta sẽ có đƣợc ma trận bàn cờ. Dựa vào 2 ma trận bàn cờ liên tiếp ta xác định đƣợc nƣớc đi của quân cờ : di chuyển , ăn cờ hay đứng yên.

Toàn bộ quá trình này có thể chia làm ba bƣớc: - Tiền xử lý ảnh

- Xác định màu sắc các quân cờ - Định vị trí các quân cờ

Một phần của tài liệu Robot chơi cờ tướng (Trang 98)