Obsah:

ITTT Rolando Ritzen - arkádová rukavica na ovládanie pohybu: 5 krokov
ITTT Rolando Ritzen - arkádová rukavica na ovládanie pohybu: 5 krokov

Video: ITTT Rolando Ritzen - arkádová rukavica na ovládanie pohybu: 5 krokov

Video: ITTT Rolando Ritzen - arkádová rukavica na ovládanie pohybu: 5 krokov
Video: Книга 07 — Аудиокнига Виктора Гюго «Горбун из Нотр-Дама» (главы 1–8) 2024, November
Anonim
ITTT Rolando Ritzen - pohybová arkádová rukavica
ITTT Rolando Ritzen - pohybová arkádová rukavica

Môžete tiež použiť ovládač pohybu alebo železničné vystreľovače. Ide o trik, ktorý zahŕňa všetky možnosti pohybu, vrátane zahrnutia. (Je schiet door te "finger bangen")

Krok 1: Het Materiaal

Všetky tieto údaje sú veľmi jednoduché. 1x Arduino pro micro z gyroskopu Arduino Leonardo1x MPU6050

4x kabely

Krok 2: De Bekabeling

De Bekabeling
De Bekabeling

Zoals is in het schema in de afbeelding ziet is de bekabeling super simple. MPU VCC> Arduino VCCMPU zem> Arduino zemMPU SCL> Pin 3MPU SDA> Pin 2

Krok 3: Knižnice 1

Knižnice 1
Knižnice 1

Tento projekt si teraz môžete prezrieť vo vlastných knižniciach, odkaz na odkaz:

Stiahnite si súbor ZIP pomocou príkazu „Klonovať alebo stiahnuť“, ktorý sa vám zobrazí k dispozícii.

Krok 4: Knižnice 2

Knižnice 2
Knižnice 2

Otvorte súbor ZIP a kliknite na mapu „Arduino“. Zmeniť mapu Arduina na mapu "I2Cdev" a "MPU6050" potom načítať knižnice Arduino zetten (Program Files> Arduino> libraries)

Krok 5: De Code

#zahrnúť

#include #include #include #include

MPU6050 mpu;

int16_t ax, ay, az, gx, gy, gz;

int16_t accx, accy, accz; int vx, vy; plavákový uhol;

// kód na vyhladenie inputint readIndex = 0; const int numReadings = 20; int angleReadings [numReadings]; int celkom = 0; float averageAngle = 0,0;

int oldZ = 0;

int newZ = 0;

void setup () {Serial.begin (115200); Wire.begin (); Mouse.begin (); mpu.initialize (); if (! mpu.testConnection ()) {while (1); }

pre (int thisReading = 0; thisReading <numReadings; thisReading ++) {angleReadings [thisReading] = 0; }}

prázdna slučka () {

total = total - angleReadings [readIndex];

angleReadings [readIndex] = uhol; total = total + angleReadings [readIndex]; readIndex = readIndex + 1; if (readIndex> = numReadings) {readIndex = 0; }

if (gz> 30 000) {Serial.println ("Bang"); Mouse.click (); // Strieľajte švihnutím pištole dozadu (búchanie prstom)}

// accx, accy, accz;

mpu.getMotion6 (& sekera, & ay, & az, & gx, & gy, & gz); mpu.getAcceleration (& accx, & accy, & accz); //Serial.println(gy); // Serial.println (uhol);

oldZ = novýZ;

vx = (gx + 1000) / 150; vy = - (gz - 200) / 150; Mouse.move (vx, vy); oneskorenie (20);

Dojde k zvýšeniu počtu kódov, ktoré sa môžu líšiť od ostatných.

Čím viac údajov získate, tým viac sa zobrazí kurzor nad jeho uhlom pohľadu (dodávané odkazy na odkazy, uhly pohľadu na uhlopriečku) a ďalšie typy kódov zorgt er voor dat sú kurzormi, ktoré môžu stále stúpať. Je možné získať hodnoty v "gx + 1000" en "gz - 200" aanpassen totdat is a het resultaat krijgt dat je wil en ik denk dat de values die wil nodig hebt afhankelijk zijn van je scherm Resolution Resolution. Všetky kurzory, ktoré budú dodávané, budú odkázané na prepojenia medzi "gx + x" aanpassen. All de cursor uit zichzelf van boven nader onder beweegd wil je de "gz - x" aan passen. Rovnako ako uhlopriečka môže mať jednu alebo druhú hodnotu, pretože všetky hodnoty sú vyššie a sú vyššie ako všetky ostatné hodnoty.

Serial.print ("gx =");

Serial.print (gx); Serial.print ("| gz ="); Serial.print (gz); Serial.print ("| gy ="); Serial.println (gy); if (gx> 32000) {Serial.println ("Švihnúť doprava"); // Znovu načítajte pri švihnutí pištoľou doprava Keyboard.write ('r'); oneskorenie (250); } Serial.print ("accx ="); Serial.print (accx); Serial.print ("| accy ="); Serial.print (accy); Serial.print ("| accz ="); Serial.println (accz); // pracovný // uhol = atan2 ((float) (ay - 16384), (float) (ax - 16384)) * (180,0 /PI) * -1; uhol = atan2 ((float) ay, (float) ~ ax) * (180,0 / PI); // float angle = atan2 ((float) ay, (float) -ax) * (180.0 /PI); //Serial.println(averageAngle); }

Odporúča: