Përmbajtje:

Lojë me reagim të shpejtë: Version në distancë: 5 hapa (me fotografi)
Lojë me reagim të shpejtë: Version në distancë: 5 hapa (me fotografi)

Video: Lojë me reagim të shpejtë: Version në distancë: 5 hapa (me fotografi)

Video: Lojë me reagim të shpejtë: Version në distancë: 5 hapa (me fotografi)
Video: noizy vs cllevio 2024, Nëntor
Anonim
Reagim i Shpejtë Lojë: Version në distancë
Reagim i Shpejtë Lojë: Version në distancë

Pershendetje Ky është një Udhëzues se si të krijoni një lojë që teston kohën tuaj të reagimit dhe ndjenjën e distancës. Ky projekt bazohet në një projekt të vjetër që bëra duke përfshirë dy lojtarë që konkurronin për të parë se cilët kishin një kohë reagimi më të shpejtë duke klikuar një buton kur një dritë u bë jeshile. Ky ka një qëllim të ngjashëm, përveçse është me një lojtar të vetëm dhe në vend që të ndizet një dritë, lojtarit i jepet një kornizë kohore për të distancuar dorën e tyre një hapësirë të caktuar larg nga një sensor distancë.

Ashtu si të gjitha projektet Arduino, kjo lojë do të kërkojë komponentë të shumtë elektrikë në qarkun Arduino. Komponentët kryesorë, përveç instalimeve elektrike dhe vetë Arduino, përfshijnë tabelën e bukës, një servo motor, një ekran LCD, një LED RGB dhe një sensor të distancës.

Duke përdorur https://abra-electronics.com, çmimi pa telat dhe Arduino është $ 32.12 CAD.

Hapi 1: Hapi 1: Sensori i distancës

Hapi 1: Sensori i distancës
Hapi 1: Sensori i distancës

Hapi i parë është të vendosni sensorin tejzanor të distancës në dërrasën e bukës dhe ta lidhni me Arduino. Pozicioni i saktë i sensorit në fakt nuk ka rëndësi, por në mënyrë ideale është afër një buze në mënyrë që të ketë vend për përbërësit e tjerë, siç tregohet në foton e mësipërme. Ka katër kunja në sensor; GND, VCC, TRIG dhe ECHO. GND dhe VCC duhet të lidhen në tokën dhe binarët e rrymës përkatësisht, dhe të lidhin në dy kunjat e tjerë në dy kunja në Arduino. Dy kunjat që kam përdorur ishin 12 për ECHO dhe 11 për TRIG. Përdorni dy tela të tjerë për të fuqizuar hekurudhën e energjisë dhe tokëzoni shinën tokësore duke lidhur hekurudhën e energjisë me kunjin 5V dhe shinën tokësore me një kunj GND.

Hapi 2: Hapi 2: Servo Motor

Hapi 2: Servo Motor
Hapi 2: Servo Motor

Hapi tjetër është konfigurimi i servo motorit. Në këtë projekt, servo motori funksionon si një kohëmatës. Do të fillojë në 1 shkallë, dhe gjatë periudhës në të cilën përdoruesi duhet të distancojë duart, do të rrotullohet në 180 gradë. Kam përdorur 2 sekonda kur përdoruesi zbulon se sa larg duhet të distancojnë duart, kështu që servo rrotullohet 179 gradë gjatë një periudhe prej 2 sekondash, duke u rrotulluar në intervale të shkurtra. Servo motori ka tre tela; zakonisht një ngjyrë të verdhë, të kuqe dhe kafe. E kuqja futet në hekurudhën e energjisë e cila tashmë është lidhur në 5V, dhe ajo kafe shkon në hekurudhën tokësore të lidhur tashmë në GND. Teli përfundimtar futet në një kunj Arduino. Zgjodha pinin #9 për këtë. Pastaj, keni nevojë për një kondensator që lidh të njëjtën shinë me të cilën lidhen fuqia e servo motorit dhe telat e tokëzimit, siç shihet në foton më sipër.

Hapi 3: Hapi 3: RGB LED

Hapi 3: RGB LED
Hapi 3: RGB LED

Funksioni i ZHEL në këtë është të veprojë si një shkallë për rezultatin. Kur rezultati i lojtarit është rreth 0, LED do të jetë e bardhë dhe do të kthehet më e kuqe nëse rezultati i lojtarit zbret dhe jeshil nëse rezultati i lojtarit rritet. Ky LED ka katër këmbë; një këmbë me dritë të kuqe, një këmbë me dritë blu, një këmbë me dritë jeshile dhe një katodë të zakonshme të ndarë midis tre këmbëve të tjera. Katoda e zakonshme, këmba më e gjatë, është e lidhur në hekurudhën e energjisë kështu që merr 5 volt. Bashkangjitni rezistencat 330 ohm në tre këmbët e tjera me ngjyra dhe ngjitni skajet e tjera të atyre rezistencave në kunjat dixhitale PWM në Arduino. Ato që kam përdorur ishin kunjat dixhitale 3, 5 dhe 6 për këmbët e kuqe, jeshile dhe blu, përkatësisht.

Hapi 4: Hapi 4: LCD

Hapi 4: LCD
Hapi 4: LCD

Komponenti përfundimtar është LCD, i cili përfaqëson ekranin e kristaleve të lëngëta. Qëllimi i kësaj është t'i tregojë lojtarit rezultatin e tyre aktual, si dhe distancën që ata kanë nevojë për të larguar duart nga sensori. Ka katër kunja këtu; GND, VCC, SDA dhe SCL. GND dhe VCC do të lidhen në tokën dhe binarët e energjisë përkatësisht. Kunja SDA duhet të lidhet me kunjin analog A4, dhe kunja SCL duhet të lidhet me kunjën analoge A5. Ndryshe nga përbërësit e tjerë, duhet të lidhni kunjat SDA dhe SCL në A4 dhe A5.

Hapi 5: Hapi 5: Kodi

Tani që jemi lidhur me të gjithë përbërësit, mund të shkruajmë kodin. Pjesa e parë e kodit është importimi i bibliotekave të nevojshme dhe deklarimi i variablave tanë dhe në cilat kunja bashkohen përbërësit. Ne duhet të importojmë bibliotekat Wire, LiquidCrystal_I2C dhe Servo për këtë kod.

#përfshi

#përfshi

#përfshi

Servo myServo;

int const trigPin = 11;

int const echoPin = 12;

int redPin = 3;

int greenPin = 5;

int bluPin = 6;

int rezultati = 0;

int tim = 500;

int aktuale = rastësore (8, 16); // vlerë e rastësishme ku përdoruesi duhet të largojë dorën nga sensori

LiquidCrystal_I2C LCD (0x27, 16, 2); // Konfigurimi i LCD

Tani ne duhet të përdorim void setup () për të deklaruar llojet tona të pin dhe të konfigurojmë përbërës të tjerë të nevojshëm.

void setup () {myServo.attach (9); Serial.filloj (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode pinMode (redPin, OUTPUT); pinMode (greenPin, OUTPUT); pinMode (bluPin, OUTPUT); lcd.init (); lcd. backlight (); lcd.filloni (16, 2); lcd.qartë (); // konfigurimi i LCD -së}

Tani duhet të konfigurojmë kodin LED RGB duke përdorur një funksion dhe PWM:

void setColor (int e kuqe, int jeshile, int blu) {

e kuqe = 255 - e kuqe;

jeshile = 255 - jeshile;

blu = 255 - blu;

analogWrite (redPin, e kuqe);

analogWrite (greenPin, jeshile);

analogWrite (bluPin, blu);

}

Tani duhet të shtojmë lakin void (). Këtu, ne do të krijojmë numra të plotë të rastit dhe do të përdorim një seri deklaratash if për të kontrolluar lojën për lojtarin. Variabla aktuale, e vendosur më lart, është për distancën aktuale që lojtari duhet të distancohet nga sensori.

Për shkak se kodi në lakin void () është shumë i gjatë, unë do të ngjis një lidhje në një dokument që ka atë kod:

docs.google.com/document/d/1DufS0wuX0N6gpv…

Së fundi, ne duhet të bëjmë llogaritjet aktuale për të kthyer vlerat e sensorit të distancës tejzanor në inç. Sensori i distancës tejzanor nuk mat drejtpërdrejt distancën; lëshon zë dhe regjistron kohën që i duhet sensorit për të marrë tingullin nga çfarëdo objekti nga i cili kërcen.

mikrosekonda të gjataToInches (mikrosekonda të gjata) {

kthim mikrosekonda / 74 /2;

}

Tani e lidhim Arduino me tela në kompjuter me kodin, konfigurojmë portat dhe e ekzekutojmë! Ka dy mënyra për këtë lojë. Ose mund të përdorni vetëm ekranin LCD, servo motorin, sensorin dhe RGB LED dhe e dini vetëm distancën që duhet të jeni nga sensori, që është mënyra më e vështirë. Mënyra më e lehtë përfshin përdorimin e monitorit serik në Tools> Serial Monitor, i cili do t'ju përditësojë çdo sekondë se sa jeni larg nga sensori, kështu që ju mund të bëni rregullimet e nevojshme.

Faleminderit per leximin!

Recommended: