Mục lục:

ROADRUNNER: 5 bước
ROADRUNNER: 5 bước

Video: ROADRUNNER: 5 bước

Video: ROADRUNNER: 5 bước
Video: Dero & @KlumzyTung - Roadrunner (Official Video) 2024, Tháng mười một
Anonim
ROADRUNNER
ROADRUNNER

Roadrunner là một loại xe nhỏ tự động, có chức năng vận chuyển các lon nước giải khát đến tay người dùng đang khát.

Làm thế nào nó hoạt động? Một lon được đặt trên đế trên cùng của xe và trọng lượng của lon sẽ kích hoạt một nút nhỏ thông báo cho phương tiện biết rằng nó đã sẵn sàng hoạt động. Để hướng dẫn bản thân, Roadrunner đi theo một con đường trên mặt đất dưới dạng một đường màu đen, cho biết nơi anh ta nên đến và nhờ sử dụng cảm biến quang, anh ta có thể phát hiện khi anh ta đi chệch hướng, điều chỉnh hướng đi của mình, để duy trì theo cách này, luôn luôn bên trong đường đua. Khi phương tiện đến tay người dùng, nó sẽ lấy đồ uống khiến phương tiện vận tải nhỏ dừng lại ở vị trí cũ. Anh ta sẽ không thực hiện lại cuộc hành quân của mình cho đến khi người dùng đặt lon trở lại nó, để quay lại điểm xuất phát và hoàn thành công việc của mình.

Bước 1: Công cụ & Vật liệu

Công cụ & Vật liệu
Công cụ & Vật liệu
Công cụ & Vật liệu
Công cụ & Vật liệu

Bước 2: Lắp ráp phần cứng

Lắp ráp phần cứng
Lắp ráp phần cứng
Lắp ráp phần cứng
Lắp ráp phần cứng
Lắp ráp phần cứng
Lắp ráp phần cứng

1. CƠ THỂ

Đối với phần thân, chúng tôi sử dụng một tấm nhôm, chúng tôi cắt và uốn cong theo hình dạng chúng tôi muốn. Chúng tôi cũng đã tạo tất cả các lỗ cần thiết cho các vít.

2. BÁNH XE

Chúng tôi đã sử dụng 2 bánh xe từ trò chơi Mecano hoàn toàn phù hợp với robot của chúng tôi. Các servo đi dưới tấm được nối với sự trợ giúp của vít. Đối với bánh trước, chúng tôi đã sử dụng bánh xe "tự do", vì vậy nó có thể đi theo bất kỳ hướng nào một cách dễ dàng.

3. HÌNH ẢNH

Đối với các cảm biến quang RDL, chúng tôi sử dụng một bảng mạch và chúng tôi hàn mạch vào nó, nó bao gồm điện trở, LDR, một tín hiệu tích cực, tiêu cực và tín hiệu.

4. BAN ARDUINO

Chúng tôi đã gắn bảng Arduino vào tấm bằng vít. Sau đó, chúng tôi chỉ cần kết nối tất cả các mạch với nó. Để cung cấp bo mạch, chúng tôi đã sử dụng 2 pin 9V, chúng tôi đã kết hợp và cắm vào Arduino.

5. TẤM HÀNG ĐẦU

Đối với tấm trên cùng, chúng tôi sử dụng máy cắt laser để cắt PMMA. Chúng tôi đã thiết kế hình dạng này bằng AutoCad. Nó bao gồm một đĩa lớn, 3 vòng tròn, và một miếng hình tròn để lắp vào các vòng. Chúng tôi đã cho không gian vào đĩa để chúng tôi có thể đặt vừa một nút.

Bước 3: Kết nối điện

Kết nối điện
Kết nối điện

1. Kết nối Servomotors:

Servomotors bao gồm ba dây cáp; một màu vàng hoặc cam cho tín hiệu, màu đỏ cho nguồn (Vcc) và màu đen hoặc nâu cho mặt đất (GND). Màu đỏ và màu nâu được gắn vào các chân tương ứng trên Arduino (5V và GND). Một servo được kết nối với chân PWM 10 và một servo khác với chân PWM 11.

2. Nút kết nối:

Các nút điện tử hoạt động theo một cách hơi đặc biệt; cho phép truyền điện áp qua các chân theo đường chéo, nghĩa là nếu chúng ta có bốn chân, chúng ta phải kết nối đầu vào và đầu ra chỉ trong hai chân, 1-4 hoặc 2-3 để hoạt động. Ví dụ: nếu chúng ta chọn chân 1-4, chúng ta sẽ nối đất (GND) vào chân 4, và đầu ra sẽ kết nối với chân PWM 9 và lần lượt, cùng với điện trở 1kOhm, kết nối nó với 5V (Vcc).

3. Kết nối Cảm quang:

Để kết nối các cảm biến quang, chúng ta phải đặt một trong các chân trực tiếp với nguồn Vcc và chân kia kết nối nó cùng lúc, với một chân tương tự (trong trường hợp này là các chân A0 và A1) và với GND nối đất cùng với điện trở 1kOhm.

Ghi chú:

Bạn có thể hàn các đầu nối nhỏ vào dây nếu dây không vừa trực tiếp với Arduino hoặc sử dụng bảng mạch để tạo thuận lợi cho các kết nối khác nhau. Trong dự án này, chúng tôi đã sử dụng các dải kết nối cho các mối nối khác nhau.

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

Lập trình Arduino
Lập trình Arduino
Lập trình Arduino
Lập trình Arduino

MÃ SỐ

#include Servo myservoL;

Servo myservoR;

int inPin = 7;

int buttonVal = 1;

void setup () {

// MÁY CHỦ

myservoL.attach (10);

myservoR.attach (11);

Serial.begin (9600); }

void loop () {

int LDR_L = analogRead (A2);

int LDR_R = analogRead (A1);

buttonVal = digitalRead (inPin);

// GÓI TRÁI

if (LDR_L> 590 && buttonVal == 0) {

myservoL.write (180);

//Serial.println(LDR_L); }

khác {

myservoL.write (92);

//Serial.println(LDR_L);

}

// ĐÓNG GÓI

if (LDR_R> 750 && buttonVal == 0) {

myservoR.write (-270);

//Serial.println(LDR_R); }

khác {

myservoR.write (92);

//Serial.println(LDR_R); }

}

Đề xuất: