Mục lục:
Video: Arduino Vr: 4 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
Xin chào Tên tôi là Christian và tôi 13 tuổi. Tôi yêu arduino và có năng khiếu về nó nên đây là tài liệu hướng dẫn của tôi về arduino vr.
Quân nhu
Quân nhu:
1. Bảng Arduino Mega, Due, Uno, hoặc Yun.
2. Dây nam sang nam (dây jumper tiêu chuẩn).
3. breadboard nhỏ
4. USB
5. GY-521 MPU-6050
Không bắt buộc:
6. Màn hình LCD 5.5 inch 2560 * 1440 2K HDMI to MIPI
7. Ống kính Fresnel Tiêu cự 50mm
8. Dịch vụ máy in 3-D hoặc máy in 3d
Bước 1: Lắp ráp
Sử dụng giản đồ để ghép chúng lại với nhau.
Bước 2: Làm thế nào để cài đặt Thư viện?
Hãy xem Github: https://github.com/relativty/Relativ Bạn có thể cài đặt nó bằng Git hoặc Tải xuống trực tiếp.
Bước 3: Mã
// i2cdevlib và MPU6050 là cần thiết:
// Cảm ơn Jeff Rowberg tuyệt vời <3, hãy xem repo của anh ấy để tìm hiểu thêm MPU6050. // ================================================ =============================
// I2Cdev và MPU6050 phải được cài đặt dưới dạng thư viện, nếu không các tệp.cpp /.h // cho cả hai lớp phải nằm trong đường dẫn bao gồm của dự án của bạn
#include "Relativ.h"
#include "I2Cdev.h"
#include "MPU6050_6Axis_MotionApps20.h"
#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE #include "Wire.h" #endif
MPU6050 mpu; Relativ Relativ;
#define INTERRUPT_PIN 2
// Trạng thái và điều khiển IMU: bool dmpReady = false; // true nếu DMP init thành công uint8_t mpuIntStatus; uint8_t devStatus; // 0 = thành công,! 0 = lỗi uint16_t packetSize; uint16_t FifoCount; uint8_t FifoBuffer [64];
Quaternion q; // [w, x, y, z]
bool dễ bay hơi mpuInterrupt = false; // cho biết chân ngắt MPU có tăng cao hay không void dmpDataReady () {mpuInterrupt = true; }
void setup () {#if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin (); Wire.setClock (400000); // Đồng hồ I2C 400kHz. Nhận xét dòng này nếu gặp khó khăn khi biên dịch #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire:: setup (400, true); #endif
relativ.startNative (); // "startNative" có thể được sử dụng cho vi điều khiển lõi ARM 32-bit với USB gốc như Arduino DUE // được khuyến nghị. // Relativ.start (); // "start" dành cho vi điều khiển USB KHÔNG NATIVE, như Arduino MEGA, Arduino UNO.. // Những vi điều khiển này chậm hơn đáng kể. mpu.initialize (); pinMode (INTERRUPT_PIN, INPUT);
SerialUSB.println (mpu.testConnection ()? F ("Kết nối MPU6050 thành công"): F ("Kết nối MPU6050 không thành công"));
// cấu hình DMP devStatus = mpu.dmpInitialize ();
// ================================== // cung cấp hiệu số con quay hồi chuyển của riêng bạn tại đây: // === =============================== mpu.setXGyroOffset (220); mpu.setYGyroOffset (76); mpu.setZGyroOffset (-85); mpu.setZAccelOffset (1788);
// devSTatus nếu mọi thứ hoạt động bình thường if (devStatus == 0) {// bật DMP, bây giờ nó đã sẵn sàng mpu.setDMPEnabled (true);
// kích hoạt tính năng phát hiện ngắt Arduino attachmentInterrupt (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus ();
dmpReady = true;
// lấy kích thước gói DMP dự kiến để so sánh sau đó packetSize = mpu.dmpGetFIFOPacketSize (); } else {// LỖI! }}
void loop () {// Không làm gì nếu DMP không khởi tạo chính xác if (! dmpReady) return;
// đợi ngắt MPU hoặc (các) gói bổ sung khả dụng trong khi (! mpuInterrupt && FifoCount <packetSize) {}
// đặt lại cờ ngắt và nhận INT_STATUS byte mpuInterrupt = false; mpuIntStatus = mpu.getIntStatus ();
// lấy số FIFO hiện tại là FifoCount = mpu.getFIFOCount ();
if ((mpuIntStatus & 0x10) || FifoCount == 1024) {mpu.resetFIFO (); } // kiểm tra ngắt else if (mpuIntStatus & 0x02) {while (FifoCount <packetSize) FifoCount = mpu.getFIFOCount (); mpu.getFIFOBytes (FifoBuffer, packetSize); FifoCount - = packetSize; mpu.dmpGetQuaternion (& q, FifoBuffer); relativ.updateOrientationNative (q.x, q.y, q.z, q.w, 4); // updateOrientationNative "có thể được sử dụng cho vi điều khiển lõi ARM 32-bit với USB gốc như Arduino DUE // được khuyến nghị. //relativ.updateOrientation(qx, qy, qz, qw, 4); // Relativ.updateOrientation" là đối với vi điều khiển USB NON-NATIVE, như Arduino MEGA, Arduino UNO.. // Chúng chậm hơn đáng kể. }}
Bước 4: Chơi
di chuyển breadboard nhỏ trên bất kỳ trò chơi vr nào sẽ xoay máy ảnh
Đề xuất:
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: 6 bước
Động cơ bước Điều khiển động cơ bước Không cần vi điều khiển !: Trong phần Hướng dẫn nhanh này, chúng tôi sẽ tạo một bộ điều khiển động cơ bước đơn giản bằng cách sử dụng động cơ bước. Dự án này không yêu cầu mạch phức tạp hoặc vi điều khiển. Vì vậy, không cần thêm ado, chúng ta hãy bắt đầu
Động cơ bước được điều khiển Động cơ bước không có vi điều khiển (V2): 9 bước (có hình ảnh)
Động cơ bước được điều khiển bằng động cơ bước Không cần vi điều khiển (V2): Trong một trong những Hướng dẫn trước đây của tôi, tôi đã chỉ cho bạn cách điều khiển động cơ bước bằng cách sử dụng động cơ bước mà không cần vi điều khiển. Đó là một dự án nhanh chóng và thú vị nhưng nó đi kèm với hai vấn đề sẽ được giải quyết trong Có thể hướng dẫn này. Vì vậy, hóm hỉnh
Đầu máy mô hình điều khiển động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Đầu máy mô hình điều khiển động cơ bước | Động cơ bước làm bộ mã hóa quay: Trong một trong những phần Hướng dẫn trước, chúng ta đã học cách sử dụng động cơ bước làm bộ mã hóa quay. Trong dự án này, bây giờ chúng ta sẽ sử dụng bộ mã hóa quay động cơ bước đó để điều khiển đầu máy mô hình bằng vi điều khiển Arduino. Vì vậy, không có fu
Âm thanh bay bổng với Arduino Uno Từng bước (8 bước): 8 bước
Acoustic Levitation With Arduino Uno Step-by-by-by (8 bước): bộ chuyển đổi âm thanh siêu âm L298N Dc cấp nguồn cho bộ chuyển đổi âm thanh nữ với chân cắm một chiều nam Arduino UNOBreadboard Cách hoạt động: Đầu tiên, bạn tải mã lên Arduino Uno (nó là một vi điều khiển được trang bị kỹ thuật số và các cổng tương tự để chuyển đổi mã (C ++)
Động cơ bước Điều khiển động cơ bước Động cơ bước - Động cơ bước như một bộ mã hóa quay: 11 bước (có hình ảnh)
Động cơ bước Điều khiển động cơ bước Động cơ bước | Động cơ bước như một bộ mã hóa quay: Có một vài động cơ bước nằm xung quanh và muốn làm điều gì đó? Trong Có thể hướng dẫn này, hãy sử dụng động cơ bước làm bộ mã hóa quay để điều khiển vị trí của động cơ bước khác bằng vi điều khiển Arduino. Vì vậy, không cần phải quảng cáo thêm, chúng ta hãy