Mục lục:

Cách tự chế robot Arduino tránh chướng ngại vật tại nhà: 4 bước
Cách tự chế robot Arduino tránh chướng ngại vật tại nhà: 4 bước

Video: Cách tự chế robot Arduino tránh chướng ngại vật tại nhà: 4 bước

Video: Cách tự chế robot Arduino tránh chướng ngại vật tại nhà: 4 bước
Video: Tự học Arduino cơ bản | Bài 12 Tự chế Robot tránh vật cản dùng Arduino cảm biến siêu âm 2024, Tháng bảy
Anonim
Image
Image

Xin chào các bạn, Trong bài có hướng dẫn này, bạn sẽ tạo ra một robot tránh chướng ngại vật. Có thể hướng dẫn này liên quan đến việc xây dựng một robot với cảm biến siêu âm có thể phát hiện các vật thể gần đó và thay đổi hướng của chúng để tránh những vật thể này. Cảm biến siêu âm sẽ được gắn vào một động cơ servo liên tục quét trái và phải để tìm kiếm các vật thể theo cách của nó.

Vì vậy, không cần quảng cáo thêm, Hãy bắt đầu!

Bước 1: Những gì bạn cần trong dự án này:

Những gì bạn cần trong dự án này
Những gì bạn cần trong dự án này
Những gì bạn cần trong dự án này
Những gì bạn cần trong dự án này

Đây là danh sách các bộ phận:

1) Arduino Uno

2) Tấm chắn trình điều khiển động cơ

3) Động cơ bánh răng, khung và bộ bánh xe

4) Động cơ Servo

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

6) Pin Li-ion (2x)

7) Giá đỡ pin

8) Dây nhảy nam và nữ

9) Sắt hàn

10) Bộ sạc

Bước 2: Sơ đồ mạch

Sơ đồ mạch
Sơ đồ mạch

Đang làm việc:

Trước khi bắt tay vào làm dự án, điều quan trọng là phải hiểu cách thức hoạt động của cảm biến siêu âm. Nguyên tắc cơ bản đằng sau hoạt động của cảm biến siêu âm như sau:

Sử dụng tín hiệu kích hoạt bên ngoài, chân Trig trên cảm biến siêu âm được tạo mức logic cao trong ít nhất 10µs. Một vụ nổ âm thanh từ mô-đun máy phát được gửi đi. Điều này bao gồm 8 xung 40KHz.

Các tín hiệu quay trở lại sau khi va chạm vào một bề mặt và bộ thu phát hiện ra tín hiệu này. Chân Echo ở mức cao kể từ thời điểm gửi tín hiệu và nhận tín hiệu. Thời gian này có thể được chuyển đổi thành khoảng cách bằng cách sử dụng các tính toán thích hợp.

Mục tiêu của dự án này là thực hiện một robot tránh chướng ngại vật sử dụng cảm biến siêu âm và Arduino. Tất cả các kết nối được thực hiện theo sơ đồ mạch. Hoạt động của dự án được giải thích dưới đây.

Khi rô bốt được bật nguồn, cả hai động cơ của rô bốt sẽ chạy bình thường và rô bốt di chuyển về phía trước. Trong thời gian này, cảm biến siêu âm liên tục tính toán khoảng cách giữa robot và bề mặt phản chiếu.

Thông tin này được xử lý bởi Arduino. Nếu khoảng cách giữa robot và chướng ngại vật nhỏ hơn 15cm, Robot sẽ dừng lại và quét theo các hướng trái và phải để tìm khoảng cách mới bằng cách sử dụng Động cơ Servo và Cảm biến siêu âm. Nếu khoảng cách về phía bên trái nhiều hơn khoảng cách của phía bên phải, robot sẽ chuẩn bị rẽ trái. Nhưng trước tiên, nó lùi lại một chút và sau đó kích hoạt Động cơ bánh xe trái theo hướng đã đảo ngược.

Tương tự, nếu khoảng cách bên phải nhiều hơn khoảng cách bên trái, Robot chuẩn bị quay phải. Quá trình này tiếp tục diễn ra mãi mãi và robot vẫn tiếp tục di chuyển mà không va phải bất kỳ chướng ngại vật nào.

Bước 3: Lập trình Arduino UNO

#bao gồm

#bao gồm

#bao gồm

# xác định TRIG_PIN A1

# xác định ECHO_PIN A0

# xác định MAX_DISTANCE 200

# xác định MAX_SPEED 255 // đặt tốc độ của động cơ DC

# xác định MAX_SPEED_OFFSET 20

Sonar NewPing (TRIG_PIN, ECHO_PIN, MAX_DISTANCE);

AF_DCMotor động cơ3 (3, MOTOR34_1KHZ);

AF_DCMotor động cơ4 (4, MOTOR34_1KHZ); Servo myservo;

boolean goForward = false;

int khoảng cách = 100; int speedSet = 0;

void setup () {

myservo.attach (10);

myservo.write (115); chậm trễ (2000); khoảng cách = readPing (); chậm trễ (100); khoảng cách = readPing (); chậm trễ (100); khoảng cách = readPing (); chậm trễ (100); khoảng cách = readPing (); chậm trễ (100); }

void loop () {

int khoảng cáchR = 0; int khoảng cáchL = 0; chậm trễ (40);

if (khoảng cách <= 15) {moveStop (); chậm trễ (100); moveBackward (); chậm trễ (300); moveStop (); chậm trễ (200); khoảng cáchR = lookRight (); chậm trễ (200); khoảng cáchL = lookLeft (); chậm trễ (200);

if (distanceR> = distanceL) {

rẽ phải(); moveStop (); } else {turnLeft (); moveStop (); }} else {moveForward (); } khoảng cách = readPing (); }

int lookRight () {

myservo.write (50); chậm trễ (500); int khoảng cách = readPing (); chậm trễ (100); myservo.write (115); khoảng cách trở lại; }

int lookLeft () {

myservo.write (170); chậm trễ (500); int khoảng cách = readPing (); chậm trễ (100); myservo.write (115); khoảng cách trở lại; chậm trễ (100); }

int readPing () {

chậm trễ (70); int cm = sonar.ping_cm (); nếu (cm == 0) {cm = 250; } trả về cm; }

void moveStop () {

motor3.run (RELEASE);

motor4.run (RELEASE); }

void moveForward () {

if (! goForward) {

goForward = true;

motor3.run (FORWARD);

motor4.run (FORWARD); for (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // từ từ tăng tốc độ lên để tránh sạc pin xuống quá nhanh {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); chậm trễ (5); }}}

void moveBackward () {

goForward = false;

motor3.run (PHẦN THƯỞNG);

motor4.run (PHẦN THƯỞNG); for (speedSet = 0; speedSet <MAX_SPEED; speedSet + = 2) // từ từ tăng tốc độ lên để tránh nạp pin xuống quá nhanh {

motor3.setSpeed (speedSet);

motor4.setSpeed (speedSet); chậm trễ (5); }}

void turnRight () {

motor3.run (FORWARD);

motor4.run (PHẦN THƯỞNG); chậm trễ (500);

motor3.run (FORWARD);

motor4.run (FORWARD); }

void turnLeft () {

motor3.run (PHẦN THƯỞNG);

motor4.run (FORWARD); chậm trễ (500);

motor3.run (FORWARD);

motor4.run (FORWARD); }

1) Tải xuống và cài đặt Arduino Desktop IDE

  • windows -
  • Mac OS X -
  • Linux -

2) Tải xuống và dán tệp thư viện NewPing (Thư viện chức năng cảm biến siêu âm) vào thư mục thư viện Arduino.

  1. Tải xuống NewPing.rar bên dưới
  2. Giải nén nó vào đường dẫn - C: / Arduino / thư viện

3) Tải mã lên bảng Arduino qua cáp USB

Tải xuống mã:

Bước 4: Tuyệt vời

Giờ đây, rô bốt của bạn đã sẵn sàng để tránh mọi chướng ngại vật…

Tôi rất sẵn lòng trả lời bất kỳ câu hỏi nào của bạn

Emailme: [email protected]

Trang web:

Đăng ký kênh YouTube của tôi:

Instagram:

Facebook:

Cảm ơn:)

Đề xuất: