Arduino on erittäin suosittu harrastusprojektien ja -pelien rakentamisessa, ja olemme aiemmin käyttäneet Arduinoa käärmepelin, pingispongin, avaruuskilpailupelin jne. Rakentamiseen. Tänään rakennamme vielä yhtä suosittua peliä käyttämällä Arduino- Buzz -langapeliä tai tasaista käsipeliä..
Tässä projektissa käytämme Arduino Unoa, summeria ja kahta alumiinijohtoa. 16x2-nestekidenäyttö on myös liitetty näyttämään pelin tila. Sokkelolangan molemmat päät liitetään Arduinon digitaalisiin nastoihin 2 ja 3, ja kahvalanka on kytketty Arduinon maadoitustappiin. Digitaaliset nastat määritellään INPUT_PULLUP-nastoiksi. Joten kun kahvan vaijeri koskettaa labyrinttilangkaa, se muuttaa digitaalisten nastojen tilan matalaksi, ja summeri antaa äänen.
Diodi on kytketty sokkelolangan päähän, joten kun siirryt diodin ohitse ja kosketat labyrinttilangkaa pyöreällä kahvalla, vain yksi tappi (tappi 3) laskee. Tässä tilassa LCD-näytöllä näkyy onnitteluteksti (Hyvin tehty).
Tarvittavat komponentit
- Arduino Uno
- Alumiinilanka
- 16x2 LCD
- I 2 C-moduuli
- Leipälauta
- Summeri
- Diodi
Piirikaavio
Arduino Buzz Wire Game -piirikaavio on annettu yllä. I2C-moduulin SCL- ja SDA-nastat on kytketty Arduinon A5- ja A4-nastoihin, kun taas I2C-moduulin V CC ja GND-nasta on kytketty Arduinon 5V- ja GND-nastaan. Summerin positiivinen kisko on kytketty Arduinon digitaaliseen napaan 4 ja negatiivinen kisko GND: hen. Leikkaa alumiinilanka ja taivuta se siksak-muotoon. Juota diodi langan toiseen päähän. Leikkaa sitten toinen lanka kahvan muodostamiseksi ja taivuta toinen pää silmukkaan.
16x2 LCD voidaan myös liittää Arduinoon ilman I2C-moduulia.
Liitä Arduinon D2- ja D3-nastat siksak-langan molempiin päihin ja liitä kahvan johto Arduinon GND-nastaan.
Koodin selitys
Tämän Arduino Buzz Wire -pelin täydellinen koodi annetaan asiakirjan lopussa.
Aloita koodi sisällyttämällä LCD-moduulin kirjastotiedosto. LiquidCrystal_I2C.h-kirjastoa käytetään I2C-viestintään Arduino- ja LCD-moduulien välillä.
#sisältää
Määritä sen jälkeen Arduino-nastat summerille, langan aloituspiste ja langan päätepiste.
const int startPin = 2; const int endPin = 3; const int summeri = 4;
Määritä sitten kaksi muuttujaa alku ja loppu_. Näitä muuttujia käytetään langan lukemien tallentamiseen.
int alku, loppu_;
Määritä nyt summerin tappi lähdöksi ja lankatapiksi INPUT_PULLUP . Arduinolla on sisäiset vetovastukset, joiden arvo on noin 20 k ohmia. Nämä vastukset voidaan liittää sisäisesti käyttämällä INPUT_PULLUP . INPUT_PULLUP-toiminnon määrittäminen on toiminnallisesti sama kuin ~ 20 k ohmin vastuksen kytkeminen nastan ja + 5 V: n välille.
pinMode (summeri, OUTPUT); pinMode (startPin, INPUT_PULLUP); pinMode (startPin, INPUT_PULLUP);
Lue tyhjän silmukan sisällä langanastojen tila.
start = digitalRead (startPin); end_ = digitalRead (endPin);
Vertaa nyt langanastojen lukemia. Jos molemmat nastat ovat matalalla, se tarkoittaa, että olet koskettanut johtoa niin, että summeri antaa äänen, ja jos langan aloitustappi on korkea ja päätytappi on matala, se tarkoittaa, että olet saavuttanut päätepisteen.
if (alku == LOW && end _ == LOW) {digitalWrite (summeri, KORKEA); viive (1000); digitalWrite (summeri, LOW); lcd.setCursor (0,0); lcd.print ("Yritä uudelleen"); Serial.print ("Yritä uudelleen"); } else if (alku == HIGH && end _ == LOW) {lcd.setCursor (0,0); lcd.print ("Hyvin tehty"); Serial.print ("Hyvin tehty"); }
Testataan Buzz Wire -peliä
Kun olet liittänyt laitteiston ja lähettänyt annetun koodin, voit aloittaa pelin pelaamisen. Joten pidä johtoa ympyrällä kädessäsi ja yritä saada lanka ympyrällä aina ohitse siksak-langalla juotettuun diodiin antamatta pyöreän johdon koskettaa mihinkään. Jos kosketat johtoja, summeri antaa äänen ja nestekidenäytössä näkyy ” Yritä uudelleen ”. Ja jos suoritat pelin koskematta johtoon, siinä näkyy " Hyvin tehty ".
Näin voit tehdä Buzz Wire -pelin Arduinolla. Toimiva video ja täydellinen koodi on annettu alla.