Sisällysluettelo:

Testaa paljas Arduino, peliohjelmistolla kapasitiivista tuloa ja LED -valoa käyttäen: 4 vaihetta
Testaa paljas Arduino, peliohjelmistolla kapasitiivista tuloa ja LED -valoa käyttäen: 4 vaihetta

Video: Testaa paljas Arduino, peliohjelmistolla kapasitiivista tuloa ja LED -valoa käyttäen: 4 vaihetta

Video: Testaa paljas Arduino, peliohjelmistolla kapasitiivista tuloa ja LED -valoa käyttäen: 4 vaihetta
Video: Arduino Gyro Game controller 2024, Marraskuu
Anonim
Testaa paljas Arduino, peliohjelmistolla kapasitiivista tuloa ja LED -valoa käyttäen
Testaa paljas Arduino, peliohjelmistolla kapasitiivista tuloa ja LED -valoa käyttäen
Testaa paljas Arduino, peliohjelmistolla kapasitiivista tuloa ja LED -valoa käyttäen
Testaa paljas Arduino, peliohjelmistolla kapasitiivista tuloa ja LED -valoa käyttäen

"Push-It" -interaktiivinen peli, jossa käytetään paljaita Arduino-kortteja, ei tarvita ulkoisia osia tai johdotuksia (käyttää kapasitiivista "kosketustuloa"). Yllä oleva osoittaa sen toimivan kahdella eri levyllä.

Push-It on kaksi tarkoitusta.

  1. Osoittaaksesi/varmistaaksesi nopeasti, että Arduino -korttisi toimii ja että olet asentanut oikein ladataksesi uuden koodiluonnoksen siihen. Näet, että se suorittaa tulon ja lähdön (tunnistaa digitaalisen tulon tason, ulostulon sisäiseen LED -valoon); tallentaa ja palauttaa arvon haihtumattomasta EEPROM-muistista. Kaikki ilman johtoja tai laitteita.
  2. Tarjoa viihdyttävä ja haastava peli vuorovaikutuksessa Arduino -laudan kanssa.

Tässä ohjeessa oletetaan, että olet jo asentanut Arduino IDE: n ja olet ainakin vähän perehtynyt sen käyttöön. Jos ei, niin viittaan näihin linkkeihin:

Arduinon käytön aloittaminen

Digispark (bootloader) -tuen lisääminen olemassa olevaan Arduino 1.6.x IDE: hen

Push-It toimii useimpien Arduino-levyjen kanssa, esim. Nano-, Uno- tai DigiSpark Attiny85 -levy. Olen testannut sitä Nano 3.1: llä ja DigiSparkilla. Tekstissä, kun viittaan nastojen nimiin/numeroihin, niitä käytetään Nano -kortilla (toisin kuin DigiSpark).

Vaihe 1: Hanki tarvitsemasi asiat

Mikä on yksinkertaisesti mikä tahansa Arduino tai vastaava levy.

Jos sinulla ei vielä ole sellaista, suosittelen aloittamaan DigiSpark Pron (~ 12 dollaria) tai eBayn Nano 3.0: n käytön hintaan 3 dollaria (mutta sinulla on vielä viikko tai kaksi aikaa odottaa sen saapumista Kiinasta); ja sinun on asennettava CH340 -USB -ohjain). DigiSpark ~ 10 dollaria (ei Pro) sopii erittäin hyvin tähän yhden bitin 'videopeliin' (Tämä riisuttu yksikkö, jossa on vain 6 I/O: ta, on hieman hankalampi ladata)

Linkit tässä käytettyyn laitteistoon:

Nano V3.0 Atmega328P eBayssa

Digispark USB -kehityskortti

Vaihe 2: Hae ja lataa koodi

Hae ja lataa koodi
Hae ja lataa koodi

Kopioi alla oleva koodi arduino -luonnostiedostoon (esim.…/Push_It/Push_It.ino) Olen yrittänyt kommentoida sitä melko hyvin. Toivottavasti löydät koodin helposti ymmärrettäväksi. Logiikka sen määrittämiseksi, milloin korottaa, pienentää ja milloin ei, on hieman monimutkainen, mutta tämä osa on myös erikoiskoodi, eikä siitä ole yleistä hyötyä. Katso Arduino IDE:

Uuden Arduino -luonnoksen luominen

Lataa Push_It -luonnos mikrokontrolleriimme Arduino IDE -ohjeiden mukaisesti.

Vaihe 3: Pelaaminen

Pelaa
Pelaa

Pelin tavoitteena on saada LED (sisäinen) vilkkumaan mahdollisimman monta kertaa välähdyssarjassa, joka sitten toistuu

Pelin pelaaminen:

Push-It alkaa yhdellä välähdyksellä, joka sitten toistuu. Jos kosketat sormeasi tulotapin lähellä LED -valon palaessa, seuraava jakso vilkkuu LEDiä kahdesti.

Joka kerta, kun painat pseudo -painiketta ensimmäisen välähdyksen aikana, välähdykseen lisätään uusi salama. Sormen nostamisella/irrottamisella ei yleensä ole väliä.

Mutta jos painat ennen ensimmäistä välähdystä tai sen jälkeen, sarjan välähdysten määrä vähenee.

Jos et tee mitään muuta, sarjan välähdysten määrä säilyy. Lisäksi kun lasku pysyy muuttumattomana koko syklin ajan, lukumäärä tallennetaan EEPROM -muistiin.

Joka kerta kun onnistut lisäämään salaman määrää, ajoitus nopeutuu hieman, mikä vaikeuttaa ja vaikeuttaa salamamäärien saavuttamista. Kun teet liukumisen ylöspäin ja välähdysten määrä vähenee, ennen seuraavan jakson aloitussalamaa on pidempi tauko. Tämä tarjoaa lisähaasteen, koska se voi lisätä todennäköisyyttä, että hyppäät aseeseen. Pysy siis valppaana.

Kun olet saanut suuren välähdyslukumäärän, voit viedä sen (tai lähettää sen, mikä DigiSpark on hyvä) ystävällesi, ja kun se kytketään laitteeseen, he näkevät kuinka suuren salaman määrän olet nostanut kohteeseen. Olen huomannut, että se lopettaa haastavan saada sen jopa yli 8. Kun varsinainen painike on kiinnitetty, olen onnistunut saamaan sen jopa yli tusinaa. Jos haluat palata pienemmäksi, voit painaa sitä toistuvasti milloin tahansa ennen ensimmäistä salamaa tai sen jälkeen. Myös jos hyppäät tulotapin maahan, kun käynnistät virran, laskenta nollautuu arvoon 1.

Huomaa, että alkuperäisen DigiSpark-levyn viive on 10 sekuntia virran kytkemisen jälkeen, minkä jälkeen se alkaa suorittaa Push-It-koodia ja pelata peliä. Se käyttää tätä aikaa yrittääkseen puhua USB -nastojen kautta saadakseen mahdollisen uuden latauskoodin päivityksen.

Jos käyttämässäsi Arduino -kortissa on USB TX -LED -valo, tämä LED -valo vilkkuu nopeasti, kun olet painanut painiketta tehokkaasti. Tämä LED vilkkuu voimakkaammin, kun EEPROM -laskurin arvo päivitetään uudella arvolla. Tämä palaute voi auttaa sinua suuresti tietämään, milloin tai vakuutat, että olet tehokkaasti käynnistänyt painikkeen. Sinun on ehkä varmistettava, ettet kosketa piirin maadoitusta (kuten metallia mikro-USB-liittimen ympärillä), jotta hahmosi todellakin aiheuttaa kohinaa avoimeen tulotappiin. Tulee lisää ja hieman arvaamattomia haasteita johtuen siitä, että tulotappi kelluu (ei johtava/resistiivinen kuorma vetänyt ylös tai alas) ja muuttuva signaalikohina tulee sormesi läpi.

250 Hz: n neliöaalto lähetetään syöttötapin vieressä olevaan nastaan, mikä parantaa suuresti injektoidun tulosignaalin varmuutta, kun sormesi peittää molemmat tapit.

Olen havainnut, että DigiSpark-kortin vastaus on melko johdonmukaisesti ennustettavissa pienestä sormien puristuksesta levyn kulmaan, jossa D3-D5 ovat.

Kun soitan Push-It-peliä, pidän siitä niin, että kortti on liitetty USB 5v -akkuakkuun (katso kuvat). Nämä löytyvät yleensä edullisesti USB AC- ja 12 V -automaattisovittimien vieressä olevista säiliöistä; useimmissa tavarataloissa elektroniikkaosasto.

Vaihe 4: Valinnaiset kokeet ulkoisilla komponenteilla

Valinnaiset kokeet ulkoisilla komponenteilla
Valinnaiset kokeet ulkoisilla komponenteilla

Huomaa: Jos liität oikean painikkeen, on yksi koodirivi, joka on kommentoitava koodin mukaisesti.

Kaiuttimella, toinen puoli maahan, jos kosketat toista johtoa D4: ään, kuulet 250 Hz: n neliöaallon äänen. D3: ssa on 500 Hz: n neliöaalto. Jos liität kaiuttimen D3: n ja D4: n väliin, kuulet näiden kahden signaalin yhdistelmän.

LEDin liittäminen kaiuttimen sijaan kuten yllä on erittäin mielenkiintoista. Sinun ei tarvitse olla huolissaan jännitteestä, virtatasosta, vastuksista tai edes napaisuudesta (pahimmassa tapauksessa se ei syty, käännä se sitten ympäri). Kokeile ensiksi kytkeä negatiivinen (katodijohto) maahan ja toinen joko D3 tai D4. LED -valo syttyy puoliksi neliön aaltojen vuoksi. Lisäksi vastusta ei tarvita, koska MicroController -yksiköiden ulostulo on rajoitettu. Tein nykyisiä mittauksia, joiden tuloksena oli Attma85 ja Atmega328 MCU 15 mA ja 20 mA. Nämä tasot ovat noin puolet näiden osien nykyisestä rajoitetusta arvosta johtuen kantavan aaltosignaalin 50%: n toimintajaksosta. Mittarin lukemat ovat itse asiassa testatun piirin virran keskiarvo.

Mielenkiintoista on, että jos yhdistät D3: n ja D4: n väliin LED -valolla (katso kuva yllä ja vasemmalla), se syttyy kumpaankin suuntaan ja noin ½ kirkkaudella, kuten toisella puolella maadoitettuna. Kehotan teitä pohtimaan miksi.

Suositeltava: