Sisukord:

In-Line LED-ekraan Arduino mängud: 7 sammu (piltidega)
In-Line LED-ekraan Arduino mängud: 7 sammu (piltidega)

Video: In-Line LED-ekraan Arduino mängud: 7 sammu (piltidega)

Video: In-Line LED-ekraan Arduino mängud: 7 sammu (piltidega)
Video: Начало работы с QLC+ Управление цветомузыкой с компьютера. Как управлять светом. 2024, Juuli
Anonim
Image
Image
Peamised komponendid
Peamised komponendid

teise nimega LED -redeli ekraanimängusüsteem.

Attiny-85, mis on varustatud riistvara ja tarkvaraga, et mängida põnevil "videomänge" reaalajas LED-ekraanil.

Sellel on multipleksitud 12 LED -redeliekraan ja see toetab kuni 6 nupuvajutust ja valikulist heliväljundit.

See on pakitud nelja oskusmänguga, millel on mitu raskusastet ja mõned variatsioonid (värskendatud 16 mänguks, kui seda kasutatakse koos ATMega MCU -ga).

[Video]

Samm: peamised komponendid

Ehitasin oma projekti modulaarselt (kaks eraldi sõlme). Peamine ekraani alamkomplekt; mida saab iseseisvalt kasutada. Ja nupu sisendi alamkomplekt. Nii saan nuppu või ekraanikomplekti teises projektis uuesti kasutada. See võimaldab ka paindlikke paigaldusvõimalusi.

Samuti tõin juhtjoone välja LED-redeli kokkupaneku tihvtipeale, et saaksin kasutada Arduino Nano (või Uno), arendada selle jaoks tarkvara ja kasutada seda ka teistes projektides. Digipark ei tööta teiste trükkplaadi komponentide tõttu.

Valisin kasutada LED -redelil samu tihvtide määramisi nagu varasemates juhistes, et hõlbustada neil, kellel juba on selline riistvara, selle juhendi tarkvara kasutada, kuigi ma ei leidnud ülesannetest selgeima loogika järgi tarkvara.

Kaks moodulite vahelist joont on PB4 ja maandatud. Kuna kõik, mis on mitme nupuga koos, on takistid ja lülitid, pole see polaarsusest sõltuv ja ühenduse tagasipööramine ei oma tähtsust.

Rohkemate nuppude toel saab rakendada suuremat valikut mänge (või rakendusi). Selle juhendi kaks mängu on kõige parem mängida kahe nupuga. Neli peamist nuppu saab kasutada seotud mängule otse juurdepääsuks. Varsti rakendan mängu, mis sõltub kõigi nelja põhinupu kasutamisest.

See projekt kasutab kuni kuut nuppu. Neli peamist nuppu BTN 1-4, neid nuppe saab individuaalselt tuvastada isegi siis, kui mõnda neist korraga vajutatakse. Ülejäänud kaks on spetsiaalsed nupud, esiteks on varasemates projektides ühe nupuga samaväärne, mis loob tugeva ühenduse PB4 sisendi ja maa vahel, ma nimetan seda BTN0 või ESC, kuna seda lülitit saab alati tuvastada ja see blokeerib tuvastamise ühestki teisest. Teine eriklahv on funktsiooniklahv. Kui vajutada klahvi BTN 0-4, saab seda tunda ja kasutada funktsionaalsuse muutmiseks.

Selles oskusmängu visandis kasutan:

  • FncKey+Btn1 naasevad menüürežiimi
  • FncKey+Btn2 edasine raskusaste (kõrgeimal juhul minge tagasi madalaimale)
  • FncKey+Btn4 vahetu paus (peatamise tühistamiseks vajutage suvalist klahvi)
  • FncKey + Btn 0 või 3 on määratlemata.

Samm: osade loend

Osade nimekiri
Osade nimekiri

Nõutavad osad

  • LEDid, punased, kollased, rohelised ja sinised nagu need
  • PCB -plaate saab sarnaste esemetega osta, kui vajate suuremat plaati ja lõigake see soovitud suuruseks.
  • pin dip pistikupesa sarnased esemed
  • Kiip Attiny-85
  • takistid
  • kasutatud nupulülitid: 12x12x8mm ja 6x6x6mm PCB hetkelised kombatavad nupud

soovitatav:

  • sumin 5v, aktiivne tüüp
  • a Popsicle stick
  • 2,54 mm tihvtiga päisriba
  • 30-ga traat ja traatmähise tööriist Ma soovin, et ma teaksin sellist tehingut tõelise 30 ga jaoks. traat

3. samm: ehituse esiletõstmine

Ehituse tipphetked
Ehituse tipphetked
Ehituse tipphetked
Ehituse tipphetked
Ehituse tipphetked
Ehituse tipphetked
Ehituse tipphetked
Ehituse tipphetked

Põhiplaadi koostel on mul elektriliselt sama, mis teistel varasematel LED-redeliprojektidel, mida võiksite vaadata täiendavate põhiliste ehitusjuhiste kohta

Kuid ma ei kasuta analoogsisendil A2 (PB4) välist tõmbetakistit, samuti kasutan ühe värvi asemel punaseid, kollaseid, rohelisi ja siniseid LED -e, mis on soovitav mõne selle riistvara jaoks loodud mängu jaoks.

Siin on I/O ülesanded, nagu lisatud tarkvara visandid eeldavad:

Projekt MCU AT-85 Uno/Nano

Nimed nime tihvt# brd nimi --------- ---- ---- --------- Punane L1-3 PB3 2 D-11 Yel L4-6 PB0 5 D-8 Roheline L7-9 PB1 6 D-9 Sinine L10-11 PB2 7 D-10 Ain PB4/A2 3 A-2 Audio PB5 1 D-3

Üks oluline erinevus on see, et mul on PB4 -ga ühendatud kaks nuppu. Esimene läheb otse PB4 -lt maapinnale, kuid ilma välise tõmbetakistita (ma nimetan seda BTN0 -ks). Mul on ka nuppude lüliti (mida ma nimetan BTN1 -ks), mis on ühendatud 75Kohmiga jadamisi maandusega. Seda põhiplaati saab kasutada ilma monteerimisplaadita "Button", kuid mõnevõrra piiratud funktsionaalsusega.

Valgusdioodide komplektidesse minevad praegused piiravad takistid tuleks valida erinevate kasutatavate värvivalgusdioodide heleduse ja nende heleduse alusel. Lõpuks sain punase komplekti jaoks 91 oomi, 75 kollast, 430 rohelist ja 150 oomi sinise puhul. Need väärtused võivad tunduda madalad, kuid pidage meeles, et LED -id on multipleksitud (tavaliselt <100% ajast)

Kasutasin 3 mm LED -e ja hoidsin neid natuke üksteisest eemal. Mul olid LED -i jalad Popsicle pulgaga. Nii püstitasid nad kõik sama palju ja ennekõike teisi komponente. Kavatsen mingil hetkel seadme paigaldada ainult läbi raami väljaulatuvate LED -idega.

Valisin led-ühenduste ühendamise traadiga. Ilma spetsiaalse trükkplaadita on seda lihtsam teha kui jootmist kitsastes kohtades, kus on palju ühendusi; ei kipu lühikesi pükse tootma ja on vea korral kergem ümber juhtida. Kõigi vooludega milliamperites olevas mikrokontrolleris ja selle ümber piisab 30 ga juhtmest.

Nupud ja nendega seotud takistid:

Mõtlesin välja takistite ja nuppude ainulaadse konfiguratsiooni (omamoodi topelt Y), nii et tarkvara saaks eristada üksikuid ja kahekordseid nupuvajutusi (teoreetiliselt saab tuvastada nende nelja nupu mis tahes kombinatsiooni). Proovisin arvutustabelis mitut konfiguratsiooni paljude resisterväärtustega, otsides parimat konfiguratsiooni, seejärel simuleerisin neid tarkvaras, kus see proovis kõiki võimalikke takistuskombinatsioone, et leida komplekt (mida ma kasutan), mis annaks maksimaalse minimaalse erinevuse analoognäidud ühe ja kahe nupuvajutuse vahel. Ma paigutasin need nii, et Btn1, Btn4 ja Btn1+4 olid eriti erinevad.

Vaadake ülaltoodud nuppude võrgu skeemi.

Peate katma kõik juhtmed, mis ühenduvad PB4-ga (ja võib-olla lüliti kontaktid ja takistid), elektrilindi, kuuma liimi või millegi muuga, mis üldse ei tööta, sest pelgalt mega-oomi takistus kaotab võimaluse määrake, milliseid lüliteid vajutatakse; ja kõik sellised kokkupaneku ajal hoitavad kontaktid teeksid seda.

Hiljem seotud juhendid:

4-nupumängud-ühe-analoogsisendi kasutamine/

Kahekordne toide teie kaasaskantava mikrokontrolleri jaoks Proj/

3D-prinditud ümbris-in-line-LED-ekraan-konsool ja/

Samm: täiendavad valikud ja märkused

Täiendavad valikud ja märkused
Täiendavad valikud ja märkused

Valikuline heliväljund

Valikuline heliväljund kasutab PB5. Ma ühendasin 5 -voldise sumiseja järjestikku 150 -oomise takistiga, et piirata selle muidu valju tüütu väljundit. Soovitan kasutada 50-200 oomi. Summurit võiks paralleelseks muuta korgiga (2–10 uf), et muuta see vähem rabedaks, või kasutada takisti ja helisignaali asemel 10 mm draiveriga 32-oomilist kõlarit, mis on välja lõigatud odavate stereokõrvaklappide komplektist. Mulle meeldib see mängude kõlade osas paremini, nagu mul on.

Vaikimisi kasutab Attiny-85 lähtestamisel PB5-d, mis tähendab, et heli töötab, kuid see ei mõjuta halvasti ühtegi muud toimingut. Nano või Uno kasutamisel töötab heli (tuleb välja D3). Heli saamiseks Attiny abil peate muutma sisemise tihvti konfiguratsiooni, et tarkvara saaks väljundina kasutada PB5. Sellega kaasneb märkimisväärne tagajärg; palun vaadake neid:

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

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

ja

Üldiselt kutsub mängu ajal viga või ebaõnnestumine esile piiksumise või lühikese vaarikaheli. Taseme või võidu korral mängitakse õnnitlusviisi, näiteks lauatennises. Ma leian, et kaasasoleva heli olemasolu suurendab tõesti mängurõõmu.

Alternatiivsed mängukontrolleri tüüpi nupud

Oma laste jaoks, kes on seadmetes karmid, tegin pikkade juhtmete otsa vastupidavad eraldi nupud Btn1 ja Btn4. Vaata fotot. Paigaldasin nupud make-sift käepidemetesse; 75Kohm inline koos Btn1 ja ~ 37Km inline koos Btn4. Seerias Btn4 kasutasin tegelikult 36K, 33K või isegi 39K. Kui väliseid kolbnuppe silmas pidada, oleks hea mõte omada eraldi päisekinnituste komplekti väliste käeshoitavate nuppude Btn1 ja Btn4 ühendamiseks.

Vajalik kvaliteetne toiteallikas

Toiteallika jaoks saate otse kasutada arvuti, tahvelarvuti, laadija, toitepanga või 3,7-liitrise aku USB 5v väljundit.

Leidsin, et seadme sisselülitamisel mõnest USB-laadijast ja mitmest USB-toitepangast märkasin vilkumist ja aeg-ajalt puudulikku käitumist ning isegi lähtestamist. Kui te seda kogete, leidke parema reguleerimisega toiteallikas, vastasel juhul võib aidata suure (100–1000uf) kondensaatori lisamine +V maapinnale.

Testimine

Olen lisanud ka testprogrammi, mis aitab teie riistvara valideerida ja siluda. Kood on pooleli ja vajab puhastamist. Ma loodan, et jõuan selleni, kuid samal ajal peaks see teie vajadusi teenima. Olen seda hiljuti kasutanud ainult koos Nanoga, mis juhib ekraani ja klaviatuuri. Menüürežiimist üksuste valimiseks saate kasutada peaaegu kõiki nuppe. Demost/testist uuesti väljumiseks vajutage peaaegu mis tahes nuppu. Nuputestist (#4) väljumiseks vajutage klahve FncKey+Btn1 või hoidke all EscKey (maandus PB4) või taaskasutage toiteallikat.

MCU sisetakistuste ja takistite tolerantside erinevuste tõttu peate võib -olla tegema mõningaid kohandusi, et kõik ühe- ja kahe nupuvajutused oleksid õigesti tuvastatud. Selleks kasutage testiprogrammi testi-4 (selle valimiseks vaadake allolevat menüütoimingu kirjeldust). Pange tähele, et ma ei kasutanud välist tõmbetakistit, kuna mul on PB4 sisendi jaoks hööveldatud kasutusviise, mis ei sobi kokku tõmbamisega.

Samm 5: Tarkvara ülevaade

Visand LadderGames.ino rakendab nelja mängu, sealhulgas mõningaid alternatiivseid versioone.

Eskiisi saab alla laadida ja käivitada ATtiny-85, Nano, Uno jt. Selle programmeerimiseks Attiny kiibiks vt: https://www.instructables.com/id/Program-an-ATtiny… ja/või programmeerimiseks teie ATtiny-85 kiip:

Muutke ATtiny85 sisemine kell 8MHz -le, kuna mängimiseks on soovitud jõudlus. Vaadake:

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

See visand peaks olema tagurpidi ühilduv enamiku varasemate ATtiny-85 juhitud redeliprojektidega ilma muudatusteta, kuid sellel peab olema piiratud funktsionaalsus.

Menüü toimimine

Käivitamisel on tervisekontroll, mis hõlmab LED -ide pühkimist ja piiksude komplekti. Seejärel läheb see peamenüü režiimi. Kõik ühevärvilised LED -id põlevad paariks sekundiks järjest. Mäng valitakse nupule vajutades, kui sellega seotud komplekt on valgustatud, mäng 1: punane, mäng 2: kollane, mäng 3: roheline, mäng 4: sinine. Menüürežiimis saab Btn2, Btn3, Btn4 vajutada, et minna otse vastavalt mängudele 2, 3, 4. Kui mäng on valitud, peate märkima soovitud variatsiooni. Iga saadaoleva variandi korral vilgub komplekt värvilisi LED -e. Vajutage lihtsalt soovitud nupule. Allpool kirjeldatakse iga mängu variatsioone, versioone.

Versiooni üks kõigist neljast mängust saab mängida ühe nupuga. Kas üks juhtmestik PB4 ja maa (Btn-0) vahel, nagu varasemates LED-redelite juhendites, või lülitiga, mis ühendab 75k koormuse maapinnaga (Btn-1). Mõlemad neist toimivad mängudes, kui juhised räägivad mittespetsiifilisest nupuvajutusest.

Igast mängust väljumiseks võite kasutada klahve FncKey+Btn1, hoidke EscKey (aka Btn0) 1-2 sekundit all või lülitage toide sisse.

6. samm: mängu mängimine

Mäng 1: Push-It

See on minu "Push-It" mängu mugandus ühest minu varasemast juhendatavast

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

Mängu eesmärk on tõsta vilkumiste arv ja põlevate valgusdioodide arv nii paljude kui võimalik. Push-It algab mitmete välkudega, mis seejärel korduvad. Kui vajutate nuppu pärast seeria viimast välklampi ja kui mõni täiendav välklamp on potentsiaalselt olemas, süttib järgmine LED ja välkude arv suureneb ühe võrra. Kuid kui vajutate enne või pärast võimaliku lisavälgu ajavahemikku, vähendatakse komplekti välkude arvu.

Iga kord, kui teil õnnestub välkude arvu suurendada, suureneb raskusaste, kuna ajastus pisut kiireneb, mistõttu on välkude arvu suurendamine üha raskem.

Praegune loendusnumber salvestatakse EEPROM -i mällu, et hiljem uuesti samal tasemel uuesti käivitada.

Mäng 2: pingpong

Suurepärane (kuigi ainus) kahe mängijaga võistlusmäng; kus pall (üks valguse löök) läheb ühelt küljelt teisele kiiremini ja kiiremini, iga kord, kui see "lööb" tagasi.

Esmakordselt rakendasin selle ühe tulede rea mängu lennundus-super-mini-arvuti esipaneeli nupp-tuledes 1970ndatel.

Palli edasi -tagasi löömiseks peab sobiv mõla lööma (nuppu vajutatud), kui see on lõppasendis (viimane LED). Esimene pool, kes vahele jätab, kaotab ja võidupoole tuled vilguvad.

On kaks varianti, millest üks nõuab ainult ühte nuppu (Btn 0 või 1), mis tabab palli mõlemas otsas; ja teine versioon on mõeldud kahele inimesele pea pea, mille jaoks on vaja kahte nuppu; nupp 1 vasakul küljel ja nupp 4 või 0 teisel. Eelistatud on nuppude 1 ja 4 kasutamine, kuna need ei sega üksteist; igaüks saab lüüa, et pall oma otsast tagasi viia, olenemata teise nupu olekust.

Ralli võitja on alati järgmise server.

Mäng 3: lasketiir

Tulistage taseme saavutamiseks kõik sihtmärgid (tuled). Igal kõrgemal tasemel on toiming kiirem.

On kaks versiooni; üks, kus sait on fikseeritud ja sihtmärgid liiguvad, ja teine, kus sait liigub ja sihtmärgid on paigal. Igal juhul lööb tabamus välja sihtmärgi; ja miss põhjustab hüpikmärgi. Kui sihtmärk on vaateväljas, süttib sihik heledamalt, vastasel juhul on see hämar.

Esimeses versioonis algab vaatepilt vasakult (alt) ja skaneerib paremale. Versioonis 2 on sihik fikseeritud keskel, samal ajal kui sihtmärk liigub paremalt vasakule. Koodi vaadates on olemas kummituslikud versioonid 3 ja 4, mida saab aktiveerida, kuid panete oma heaolu enda ohtu.

Mäng 4: JumpMan

Idee on selles, et jooksete läbi mängutaseme, kus tulevad objektid, millest peate üle hüppama, kui nad edenevad, tulevad nad kiiremini. Teises mänguvariandis on ka pea kohal olevaid esemeid, mille all peate pingutama.

Esimeses versioonis on ainult objektid, millest üle hüpata. Hüppamiseks peate vajutama nuppu, kui objekt jõuab vasakule viimase lahtrini; mis helendab, kui see juhtub. Kahe või enama järjestikuse objekti hüppamiseks peate esimesele hüppama (vajutama) ja ülejäänud jaoks nuppu all hoidma.

Versioonis 2 lisatakse üle pea (vilkuvad) objektid. Neid hüppatakse hüpates raku ajal enne seda ja vabastatakse, kui see on lõpprakus. Korraga võib vilkuda ainult üks õhuliin, nii et kui üks neist on möödas, näete teist (mitte enne vilkuvat) teie peal. Kunagi ei teki järjestikku üldkulusid, kuid need võivad asuda ühe või mitme hüppeobjekti (rändrahnu tüüpi) kõrval.

Mängu versioonis 3 peate jõudma üldkasutatavate objektide jaoks eraldi nupule (Btn-2, 4 või 0); hüppamiseks on vaja Btn-1.

Kui olete suutnud ületada neli objekti (d) rohkem, kui ebaõnnestusite, jõuate tasemele edasi; on heli- ja visuaalsed õnnitlused, seejärel jätkatakse suurema kiirusega. Järjestikuste objektide komplektiga arvestamine loeb sama kui üksik objekt.

Soovitan teil umbes mängu mängureeglid välja printida ja need uuesti läbi lugeda enne, kui mängite mängu, mida te pole hiljuti mänginud. Vastasel juhul võite end pettuda; mõeldes, et mäng ei tööta korralikult, kuigi see on tõsi, kuid teil ja mängul on erinevad viisid ja ootused. Ma ise olen selle peale sattunud rohkem kui paar korda.

Samm: värskendused, rohkem mänge

Image
Image

Tegin 3D-trükitud konsooliümbrise, et paigutada LED-redeli ekraan ja nupud.

Olen välja töötanud rohkem mänge, mis seda riistvara kasutavad. Vaadake neid ja nautige:

Uued mängud „Whack a Mole” ja „Tug of War”

Detsember 2016. Nüüd on ülaltoodud lingi lõpus koodi ühtne versioon, mis sisaldab kõiki 12 mängu.

17. veebruar 2017: Siin on selle projekti viimane mängukomplekt, nüüd 16 mänguga (visand allpool). See töötab mis tahes MCU -rakenduses, mille välkmälu on 32 KB. Kuigi ATtiny -sse saab panna ühe kuni kolm või neli mängu 16 -st. Soovitan kasutada Nano 3 arduinosid. Viimased 4 lisatud mängu on "Le Mans" võidusõit, "Spray" pea -peaga pihustatav värvimisvõistlus.

Nende mängude suuremal ja mitmekesisemal mängimisel on nende mänguvõimalused täiustatud, mis on võimalik kõigi tasemega mängijatele. Arvan, et Le Mansi võidusõidul on palju arenguruumi raja kujunduse ja mängu ajastamise kaudu.

Mul on kirjalikult veel umbes 10 tegevust/mängu/funktsiooni, millest mõned loodan kättesaadavaks teha umbes 2017. aasta sügisel.

Ka neid ühe rea mänge saab muuta kaherealise 2x16 LCD -ekraani jaoks, kusjuures üks rida mänguobjekte ja teine teksti jaoks. Olen seda vähe teinud, kuid kuna mul on projektide toetus nii palju kui võimalik, ei tea ma, millal ja kas ma saaksin sellest osa saada. Nii et kui keegi on motiveeritud neid mänge 2x16 LCD jaoks kasutama ja optimeerima, siis jagage seda minu ja teistega.

Lisaks neljale uuele mängule siin Menu_16Games.ino, olen lisanud oma projekti ja loonud sellega seotud juhendid: LED -mängukonsooli korpus ja toiteallikas teie kaasaskantavasse MCU -projekti

Loodan, et paljud võtavad aega ja… NAUDI neid mänge.

Grupimäng: 1– punane 2- kollane 3- roheline 4- sinine

1 punane PushIt PingPong ShootEmUp JumpMan 2 Yel QuickDraw Tug_a_War Chicken Hot_Hands 3 Grn Le_Mans Spray PIG BiFunc 4 Blu SimonSays Whack_Mole Sea_Hunt Flip_d

2. september 2017: täiustatud töövõime vanade räpaste mürarikaste väliste juhtkangi nuppudega pea-pea mängus (rühm 2).

13. detsember 2017: nuppude põrkumise ja mõõtmiste lahendamise täiustatud käsitsemine, parandatud väiksemad probleemid. Olin proovinud nupu analoogsisendil kasutada kondensaatorit, kuid tulemuslikkuse tõttu põhjustas see aeglase mõõtmise, mis tekitas vale taseme tuvastamise või tarkvara nii kaua ootamist et kiire mängutegevus oli ohus.

Aprill 2018: leidsin, et 5/8 tihendusliitmikud on suurepärased korvid väliste kolvi stiilis nuppude jaoks. Kuna mu lastele meeldib paari neist kasutada, lisasin päisepoldid, et hõlpsasti kahte neist ühendada (nagu Btn1 ja Btn4).

Pange tähele, et lõin eelmise aasta oktoobris teise projekti, mis põhineb selle juhendatava riistvaral. See on Halloweeni vaimus ja võib olla väga lõbus, eriti lastele. Juhendatav: kummituslikud psüühika mõjutatud seadmed

Soovitan: