Sisällysluettelo:
- Vaihe 1: Vaihe 1: Etäisyysanturi
- Vaihe 2: Vaihe 2: Servomoottori
- Vaihe 3: Vaihe 3: RGB -LED
- Vaihe 4: Vaihe 4: LCD
- Vaihe 5: Vaihe 5: koodi
Video: Pikareaktiopeli: Etäisyysversio: 5 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
Hei. Tämä on ohje, jolla voit luoda pelin, joka testaa sekä reaktioajan että etäisyyden. Tämä projekti perustuu vanhaan projektiin, jonka tein ja jossa kaksi pelaajaa kilpaili nähdäkseen, kenellä oli nopeampi reaktioaika napsauttamalla painiketta, kun valo muuttui vihreäksi. Tällä on samanlainen tarkoitus, paitsi että se on yksinpeli ja valon syttymisen sijasta pelaajalle annetaan aikakehys etäisyyden pitämiseksi kätensä tietyn tilan päässä etäisyysanturista.
Kuten kaikki Arduino -projektit, tämä peli vaatii lukuisia sähkökomponentteja Arduino -piirissä. Pääkomponentit, paitsi johdotus ja Arduino, sisältävät leipälevyn, servomoottorin, LCD -näytön, RGB -LEDin ja etäisyysanturin.
Käyttämällä https://abra-electronics.com, hinta ilman johtoja ja Arduinoa on 32,12 dollaria CAD.
Vaihe 1: Vaihe 1: Etäisyysanturi
Ensimmäinen askel on asentaa ultraäänietäisyysanturi leipälevylle ja kytkeä se Arduinoon. Anturin tarkalla sijainnilla ei oikeastaan ole väliä, mutta mieluiten se on lähellä reunaa, jotta muille komponenteille jää tilaa, kuten yllä olevassa kuvassa näkyy. Anturissa on neljä nastaa; GND, VCC, TRIG ja ECHO. GND ja VCC on kytkettävä vastaavasti maahan ja sähkökiskoihin ja johdotettava kahdessa muussa nastassa kahteen nastaan Arduinossa. Käyttämäni kaksi nastaa olivat 12 ECHO: lle ja 11 TRIG: lle. Käytä kahta muuta johtoa virtalähteen virtalähteeksi ja maadoita maadoituskisko yhdistämällä virtakisko 5 V: n napaan ja maadoituskisko GND -nastaan.
Vaihe 2: Vaihe 2: Servomoottori
Seuraava vaihe on servomoottorin asentaminen. Tässä projektissa servomoottori toimii ajastimena. Se alkaa 1 asteesta ja kääntyy 180 asteeseen ajan kuluessa, jona käyttäjän on etäistettävä kätensä. Käytin 2 sekuntia, kun käyttäjä sai selville, kuinka pitkälle heidän täytyy etäyttää kätensä, joten servo pyörii 179 astetta 2 sekunnin aikana ja pyörii lyhyin väliajoin. Servomoottorissa on kolme johtoa; yleensä keltainen, punainen ja ruskea. Punainen kulkee virtakiskoon, joka on jo kytketty 5 V: iin, ja ruskea maadoituskiskoon, joka on jo kytketty GND: hen. Viimeinen johto kytketään Arduino -nastaan. Valitsin nastan #9 tähän. Sitten tarvitset kondensaattorin, joka yhdistää saman kiskon, johon on kytketty servomoottorin virta- ja maadoitusjohdot, kuten yllä olevassa kuvassa näkyy.
Vaihe 3: Vaihe 3: RGB -LED
LED -valon tehtävänä tässä on toimia asteikolla asteikolla. Kun pelaajan pisteet ovat noin 0, LED on valkoinen ja muuttuu punaisemmaksi, jos pelaajan pisteet laskevat, ja vihreäksi, jos pelaajan pisteet nousevat. Tässä LED -valossa on neljä jalkaa; punaisen valon jalka, sinisen valon jalka, vihreän valon jalka ja yhteinen katodi, joka on jaettu kolmen muun jalan välillä. Yhteinen katodi, pisin jalka, on kytketty sähkökiskoon, joten se saa 5 volttia. Kiinnitä 330 ohmin vastukset muihin kolmeen värijalkaan ja kiinnitä näiden vastusten muut päät PWM -digitaalisiin nastoihin Arduinossa. Käytin digitaalisia nastoja 3, 5 ja 6 punaisille, vihreille ja sinisille jaloille.
Vaihe 4: Vaihe 4: LCD
Viimeinen komponentti on nestekidenäyttö, joka tarkoittaa nestekidenäyttöä. Tämän tarkoituksena on kertoa pelaajalle tämänhetkinen pisteet sekä etäisyys, jonka he tarvitsevat laittaa kätensä pois anturista. Täällä on neljä nastaa; GND, VCC, SDA ja SCL. GND ja VCC kytketään leipälevyn maahan ja virtakiskoihin. SDA -nasta on kytkettävä analogiseen nastaan A4 ja SCL -nasta analogiseen nastaan A5. Toisin kuin muut komponentit, sinun on kytkettävä SDA- ja SCL -nastat A4- ja A5 -liittimiin.
Vaihe 5: Vaihe 5: koodi
Nyt kun olemme yhdistäneet kaikki komponentit, voimme kirjoittaa koodin. Koodin ensimmäinen osa on tuoda tarvittavat kirjastot ja ilmoittaa muuttujamme ja mihin nastat komponentit on kytketty. Meidän on tuotava lanka-, LiquidCrystal_I2C- ja servokirjastot tälle koodille.
#sisältää
#sisältää
#sisältää
Servo myServo;
int const trigPin = 11;
int const echoPin = 12;
int redPin = 3;
int greenPin = 5;
int bluePin = 6;
int pisteet = 0;
int tim = 500;
int virta = satunnainen (8, 16); // satunnainen arvo, jossa käyttäjän täytyy etäyttää kätensä pois anturista
LiquidCrystal_I2C lcd (0x27, 16, 2); // LCD -asetukset
Nyt meidän on käytettävä void -asetusta () ilmoittaaksemme pin -tyyppejämme ja asettaaksemme muut tarvittavat komponentit.
void setup () {myServo.attach (9); Sarja.alku (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode pinMode (redPin, OUTPUT); pinMode (greenPin, OUTPUT); pinMode (bluePin, OUTPUT); lcd.init (); lcd.taustavalo (); lcd. alku (16, 2); lcd.clear (); // LCD -asetus}
Nyt meidän on asetettava RGB -LED -koodi toiminnolla ja PWM: llä:
void setColor (int punainen, int vihreä, int sininen) {
punainen = 255 - punainen;
vihreä = 255 - vihreä;
sininen = 255 - sininen;
analogWrite (punainenPin, punainen);
analogWrite (vihreäPin, vihreä);
analogWrite (sininenPin, sininen);
}
Nyt meidän on lisättävä tyhjä silmukka (). Täällä aiomme luoda satunnaisia kokonaislukuja ja käyttää sarjan if -lausekkeita pelaajan pelin hallintaan. Nykyinen muuttuja, yllä oleva asetus, koskee senhetkistä etäisyyttä, jonka pelaajan on etäisyydellä anturista.
Koska mitätöintisilmukan () koodi on hyvin pitkä, liitän linkin dokumenttiin, jossa on kyseinen koodi:
docs.google.com/document/d/1DufS0wuX0N6gpv…
Lopuksi meidän on tehtävä todelliset laskelmat ultraäänietäisyysanturin arvojen muuntamiseksi tuumiksi. Ultraääni -etäisyysanturi ei mittaa suoraan etäisyyttä; se vapauttaa äänen ja tallentaa ajan, joka kuluu anturilta, jotta se saisi äänen takaisin mistä tahansa kohdasta, josta se poistuu.
pitkät mikrosekunnitToInches (pitkät mikrosekunnit) {
paluu mikrosekuntia / 74 /2;
}
Liitämme nyt langallisen Arduinon tietokoneeseen koodilla, määritämme portit ja suoritamme sen! Tässä pelissä on kaksi tilaa. Voit joko käyttää vain nestekidenäyttöä, servomoottoria, anturia ja RGB -LEDiä ja tiedät vain etäisyyden, joka sinun on oltava anturista, mikä on vaikeampi tila. Helpompaan tilaan kuuluu sarjamittarin käyttö kohdassa Työkalut> Sarjamonitori, joka päivittää sinulle joka sekunti etäisyyden anturista, jotta voit tehdä tarvittavat säädöt.
Kiitos lukemisesta!
Suositeltava:
DIY 37 Leds Arduino -rulettipeli: 3 vaihetta (kuvilla)
DIY 37 Leds Arduino Roulette Peli: Ruletti on kasinopeli, joka on nimetty ranskalaisen sanan mukaan, joka tarkoittaa pientä pyörää
Covid -suojakypärä, osa 1: johdanto Tinkercad -piireihin!: 20 vaihetta (kuvilla)
Covid -suojakypärä, osa 1: johdanto Tinkercad -piireihin!: Hei, ystävä! Tässä kaksiosaisessa sarjassa opimme käyttämään Tinkercadin piirejä - hauskaa, tehokasta ja opettavaista työkalua piirien toiminnasta! Yksi parhaista tavoista oppia on tehdä. Joten suunnittelemme ensin oman projektimme: th
Weasleyn sijaintikello neljällä kädellä: 11 vaihetta (kuvilla)
Weasleyn sijaintikello neljällä kädellä: Joten Raspberry Pi: n kanssa, joka oli pyörinyt jonkin aikaa, halusin löytää mukavan projektin, jonka avulla voisin hyödyntää sitä parhaalla mahdollisella tavalla. Löysin ppeters0502 tämän upean Instructable Build Your Own Weasley Location Clockin ja ajattelin, että
Ammattimainen sääasema käyttäen ESP8266- ja ESP32 -DIY: 9 vaihetta (kuvilla)
Ammattimainen sääasema käyttämällä ESP8266- ja ESP32 -DIY: LineaMeteoStazione on täydellinen sääasema, joka voidaan liittää Sensirionin ammattitunnistimiin sekä joihinkin Davis -instrumenttikomponentteihin (sademittari, tuulimittari)
Pultti - DIY -langaton latauskello (6 vaihetta): 6 vaihetta (kuvilla)
Pultti - DIY -langaton latausyökello (6 vaihetta): Induktiiviset lataukset (tunnetaan myös nimellä langaton lataus tai langaton lataus) on langattoman voimansiirron tyyppi. Se käyttää sähkömagneettista induktiota sähkön tuottamiseen kannettaville laitteille. Yleisin sovellus on langaton Qi -latauslaite