Mục lục:

Robot Arduino Sumo: 5 bước
Robot Arduino Sumo: 5 bước

Video: Robot Arduino Sumo: 5 bước

Video: Robot Arduino Sumo: 5 bước
Video: Arduino robot sumo 2024, Tháng bảy
Anonim
Robot Arduino Sumo
Robot Arduino Sumo

Trước khi chúng ta bắt đầu.

Robot sumo là gì?

Nó là một robot tự điều khiển với kích thước và tính năng cụ thể, nó cũng được thiết kế theo hình thù thù địch đủ điều kiện để nó tham gia vào các cuộc thi và cuộc thi với các robot khác.

Cái tên "sumo" xuất phát từ một môn thể thao cổ của Nhật Bản, đó là hai đối thủ chiến đấu trên một võ đài, mỗi người trong số họ cố gắng đẩy đối thủ khác ra khỏi nó, Và đây là những gì rô bốt cũng nên làm trong các cuộc thi rô bốt sumo, nơi hai các robot được đặt trong võ đài và nhau cố gắng đẩy đối thủ của mình ra.

Ý tưởng:

Xây dựng một robot với một thông số kỹ thuật nhất định và phù hợp với luật của cuộc thi đó (Sumo), robot này phải có kích thước chính xác để chiến đấu và tồn tại để không bị loại khỏi vòng đấu theo bất kỳ cách nào.

Vì vậy, chúng ta hãy xem xét luật thi đấu của robot Sumo:

Tôi sẽ giải thích một số vai trò quan trọng mà bạn nên xem xét trong khi xây dựng SUMO của riêng mình, nó cũng có thể giúp bạn Hình dung và đổi mới Ý tưởng của riêng bạn mà không cần đi sâu vào chi tiết.

1. Kích thước: Chiều rộng tối đa 20 cm, Chiều dài tối đa 20 cm, Chiều cao không được chỉ định.

2. Hình dạng: hình dạng robot có thể thay đổi sau khi bắt đầu cuộc đua, nhưng không có các bộ phận không thể tách rời để duy trì là một Đối tượng trung tâm.

3. Trọng lượng: không vượt quá 3 kg.

4. Robot phải tự điều khiển.

Bước 1: Các thành phần

Image
Image
Sử dụng cho từng thành phần
Sử dụng cho từng thành phần

1 Arduino Ano3

2 động cơ DC

1 Cầu H kép L298N cho Arduino

1 cảm biến siêu âm

2 IR TCRT5000

1 Pin 9v

Pin AA 4 * 1,5 v miếng + Nhà pin

4 bánh xe rô bốt

dây nhảy

Bước 2: Sử dụng cho từng thành phần

Sử dụng cho từng thành phần
Sử dụng cho từng thành phần
Sử dụng cho từng thành phần
Sử dụng cho từng thành phần

Bây giờ chúng tôi có các thành phần bắt buộc, vì vậy hãy đi vào chi tiết để biết những gì được sử dụng để..

1- Arduino Ano3

Nó là một bo mạch chính điều khiển tất cả các bộ phận và liên kết nó với nhau

2- Động cơ DC

Giúp robot cơ động và di chuyển trong vòng CẠNH TRANH

4- Cầu H kép L298N cho Arduino

Nó là một bảng điều khiển nhỏ cung cấp điện áp không đổi cho các động cơ, cũng như hỗ trợ tấm Arduino có khả năng kiểm soát tốt chuyển động và điện áp.

5- Cảm biến siêu âm

Cảm biến siêu âm được sử dụng để xác định vị trí của robot đối phương và thường được đặt ở trên cùng của robot.

6- IR TCRT5000

Như chúng tôi đã đề cập, vòng thi được thiết kế theo kích thước nhất định và nó có hai màu, màu đen và khung màu trắng. Thí sinh không nên ra ngoài. Do đó, chúng tôi sử dụng cảm biến hồng ngoại để đảm bảo rằng robot sẽ không nằm ngoài vòng đấu. Cảm biến này có khả năng phân biệt giữa các màu của vòng).

7- Pin 9v

Nó hỗ trợ bo mạch chính (Arduino) với điện áp quan trọng.

8- Pin AA 4 * 1,5 v miếng + Nhà pin

Nó hỗ trợ hai động cơ (Động cơ DC) với điện áp quan trọng và nó phải được tách ra để cung cấp toàn bộ lực cho các bánh xe.

9- Dây nhảy

Bước 3: Thiết kế

Thiết kế
Thiết kế
Thiết kế
Thiết kế

Tôi đã thực hiện hai thiết kế rô bốt sumo bằng bản phác thảo 3D của Google vì tôi thích tạo mô hình rô bốt bằng giấy trước khi tôi cắt các bộ phận ra khỏi acrylic trên máy cắt laser. Để xác minh rằng tất cả các bộ phận sẽ khớp với nhau đúng cách, điều quan trọng là các mô hình giấy được in ở kích thước chính xác của bản vẽ.

Và tôi cân nhắc để đo lường cụ thể với luật cạnh tranh, vì vậy hãy cố gắng suy nghĩ trong một thiết kế sáng tạo hơn và làm mô hình của riêng bạn.

Để nhạy cảm hơn với trọng lượng của rô-bốt đã nộp hoặc sau đó đặt pin vào phía trước rô-bốt với tấm chắn phía trước ở góc 45 độ so với hình dạng của rô-bốt.

Tải xuống thiết kế 1 từ đây

