Làm thế nào để Tạo Robot tránh chướng ngại vật bằng Arduino?

Thế giới đang phát triển rất nhanh và công nghệ cũng đang di chuyển theo nó trong lĩnh vực người máy. Các ứng dụng của robot có thể được nhìn thấy ở khắp mọi nơi trên thế giới. Khái niệm về rô bốt di động hoặc rô bốt tự động di chuyển mà không cần bất kỳ sự trợ giúp nào từ bên ngoài là lĩnh vực nghiên cứu bắt chước nhất. Có rất nhiều loại rô bốt di động, ví dụ, thông dịch viên Tự bản địa hóa và Lập bản đồ (SLAM), Theo dòng, Bots Sumo, v.v. Một trong số đó, rô bốt tránh chướng ngại vật là một trong số đó. Nó sử dụng một kỹ thuật để thay đổi đường đi nếu nó phát hiện bất kỳ chướng ngại vật nào cản đường nó.



(Hình ảnh Lịch sự: Thông báo mạch)

Trong dự án này, một robot tránh chướng ngại vật dựa trên Arduino được thiết kế sẽ sử dụng cảm biến siêu âm để phát hiện tất cả các chướng ngại vật trên đường đi của nó.



Làm thế nào để tránh chướng ngại vật khi sử dụng cảm biến siêu âm?

Khi chúng ta biết phần tóm tắt về dự án của mình, chúng ta hãy đi trước một bước và thu thập một số thông tin để bắt đầu dự án.



Bước 1: Thu thập các thành phần

Cách tiếp cận tốt nhất để bắt đầu bất kỳ dự án nào là lập danh sách các thành phần hoàn chỉnh khi bắt đầu và thực hiện nghiên cứu ngắn gọn về từng thành phần. Điều này giúp chúng tôi tránh được những bất tiện khi ở giữa dự án. Dưới đây là danh sách đầy đủ của tất cả các thành phần được sử dụng trong dự án này.



  • Khung bánh xe ô tô
  • Ắc quy

Bước 2: Nghiên cứu các thành phần

Bây giờ, khi chúng ta có một danh sách đầy đủ của tất cả các thành phần, chúng ta hãy tiến lên một bước và đi qua một nghiên cứu ngắn gọn về hoạt động của mọi thành phần.

Arduino nano là một bảng vi điều khiển thân thiện với breadboard được sử dụng để điều khiển hoặc thực hiện các tác vụ khác nhau trong một mạch. Chúng tôi đốt cháy một Mã C trên Arduino Nano để thông báo cho bo mạch vi điều khiển cách thức và những thao tác cần thực hiện. Arduino Nano có chức năng chính xác như Arduino Uno nhưng kích thước khá nhỏ. Bộ vi điều khiển trên bảng Arduino Nano là ATmega328p.

Arduino Nano



L298N là mạch tích hợp dòng điện cao và điện áp cao. Nó là một cầu đầy đủ kép được thiết kế để chấp nhận logic TTL tiêu chuẩn. Nó có hai đầu vào cho phép thiết bị hoạt động độc lập. Hai động cơ có thể được kết nối và hoạt động cùng một lúc. Tốc độ của động cơ thay đổi thông qua các chân PWM. Điều chế độ rộng xung (PWM) là một kỹ thuật trong đó dòng điện áp trong bất kỳ thành phần điện tử nào có thể được kiểm soát. Mô-đun này có một cầu H chịu trách nhiệm điều khiển hướng quay trong động cơ bằng cách đảo ngược hướng của dòng điện. Chân Enable A và Enable Pin B được sử dụng để thay đổi tốc độ của cả hai động cơ. Mô-đun này có thể hoạt động từ 5 đến 35V và dòng điện cực đại lên đến 2A. Chân đầu vào1 và chân đầu vào2 và cho động cơ thứ nhất và chân đầu vào3 và chân đầu vào4 dành cho động cơ thứ hai.

Trình điều khiển động cơ L298N

Bảng HC-SR04 là một cảm biến siêu âm được sử dụng để xác định khoảng cách giữa hai đối tượng. Nó bao gồm một máy phát và một máy thu. Máy phát chuyển tín hiệu điện thành tín hiệu siêu âm và máy thu chuyển đổi tín hiệu siêu âm trở lại tín hiệu điện. Khi máy phát gửi một sóng siêu âm, nó sẽ phản xạ sau khi va chạm với một vật thể nhất định. Khoảng cách được tính bằng cách sử dụng thời gian, tín hiệu siêu âm đó đi từ máy phát và trở lại máy thu.

Thiết bị cảm biến sóng siêu âm

Bước 3: Lắp ráp các thành phần

Bây giờ chúng ta đã biết hoạt động của hầu hết các thành phần được sử dụng, chúng ta hãy bắt đầu lắp ráp tất cả các thành phần và sản xuất một robot tránh chướng ngại vật.

  1. Lấy một cái bánh xe ô tô và dán một tấm bảng lên trên. Gắn cảm biến siêu âm ở phía trước của chasses và nắp pin phía sau chasses.
  2. Cố định bảng Arduino Nano trên bảng mạch và gắn trình điều khiển động cơ ngay sau bảng mạch, trên bảng điều khiển. Kết nối các chân Enable của bothe động cơ với Pin6 và Pin9 của Arduino nano. Các chân In1, In2, In3 và In4 của mô-đun trình điều khiển động cơ được kết nối tương ứng với pin2, pin3, pin4 và pin5 của Arduino nano.
  3. Chân trig và chân echo của cảm biến siêu âm được kết nối tương ứng với chân 11 và in10 của Arduino nano. Chân Vcc và chân nối đất của cảm biến siêu âm được kết nối với nguồn 5V và chân nối đất của Arduino Nano.
  4. Mô-đun điều khiển động cơ được cấp nguồn bằng pin. Bo mạch Arduino Nano lấy nguồn từ cổng 5V của mô-đun điều khiển động cơ và cảm biến siêu âm sẽ lấy nguồn từ bo mạch Arduino nano. trọng lượng và năng lượng của pin có thể trở thành yếu tố quyết định hiệu suất của nó.
  5. Đảm bảo rằng các kết nối của bạn giống như được hiển thị bên dưới trong sơ đồ mạch.

    Sơ đồ mạch

Bước 4: Bắt đầu với Arduino

Nếu bạn chưa quen với Arduino IDE, đừng lo lắng vì quy trình từng bước để thiết lập và sử dụng Arduino IDE với bảng vi điều khiển được giải thích dưới đây.

  1. Tải xuống phiên bản Arduino IDE mới nhất từ Arduino.
  2. Kết nối bo mạch Arduino Nano với máy tính xách tay của bạn và mở bảng điều khiển. trong bảng điều khiển, nhấp vào Phần cứng và Âm thanh . Bây giờ bấm vào Các thiết bị và máy in. Tại đây, hãy tìm cổng kết nối bảng vi điều khiển của bạn. Trong trường hợp của tôi, nó là COM14 nhưng nó khác nhau trên các máy tính khác nhau.

    Tìm cổng

  3. Nhấp vào menu Công cụ. và đặt bảng thành Arduino Nano từ menu thả xuống.

    Ban thiết lập

  4. Trong cùng một menu Công cụ, hãy đặt cổng thành số cổng mà bạn đã quan sát trước đó trong Các thiết bị và máy in .

    Thiết lập cổng

  5. Trong cùng một menu Công cụ, Đặt Bộ xử lý thành ATmega328P (Bộ nạp khởi động cũ).

    Bộ xử lý

  6. Tải xuống mã đính kèm bên dưới và dán nó vào IDE Arduino của bạn. Bấm vào tải lên để ghi mã trên bảng vi điều khiển của bạn.

    Tải lên

Để tải xuống mã, bấm vào đây.

Bước 5: Tìm hiểu mã

Mã được nhận xét tốt và tự giải thích. Nhưng vẫn còn, nó được giải thích dưới đây

1. Khi bắt đầu mã, tất cả các chân của bảng Arduino Nano được kết nối với cảm biến siêu âm và mô-đun trình điều khiển động cơ, được khởi tạo. Pin6 và Pin9 là các chân PWM có thể thay đổi dòng điện áp để thay đổi tốc độ của Robot. Hai biến, thời hạn,khoảng cách được khởi tạo để lưu trữ dữ liệu mà sau này sẽ được sử dụng để tính khoảng cách của cảm biến siêu âm và chướng ngại vật.

int enable1pin = 6; // Ghim cho Động cơ đầu tiên int motor1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // Chân cho động cơ thứ hai int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Kích hoạt Pin của Ultrasonic Sesnor const int echoPin = 10; // Echo Pin của Ultrasonic Sesnor thời gian dài; // các biến để Tính khoảng cách float khoảng cách;

2. void setup () là một hàm được sử dụng để đặt các chân được sử dụng, như ĐẦU VÀOĐẦU RA. Tốc độ Baud được xác định trong chức năng này. Tốc độ Baud là tốc độ giao tiếp mà bo mạch vi điều khiển giao tiếp với các cảm biến tích hợp với nó.

void setup () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (enable1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (motor1pin1, OUTPUT); pinMode (motor1pin2, OUTPUT); pinMode (motor2pin1, OUTPUT); pinMode (motor2pin2, OUTPUT); }

3. void loop () là một hàm chạy nhiều lần trong một chu kỳ. Trong chức năng này, chúng tôi cho bảng vi điều khiển biết cách thức và những thao tác cần thực hiện. Ở đây, đầu tiên, chân kích hoạt được đặt để gửi một tín hiệu sẽ được phát hiện bởi chân echo. Sau đó, thời gian mà tín hiệu siêu âm thực hiện để đi từ và trở lại cảm biến được tính toán và lưu vào biến thời hạn. Sau đó, thời gian này được sử dụng trong một công thức để tính toán khoảng cách của chướng ngại vật và cảm biến siêu âm. Sau đó, một điều kiện được áp dụng là nếu khoảng cách lớn hơn 5ocm, robot sẽ di chuyển về phía trước theo đường thẳng và nếu khoảng cách nhỏ hơn 50cm, robot sẽ rẽ phải.

void loop () {digitalWrite (trigPin, LOW); // Gửi và phát hiện độ trễ tín hiệu siêu âmMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); thời lượng = xungIn (echoPin, CAO); // Tính thời gian mà sóng siêu âm thực hiện để phản xạ lại khoảng cách = 0.034 * (thời lượng / 2); // Tính toán khoảng cách giữa tuần của robbot và chướng ngại vật. if (distance> 50) // Di chuyển về phía trước nếu khoảng cách lớn hơn 50cm {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, CAO); digitalWrite (motor2pin2, LOW); } else if (khoảng cách<50) // Sharp Right Turn if the distance is less than 50cm { digitalWrite(enable1pin, HIGH); digitalWrite(enable2pin, HIGH); digitalWrite(motor1pin1, HIGH); digitalWrite(motor1pin2, LOW); digitalWrite(motor2pin1, LOW); digitalWrite(motor2pin2, LOW); } delay(300); }

Các ứng dụng

Vì vậy, đây là thủ tục để tạo ra một robot tránh chướng ngại vật Công nghệ tránh chướng ngại vật này cũng có thể bị kiện trong các ứng dụng khác. Một số ứng dụng này như sau.

  1. Hệ thống theo dõi.
  2. Mục đích đo khoảng cách.
  3. Điều này có thể được sử dụng trong robot hút bụi tự động.
  4. Điều này có thể được sử dụng trong Gậy cho người mù.