Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

Trong bài này, OhStem sẽ hướng dẫn bạn cách lập trình GamePad để ứng dụng vào thi đấu Robocon. GamePad là bộ Kit mở rộng cho Yolo:Bit, giúp biến chiếc máy tính mini Yolo:Bit thành một tay cầm điều khiển Bluetooth. GamePad gồm Joystick và 7 nút nhấn có thể lập trình, được dùng để tạo ra các chức năng tùy biến theo ý của người dùng.

Với pin sạc và chức năng sạc được tích hợp sẵn trên board, GamePad có thể được sử dụng để điều khiển các robot của OhStem như robot xBot (thông qua Bluetooth) hoặc biến Yolo:Bit thành một chiếc máy chơi game hoàn chỉnh.

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

Thông số kỹ thuật của GamePad

  • Nguồn: Pin sạc Li-Ion 3.7V 14500
  • Joystick: 2 axis analog (X: P0 Y: P1), 1 axis digital (Z: P2)
  • 7 nút nhấn: A (tương ứng với nút A trên Yolo:Bit), B (nút B trên Yolo:Bit), C (P13), D (P14), E (P15), F (P16), Z (nút nhấn của Joystick, P2)
  • Kích thước: 154 × 56 mm

Hướng dẫn lập trình cho GamePad

Để lập trình cho GamePad, bạn cần phải sử dụng Yolo:Bit – thiết bị được xem như bộ não để điều khiển GamePad. Bạn có thể tham khảo hướng dẫn lập trình cho Yolo:Bit ở đây nếu chưa từng làm việc với Yolo:Bit trước đó.

Cài đặt thư viện mở rộng

1. Đầu tiên, bạn truy cập vào OhStem App tại địa chỉ https://app.ohstem.vn hoặc ứng dụng OhStem App trên mobile (Tải trên Google Play / App Store với tên tìm kiếm là “OhStem App”), sau đó chọn thiết bị Yolo:Bit >> lập trình

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit
Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

2. Nhấn vào danh mục mở rộng:

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

3. Tải thư viện mở rộng có tên là GamePad (Bạn có thể gõ tên “GamePad” vào ô tìm kiếm để tìm được thư viện nhanh chóng hơn): Bắt buộc phải tải thư viện gamepad trước khi import chương trình mẫu nhé !

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

Bạn click vào thư viện và nhấn OK:

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit
Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

4. Giao diện sẽ yêu cầu bạn kết nối Yolo:Bit để tải thư viện, bạn hãy kết nối máy tính với Yolo:Bit bằng Bluetooth rồi tải thư viện bình thường nhé (Nhớ bật nguồn Yolo:Bit trước khi kết nối).

Sau khi cập nhật thư viện xong, trong danh mục khối lệnh sẽ xuất hiện danh mục GamePad:

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

Giới thiệu khối lệnh

Bên trong danh mục GamePad có 3 khối lệnh:

Khối lệnh lập trình cho GamePad - Thi đấu Robocon
  • Joystick ở hướng -> : Trả về giá trị đúng khi hướng của cần gạt Joystick xoay sang phải (tương tự với lựa chọn xoay sang trái, tới trước và lùi về sau)
  • Đọc Joystick ___: Đọc thông tin từ Joystick gửi đến
  • Nút ___ được nhấn: Đọc thông tin từ các nút trên GamePad gửi đến (để biết nút nào được nhấn)

Joystick ở hướng ->

Bạn có thể chọn vào icon hình tam giác ngược () trong khối lệnh để hiển thị các lựa chọn khác, như hình minh họa:

Khối lệnh đọc Joystick trên GamePad - Thi đấu Robocon

Khối lệnh trên sẽ trả về giá trị đúng nếu Joystick xoay về đúng hướng như trong khối lệnh.  Ngược lại, khối lệnh sẽ trả về giá trị sai.

Đọc Joystick

Bạn có thể chọn vào icon hình tam giác ngược () trong khối lệnh để hiển thị các lựa chọn khác, như hình minh họa:

Khối lệnh đọc Joystick trên GamePad - Thi đấu Robocon
  • X: Trả về giá trị Analog cho trục X (trục ngang) của Joystick theo thang giá trị từ -100 đến 100
Trục x của Joystick trên GamePad - Thi đấu Robocon
  • Y: Trả về giá trị Analog cho trục Y (trục dọc) của Joystick theo thang giá trị từ -100 đến 100
Trục y của Joystick trên GamePad - Thi đấu Robocon
  • Góc quay: Trả về giá trị góc xoay của cần gạt Joystick theo thang đo từ 0 đến 359 độ:
Góc xoay của GamePad - Thi đấu Robocon
  • Khoảng cách kéo: Mức độ kéo Joystick ra ngoài so với tâm của cần gạt (từ 0 – 100%)
Khoảng cách kéo của Joystick trên GamePad - Thi đấu Robocon

Nút ____ được nhấn

Bạn có thể chọn vào icon hình tam giác ngược () trong khối lệnh để hiển thị các lựa chọn khác:

Khối lệnh nút được nhấn trên GamePad - Thi đấu Robocon

Khối lệnh trên sẽ trả về giá trị đúng khi nút Joystick được nhấn (bạn nhấn mạnh vào chính giữa cần gạt Joystick để thực hiện). Tương tự với các nút nhấn khác.

Lưu ý: Nút nhấn A và B trên GamePad sẽ tương ứng với nút A, B trên Yolo:Bit.

Lập trình cơ bản với Yolo:Bit

Trước khi tiến hành lập trình thi đấu Robocon với GamePad, chúng ta cần phải làm quen với thiết bị tay cầm này. Đầu tiên, chúng ta sẽ lập trình một chương trình đơn giản với Yolo:Bit:

  • Khi nút bất kỳ được nhấn, tên của nút đó sẽ được hiển thị ra màn hình ma trận LED 5×5 trên Yolo:Bit
  • Khi cần gạt Joystick được xoay về hướng nào, ma trận LED sẽ hiển thị mũi tên chỉ về hướng đó. Đồng thời, trên cửa sổ thông tin sẽ hiển thị ra giá trị góc quay của cần gạt.

Để thực hiện điều này, chúng ta sẽ sử dụng khối lệnh Nút ____ được nhấnkhối lệnh Joystick ở hướng ___ . Cụ thể, hãy cùng xem qua hướng dẫn bên dưới.

Nạp chương trình hoàn chỉnh

Trước khi tìm hiểu cách lập trình, bạn có thể nạp chương trình hoàn chỉnh tại đây và trải nghiệm.

Hướng dẫn lập trình

1. Đầu tiên, chúng ta xóa màn hình trước đó:

Hướng dẫn lập trình Game Pad - Làm quen với thiết bị trước khi thi đấu robot

2. Nếu nút A được nhấn, màn hình Yolo:Bit sẽ hiển thị chữ A:

Hướng dẫn lập trình Game Pad - Làm quen với thiết bị trước khi thi đấu robot

3. Ta thực hiện tương tự với các nút còn lại:

Hướng dẫn lập trình Game Pad - Làm quen với thiết bị trước khi thi đấu robot

4. Đặt điều kiện: Nếu Joystick xoay về hướng bên phải:

Hướng dẫn lập trình Game Pad - Làm quen với thiết bị trước khi thi đấu robot

5. Lúc này, Yolo:Bit sẽ hiển thị hình ảnh mũi tên chỉ sang phải:

Hướng dẫn lập trình Game Pad - Làm quen với thiết bị trước khi thi đấu robot

6. Nhấn vào icon hình bánh răng và tạo thêm 3 nhánh điều kiện Nếu không nếu như hình:

Hướng dẫn lập trình Game Pad - Làm quen với thiết bị trước khi thi đấu robot

Giải thích thêm:

Điều kiện “nếu không nếu” là một điều kiện gộp giữa “nếu không” và “nếu”:

Hướng dẫn lập trình Game Pad - Làm quen với thiết bị trước khi thi đấu robot

7. Tương tự, ta cho Yolo:Bit hiển thị mũi tên tương ứng với từng hướng xoay của Joystick trong thuật toán:

Làm quen với thiết bị trước khi thi đấu robot

8. Hiển thị thông tin góc xoay ra cửa sổ thông tin và cập nhật liên tục sau mỗi 200ms (1 giây = 1000ms):

Làm quen với thiết bị trước khi thi đấu robot

Lưu ý:

Làm quen với thiết bị trước khi thi đấu robot

Lập trình thi đấu Robocon cùng GamePad

Trong bài này, chúng ta sẽ gắn thêm thùng xe tải Dump Truck và cả tay gắp Gripper vào robot xBot, sau đó lập trình để điều khiển bằng GamePad. Cụ thể, chúng ta sẽ lập trình GamePad để điều khiển cho xBot, sao cho:

  • Khi chương trình bắt đầu, Yolo:Bit sẽ tự động kết nối với robot gần nhất
  • Khi kéo cần gạt Joystick sang trái, phải, trên, dưới thì xBot sẽ di chuyển theo hướng tương ứng
  • Nhấn nút A để tăng tốc độ robot
  • Nhấn nút B để giảm tốc độ robot
  • Nhấn nút F để mở tay gắp (cho Servo nối với cổng S2 quay đến góc 0 độ)
  • Nút D để mở tay gắp (cho Servo nối với cổng S2 quay đến góc 90 độ)
  • Nhấn nút E để nâng thùng xe tải (cho Servo nối với cổng S1 quay đến góc 110 độ)
  • Nhấn nút C để hạ thùng xe tải  (cho Servo nối với cổng S1 quay đến góc 0 độ)
Tay gắp robot
Phụ kiện xBot - Bộ Dump Truck

Chương trình mặc định khi khởi động của xBot (trong Firmware mới nhất) đã hỗ trợ điều khiển từ Bluetooth nếu nhận được các ký tự sau:

  • “F = xx” với xx là số từ 0-100: xBot di chuyển về phía trước (F=Forward) với tốc độ xx
  • “B = xx” với xx là số từ 0-100: xBot di chuyển về phía sau (B=Backward) với tốc độ xx
  • “L = xx” với xx là số từ 0-100: xBot quay về bên trái (L=Left) với tốc độ xx
  • “R = xx” với xx là số từ 0-100: xBot di chuyển về bên phải (R=Right) với tốc độ xx
  • “S1=xx” với S1 là tên cổng Servo cần điều khiển (bạn có thể chọn từ S1 đến S8 tùy thích), xx là góc quay (0-180 độ) muốn điều khiển
  • “S=0”: xBot đứng yên tại chỗ (S=Stop)

Ví dụ: Khi bạn sử dụng khối lệnh sau, robot xBot sẽ di chuyển tới với tốc độ 50:

Hướng dẫn lập trình Game Pad - Khối lệnh lập trình thi đấu Robocon

Nạp chương trình hoàn chỉnh

Trước khi tìm hiểu cách lập trình, bạn có thể tham khảo và nạp chương trình hoàn chỉnh tại đây để trải nghiệm (Bạn nhớ kết nối Servo của thùng xe tải vào cổng S1, Servo của tay gắp vào cổng S2 trên xBot nhé).

Hướng dẫn lập trình

1. Tự kết nối Bluetooth đến thiết bị gần nhất, xóa màn hình trước đó, thiết lập tốc độ mặc định là 50:

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit
Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

2. Khi nút A được nhấn, bộ điều khiển sẽ gửi tín hiệu tăng tốc độ đến robot:

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

3. Khi nút B được nhấn, bộ điều khiển sẽ gửi tín hiệu giảm tốc độ đến robot (lấy tốc độ trừ đi 10):

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

4. Khi kết nối / ngắt kết nối với xBot thành công, màn hình LED của Yolo:Bit sẽ hiển thị dòng chữ YES hoặc NO để báo hiệu:

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit
Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

5. Nếu nút A+B được nhấn, tiến hành ngắt kết nối với xBot:

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

6. Đặt điều kiện: Nếu Joystick được kéo sang phải:

Hướng dẫn lập trình Game Pad - thi đấu robocon
Hướng dẫn lập trình Game Pad – thi đấu robocon

Lưu ý: Bạn sử dụng khối lệnh Nếu / thực hiện / Nếu không nhé!

Hướng dẫn lập trình Game Pad - thi đấu robocon

7. Khi đó, thông tin “R” sẽ được hiển thị lên cửa sổ thông tin, đồng thời robot sẽ xoay sang phải với tốc độ bằng khoảng cách kéo chia 2:

Hướng dẫn lập trình Game Pad

8. Nhấn vào icon hình bánh răng và tạo thêm 3 nhánh điều kiện Nếu không nếu như hình:

Hướng dẫn lập trình Game Pad - Thi đấu Robocon

9. Thực hiện tương tự với các hướng quay khác của Joystick:

Hướng dẫn lập trình Game Pad - Thi đấu Robocon

10. Nếu không có trường hợp nào phía trên đúng, ta cho xBot dừng lại:

Hướng dẫn lập trình Game Pad - Thi đấu Robocon

11. Khi nút E được nhấn, thùng xe tải sẽ nâng lên (Servo chân S1 quay về góc 110 độ):

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

12. Khi nút C được nhấn, thùng xe tải sẽ hạ xuống (Servo chân S1 quay về góc 0 độ):

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

13. Khi nút F được nhấn, tay gắp sẽ mở ra (Servo chân S2 quay về góc 0 độ):

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

14. Khi nút D được nhấn, tay gắp sẽ đóng lại (Servo chân S2 quay về góc 90 độ):

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

15. Tạm dừng toàn chương trình trong 50ms (1 giây = 1000ms)

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit

Chương trình hoàn chỉnh:

Thi đấu Robocon: Hướng dẫn lập trình GamePad với Yolo:Bit
Chương trình hoàn chỉnh – Lập trình thi đấu Robocon với GamePad

16. Lưu chương trình vào thiết bị:

Ấn vào icon bánh răng trên giao diện lập trình , chọn lưu project vào thiết bị.

Thông tin liên hệ công ty Công Nghệ Trí Tuệ Nhân Tạo AITT

Địa chỉ: 22/15 Đường 440, Phường Phước Long A, Quận 9, Thành phố Hồ Chí Minh

Facebook:  https://www.facebook.com/ohstem.aitt

Số điện thoại: 08.6666.8168

Email: contact@ohstem.vn

Tags: hướng dẫn lập trình thi đấu robot, lập trình gamepad, Robocon, Thi đấu robocon

Những bài liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Fill out this field
Fill out this field
Vui lòng nhập địa chỉ email hợp lệ.
You need to agree with the terms to proceed