Tải xuống thiết kế 2 từ đây

Bạn cũng có thể Tải xuống mẫu mô hình Giấy

Mở tệp PDF bằng Adobe Acrobat Reader (phần mềm được khuyến nghị)

Bước 4: Chiến lược chơi

Image
Image
Chiến lược chơi
Chiến lược chơi

Như chúng tôi đã đề cập trước đó rằng rô bốt phải có khả năng tự điều khiển nó, vì vậy nó cho chúng tôi khả năng lập trình nó theo nhiều cách, tùy thuộc vào cách bạn muốn rô bốt chơi trên võ đài giống như bất kỳ đối thủ nào trong thực sự muốn giành chiến thắng trong trò chơi.

Chiến lược chơi (1):

· Chúng tôi sẽ liên tục làm cho robot xung quanh chính nó.

· Robot luôn đo khoảng cách liên tục trong quá trình quay.

· Nếu khoảng cách đối thủ đo được thấp hơn (ví dụ 10cm), điều đó có nghĩa là đối thủ đang trực tiếp đối mặt với robot của chúng ta.

· Robot phải dừng quay và sau đó bắt đầu tấn công (di chuyển nhanh chóng về phía trước với toàn lực).

· Robot phải luôn đọc các kết quả từ cảm biến IR để đảm bảo rằng chúng tôi không vượt qua biên giới vòng.

· Nếu Đọc sự hiện diện của IR có màu trắng, nó phải di chuyển robot trực tiếp theo hướng ngược lại của cảm biến (ví dụ: Nếu cảm biến phía trước, cho biết màu trắng của robot di chuyển về phía sau)!

Chiến lược chơi (2):

· Khi bắt đầu robot đo khoảng cách ở phía trước.

· Robot di chuyển trở lại cùng một khoảng cách đo được.

· Robot ngừng quay và sau đó bắt đầu tấn công đột ngột (di chuyển về phía trước với toàn bộ lực lượng).

· Trường hợp đối thủ kèm theo robot phải xoay 45 độ để tự sống sót nếu rơi ra khỏi sàn đấu.

· Robot phải luôn đọc các kết quả từ cảm biến IR để đảm bảo rằng chúng tôi không vượt qua biên giới vòng.

· Nếu Đọc sự hiện diện của IR có màu trắng, nó phải di chuyển robot trực tiếp theo hướng ngược lại của cảm biến (ví dụ: Nếu cảm biến phía trước, cho biết màu trắng của robot di chuyển về phía sau)!

Bước 5: Lập trình

Lập trình
Lập trình

vui lòng kiểm tra mạch và mã

* Cập nhật 2019-03-26

Tải xuống thư viện Ultrasonic từ đây trước tiên và cài đặt nó:

github.com/ErickSimoes/Ultrasonic/blob/mas…

/*

bởi ahmed Azouz

www.instructables.com/id/How-to-Make-Ardu…

Tải xuống lib từ đây trước tiên

github.com/ErickSimoes/Ultrasonic/blob/ma…

*/

#include Ultrasonic.h

Siêu âm siêu âm (4, 3);

const int IN1 = 5;

const int IN2 = 6; const int IN3 = 9; const int IN4 = 10; #define IR_sensor_front A0 // cảm biến phía trước #define IR_sensor_back A1 // cảm biến phía sau int khoảng cách;

void setup ()

{Serial.begin (9600); chậm trễ (5000); // theo vai trò của sumo compat} void loop () {int IR_front = analogRead (IR_sensor_front); int IR_back = analogRead (IR_sensor_back); khoảng cách = ultrasonic.read (); XOAY (200); // bắt đầu quay vòng if (khoảng cách <20) {Stop (); while (khoảng cách 650 || IR_back> 650) {break;} delay (10); } if (IR_front <650) // <650 nghĩa là dòng màu trắng {Stop (); chậm trễ (50); VÒNG QUAY (255); chậm trễ (500); } if (IR_back <650) // {Stop (); chậm trễ (50); HƯỚNG DẪN (255); chậm trễ (500); } / * ----------- gỡ lỗi ---------------- Serial.print (ultrasonic. Ranging (CM)); Serial.println ("cm"); Serial.println ("IR front:"); Serial.println (IR_front); Serial.println ("IR quay lai:"); Serial.println (IR_back); * /

} //--------------------------------------------

void FORWARD (int Speed) {// Khi chúng ta muốn cho Motor To tiến lên, // chỉ bỏ phần này trên phần loop. analogWrite (IN1, Tốc độ); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, Tốc độ); } // -------------------------------------------- void BACKWARD (int Speed) {// Khi chúng ta muốn cho Motor To tiến lên, // chỉ cần bỏ phần này trên phần loop. analogWrite (IN1, 0); analogWrite (IN2, Tốc độ); analogWrite (IN3, Tốc độ); analogWrite (IN4, 0); } // -------------------------------------------- void ROTATE (int Speed) {// Khi chúng ta muốn cho Motor To Rotate, // chỉ cần bỏ phần này trên phần loop. analogWrite (IN1, Tốc độ); analogWrite (IN2, 0); analogWrite (IN3, Tốc độ); analogWrite (IN4, 0); } // -------------------------------------------- void Stop () {// Khi chúng ta muốn Động cơ dừng lại, // chỉ cần bỏ phần này trên phần vòng lặp. analogWrite (IN1, 0); analogWrite (IN2, 0); analogWrite (IN3, 0); analogWrite (IN4, 0); }

Đề xuất: