Làm thế nào để Tạo Robot tránh chướng ngại vật bằng Arduino?
Thế giới đang chuyển động nhanh chóng và công nghệ cũng đang chuyển động cùng với nó trong lĩnh vực chế tạo người máy. Các ứng dụng của người máy 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 ra bất kỳ chướng ngại vật nào cản đường nó.
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 bằng cách 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.
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 để 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. Arduino Nano có chức năng chính xác như Arduino Uno nhưng với kích thước khá nhỏ. Bộ vi điều khiển trên bảng Arduino Nano là ATmega328p.
L298N là mạch tích hợp dòng điện cao và điện áp cao. Nó là một cầu kép đầy đủ đượ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.
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. Bộ phát chuyển đổi tín hiệu điện thành tín hiệu siêu âm và bộ 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ạ lại 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à quay trở lại máy thu.
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.
- 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.
- Cố định bo mạch Arduino Nano trên breadboard và gắn trình điều khiển động cơ ngay sau breadboard, trên chasses. 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.
- Chân trig và chân echo của cảm biến siêu âm được kết nối với chân 11 và in10 của Arduino nano tương ứng. 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.
- Mô-đun điều khiển động cơ được cung cấp năng lượng bằng pin. Bo mạch Arduino Nano lấy nguồn từ cổng 5V của mô-đun trình đ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ó.
- Đả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.
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.
- Tải xuống phiên bản Arduino IDE mới nhất từ Arduino.
- Kết nối bảng 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àoPhần cứng và Âm thanh. Bây giờ bấm vàoCác thiết bị và máy in.Tại đây, hãy tìm cổng mà bảng vi điều khiển của bạn được kết nối. Trong trường hợp của tôi, nó là COM14nhưng nó khác nhau trên các máy tính khác nhau.
- Nhấp vào menu Công cụ. và đặt bảng thành Arduino Nano từ menu thả xuống.
- 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.
- Trong cùng một menu Công cụ, Đặt Bộ xử lý thành ATmega328P (Bộ nạp khởi động cũ).
- Tải xuống mã được đí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 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, và 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 toán 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 distance;
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 và ĐẦU RA.Tốc độ Baud được xác định trong chức năng này. Baud Rate là tốc độ truyền thông 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 lặp đi lặp lại 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 tín hiệu sẽ được phát hiện bởi chân echo. Sau đó, thời gian được thực hiện bởi tín hiệu siêu âm để đ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 do 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) // Ngoặt Phải nếu khoảng cách nhỏ hơn 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.
- Hệ thống theo dõi.
- Mục đích đo khoảng cách.
- Điều này có thể được sử dụng trong robot hút bụi tự động.
- Điều này có thể được sử dụng trong Gậy dành cho người mù.