Kazalo:

Preizkusite Bare Arduino s programsko opremo za igre z uporabo kapacitivnega vhoda in LED: 4 koraki
Preizkusite Bare Arduino s programsko opremo za igre z uporabo kapacitivnega vhoda in LED: 4 koraki

Video: Preizkusite Bare Arduino s programsko opremo za igre z uporabo kapacitivnega vhoda in LED: 4 koraki

Video: Preizkusite Bare Arduino s programsko opremo za igre z uporabo kapacitivnega vhoda in LED: 4 koraki
Video: CS50 2015 - Week 7 2024, November
Anonim
Preizkusite Bare Arduino s programsko opremo za igre z uporabo kapacitivnega vhoda in LED
Preizkusite Bare Arduino s programsko opremo za igre z uporabo kapacitivnega vhoda in LED
Preizkusite Bare Arduino s programsko opremo za igre z uporabo kapacitivnega vhoda in LED
Preizkusite Bare Arduino s programsko opremo za igre z uporabo kapacitivnega vhoda in LED

Interaktivna igra "Push-It" z golo ploščo Arduino, brez zunanjih delov ali ožičenja (uporablja kapacitivni vhod na dotik). Na zgornji sliki je prikazano, da deluje na dveh različnih ploščah.

Push-It ima dva namena.

  1. Če želite hitro dokazati/preveriti, ali vaša plošča Arduino deluje in ali ste pravilno nastavljeni, da nanjo naložite novo skico kode. Videli boste, da izvaja vhod in izhod (zazna digitalni vhodni nivo, izhod na vgrajeno LED); shranite in obnovite vrednost iz nehlapnega pomnilnika EEPROM. Vse brez priključitve žic ali naprav.
  2. Zagotovite zabavno in zahtevno igro v interakciji z Arduino ploščo.

Ta navodilo predvideva, da ste že namestili Arduino IDE in ste vsaj minimalno seznanjeni z njegovo uporabo. V nasprotnem primeru vas napotim na te povezave:

Začnite z Arduinom

Dodajanje podpore Digisparka (z zagonskim nalagalnikom) obstoječemu IDE Arduino 1.6.x

Push-It bo deloval z večino katere koli Arduino plošče, npr. ploščo Nano, Uno ali DigiSpark Attiny85. Preizkusil sem jo z Nano 3.1 in DigiSpark. V besedilu, ko govorim o imenih/številkah zatičev, bodo uporabljeni kot na plošči Nano (v nasprotju z DigiSparkom).

Korak: Imeti stvari, ki jih potrebujete

Kar je preprosto katera koli Arduino ali primerljiva plošča.

Če ga še nimate, priporočam, da začnete z DigiSpark Pro (~ 12 USD) ali Nano 3.0 z eBaya za ~ 3 USD (vendar boste morali čakati še en teden ali dva, da pride iz Kitajske); in morate namestiti gonilnik USB CH340). DigiSpark ~ 10 USD (ne Pro) je zelo primeren za to eno bitno "video" igro (To odstranjeno enoto, ki ima le 6 vhodov/izhodov, je nekoliko težje naložiti)

Povezave do strojne opreme, ki se uporablja tukaj:

Nano V3.0 Atmega328P na eBayu

Razvojna plošča Digispark USB

2. korak: Pridobite in prenesite kodo

Pridobite in prenesite kodo
Pridobite in prenesite kodo

Kopirajte spodnjo kodo v datoteko skice arduino (npr.…/Push_It/Push_It.ino) Poskušal sem jo precej dobro komentirati. Upam, da vam bo koda lahko razumljiva. Logika za določanje, kdaj povečati, zmanjšati in kdaj ne, je nekoliko zapletena, vendar je ta del tudi specializirana koda in ni splošno uporabna. Za več podrobnosti o nastavitvi nove "skice" (kodni projekt), ki bo uporabljena z Arduino IDE glej:

Ustvarjanje nove skice Arduino

Prenesite skico 'Push_It' v naš mikrokontrolnik v skladu z navodili Arduino IDE za vašo ploščo.

3. korak: Igranje

Igranje
Igranje

Cilj igre je, da LED (vgrajena) utripa čim večkrat v nizu utripov, ki se nato ponovijo

Igranje igre:

Push-Začne se z eno samo bliskavico, ki se nato ponovi. Če se dotaknete prsta blizu vhodnega zatiča, medtem ko LED sveti, bo naslednji cikel LED utripal dvakrat.

Vsakič, ko pritisnete psevdo gumb med prvo bliskavico v nizu utripov, bo temu nizu dodana še ena bliskavica. Na splošno ni pomembno, kdaj dvignete/odstranite prst.

Če pa pritisnete pred ali po prvi bliskavici, se bo število utripov v nizu zmanjšalo.

Če ne naredite nič več, se število utripov v nizu ohrani. Nadalje, ko se štetje za celoten cikel ne spremeni, se število shrani v pomnilnik EEPROM.

Vsakič, ko vam uspe povečati število bliskavic, se čas nekoliko pospeši, zaradi česar je vedno težje doseči visoko število bliskavic. Ko naredite zdrs in se število utripov zmanjša, bo pred začetkom bliskavice naslednjega cikla prišlo do daljše pavze. To predstavlja dodaten izziv, saj lahko poveča verjetnost, da boste skočili s pištolo. Zato bodite pozorni.

Ko enoto nastavite na visoko število bliskov, jo lahko odnesete (ali pošljete po pošti, za kar je DigiSpark primeren) prijatelju, kjer bodo po priklopu videli, kako visoko število bliskavic ste dvignili do. Ugotovil sem, da ni dovolj zahtevno, da bi dobil več kot 8. S priloženim dejanskim gumbom mi je uspelo dvigniti več kot ducat. Če se želite vrniti na nižje število, ga lahko kadar koli pritisnete pred ali po prvi bliskavici. Tudi če med vklopom preskočite vhodni pin na maso, se bo število ponastavilo na 1.

Upoštevajte, da ima prvotna plošča DigiSpark zakasnitev 10 sekund po vklopu, preden bo začela izvajati kodo "Push-It" in igrati igro. Ta čas porabi za poskus pogovora prek zatičev USB, da bi prejel morebitno novo posodobitev kode za prenos.

Če ima plošča Arduino, ki jo uporabljate, LED -diodo USB TX, bo ta LED -lučka hitro utripala, ko boste učinkovito 'pritisnili gumb'. Ko bo vrednost štetja v EEPROM -u vedno posodobljena z novo vrednostjo, bo ta LED utripala bolj izrazito. Te povratne informacije vam lahko v veliki meri pomagajo vedeti, kdaj ste ali sprožiti dogodek s pritiskom na gumb. Morda se boste morali prepričati, da se ne dotikate ozemljitve vezja (na primer kovine okoli priključka mikro-USB), da bo vaša figura res povzročila hrup na odprtem vhodnem zatiču. Dodani bodo in nekoliko nepredvidljivi izzivi zaradi dejstva, da vhodni zatič lebdi (ne potegne navzgor ali navzdol zaradi prevodne/uporovne obremenitve) in spremenljiv signalni šum prihaja skozi vaš prst.

Kvadratni val 250Hz se odda na pin poleg vhodnega zatiča, kar močno izboljša gotovost vbrizganega vhodnega signala, ko prst pokrije oba zatiča.

Ugotovil sem, da je odziv plošče DigiSpark dokaj dosledno predvidljiv na rahlo stiskanje prstov v vogal plošče, kjer so D3-D5.

Ko igram "Push-It", to rad počnem s ploščo, ki je priključena na mobilno baterijo USB 5v (glej fotografije). Na splošno jih je mogoče poceni najti v zabojnikih poleg kablov USB AC in 12v avtomatskih adapterjev; v večini vseh veleblagovnic oddelek za elektroniko.

4. korak: Izbirni poskusi z zunanjimi komponentami

Neobvezni poskusi z zunanjimi komponentami
Neobvezni poskusi z zunanjimi komponentami

Opomba: Če priložite pravi gumb, je treba eno vrstico kode komentirati, kot je navedeno v kodi.

Z zvočnikom, eno stranjo proti tlom, če se dotaknete drugega kabla do D4, boste slišali zvok 250 Hz kvadratnega vala. Pri D3 je kvadratni val 500Hz. Če priključite zvočnik med D3 in D4, boste slišali kompozit dveh signalov.

Priključitev LED namesto zvočnika, kot je zgoraj, je zelo zanimivo. Glede napetosti, nivoja toka, uporov ali celo polarnosti vam ni treba skrbeti (v slabšem primeru ne sveti, nato pa samo obrnite). Najprej poskusite z negativnim (katodnim) kablom, priključenim na ozemljitev, drugi pa na D3 ali D4. LED bo zaradi kvadratnih valov 'pol' prižgan. Nadalje ni potreben noben upor, saj je izhod enote mikrokontrolerja trenutno omejen. Naredil sem trenutne meritve, ki so za MCU Attiny85 in Atmega328 dosegle 15ma oziroma 20ma. Te ravni so približno polovica trenutne omejene vrednosti za te dele zaradi 50% narave delovnega cikla signalov pogonskih kvadratnih valov. Odčitki števca so dejansko povprečje toka skozi preizkušeno vezje.

Zanimivo je, da če z LED diodo premostite med D3 in D4 (glejte sliko zgoraj in levo), bo zasvetila v obe smeri in pri približno ½ svetilnosti, kot pri eni strani, priključeni na tla. Vabim vas, da razmislite, zakaj.

Priporočena: