Sadržaj:

Ugrađeni LED zaslon Arduino igre: 7 koraka (sa slikama)
Ugrađeni LED zaslon Arduino igre: 7 koraka (sa slikama)

Video: Ugrađeni LED zaslon Arduino igre: 7 koraka (sa slikama)

Video: Ugrađeni LED zaslon Arduino igre: 7 koraka (sa slikama)
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Srpanj
Anonim
Image
Image
Glavne komponente
Glavne komponente

poznat i kao LED sustav za igru s ljestvama.

Attiny-85 opremljen hardverom i softverom za igranje akcijskih "video" igara, na linijskom LED zaslonu.

Ima multipleksirani 12 LED ljestveni zaslon i podržava do 6 ulaza s gumbima i dodatni audio izlaz.

Pakiran je s 4 igre vještine, s više razina težine i nekim varijacijama (ažurirano na 16 igara, kada se koristi s ATMega MCU -om).

[Video]

Korak 1: Glavne komponente

Svoj sam projekt izgradio modularno (dva odvojena sklopa). Glavni sklop zaslona; koji se može sam koristiti samostalno. I podsklop za unos gumba. Na taj način mogu ponovno koristiti gumb ili sklop zaslona u drugom projektu. To također omogućuje fleksibilne mogućnosti ugradnje.

Također sam iznio kontrolnu liniju na pin-header za sklop LED ljestvi kako bih mogao koristiti Arduino Nano (ili Uno), za razvoj softvera za njega, kao i za upotrebu u drugim projektima. Digispark neće raditi zbog ostalih komponenti na ploči.

Odlučio sam koristiti iste dodjele pinova za LED ljestve kao u ranijim instrukcijama kako bih onima koji već imaju takvu hardversku implementaciju olakšao korištenje softvera u ovom uputstvu, iako nisam našao dodijeljene za najjasniju logiku u softver.

Dvije linije između modula su PB4 i masa. Kako je sve što je na sklopu s više gumba otpornici i prekidači, tako da ne ovisi o polaritetu, a ni preokretanje veze nije važno.

Uz podršku više gumba može se implementirati veći izbor igara (ili aplikacija). Dvije igre u ovom uputstvu najbolje je igrati s dva gumba. Četiri glavna gumba mogu se koristiti za izravan pristup povezanoj igri. Uskoro ću implementirati igru koja ovisi o upotrebi sva četiri glavna gumba.

Ovaj projekt koristi do šest gumba. Četiri glavna BTN 1-4. Ove se tipke mogu pojedinačno otkriti čak i ako se bilo koja od njih pritisnu istovremeno. Druga dva gumba su posebni gumbi, prvo postoji ekvivalent pojedinačnog gumba u ranijim projektima koji stvara čvrstu vezu između ulaza PB4 i mase, ja to zovem BTN0 ili ESC jer se ovaj prekidač uvijek može otkriti i blokirat će otkrivanje bilo kojeg od ostalih. Druga posebna tipka je funkcijska tipka, ako se pritisne kad se pritisne BTN 0-4, može se osjetiti i koristiti za promjenu funkcionalnosti.

U ovoj skici vještine igre koristim:

  • FncKey+Btn1 povratak u način rada izbornika
  • FncKey+Btn2 unaprijed razina težine (ako je na najvišoj, vratite se na najnižu)
  • FncKey+Btn4 trenutna pauza (pritisnite bilo koju tipku za poništavanje pauze)
  • FncKey + Btn 0 ili 3 nisu definirani.

Korak 2: Popis dijelova

Popis dijelova
Popis dijelova

Potrebni dijelovi

  • LED diode, crvene, žute, zelene i plave poput ovih
  • PCB ploče slične stavke možda ćete morati kupiti veću ploču i izrezati je na željenu veličinu.
  • utična utičnica slični predmeti
  • Čip Attiny-85
  • opire se
  • upotrijebljeni prekidači: 12x12x8mm i 6x6x6mm PCB trenutni taktilni gumbi

preporučeno:

  • zujalica 5v, aktivni tip
  • štapić od sladoleda
  • 2,54 mm zaglavna traka s iglom
  • 30 ga žice i alat za omotavanje žice https://www.ebay.com/itm/351798901037 gornja veza je na žicu koja više liči na 36 ga. Volio bih da sam znao za takav dogovor za stvarnih 30 ga. žica

Korak 3: Izdvajamo o izgradnji

Izdvajamo o izgradnji
Izdvajamo o izgradnji
Izdvajamo o izgradnji
Izdvajamo o izgradnji
Izdvajamo o izgradnji
Izdvajamo o izgradnji
Izdvajamo o izgradnji
Izdvajamo o izgradnji

Na sklopu glavne ploče električno imam iste kao i drugi raniji projekti LED ljestvi, koje biste mogli uputiti za daljnje osnovne upute za izgradnju

Međutim, ne koristim vanjski otpornik za izvlačenje na analognom ulazu A2 (PB4), također koristim crvenu, žutu, zelenu i plavu LED diodu, umjesto svih jedne boje, što je poželjno za neke od igara koje sam stvorio za ovaj hardver.

Evo I/O dodjela prema očekivanim priloženim softverskim skicama:

Projekt MCU AT-85 Uno/Nano

Imena imena pin# brd ime --------- ---- ---- --------- crvena L1-3 PB3 2 D-11 jel L4-6 PB0 5 D-8 Zelena L7-9 PB1 6 D-9 Plava L10-11 PB2 7 D-10 Ain PB4/A2 3 A-2 Audio PB5 1 D-3

Jedna značajna razlika je u tome što imam dva gumba ožičena na PB4. Prvi ide izravno iz PB4 na masu, ali bez vanjskog otpornika na povlačenje (ja to zovem BTN0). Također imam prekidač s gumbom (koji nazivam BTN1) spojen na 75Kohm u seriji na masu. Ova glavna ploča može se koristiti bez montažne ploče "Button", ali s određenom ograničenom funkcionalnošću.

Ograničavače struje koji idu prema setovima LED -a treba odabrati na temelju svjetline LED -ica različitih boja koje koristite i koliko ih želite. Na kraju sam dobio 91 ohma za crveni set, 75 žutih, 430 zelenih i 150 ohma za plavi. Ove se vrijednosti mogu činiti niskim, ali imajte na umu da su LED diode multipleksirane (općenito u mnogo manje od 100% vremena)

Koristio sam LED diode od 3 mm i malo ih razmaknuo. Noge LED -a su stajale oko štapića od sladoleda. Na ovaj način svi su imali istu količinu i iznad svih ostalih komponenti. Namjeravam u jednom trenutku montirati jedinicu sa samo LED diodama koje vire kroz okvir.

Odlučio sam ožičiti LED veze među žicama. Bez posebne tiskane ploče to je lakše učiniti nego lemljenje na uskim mjestima s puno međusobnih veza; ne nastoji proizvoditi kratke hlače i lakše je ponovno spojiti u slučaju pogreške. Sa svim strujama u mikrokontroleru i oko njega u miliamperima žica od 30 ga je dovoljna.

Gumbi i povezani otpornici:

Osmislio sam jedinstvenu konfiguraciju (neka vrsta dvostrukog Y) otpornika i gumba, tako da softver može razaznati pojedinačne i dvostruke pritiske tipki (teoretski se može identificirati bilo koja kombinacija ova četiri gumba). Pokušao sam nekoliko konfiguracija s mnoštvom vrijednosti otpornika u proračunskoj tablici tražeći najbolju konfiguraciju, a zatim sam ih simulirao u softveru pokušavajući isprobati sve moguće kombinacije otpornika kako bih pronašao skup (koji koristim) koji bi proizveo maksimalnu minimalnu razliku analognih očitanja između bilo kojeg & svih pojedinačnih i dvostrukih pritisaka na tipke. Rasporedio sam ih tako da se posebno razlikuju Btn1, Btn4 i Btn1+4.

Pogledajte gornji dijagram mreže s gumbima.

Morate prikriti sve ožičenje koje je međusobno spojeno na PB4 (i eventualno prebaciti kontakte i otpornike) električnom trakom, vrućim ljepilom ili nečim drugim što uopće ne vodi, jer će samo otpor mega-ohma odbaciti mogućnost odrediti koji su prekidači pritisnuti; a svaki takav kontakt koji ostvarite tijekom održavanja skupštine učinio bi to.

Kasnije povezani Instructables:

4-Button-Games-Using-One-Analog-Input/

Dual-Power-for-Your-Portable-Micro-Controller-Proj/

3D ispisano kućište-za-Inline-LED-Zaslon konzole-i/

Korak 4: Daljnje opcije i napomene

Daljnje opcije i napomene
Daljnje opcije i napomene

Opcijski audio izlaz

Opcijski audio izlaz koristi PB5. Spojio sam 5 -voltni zujalicu, serijski sa otpornikom od 150 Ohma kako bih ograničio inače glasan dosadan izlaz. Preporučujem da koristite 50-200 ohma. Zvučni signal možete paralelno postaviti s čepom (2-10 uf) kako biste ga učinili manje hrapavim ili upotrijebiti 10-milimetarski zvučnik od 32 Ohma izbijen iz skupa jeftinih stereo slušalica, umjesto otpornika i zujalice. Sviđa mi se, za zvukove igre, bolje kakvo imam.

Prema zadanim postavkama, Attiny-85 koristi PB5 kao reset, učinkovito znači da bi zvuk radio, ali neće imati loš učinak na bilo koju drugu operaciju. Kad koristite Nano ili Uno, zvuk će raditi (izlazi iz D3). Za dobivanje zvuka s Attinyjem morate promijeniti unutarnju konfiguraciju pinova kako bi softver mogao koristiti PB5 kao izlaz. U tome postoje značajne posljedice; molimo pogledajte ove:

forum.arduino.cc/index.php?topic=178971.0

www.instructables.com/id/Simple-and-cheap-F…

i

Općenito, tijekom igre pogreška ili neuspjeh dozivat će cvrkut ili kratki zvuk maline. Kad završite razinu ili pobijedite, kao na ping-pongu, svira se melodija za čestitku. Smatram da popratni zvuk zaista povećava radost igre.

Gumbi zamjenskog tipa kontrolera igre

Za svoju unučad, koja su gruba u opremi, napravio sam izdržljive zasebne tipke, Btn1 i Btn4, na kraju dugih olovnih žica. Pogledajte fotografiju. Gumbe sam montirao u make-sift ručke; s 75Kohm u liniji s Btn1 i ~ 37Kohm u liniji s Btn4. U seriji s Btn4 koristio sam 36K, 33K ili čak 39K. Imajući na umu vanjske tipke klipa, bilo bi dobro imati zaseban set zaglavlja za povezivanje vanjskih ručnih gumba koji se vide kao Btn1 i Btn4.

Potrebno kvalitetno napajanje

Za izvor napajanja možete izravno koristiti USB 5v izlaz na računalu, tabletu, zidnom punjaču, bateriji ili bateriji od 3,7 Li.

Otkrio sam da bih prilikom napajanja jedinice s nekih USB punjača i nekoliko USB napajanja primijetio treperenje i povremeno propuštanje, pa čak i resetiranje. Ako to doživite, pronađite izvor napajanja s boljom regulacijom, u protivnom bi moglo pomoći dodavanje velikog (100-1000uf) kondenzatora preko +V na masu.

Testiranje

Uključio sam i testni program koji će vam pomoći provjeriti i otkloniti pogreške vašeg hardvera. Kôd je u tijeku i potrebno ga je očistiti. Nadam se da ću doći do toga, ali mislim dok bi to trebalo služiti vašim potrebama. Nedavno sam ga koristio samo s Nanoom koji upravlja sklopovima zaslona i tipkovnice. Možete koristiti bilo koji gumb za odabir stavki iz načina izbornika. Za izlaz iz demonstracije/testa ponovno pritisnite bilo koju tipku. Za izlaz iz testa gumba (#4) pritisnite FncKey+Btn1 ili držite tipku EscKey (uzemljenje PB4) ili reciklirajte napajanje.

Zbog razlika u unutarnjim otporima MCU -a i tolerancijama otpornika, možda ćete morati izvršiti neke prilagodbe kako bi se svi pojedinačni i dvostruki pritisci gumba pravilno detektirali. Da biste to učinili, upotrijebite test-4 (za odabir ovoga pogledajte donji opis rada izbornika) testnog programa. Imajte na umu da nisam koristio vanjski otpornik za povlačenje jer sam dalje planirao uporabu za ulaz PB4 koji nije kompatibilan s bilo kojim potezanjem.

Korak 5: Pregled softvera

Skica LadderGames.ino implementira četiri igre, uključujući neke zamjenske verzije.

Skica se može preuzeti i pokrenuti s ATtiny-85, Nano, Uno itd. Za programiranje u Attiny čip pogledajte: https://www.instructables.com/id/Program-an-ATtiny… i/ili da programirate vaš ATtiny-85 čip:

Promijenite unutarnji sat ATtiny85 na 8MHz, jer su performanse željene za igru. Uputiti:

forum.arduino.cc/index.php?topic=276606.0

Ova bi skica trebala biti unatrag kompatibilna s većinom ranijih ATtiny-85 projektiranih ljestvica, bez promjena, ali će imati neke ograničene funkcionalnosti.

Rad sa izbornikom

Prilikom pokretanja postoji zdravstvena provjera u obliku prelaska preko LED dioda i skupa zvučnih signala. Zatim prelazi u način rada glavnog izbornika. Svaki set LED dioda jedne boje svijetli nekoliko sekundi uzastopno. Igra se odabire pritiskom na gumb dok svijetli pridruženi set, igra 1: Crvena, igra 2: Žuta, igra 3: Zelena, igra 4: Plava. Dok ste u načinu izbornika Btn2, Btn3, Btn4 možete pritisnuti za izravni prelazak na igre 2, 3, 4 respektivno. Nakon što odaberete igru, morat ćete navesti željenu varijaciju. Za svaku dostupnu varijaciju će zasvijetliti set LED dioda u boji. Jednostavno pritisnite gumb na željenom. Varijacije, "verzije", za svaku igru su dalje opisane.

Prva verzija od sve četiri igre može se igrati jednim gumbom. Ili jedna ožičena između PB4 i mase (Btn-0) kao u ranijim instrukcijama za LED ljestve, ili s prekidačem koji povezuje 75k opterećenje s masom (Btn-1). Bilo što od ovoga učinit će u igrama kada upute govore o nespecifičnom pritisku gumba.

Za izlaz iz bilo koje igre možete koristiti FncKey+Btn1, držite EscKey (zvani: Btn0) pritisnutim 1-2 sekunde ili isključite napajanje.

Korak 6: Igranje igara

1. igra: Push-It

Ovo je adaptacija moje igre 'Push-It' iz jedne od mojih ranijih instrukcija

www.instructables.com/id/Play-a-Game-with-a…

Cilj igre je povećati broj treptaja i broj upaljenih LED dioda na što je više moguće. Push-Start započinje s nekoliko bljeskova, koji će se zatim ponoviti. Ako pritisnete gumb nakon zadnjeg bljeska u nizu i kada bi potencijalno mogao postojati dodatni, zasvijetlit će sljedeća LED dioda i broj bljeskalica će se povećati za jedan. No ako 'pritisnete' prije ili nakon vremenskog razdoblja mogućeg dodatnog bljeskanja, umjesto toga, broj bljeskova u setu će se smanjiti.

Svaki put kad uspijete povećati broj bljeskalica, razina poteškoće se povećava kako se vrijeme ubrzava, pa je sve teže i teže doći do većeg broja bljeskova.

Trenutni broj se pohranjuje u memoriju EEPROM -a za kasnije ponovno pokretanje na istoj razini.

Igra 2: Ping-pong

Odlična (iako jedina) konkurentna igra za dva igrača; gdje lopta (pojedinačni bljesak svjetlosti) ide s jedne strane na drugu, sve brže i brže, svaki put kad se 'vrati' natrag.

Prvi put sam implementirao ovu igru s jednim redom svjetla preko svjetla s gumbima na prednjoj ploči zrakoplovnog super-mini računala 1970-ih.

Za udaranje lopte naprijed -natrag odgovarajuće veslo mora je pritisnuti (pritisnuto dugme) dok je u krajnjem položaju (zadnja LED). Prva strana koja promaši gubi, a svjetla na pobjedničkoj strani trepere.

Postoje dvije varijacije, od kojih jedna zahtijeva samo jedan gumb (Btn 0 ili 1), koji će pogoditi loptu na oba kraja; i druga verzija, namijenjena je za dvije osobe, jedna za drugu, za što su potrebna dva gumba; gumb 1 s lijeve strane i gumb 4 ili 0 s druge strane. Poželjna je uporaba gumba 1 i 4 jer neće međusobno ometati; svaki se može pogoditi da vrati loptu s kraja bez obzira na stanje drugog gumba.

Pobjednik nadigravanja uvijek je poslužitelj za sljedeći.

3. igra: Galerija streljanja

Pucajte u sve mete (svjetla) da biste dovršili razinu. Na svakoj višoj razini radnja je brža.

Postoje dvije verzije; jedan gdje je mjesto fiksno i ciljevi se kreću i drugi gdje se mjesto pomiče, a mete miruju. U svakom slučaju pogodak izbaci svjetlo mete; a promašaj uzrokuje iskakanje mete. Kad je meta u prizoru, prizor svijetli jače, inače je prigušen.

U prvoj verziji pogled počinje s lijeve strane (dolje) i skenira desno. U verziji 2 nišan je fiksiran u sredini dok se meta pomiče s desna na lijevo. Gledajući kôd, postoje sablasne verzije 3 i 4 koje se mogu aktivirati, ali stavljate vlastitu dobrobit na vlastitu odgovornost.

4. igra: JumpMan

Ideja je da prolazite kroz razinu igre na koju nailaze objekti koje morate preskakati, kako napredujete, oni brže dolaze. U drugoj verziji igre također postoje objekti iznad glave ispod kojih se morate sagnuti.

U prvoj verziji postoje samo objekti za preskakanje. Za skok morate pritisnuti gumb kad objekt dođe do posljednje ćelije s lijeve strane; koja posvijetli kad se to dogodi. Da biste skočili 2 ili više uzastopnih objekata, morate skočiti (pritisnuti) na prvom i držati gumb za ostale.

U verziji 2 dodaju se objekti iznad glave (bljeskajući). Oni se preskaču 'skakanjem tijekom ćelije prije nje i oslobađanjem dok je u završnoj ćeliji. Samo jedan iznad glave može bljeskati odjednom, pa kad jednom prođete, možda ćete vidjeti drugu (koja prije nije treptala) na vama. Nikada neće biti uzastopnih režijskih troškova, ali mogu biti uz jedan ili više skočnih objekata (tipa gromada).

U verziji igre 3 morate, doći do, koristiti zasebnu tipku za nadzemne objekte (Btn- 2, 4 ili 0 po vašem izboru); skokovi tada zahtijevaju Btn-1.

Nakon što ste uspjeli proći kroz četiri objekta više nego što niste uspjeli, napredujete u razini; tu je audio i vizualna čestitka, zatim nastavak većom brzinom. Dobivanje skupa uzastopnih objekata računa se isto kao i jedan pojedinačni objekt.

Savjetujem vam da odštampate pravila rada igara i ponovno ih pročitate prije nego počnete igrati igru koju niste nedavno igrali. U protivnom, možete se frustrirati; misleći da igra ne radi ispravno kad je tako, ali vi i igra imate različite načine i očekivanja. Ja sam na to pao više od nekoliko puta.

Korak 7: Ažuriranja, više igara

Image
Image

Napravio sam 3D tiskano kućište konzole za smještaj In-Line LED ljestve za prikaz i gumbe.

Osmislio sam više igara koje koriste ovaj hardver. Pogledajte ih i zabavite se:

Nove igre od 'Whack a Mole' do 'Cow of War'

Prosinca 2016. Sada, na kraju gornje veze, postoji unificirana verzija koda koja uključuje svih 12 igara.

17. veljače 2017.: Evo najnovije igre postavljene za ovaj projekt, sada sa 16 igara (skica ispod). Ovo će se izvoditi na bilo kojoj MCU implementaciji s 32 KB bajtova memorije flash programa. Iako se jedna do 3 ili 4 od 16 igara može staviti u ATtiny. Preporučujem korištenje Nano 3 arduina. Najnovije 4 igre koje su dodane su utrke 'Le Mans', 'Spray' natjecanje u slikanju prskanjem.

Većim i raznovrsnijim igranjem ovih igara moguće je poboljšanje njihovih sposobnosti igre, uživanje za sve igrače na razini. Mislim da postoji mnogo prostora za poboljšanja u utrkama u Le Mansu putem dizajna rasporeda staza i vremena igre.

Imam, napisano, još oko 10 aktivnosti/igara/funkcija, od kojih se neke nadam da ću učiniti dostupnima oko jeseni 2017.

Također se ove igre s jednom linijom mogu promijeniti za 2 reda 2x16 LCD zaslona, s jednom linijom objekata igre, a drugom za neki tekst. Učinio sam malo od ovoga, ali, koliko sam potkrijepljen projektima koliko vidim, ne znam kada bih i da li bih to mogao zaokružiti. Dakle, ako je netko motiviran usvojiti i optimizirati ove igre za 2x16 LCD, podijelite sa mnom i drugima.

Osim 4 nove igre ovdje u Menu_16Games.ino, priložio sam svoj projekt i stvorio srodne upute: Inline LED igraća konzola za kućište i napajanje vašeg prijenosnog MCU projekta

Nadam se da će mnogi odvojiti vrijeme i… UŽIVAJTE u ovim igrama.

Igra po skupinama: 1– Crvena 2- Žuta 3- Zelena 4- Plava

1 crveno PushIt PingPong ShootEmUp JumpMan 2 Yel QuickDraw Tug_a_War Piletina Hot_Hands 3 Grn Le_Mans Sprej Svinja BiFunc 4 Blu SimonSays Whack_Mole Sea_Hunt Flip_d

2. rujna 2017.: Poboljšane radne sposobnosti sa starim prljavim bučnim vanjskim gumbima upravljačke palice, u igri glava-glava (grupa 2).

13. prosinca 2017.: Poboljšano rukovanje odbijanjem gumba i podmirivanjem mjerenja, riješeni su manji problemi. Pokušao sam koristiti kondenzator na analognoj ulaznoj liniji tipke, ali da bi bio učinkovit, to je dovelo do sporog mjerenja koje je dalo lažne identifikacije razine ili softver koji je toliko dugo čekao ta je brza radnja igre bila ugrožena.

Travanj 2018.: Otkrio sam da 5/8 kompresijske spojnice čine izvrsna tijela za vanjske tipke u stilu klipa. Kako moja djeca vole koristiti njih par, dodala sam iglice zaglavlja kako bih ih lako spojila (kao Btn1 i Btn4).

Imajte na umu da sam u listopadu prošle godine stvorio još jedan projekt koji je izgrađen na hardveru ovog instruktora. U duhu je Halloweena i može biti jako zabavno, posebno za djecu. Upute: Uređaji pod utjecajem sablasne psihe

Preporučeni: