Mục lục:
- Quân nhu
- Bước 1: In 3D: Thân máy, Bánh xe, Bánh xe bằng đá cẩm thạch, Chốt / đai ốc 6mm và Giá đỡ cảm biến siêu âm
- Bước 2: Lập trình Arduino
- Bước 3: Lắp ráp Robot
- Bước 4: Gắn dây cảm biến
- Bước 5: Hoàn thành !!! Kết nối Nguồn điện 9V Arduino, Bật bộ pin và Bắt đầu tránh chướng ngại vật với OAREE
Video: OAREE - In 3D - Robot tránh chướng ngại vật dành cho giáo dục kỹ thuật (OAREE) Với Arduino: 5 bước (kèm hình ảnh)
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:32
OAREE (Robot tránh chướng ngại vật cho giáo dục kỹ thuật số)
Thiết kế: Mục tiêu của tài liệu hướng dẫn này là thiết kế một robot OAR (Robot tránh chướng ngại vật) đơn giản / nhỏ gọn, có thể in 3D, dễ lắp ráp, sử dụng các servo xoay liên tục để di chuyển và có ít bộ phận mua nhất có thể. Tôi tin rằng tôi đã thành công trong việc tạo ra con robot tuyệt vời này và đã đặt tên nó là OAREE (Robot tránh chướng ngại vật cho ngành giáo dục kỹ thuật). Robot này sẽ cảm nhận được chướng ngại vật, dừng lại, nhìn trái và phải, sau đó rẽ theo hướng không có chướng ngại vật và tiếp tục đi về phía trước.
Bối cảnh: Internet có rất nhiều robot tránh chướng ngại vật, nhưng hầu hết đều cồng kềnh, khó lắp ráp và đắt tiền. Nhiều robot trong số này có mã Arduino được cung cấp, nhưng rất khó để tìm ra một ví dụ hoạt động hiệu quả. Tôi cũng muốn sử dụng servo quay liên tục cho bánh xe (thay vì động cơ DC), điều này vẫn chưa được thực hiện. Vì vậy, tôi bắt đầu sứ mệnh phát triển một robot OAR nhỏ gọn, sáng tạo để chia sẻ với thế giới.
Phát triển thêm: Robot này có thể được phát triển thêm để có độ chính xác ping tốt hơn, thêm cảm biến IR cho khả năng theo dõi dòng, màn hình LCD để hiển thị khoảng cách chướng ngại vật, v.v.
Quân nhu
- 1x Arduino Uno -
- Tấm chắn cảm biến 1x V5 -
- 1x Giá đỡ pin 4xAA với Công tắc Bật / Tắt -
- 1x SG90 Servo -
- 2x Servos quay liên tục -
- Cáp nguồn pin 1x 9V cho Arduino (TÙY CHỌN) -
- Cảm biến siêu âm 1x HC-SR04 -
- Dây nhảy 4x Nữ-Nữ -
- 2x dây cao su
- Pin 1x 9V (TÙY CHỌN)
- 4x Pin AA
- 4x Vít nhỏ (4 x 1/2 hoặc bất kỳ thứ gì tương tự)
- Tua vít Phillips
- Keo để cố định dây cao su vào bánh xe
Bước 1: In 3D: Thân máy, Bánh xe, Bánh xe bằng đá cẩm thạch, Chốt / đai ốc 6mm và Giá đỡ cảm biến siêu âm
Có 5 phần để in 3D.
- Cơ thể người
- Bánh xe
- Caster đá cẩm thạch
- Đai ốc / đai ốc 6mm (tùy chọn, có thể thay thế đai ốc / bu lông kim loại)
- Giá cảm biến siêu âm
Tất cả các tệp. STL bắt buộc đều có trong tệp hướng dẫn này cũng như tệp Sketchup. 40% được khuyến nghị.
Bước 2: Lập trình Arduino
Gửi mã tới Arduino UNO: Sử dụng Arduino IDE, gửi mã (trong tệp đính kèm) đến mô-đun Arduino của bạn. Bạn sẽ cần tải xuống và bao gồm thư viện servo.h và newping.h với bản phác thảo này.
Mã được nhận xét kỹ lưỡng, vì vậy bạn có thể xem mỗi lệnh làm gì. Bạn có thể dễ dàng thay đổi khoảng cách Cảm biến siêu âm thành giá trị lớn hơn hoặc nhỏ hơn nếu muốn. Đây là mã ban đầu và có nghĩa là sẽ được mở rộng và sử dụng để phát triển dự án tiếp theo.
// OBSTACLE TRÁNH ROBOT // [email protected], [email protected], University of TN at Chattanooga, Electrical Engineering, FALL 2019 // Vật liệu bắt buộc: // 1) Arduiino UNO, 2) Servo Sensor Shield v5.0, 3) Cảm biến Ulrasonic HCSR04, 4) FS90 Servo (cho Cảm biến siêu âm) // 5 & 6) 2x SERVOS LIÊN TỤC cho bánh xe // 7) Đá hoa 16mm cho trục bánh sau, 8 & 9) 2 dây cao su cho bánh xe // 10- 15) Giá đỡ pin 1x (4xAA) với công tắc bật / tắt, 16 & 17) Pin 9V với đầu nối để cấp nguồn cho Arduino UNO // 3D PRINT: // 18) ROBOT Body, 19 & 20) 2x Wheels, 21) Marble Caster, 22) Cảm biến siêu âm Gắn kết và Vít 6mm (xem tệp đính kèm) // -------------------------------------- -------------------------------------------------- ----------------------------------------- #include // Bao gồm Thư viện Servo #include // Bao gồm Thư viện Newping // ------------------------------------------- -------------------------------------------------- ------------------------------------ #define TRIGGER_PIN 1 2 // Bộ kích hoạt Hoa Kỳ đến chân 12 trên Arduino #define ECHO_PIN 13 // Tiếng vọng Hoa Kỳ đến chân 13 trên Arduino #define MAX_DISTANCE 250 // Khoảng cách tới ping (tối đa là 250) int distance = 100; // ------------------------------------------------ -------------------------------------------------- ------------------------------- Servo US_Servo; // Cảm biến siêu âm Servo Servo Left_Servo; // Bánh xe bên trái Servo Servo Right_Servo; // Sonar bên phải Servo NewPing (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // Thiết lập NewPing của các chân và khoảng cách tối đa. // ------------------------------------------------ -------------------------------------------------- ------------------------------- void setup () // INPUT / OUTPUTS, TRUY CẬP VÀO ĐÂU, ĐẶT VỊ TRÍ BAN ĐẦU / DI CHUYỂN {pinMode (12, OUTPUT); // Chân kích hoạt được đặt là pinMode đầu ra (13, INPUT); // Chân tiếng vọng được đặt làm đầu vào US_Servo.attach (11); // US Servo được đặt thành pin 11 US_Servo.write (90); // LOOKS SERVO MỸ TIẾN HÀNH
Left_Servo.attach (9); // Servo bánh trái đến chân 9
Left_Servo.write (90); // LEFT WHEEL SERVO được đặt thành STOP
Right_Servo.attach (10); // Thiết lập servo bánh xe phải thành chân 10
Right_Servo.write (90); // RIGHT WHEEL SERVO đặt thành STOP delay (2000); // Chờ khoảng cách 2 giây = readPing (); // Lấy Ping Khoảng cách tại vị trí chuyển tiếp thẳng delay (100); // Chờ 100 ms moveForward (); // ROBOT CHUYỂN ĐI MỞ RỘNG} // ------------------------------------------ -------------------------------------------------- ------------------------------------- void loop () {int distanceRight = 0; // Khởi tạo khoảng cách Hoa Kỳ sang phải tại 0 int distanceLeft = 0; // Khởi tạo khoảng cách Hoa Kỳ sang trái tại 0 //US_Servo.write(90); // Trung tâm US servo // delay (50); // US_Servo.write (70); // Nhìn sang phải // delay (250); // US_Servo.write (110); // Nhìn sang trái // delay (250); // US_Servo.write (90); // Trung tâm nhìn
if (distance <= 20) // Robot DI CHUYỂN LÊN TIẾNG {moveStop (); // Robot STOPS at distance = distanceLeft) // Quyết định hướng rẽ {turnRight (); // Bên phải có khoảng cách lớn nhất, ROBOT TURNS RIGHT cho độ trễ 0,3 giây (500); // Độ trễ này xác định độ dài lần lượt moveStop (); // Robot STOPS} else {turnLeft (); // Khoảng cách lớn nhất bên trái, ROBOT TRÁI TRÁI cho độ trễ 0,3 giây (500); // Độ trễ này xác định độ dài lần lượt moveStop (); // Robot STOPS}} else {moveForward (); // Robot DI CHUYỂN FORWARD} distance = readPing (); // CHÚNG TÔI ĐỌC PING MỚI về hướng đi mới} // ----------------------------------- -------------------------------------------------- -------------------------------------------- int lookRight () // Cảm biến siêu âm XEM PHẢI CHỨC NĂNG {US_Servo.write (30); // US servo CHUYỂN ĐÚNG đến độ trễ góc (500); int khoảng cách = readPing (); // Đặt giá trị ping cho độ trễ bên phải (100); US_Servo.write (90); // Khoảng cách trả về của servo US DI CHUYỂN ĐẾN TRUNG TÂM; // Khoảng cách được thiết lập} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int lookLeft () // Cảm biến siêu âm XEM CHỨC NĂNG TRÁI {US_Servo.write (150); // US servo DI CHUYỂN TRÁI sang độ trễ góc (500); int khoảng cách = readPing (); // Đặt giá trị ping cho độ trễ bên trái (100); US_Servo.write (90); // Khoảng cách trả về của servo US CHUYỂN ĐẾN TRUNG TÂM; // Khoảng cách được thiết lập} // ------------------------------------------ -------------------------------------------------- ------------------------------------- int readPing () // Đọc Chức năng Ping cho Cảm biến Siêu âm. {trễ (100); // 100ms giữa các lần ping (thời gian ping tối thiểu = 0,29ms) int cm = sonar.ping_cm (); // Khoảng cách PING được tập hợp và đặt bằng cm if (cm == 0) {cm = 250; } trả về cm; } // ----------------------------------------------- -------------------------------------------------- -------------------------------- void moveStop () // ROBOT STOP {Left_Servo.write (90); // LeftServo 180 tiến, 0 ngược Right_Servo.write (90); // RightServo 0 tiến, 180 ngược} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveForward () // ROBOT FORWARD {Left_Servo.write (180); // LeftServo 180 tiến, 0 ngược Right_Servo.write (0); // RightServo 0 tiến, 180 ngược} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void moveBackward () // ROBOT BACKWARD {Left_Servo.write (0); // LeftServo 180 tiến, 0 ngược Right_Servo.write (180); // RightServo 0 tiến, 180 ngược} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnRight () // ROBOT RIGHT {Left_Servo.write (180); // LeftServo 180 tiến, 0 ngược Right_Servo.write (90); // RightServo 0 tiến, 180 ngược} // --------------------------------------- -------------------------------------------------- ---------------------------------------- void turnLeft () // ROBOT TRÁI {Left_Servo.write (90); // LeftServo 180 tiến, 0 ngược Right_Servo.write (0); // RightServo 0 tiến, 180 ngược} // --------------------------------------- -------------------------------------------------- ----------------------------------------
Bước 3: Lắp ráp Robot
Bây giờ đã đến lúc đặt robot của bạn lại với nhau. Các bước được liệt kê dưới đây.
1) Gắn Đĩa Servo tròn và Dây đai Cao su vào Bánh xe: Tất cả các Servo đều đi kèm với phần cứng và vít gắn bằng nhựa. Tìm các đĩa tròn và vặn chúng vào hai lỗ trên mặt phẳng của bánh xe. Các dây cao su vừa vặn xung quanh bánh xe để tạo độ bám. Bạn có thể muốn thêm một chút keo để giữ các dây chun cố định.
2) Gắn bánh xe bằng đá cẩm thạch: Sử dụng hai vít nhỏ để gắn bánh xe bằng đá cẩm thạch vào hai hình tam giác ở phía sau. Bánh xe bằng đá cẩm thạch là một sự thay thế đơn giản cho bánh sau và cung cấp một điểm trục phía sau.
3) Chèn Servo vào Khe cắm (không cần vít): Đặt Servo FS90 (dành cho Cảm biến siêu âm) vào khe phía trước của thân máy. Hai servo xoay liên tục trượt sang các khe bên trái và bên phải. Các khe được thiết kế để vừa khít, do đó không cần vít để giữ các servo ở đúng vị trí. Đảm bảo các dây servo chạy qua các rãnh trong các khe sao cho chúng hướng về phía sau thân máy.
4) Vị trí Pin 9V (TÙY CHỌN): Đặt pin 9V + đầu nối nguồn Arduino phía sau servo phía trước.
5) Lắp ráp giá đỡ cảm biến siêu âm: Sử dụng hai vít nhỏ để gắn một trong các phần đính kèm servo bằng nhựa màu trắng đi kèm vào đáy của tấm gắn cảm biến siêu âm. Tiếp theo, sử dụng bu lông / đai ốc 6mm được in 3D (hoặc thay thế bu lông / đai ốc bằng kim loại) để gắn vỏ Cảm biến siêu âm vào tấm giá đỡ. Cuối cùng, đặt cảm biến vào hộp với các chân hướng lên trên và gắn vào mặt sau của hộp.
6) Hộp đựng pin AA 4x: Đặt hộp đựng pin AA vào khu vực hình chữ nhật lớn, với công tắc bật / tắt hướng về phía sau.
7) Tấm chắn cảm biến Arduino Uno + V5: Gắn tấm chắn vào Arduino và đặt lên giá đỡ phía trên hộp pin. Đầu nối nguồn phải hướng về bên trái.
Robot của bạn đã được chế tạo! Còn lại gì? Lập trình Arduino và kết nối dây Jumper: Servos, Cảm biến siêu âm và Nguồn điện.
Bước 4: Gắn dây cảm biến
Kết nối dây Servo với V5 Shield:
- Servo quay liên tục trái gắn với mã PIN 9
- Servo xoay liên tục phải gắn vào mã PIN 10
- Servo FS90 phía trước gắn với mã PIN 11
Kết nối các chân cảm biến siêu âm (qua dây nhảy 4x Nữ đến Nữ) với Tấm chắn V5:
- Kích hoạt mã PIN 12
- Tiếng vọng tới mã PIN 13
- VCC đến bất kỳ chân nào được đánh dấu bằng 'V'
- Nối đất cho bất kỳ chân nào được đánh dấu bằng 'G'
Kết nối Hộp đựng pin AA với Tấm chắn V5:
- Gắn dây dương màu đỏ vào đầu nối VCC
- Gắn dây âm, dây đen vào kết nối đất
Bước 5: Hoàn thành !!! Kết nối Nguồn điện 9V Arduino, Bật bộ pin và Bắt đầu tránh chướng ngại vật với OAREE
Hoàn thành!!
1) Kết nối nguồn điện 9V Arduino (Tùy chọn)
2) Bật bộ pin
3) Bắt đầu Tránh chướng ngại vật với OAREE !!!
Tôi chắc rằng bạn sẽ thích người bạn mới của mình, OAREE, sau khi xem nó, cảm thấy có chướng ngại vật, lùi lại và thay đổi hướng đi. OAREE hoạt động tốt nhất với các vật thể lớn mà Cảm biến siêu âm có thể ping tới (như tường). Khó ping các vật nhỏ như chân ghế do diện tích bề mặt và góc của chúng nhỏ. Vui lòng chia sẻ, phát triển thêm và cho tôi biết về bất kỳ điều chỉnh hoặc sai sót cần thiết nào. Đây là một trải nghiệm học tập tuyệt vời và tôi hy vọng bạn sẽ có nhiều niềm vui khi thực hiện dự án này như tôi đã làm!
Về nhì trong cuộc thi người máy
Đề xuất:
Bộ đếm Arduino sử dụng màn hình LED TM1637 & cảm biến tránh chướng ngại vật: 7 bước
Bộ đếm Arduino Sử dụng Màn hình LED TM1637 & Cảm biến tránh chướng ngại vật: Trong hướng dẫn này, chúng ta sẽ học cách tạo bộ đếm chữ số đơn giản bằng Màn hình LED TM1637 và cảm biến tránh chướng ngại vật và Visuino
Thuyền chèo tránh chướng ngại vật với Arudino: 9 bước
Thuyền chèo tránh chướng ngại vật với Arudino: Xin chào các bạn, trong bài hướng dẫn này, tôi sẽ chỉ cho các bạn cách tạo Thuyền chèo tránh chướng ngại vật. Tôi nảy ra ý tưởng này khi đang thư giãn gần ao cá của mình và nghĩ ra ý tưởng cho thử thách dẻo. Tôi nhận ra rằng nhựa ở đây sẽ rất
Rover tránh chướng ngại vật với Dexter: 4 bước
Rover tránh chướng ngại vật với Dexter: Nếu bạn là người mới tham gia Cộng đồng Dexter, vui lòng tham khảo https://www.instructables.com/id/Getting-Started-With-Dexter/ Trong dự án này, chúng tôi đang phát triển Rover tránh chướng ngại vật bằng cách sử dụng bảng Dexter của chúng tôi và Cảm biến siêu âm
Tự làm Arduino Ô tô tránh chướng ngại vật tại nhà: 5 bước
Tự làm Arduino Ô tô tránh chướng ngại vật tại nhà: Trong bài viết này, tôi sẽ hướng dẫn bạn cách tạo ô tô tránh chướng ngại vật Arduino tại nhà
Trò chơi tránh chướng ngại vật với cảm biến khoảng cách: 5 bước
Trò chơi tránh chướng ngại vật với cảm biến khoảng cách: Trò chơi tránh chướng ngại vật như Flappy Bird. Di chuyển bàn tay của bạn để tránh va chạm. Nó rất dễ thực hiện và thú vị để chơi