Mục lục:

Nền tảng điều khiển cảm biến con quay hồi chuyển cho Câu đố mê cung: 3 bước
Nền tảng điều khiển cảm biến con quay hồi chuyển cho Câu đố mê cung: 3 bước

Video: Nền tảng điều khiển cảm biến con quay hồi chuyển cho Câu đố mê cung: 3 bước

Video: Nền tảng điều khiển cảm biến con quay hồi chuyển cho Câu đố mê cung: 3 bước
Video: Chỉ người có siêu IQ 300 mới có thể trốn thoát - tóm tắt phim The Maze Runner 2024, Tháng bảy
Anonim
Nền tảng điều khiển cảm biến con quay hồi chuyển cho trò chơi xếp hình mê cung
Nền tảng điều khiển cảm biến con quay hồi chuyển cho trò chơi xếp hình mê cung

Tài liệu hướng dẫn này được tạo ra để đáp ứng yêu cầu dự án của khóa học Thực hiện tại Đại học Nam Florida (www.makecourse.com)"

Dự án đơn giản này lấy cảm hứng từ một nền tảng tự cân bằng lấy phản hồi từ cảm biến gia tốc. Kiểm tra nó ra nếu bạn chưa có.

Dự án sử dụng Arduino UNO - Bộ vi điều khiển dễ sử dụng mà bạn có thể lấy từ các trang web mua sắm trực tuyến! Trong tài liệu hướng dẫn này, tôi sẽ chỉ cho bạn cách bạn có thể tạo nền tảng nghiêng có thể lập trình của riêng mình - từ quy trình thiết kế đến tìm nguồn cung ứng các bộ phận, tệp in 3D, lắp ráp và lập trình. Hãy tiếp tục và tiến về phía trước!

Bước 1: Các thành phần cần thiết và các bộ phận được in 3D

Các thành phần bắt buộc và các bộ phận được in 3D
Các thành phần bắt buộc và các bộ phận được in 3D
Các thành phần bắt buộc và các bộ phận được in 3D
Các thành phần bắt buộc và các bộ phận được in 3D
Các thành phần bắt buộc và các bộ phận được in 3D
Các thành phần bắt buộc và các bộ phận được in 3D

Danh sách các thành phần được sử dụng cho dự án:

1. Arduino UNO Vi điều khiển.

2. Breadboard với dây jumper.

3. một hộp.

4. nền tảng tuần hoàn

5. men.

6. liên kết - 3 Không

7. Một cơ sở để gắn ba Servos.

8. Cảm biến con quay hồi chuyển / Gia tốc kế. (MPU6050)

Dây 9,1 mm vuông (500 cm) - 4 Không

10. Đường kính 3mm bi thép.

Hầu hết các bộ phận được sử dụng cho dự án đều được in 3D và tôi đã đính kèm stl. các tệp đã sẵn sàng để in.

Lắp ráp tất cả các bộ phận như trong hình. Mê cung được dán nóng vào bệ hình tròn để trông như trong hình. Ba servo phải được dán nóng trên đế in 3D được gắn trên nắp hộp. Hộp chứa Arduino UNO và Breadboard được lắp ráp như trong hình. Việc thiết lập breadboard sẽ được thảo luận trong bước tiếp theo.

Sau khi lắp ráp, nguyên mẫu cuối cùng sẽ giống như trong hình cuối cùng.

Bước 2: Thiết lập Breadboard

Thiết lập Breadboard
Thiết lập Breadboard
Thiết lập Breadboard
Thiết lập Breadboard
Thiết lập Breadboard
Thiết lập Breadboard

Sau khi lắp ráp, Arduino, cảm biến gia tốc kế, servo được kết nối như mô tả trong phần sau.

Các đường ray âm và dương trên breadboard được kết nối với 5V và GND của Arduino tương ứng. Cảm biến được kết nối với Arduino bằng cách sử dụng dây nửa mét được hàn vào cảm biến sao cho các chân VCC và GND của cảm biến được kết nối tương ứng với các đường ray + ve và -ve trên breadboard. Các chân SCL và SDA của cảm biến được kết nối với các chân tương tự A5 và A4 của Arduino. Các chân PWM của ba servo được kết nối tương ứng với 2, 3, 4 chân của Arduino và các chân + ve và -ve của tất cả các Servos được kết nối với đường ray + ve và -ve của bảng mạch. với điều này, các kết nối của chúng tôi đã được thực hiện.

Bước 3: Mã cho Dự án

bạn có thể tải xuống thư viện MPU6050 và Servo từ internet và sử dụng nó cho dự án. Biên dịch và tải mã sau lên Arduino và dự án đã sẵn sàng. Nghiêng cảm biến và bạn có thể thấy mê cung nghiêng theo cùng một hướng! Phải mất một chút thời gian để giải câu đố vì nó hơi khó nhưng rất thú vị khi chơi.

#bao gồm

#bao gồm

#bao gồm

Servo Servo1;

Servo Servo2;

Servo Servo3;

Cảm biến MPU6050;

int servoPos1 = 90;

int servoPos2 = 90;

int servoPos3 = 90;

int16_t ax, ay, az;

int16_t gx, gy, gz;

void setup ()

{

Servo1.attach (2);

Servo2.attach (3);

Servo3.attach (4);

Wire.begin ();

Serial.begin (9600);

}

void loop ()

{

sensor.getMotion6 (& ax, & ay, & az, & gx, & gy, & gz);

ax = bản đồ (ax, -17000, 17000, 0, 180);

ay = map (ay, -17000, 17000, 0, 180);

Serial.print ("ax =");

Serial.print (ax);

Serial.print ("ay =");

Serial.println (ay);

if (ax <80 && ay <80) {

Servo1.write (servoPos1 ++);

Servo2.write (servoPos2--);

Servo3.write (servoPos3--); }

nếu (ax 120) {

Servo1.write (servoPos1--);

Servo2.write (servoPos2 ++);

Servo3.write (servoPos3--); }

if (ax> 120 && ay> 0) {

Servo1.write (servoPos1--);

Servo2.write (servoPos2--);

Servo3.write (servoPos3 ++); }

if (ax == 90 && ay == 90) {

Servo1.write (0);

Servo2.write (0);

Servo3.write (0);

}

}

Đề xuất: