Sadržaj:

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

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

Video: Ugrađeni LED ekran Arduino igre: 7 koraka (sa slikama)
Video: Введение в LCD2004 ЖК-дисплей с модулем I2C для Arduino 2024, Juli
Anonim
Image
Image
Glavne komponente
Glavne komponente

poznat i kao LED sistem za prikazivanje merdevina.

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

Poseduje multipleksirani 12 LED merdevni ekran i podržava do 6 ulaza sa tasterima i opcioni audio izlaz.

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

[Video]

Korak 1: Glavne komponente

Svoj projekt sam izgradio modularno (dva odvojena sklopa). Glavni sklop ekrana; koji se može sam koristiti samostalno. I podsklop za unos dugmeta. Na taj način mogu ponovo koristiti dugme ili sklop ekrana u drugom projektu. Ovo 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 drugih komponenti na njegovoj 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 tipki 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). Dve igre u ovom uputstvu najbolje je igrati sa dva dugmeta. Četiri glavna dugmeta mogu se koristiti za direktan pristup povezanoj igri. Uskoro ću implementirati igru koja ovisi o upotrebi sva četiri glavna dugmeta.

Ovaj projekt koristi do šest gumba. Četiri glavna BTN 1-4, Ovi gumbi se mogu pojedinačno otkriti čak i kada se bilo koje od njih pritisne istovremeno. Druga dva su posebna gumba, prvo postoji ekvivalent pojedinačnog gumba u ranijim projektima koji uspostavlja č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 od bilo kog drugog. 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 igre vještina koristim:

  • FncKey+Btn1 se vraća u meni
  • FncKey+Btn2 napredni nivo težine (ako je na najvišem, vratite se na najniži)
  • FncKey+Btn4 trenutna pauza (pritisnite bilo koji taster za poništavanje pauze)
  • FncKey + Btn 0 ili 3 nisu definirani.

Korak 2: Lista dijelova

Lista delova
Lista delova

Potrebni delovi

  • 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
  • Attiny-85 čip
  • otpornici
  • upotrijebljeni prekidači: 12x12x8mm i 6x6x6mm PCB trenutni taktilni gumbi

preporučeno:

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

Korak 3: Izdvajamo iz građevinarstva

Građevinarstvo
Građevinarstvo
Građevinarstvo
Građevinarstvo
Građevinarstvo
Građevinarstvo
Građevinarstvo
Građevinarstvo

Na sklopu glavne ploče električno imam iste kao i drugi raniji projekti LED ljestvi, koje biste mogli uputiti za daljnja osnovna uputstva 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 bitna razlika je u tome što imam dva dugmeta ožičena na PB4. Prvi ide direktno s PB4 na masu, ali bez vanjskog otpornika na povlačenje (ja to zovem BTN0). Takođe imam prekidač sa tipkama (koji nazivam BTN1) spojen sa 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 izabrati na osnovu svjetline LED -ova 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 vrijednosti mogu izgledati niske, 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. Imao sam noge LED -a na štapiću od sladoleda. Na ovaj način svi su imali istu količinu i iznad svih ostalih komponenti. Namjeravam, u nekom trenutku, montirati jedinicu samo sa 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 se prepravlja u slučaju greške. Sa svim strujama unutar i oko mikrokontrolera u miliamperima žica od 30 ga je sasvim dovoljna.

Dugmad i povezani otpornici:

Osmislio sam jedinstvenu konfiguraciju (neka vrsta dvostrukog Y) otpornika i dugmadi, tako da softver može razaznati pojedinačne i dvostruke pritiske na tastere (teoretski se može identifikovati bilo koja kombinacija ova četiri dugmeta). Pokušao sam nekoliko konfiguracija s mnoštvom vrijednosti otpornika u proračunskoj tablici tražeći najbolju konfiguraciju, a zatim ih simulirao u softveru pokušavajući sve moguće kombinacije otpornika pronaći 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; i svaki takav kontakt koji ostvarite dok držite skupštinu bi to učinio.

Kasnije povezani Instructables:

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

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

3D-štampano kućište-za-linijski-LED-ekran-konzolu i/

Korak 4: Dodatne opcije i napomene

Dodatne opcije i napomene
Dodatne opcije i napomene

Opcioni audio izlaz

Opcijski audio izlaz koristi PB5. Spojio sam zujalicu od 5V, 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 sa čepom (2-10uf) kako biste ga učinili manje hripavim, ili upotrijebiti zvučnik od 10 mm sa pogonom od 32 Ohma izlomljen iz skupa jeftinih stereo slušalica, umjesto otpornika i zujalice. Sviđa mi se, za zvukove igre, bolje kako ja to imam.

Prema zadanim postavkama, Attiny-85 koristi PB5 kao reset, efektivno znači da bi zvuk radio, ali neće imati loš učinak na bilo koju drugu operaciju. Kada koristite Nano ili Uno, zvuk će raditi (izlazi iz njegovog D3). Da biste dobili zvuk s Attinyjem, morat ćete promijeniti unutrašnju konfiguraciju pinova tako da softver može koristiti PB5 kao izlaz. U tome postoje značajne posljedice; molimo vas da pogledate ovo:

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

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

i

Općenito, tijekom igre greška ili neuspjeh će izazvati cvrkut ili kratki zvuk maline. Kad završite nivo ili pobijedite, kao na ping-pongu, svira se čestitka. Smatram da popratni zvuk zaista povećava radost igre.

Dugmad alternativnog 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. Postavio sam dugmad u ručke za prosijanje; sa 75Kohm u liniji sa Btn1 i ~ 37Kohm u liniji sa Btn4. U seriji sa Btn4 koristio sam 36K, 33K ili čak 39K. S obzirom na vanjske tipke klipa, bilo bi dobro imati zaseban set zaglavlja za povezivanje vanjskih ručnih tipki koje se vide kao Btn1 i Btn4.

Potrebno kvalitetno napajanje

Za izvor napajanja možete koristiti USB 5v izlaz na računaru, 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 baterija 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 u potvrđivanju i otklanjanju grešaka vašeg hardvera. Kod je u izradi i potrebno ga je očistiti. Nadam se da ću doći do toga, ali mislim dok bi to trebalo da zadovolji vaše potrebe. Nedavno sam ga koristio samo sa Nano -om koji upravlja sklopovima ekrana i tastature. Možete koristiti bilo koje dugme za odabir stavki iz načina menija. Za izlaz iz demonstracije/testa ponovo pritisnite bilo koje dugme. 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 neka podešavanja kako bi se svi pojedinačni i dvostruki pritisci na tipke pravilno otkrili. Da biste to učinili, upotrijebite test-4 (za odabir ovoga pogledajte donji opis rada menija) testnog programa. Imajte na umu da nisam koristio vanjski pull-up otpornik jer sam dalje planirao upotrebu za PB4 ulaz koji nije kompatibilan sa bilo kojim pull-up-om.

Korak 5: Pregled softvera

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

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

Promijenite unutrašnji sat ATtiny85 na 8MHz, jer su performanse željene za igru. Pogledajte:

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

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

Rad sa menijem

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 bira pritiskom na dugme dok je pridruženi set upaljen, igra 1: Crvena, igra 2: Žuta, igra 3: Zelena, igra 4: Plava. U režimu menija Btn2, Btn3, Btn4 se može pritisnuti za direktan prelazak na igre 2, 3, 4 respektivno. Nakon što je igra odabrana, morat ćete navesti željenu varijaciju. Za svaku dostupnu varijaciju set obojenih LED dioda će bljeskati. Jednostavno pritisnite dugme koje želite. Varijacije, "verzije", za svaku igru su dalje opisane.

Prva verzija od sve četiri igre može se igrati jednim gumbom. Ili jedan ožičen između PB4 i mase (Btn-0) kao u ranijim instrukcijama za LED ljestve, ili sa prekidačem koji povezuje 75k opterećenje sa masom (Btn-1). Bilo koji od ovih pokazatelja bit će učinkovit u igrama kada upute govore o nespecifičnom pritisku tipke.

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 'Push-It' igre 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 dugme nakon posljednjeg bljeska u nizu i kada bi potencijalno mogao postojati još jedan, sljedeća LED lampica će zasvijetliti i broj bljeskalica će se povećati za jedan. Ali ako 'pritisnete' prije ili nakon vremenskog perioda potencijalnog dodatnog bljeska, umjesto toga, broj bljeskova u setu će se smanjiti.

Svaki put kad uspijete povećati broj bljeskova, nivo 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) takmičarska 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 kada se 'vrati' natrag.

Prvi put sam implementirao ovu igru sa jednim redom svetla preko dugmadi na prednjoj ploči vazdušno-kosmičkog super-mini računara 1970-ih.

Za udaranje lopte naprijed i 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 jedno dugme (Btn 0 ili 1), koje će pogoditi loptu na oba kraja; i druga verzija, namijenjena je za dvije osobe, jedna za drugu, koja zahtijeva dva dugmeta; dugme 1 na lijevoj strani i dugme 4 ili 0 sa druge strane. Poželjna je upotreba dugmadi 1 i 4 jer neće međusobno ometati; svaki se može pogoditi da vrati loptu sa svog kraja bez obzira na stanje drugog dugmeta.

Pobednik nadigravanja je uvek server za sledeći.

3. igra: Galerija streljaštva

Pucajte u sve mete (svjetla) da biste dovršili razinu. Na svakom višem nivou akcija je brža.

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

U prvoj verziji prizor počinje s lijeve (donje) strane 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 postoje i objekti iznad glave ispod kojih se morate sagnuti.

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

U verziji 2 dodaju se objekti iznad glave (trepereći). Oni se preskaču 'skakanjem tokom ćelije prije nje i oslobađanjem dok je u krajnjoj ć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 zasebno dugme 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 nivou; tu je audio i vizualna čestitka, zatim nastavak većom brzinom. Dobijanje skupa uzastopnih objekata računa se isto kao i jedan pojedinačni objekt.

Savetujem vam da odštampate pravila rada igara i ponovo ih pročitate pre nego što počnete da igrate igru koju niste nedavno igrali. U suprotnom, možete se frustrirati; misleći da igra ne funkcionira ispravno iako 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 štampanu futrolu za konzolu u kojoj se nalaze In-Line LED merdevine i tasteri.

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. februar 2017: Evo najnovije igre za ovaj projekat, sada sa 16 igara (skica ispod). Ovo će se izvoditi na bilo kojoj MCU implementaciji sa 32KBytes 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 "Le Mans" trke, "Spray" takmičenje u slikanju prskanjem.

Većim i raznovrsnijim igranjem ovih igara moguće je poboljšanje njihovih sposobnosti igre, uživanje za sve nivoe igrača. Mislim da postoji mnogo prostora za poboljšanje u trkama u Le Mansu kroz dizajn staze i raspored utakmica.

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 u jednoj liniji mogu promijeniti za 2 reda 2x16 LCD ekrana, s jednom linijom objekata za igru, 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 dobiti. Stoga, ako je netko motiviran za usvajanje i optimizaciju ovih igara 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 konzola za igru i napajanje vašeg prijenosnog MCU projekta

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

Utakmica u grupama: 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 na upravljačkoj ploči, u igri glava-glava (grupa 2).

13. decembar 2017.: Poboljšano rukovanje odbijanjem dugmeta i namještanjem mjerenja, riješeni su manji problemi. Pokušao sam koristiti kondenzator na analognoj ulaznoj liniji tipke, ali da bi bio učinkovit, to je rezultiralo sporim taloženjem mjerenja koje proizvodi lažne identifikacije nivoa ili softver koji čeka toliko dugo ta brza radnja igre bila je ugrožena.

Travanj 2018: Otkrio sam da kompresijske spojnice od 5/8 čine izvrsna tijela za vanjske tipke s klipom. Kako moja djeca vole koristiti par njih, dodao sam pinove zaglavlja kako bih ih lako spojio (kao Btn1 i Btn4).

Imajte na umu da sam prošlog listopada stvorio još jedan projekt koji je izgrađen na hardveru ovog instruktora. U duhu je Noći vještica i može biti jako zabavno, posebno za djecu. Upute: Uređaji pod uticajem sablasne psihe

Preporučuje se: