Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Zusammenbauen
- Schritt 2: Wie installiere ich die Bibliothek?
- Schritt 3: Code
- Schritt 4: Spielen
Video: Arduino VR - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
Hallo, mein Name ist Christian und ich bin 13 Jahre alt. Ich liebe Arduino und habe ein Talent dafür, also ist hier mein instructable für ein Arduino vr.
Lieferungen
Lieferungen:
1. Arduino-Board Mega, Due, Uno oder Yun.
2. Kabel von Stecker zu Stecker (Standard-Überbrückungskabel).
3. Kleines Steckbrett
4. USB
5. GY-521 MPU-6050
Optional:
6. 5,5 Zoll 2560 * 1440 2K LCD-Bildschirm HDMI zu MIPI
7. Fresnel-Linse Brennweite 50 mm
8. 3D-Drucker oder 3D-Druckerservice
Schritt 1: Zusammenbauen
Verwenden Sie den Schaltplan, um es zusammenzusetzen.
Schritt 2: Wie installiere ich die Bibliothek?
Schaut mal auf dem Github vorbei: https://github.com/relativty/Relativ Du kannst es entweder über Git installieren oder direkt herunterladen.
Schritt 3: Code
// i2cdevlib und MPU6050 werden benötigt:
// Vielen Dank an den großartigen Jeff Rowberg <3. Schauen Sie in seinem Repo nach, um mehr über MPU6050 zu erfahren. //=============================================== =============================
// I2Cdev und MPU6050 müssen als Bibliotheken installiert sein, sonst müssen sich die.cpp/.h-Dateien // für beide Klassen im Include-Pfad Ihres Projekts befinden
#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
// IMU-Status und -Steuerung: bool dmpReady = false; // true, wenn DMP-Init erfolgreich war uint8_t mpuIntStatus; uint8_t devStatus; // 0 = Erfolg, !0 = Fehler uint16_t packetSize; uint16_t fifoCount; uint8_t fifoBuffer[64];
Quaternion q; // [w, x, y, z]
volatile bool mpuInterrupt = false; // zeigt an, ob der MPU-Interrupt-Pin hoch gegangen ist void dmpDataReady () { mpuInterrupt = true; }
void setup() { #if I2CDEV_IMPLEMENTATION == I2CDEV_ARDUINO_WIRE Wire.begin(); Wire.setClock(400000); // 400kHz I2C-Takt. Kommentieren Sie diese Zeile, wenn Sie Schwierigkeiten beim Kompilieren haben #elif I2CDEV_IMPLEMENTATION == I2CDEV_BUILTIN_FASTWIRE Fastwire::setup(400, true); #endif
relativ.startNative(); // "startNative" kann für 32-Bit-ARM-Core-Mikrocontroller mit Native USB wie Arduino DUE verwendet werden // was empfohlen wird. // Relativ.start(); // "start" ist für NICHT-NATIVE USB-Mikrocontroller wie Arduino MEGA, Arduino UNO.. // Diese sind deutlich langsamer. mpu.initialize(); pinMode (INTERRUPT_PIN, INPUT);
SerialUSB.println (mpu.testConnection () ? F ("MPU6050-Verbindung erfolgreich"): F ("MPU6050-Verbindung fehlgeschlagen"));
// DMP konfigurieren devStatus = mpu.dmpInitialize();
// ================================= // hier eigene Kreisel-Offsets liefern: // === =============================== mpu.setXGyroOffset(220); mpu.setYGyroOffset(76); mpu.setZGyroOffset(-85); mpu.setZAccelOffset(1788);
// devSTatus wenn alles richtig funktioniert if (devStatus == 0) { // DMP einschalten, jetzt da es fertig ist mpu.setDMPEnabled(true);
// Arduino-Interrupt-Erkennung aktivieren AttachInterrupt (digitalPinToInterrupt (INTERRUPT_PIN), dmpDataReady, RISING); mpuIntStatus = mpu.getIntStatus();
dmpReady = wahr;
// Erwartete DMP-Paketgröße für späteren Vergleich abrufen packetSize = mpu.dmpGetFIFOPacketSize(); } else { // FEHLER! } }
void loop() { // Nichts tun, wenn DMP nicht richtig initialisiert if (!dmpReady) return;
// warten, bis MPU-Interrupt oder zusätzliche Pakete verfügbar sind while (!mpuInterrupt && fifoCount < packetSize) { }
// Interrupt-Flag zurücksetzen und INT_STATUS-Byte abrufen mpuInterrupt = false; mpuIntStatus = mpu.getIntStatus();
// aktuellen FIFO-Zähler abrufen fifoCount = mpu.getFIFOCount();
if ((mpuIntStatus & 0x10) || fifoCount == 1024) { mpu.resetFIFO(); } // auf Interrupt prüfen else if (mpuIntStatus & 0x02) { while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount (); mpu.getFIFOBytes(fifoBuffer, Paketgröße); fifoCount -= Paketgröße; mpu.dmpGetQuaternion(&q, fifoBuffer); relativ.updateOrientationNative(q.x, q.y, q.z, q.w, 4); // updateOrientationNative" kann für 32-Bit-ARM-Core-Mikrocontroller mit Native USB wie Arduino DUE verwendet werden // was empfohlen wird. //relativ.updateOrientation(qx, qy, qz, qw, 4); // Relativ.updateOrientation" is für NON-NATIVE USB-Mikrocontroller, wie Arduino MEGA, Arduino UNO.. // Diese sind deutlich langsamer. } }
Schritt 4: Spielen
Wenn Sie das kleine Steckbrett in einem VR-Spiel bewegen, sollte die Kamera gedreht werden
Empfohlen:
Einen Arduino-Gitarren-Tuner herstellen – wikiHow
So bauen Sie einen Arduino-Gitarren-Tuner: Dies sind die Anweisungen, um einen Gitarren-Tuner aus einem Arduino und mehreren anderen Komponenten zu machen. Mit Grundkenntnissen in Elektronik und Codierung können Sie dieses Gitarrenstimmgerät herstellen. Zuerst müssen Sie wissen, was die Materialien sind. Ma
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: 9 Schritte
ALARMA ARDUINO CON SENSOR DE MOVIMIENTO, SIRENA Y AVISO AL TLF. MÓVIL: Este proyecto consiste en a alarma básica que Detecta presencia, activa una sirena de 108dB y visa al usuario mediante un SMS (opcional). Permite también el control remoto básico por parte del usuario a través de SMS (encendido, apagado, reinicio
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 2 - Temperatur- / Feuchtigkeitsmonitor - Rev 3: 7 Schritte
Easy Very Low Power BLE in Arduino Teil 2 – Temperatur-/Feuchtigkeitsmonitor – Rev 3: Update: 23. November 2020 – Erster Austausch von 2 x AAA-Batterien seit 15. Januar 2019 dh 22 Monate für 2x AAA AlkalineUpdate: 7. April 2019 – Rev 3 of lp_BLE_TempHumidity, fügt Datum/Uhrzeit-Plots hinzu, verwendet pfodApp V3.0.362+ und automatische Drosselung, wenn
Arduino-Programmierung über das Handy -- Arduinodroid -- Arduino-Ide für Android -- Blinzeln: 4 Schritte
Arduino-Programmierung über das Handy || Arduinodroid || Arduino-Ide für Android || Blink: Bitte abonnieren Sie meinen Youtube-Kanal für weitere Videos…… Arduino ist ein Board, das direkt über USB programmiert werden kann. Es ist sehr einfach und günstig für College- und Schulprojekte oder sogar für Produktprototypen. Viele Produkte bauen zunächst darauf für i