Orodha ya maudhui:

ITTT Rolando Ritzen - Glove ya Arcade ya Kudhibiti Mwendo: Hatua 5
ITTT Rolando Ritzen - Glove ya Arcade ya Kudhibiti Mwendo: Hatua 5

Video: ITTT Rolando Ritzen - Glove ya Arcade ya Kudhibiti Mwendo: Hatua 5

Video: ITTT Rolando Ritzen - Glove ya Arcade ya Kudhibiti Mwendo: Hatua 5
Video: Михрютка в России ► 3 Прохождение Destroy All Humans! 2: Reprobed 2024, Julai
Anonim
ITTT Rolando Ritzen - Glove ya Arcade ya Mwendo
ITTT Rolando Ritzen - Glove ya Arcade ya Mwendo

Een handschoen die je kan gebruiken als motion motion voor on-reli shooters. Mradi wa gimmick van dit ni mwendo wa kudhibiti udhibiti wa mwendo ni pamoja na hali ya juu. (Je! Mlango wa ski "te bangen")

Hatua ya 1: Het Materiaal

Het materiaal dat je gaat nodig hebben ni rahisi zaidi. 1x Arduino pro ndogo ya Arduino Leonardo 1x MPU6050 gyroscope

4x kabeli

Hatua ya 2: De Bekabeling

De Bekabeling
De Bekabeling

Mazungumzo yako katika mpango mpya katika maeneo yanayofanyika ni ya kuvutia sana. Mbinu yake ya mawasiliano na taarifa ya kampuni ni kama ilivyo hapo chini.

Hatua ya 3: Maktaba 1

Maktaba 1
Maktaba 1

Mradi unaofaa ni maktaba maalum ya maktaba inayounganisha kiungo:

Pakua faili ya ZIP kupitia "Clone au download" knop rechts bovenaan.

Hatua ya 4: Maktaba 2

Maktaba 2
Maktaba 2

Fungua faili ya Zip kwenye orodha ya "Arduino". Endelea kusoma Ramani ya Arduino itakayotumika "I2Cdev" en "MPU6050" pakken en in Arduino libraries zetten (Programu za Faili> Arduino> maktaba)

Hatua ya 5: De Code

# pamoja

#jumlisha #jumlisha #jumuisha #jumuisha

MPU6050 mpu;

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

int16_t accx, accy, accz; int vx, vy; pembe ya kuelea;

// nambari ya kulainisha pembejeo kusoma readIndex = 0; kusoma kwa hesabu = 20; kusoma kwa pembe ya [hesabu]; jumla = 0; kuelea wastani Angle = 0.0;

zamani Z = 0;

int mpyaZ = 0;

kuanzisha batili () {Serial.begin (115200); Wire.begin (); Panya kuanza (); mpu kuanzisha (); ikiwa (! mpu.testConnection ()) {wakati (1); }

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

kitanzi batili () {

jumla = jumla - kusoma kwa pembe [kusomaIndex];

angleReadings [readIndex] = pembe; jumla = jumla + angleSomaji [somaIndex]; somaIndex = somaIndex + 1; ikiwa (readIndex> = numReadings) {readIndex = 0; }

ikiwa (gz> 30000) {Serial.println ("Bang"); Panya bonyeza (); // Piga kwa kugeuza bunduki nyuma (kugonga kidole)}

// accx, accy, accz;

mpu.getMotion6 (& shoka, & ay, & az, & gx, & gy, & gz); kuongeza kasi (& accx, & accy, & accz); //Serial.println (gy); // Serial.println (angle);

zamani Z = mpyaZ;

vx = (gx + 1000) / 150; vy = - (gz - 200) / 150; Panya.sogea (vx, vy); kuchelewesha (20);

Nambari ya msimbo inastahili kuletwa na beetje uitleg nodig omdat je het waarschijnlijk een klein beetje moet aanpassen.

Wat waarschijnlijk gaat gebeuren is dat je cursor uit zichzelf over je scherm gaat bewegen (van rechts naar, viungo vinaweza kuongezewa juu ya diagonaal) kwa njia ya kanuni ya habari ambayo inaweza kutekelezwa wakati huo huo ikiwa ni pamoja na hati ya kuingiliana. Je! Unadhibitisha maadili katika "gx + 1000" en "gz - 200" na matokeo yake yatatokana na matokeo ya sheria na kanuni za maadili zitakufa kwa sababu ya mpango wa kusuluhisha. Als de cursor it zichzelf van rechts naar links beweegd wil je "gx + x" aanpassen. Als de cursor uit zichzelf van boven naar onder beweegd will de de "gz - x" a pass pass. Als het diagonaal beweegd, dan inahusu maadili ya watu wote wanaopitisha idadi ya watu juu ya miaka kama beweegd en dan pas je de andere aan.

Serial.print ("gx =");

Printa ya serial (gx); Serial.print ("| gz ="); Printa ya serial (gz); Serial.print ("| gy ="); Serial.println (gy); ikiwa (gx> 32000) {Serial.println ("Flick Right"); // Pakia tena wakati unabonyeza bunduki kwenye Kinanda sahihi. Andika ('r'); kuchelewesha (250); } Serial.print ("accx ="); Printa ya serial (accx); Serial.print ("| accy ="); Printa ya serial (accy); Printa ya serial ("| accz ="); Serial.println (accz); // kufanya kazi // angle = atan2 ((kuelea) (ay - 16384), (kuelea) (shoka - 16384)) * (180.0 / PI) * -1; angle = atan2 ((kuelea) ay, (kuelea) ~ shoka) * (180.0 / PI); // angle ya kuelea = atan2 ((kuelea) ay, (kuelea) -ax) * (180.0 / PI); //Serial.println (wastaniAngle); }

Ilipendekeza: