Cách xây dựng arduino robot đơn giản

Cách xây dựng arduino robot đơn giản

Phuong Dang - 2021-04-25 13:26:50 | 192 lượt xem

Mục lục

Trong bài viết này, Uniduc sẽ hướng dẫn bạn cách xây dựng arduino robot đơn giản chỉ với 10 bước. Mời các bạn xem tiếp phần nội dung sau đây!

arduino robot

1. Bước 1: Bộ phận / Công cụ.

Để tiến hành xây dựng arduino robot, bạn cần chuẩn bị các bộ phận sau:

UNO R3 tương thích với Arduino

Lò xo RC SM-S4303R Servos quay liên tục (2)

Breadboard nhỏ (1)

Breadboard Jumper Wires (hoặc dây móc nối) (1)

Cảm biến khoảng cách siêu âm HC-SR04 (1)

Công tắc nút nhấn mini (1)

Điện trở phim carbon 10kΩ (1)

Header break away dài (1)

4 inch Ties Zip Nylon Đen (1) Zip Ties

2. Bước 2: Chế tạo khung xe.

arduino robot

Đặt pin úp xuống và hướng pin sao cho dây cáp hướng về phía bạn. Lấy hai miếng băng dính hai mặt và dán chúng vào các cạnh dài của mỗi servo. Bóc lớp sau của băng keo và ấn mạnh các servo vào bộ pin. Lưu ý: Đảm bảo áp dụng các servo ở đầu nơi dây dẫn ra, hướng sao cho các trục hướng về cuối bộ pin. Lưu ý: Đảm bảo rằng các servo được ép chặt vào nhau và chúng nằm chính giữa bộ pin. Cách đơn giản nhất để làm điều này là bóc mặt sau của băng keo, giữ một servo trong mỗi tay trong khi ấn mặt sau của chúng vào nhau, sau đó ấn chúng xuống cùng một lúc vào bộ pin.

3. Bước 3: Breadboard và Arduino.

arduino robot

Gắn bảng mạch vào đầu của bộ pin. Bạn có thể dán mặt sau của băng dính bọt đã có trên breadboard hoặc bạn có thể sử dụng băng dính hai mặt của riêng mình, tôi khuyên bạn nên sử dụng loại thứ 2. Arduino sẽ cưỡi trên đầu các servo trong thiết kế robot này. Cắt một đoạn băng nhỏ hơn so với chiều rộng của Arduino và đặt băng lên trên servo. Gỡ phần mặt sau của băng hai mặt ra và ấn arduino lên băng.

4. Bước 4: Bánh xe.

arduino robot

Lấy bánh xe và ấn chặt chúng vào servo. Bước cuối cùng của quá trình lắp ráp là đặt một bánh xe ở mặt trước của robot. Bánh xe có kích thước khoảng 1/4 inch, vì vậy chúng ta cần tìm một thứ gì đó để đặt giữa nó và bảng mạch. Sử dụng gỗ vụn và băng dính, tạo một miếng đệm để tăng khoảng trống của bánh xe . Khi miếng đệm có kích thước chính xác, hãy sử dụng băng dính hai mặt và cố định bảng mạch vào miếng đệm và miếng đệm vào khay bánh.

5. Bước 5: Đấu dây Servos.

arduino robot

Cắt hai đoạn 3 chân của header dài. Miếng nhựa đen của chân cắm header có thể đã bị lệch khỏi tâm. Dùng kìm, cẩn thận đặt lại vị trí miếng nhựa đen sao cho nó nằm ở điểm giữa của chốt kim loại. Nhấn các header vào breadboard, sau đó gắn cáp servo vào header, với dây màu đen trên cáp ở phía bên trái. Kết nối các dây màu đỏ trên servo với thanh dương (đỏ) của bảng mạch, dây đen với thanh GND (xanh lam) và dây trắng với chân 12 và 13 trên Arduino. Lưu ý: Giữ cho bố cục mạch của bạn gọn gàng bằng cách sử dụng nguồn và đường ray nối đất của bảng mạch gần nhất với Arduino.

6. Bước 6: Thêm cảm biến.

arduino robot

Chèn cảm biến siêu âm sao cho nó hướng về phía trước của robot, đồng thời nhô ra đường ray và nguồn điện chưa sử dụng. Lưu ý: Cảm biến không được cắm vào nguồn điện hoặc đường ray nối đất, nó nằm trong phần thân của bảng mạch. Ngoài ra, dây buộc zip giúp giữ cho hệ thống cáp của robot của bạn gọn gàng hơn. Kết nối cảm biến siêu âm để chân VCC của nó được nối với thanh nguồn phía trước (màu đỏ) trên bảng mạch. Kết nối dây màu đen với chân GND của cảm biến và với thanh nguồn GND (màu xanh lam). Cuối cùng, kết nối một dây màu trắng với Trig và Echo vào các chân 8 và 9 tương ứng trên Arduino.

7. Bước 7: Kết nối nguồn (phần 1).

arduino robot

Servos không nên được cấp nguồn qua chân 5V trên Arduino vì chúng có thể tạo ra nhiều dòng điện hơn mà Arduino có thể cung cấp. Cách chính xác là cấp nguồn cho servo trực tiếp từ một bộ pin (hoặc cùng một bộ pin cấp nguồn cho Arduino hoặc tốt hơn là một bộ pin riêng). Bốn pin AA sẽ cung cấp cho các động cơ ở khoảng từ 4,8V đến 6V tùy thuộc vào loại pin, loại pin mà các servo cần. Cách dễ nhất là gắn một sợi dây màu đỏ vào lò xo thứ hai từ bên trái và một sợi dây màu đen vào lò xo cuối cùng ở bên phải trong bộ pin. Lưu ý: Hãy chú ý đến hướng của bộ pin trong hình trên. Đảm bảo rằng khi bạn đặt dây màu đỏ vào “lò xo thứ hai từ bên trái” thì cáp bộ pin nằm ở phía dưới bên trái. Nếu bạn có đồng hồ vạn năng, đây sẽ là thời điểm tuyệt vời để sử dụng nó để xác minh rằng bạn đang cắm dây vào đúng vị trí.

8. Bước 8: Kết nối nguồn (phần 2).

arduino robot

Chạy các dây màu đỏ và đen vừa đặt trong các lò xo của bộ pin tới các thanh nguồn ở phía sau của breadboard. Sử dụng dây màu đen để kết nối chân GND trên Arduino với thanh GND ở phía sau bảng mạch, sau đó sử dụng một dây khác để kết nối hai thanh GND trên bảng mạch với nhau (không kết nối các thanh ray dương với nhau). Bây giờ, lấy một sợi dây màu đỏ và kết nối chân 5V trên Arduino với thanh nguồn FRONT (màu đỏ) trên breadboard.

9. Bước 9: Thêm công tắc hủy.

arduino robot

Cuối cùng, thêm một công tắc hủy vào robot để nó có thể tự dừng mà không cần phải rút nguồn điện. Lấy một công tắc nút nhấn và đặt nó qua khoảng trống trong breadboard. Sau đó, sử dụng dây màu đỏ để kết nối một bên của công tắc với thanh ray phía trước, một điện trở 10kΩ để kết nối bên kia của công tắc với GND, và một dây màu trắng để kết nối bên của công tắc với điện trở vào chân 2 trên Arduino.

10. Bước 10: Lập trình robot.

Bây giờ, arduino robot đã hoàn thành, bạn sẽ bắt đầu lập trình hành vi của nó.

Kiểm tra mã cho robot này.

#include

// create servo objects Servo leftMotor; Servo rightMotor;

const int serialPeriod = 250; // only print to the serial console every 1/4 second unsigned long timeSerialDelay = 0;

const int loopPeriod = 20; // a period of 20ms = a frequency of 50Hz unsigned long timeLoopDelay = 0;

// specify the trig & echo pins used for the ultrasonic sensors const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9;

int ultrasonic2Distance; int ultrasonic2Duration;

// define the states #define DRIVE_FORWARD 0 #define TURN_LEFT 1

int state = DRIVE_FORWARD; // 0 = drive forward (DEFAULT), 1 = turn left

void setup() { Serial.begin(9600); // ultrasonic sensor pin configurations pinMode(ultrasonic2TrigPin, OUTPUT); pinMode(ultrasonic2EchoPin, INPUT); leftMotor.attach(13); rightMotor.attach(12); }

void loop() { debugOutput(); // prints debugging messages to the serial console if(millis() - timeLoopDelay >= loopPeriod) { readUltrasonicSensors(); // read and store the measured distances stateMachine(); timeLoopDelay = millis(); } }

void stateMachine() { if(state == DRIVE_FORWARD) // no obstacles detected { if(ultrasonic2Distance > 6 || ultrasonic2Distance < 0) // if there's nothing in front of us (note: ultrasonicDistance will be negative for some ultrasonics if there's nothing in range) { // drive forward rightMotor.write(180); leftMotor.write(0); } else // there's an object in front of us { state = TURN_LEFT; } } else if(state == TURN_LEFT) // obstacle detected -- turn left { unsigned long timeToTurnLeft = 1100; // it takes around 1.1 seconds to turn 90 degrees unsigned long turnStartTime = millis(); // save the time that we started turning

while((millis()-turnStartTime) < timeToTurnLeft) // stay in this loop until timeToTurnLeft (1.1 seconds) has elapsed { // turn left rightMotor.write(180); leftMotor.write(180); } state = DRIVE_FORWARD; } }

void readUltrasonicSensors() { // ultrasonic 2 digitalWrite(ultrasonic2TrigPin, HIGH); delayMicroseconds(10); // must keep the trig pin high for at least 10us digitalWrite(ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn(ultrasonic2EchoPin, HIGH); ultrasonic2Distance = (ultrasonic2Duration/2)/29; }

void debugOutput() { if((millis() - timeSerialDelay) > serialPeriod) { Serial.print("ultrasonic2Distance: "); Serial.print(ultrasonic2Distance); Serial.print("cm"); Serial.println(); timeSerialDelay = millis(); } }

Chúc các bạn chế tạo thành công arduino robot!

-------------////--------------------------------------------////------------

GIỚI THIỆU ĐẾN BẠN SẢN PHẨM KHẨU TRANG Y TẾ WAKAMONO KHÁNG VI RÚT LÊN ĐẾN 99% BẠN CÓ THỂ MUA SẢN PHẨM Ở DƯỚI ĐÂY:

Đăng kí nhận tin mới



Đánh giá bài viết

0%

0 Tổng người đánh giá
5
0%
4
0%
3
0%
2
0%
1
0%
THÔNG TIN LIÊN HỆ

Công ty Cổ phần Uniduc

Địa Chỉ: 22 Đường Số 54, Phường Thảo Điền, Quận 2

Hotline: 089 6688 629 (Phòng Kinh Doanh / HTKT)

DĐ: 0903 666 014 (Mr Đức)

Email: [email protected]

Website: https://uniduc.com/vi

 
TỔNG QUAN

Công ty Cổ Phần Uniduc chuyên cung cấp các loại robot phục vụ, Agv Robot, hệ thống tự động. Với kinh nghiệm nghiên cứu lâu năm và đội ngũ kỹ sư năng động sáng tạo. Hi vọng Uniduc là điếm đến công nghệ là nơi khách hàng luôn gửi trọn niềm tin. Chúng tôi sẽ luôn luôn phấn đấu cung cấp cho bạn giải pháp, máy móc, dịch vụ tốt nhất.

WEB SITE CÙNG HỆ THỐNG

ĐĂNG KÝ NHẬN TIN

Nhận bản tin thường xuyên để cập nhật giá bán và các chương trình khuyến mãi.


©2018 - 2021 Copyright Uniduc., Jsc. Sitemap