Tartalomjegyzék:

Soros LED kijelző Arduino játékok: 7 lépés (képekkel)
Soros LED kijelző Arduino játékok: 7 lépés (képekkel)

Videó: Soros LED kijelző Arduino játékok: 7 lépés (képekkel)

Videó: Soros LED kijelző Arduino játékok: 7 lépés (képekkel)
Videó: uc/IoT Kurzus 6 : ADC Analóg-Digitális Átalakítás 2/2 rész 2024, November
Anonim
Image
Image
Főbb komponensek
Főbb komponensek

más néven LED létra kijelző játékrendszer.

Egy Attiny-85, amely hardverrel és szoftverrel van felszerelve, hogy akciódús "videojátékokat" játsszon egy soros LED kijelzőn.

Multiplex 12 LED -es létra kijelzővel rendelkezik, és támogatja a 6 gombos bemenetet és az opcionális hangkimenetet.

4 ügyességi játékkal van ellátva, több nehézségi szinttel és néhány variációval (16 játékra frissítve, ha ATMega MCU -val használják).

[Videó]

1. lépés: Főbb összetevők

Modulárisan építettem fel a projektemet (két külön szerelvény). A kijelző fő részegysége; amely önmagában is használható. És egy Button bemeneti alszerelvény. Így újra használhatom a gombot vagy a kijelzőegységet egy másik projektben. Ez rugalmas szerelési lehetőségeket is lehetővé tesz.

A vezérlővonalat a LED-létraszerelvény tűcsapjához is kihoztam, hogy használhassak egy Arduino Nano-t (vagy Uno-t), hogy szoftvert készítsek hozzá, és használhassam más projektekben. A Digispark nem fog működni az áramköri lap többi összetevője miatt.

Úgy döntöttem, hogy ugyanazokat a pin -hozzárendeléseket használom a LED -es létrákhoz, mint a korábbi utasításokban, hogy megkönnyítsem azoknak, akik már rendelkeznek ilyen hardver -implementációval, hogy használják az ebben az utasításban szereplő szoftvert, annak ellenére, hogy nem találtam a hozzárendeléseket a legtisztább logika érdekében. a szoftver.

A két vonal a modulok között PB4 és földelt. Mivel a többgombos szerelvényen csak ellenállások és kapcsolók vannak, ez nem függ a polaritástól, és a kapcsolat megfordítása nem számít.

Több gomb támogatásával többféle játék (vagy alkalmazás) valósítható meg. Ennek az utasításnak a két játékát a legjobb két gombbal játszani. A négy fő gombbal közvetlenül elérheti a kapcsolódó játékot. Hamarosan megvalósítok egy játékot, amely mind a négy fő gomb használatától függ.

Ez a projekt legfeljebb hat gombot használ. Négy fő BTN 1-4, Ezek a gombok külön-külön is észlelhetők, még akkor is, ha bármelyiket egyszerre lenyomják. A másik kettő speciális gomb, először a korábbi projektek egyetlen gombjának megfelelője, amely kemény kapcsolatot teremt a PB4 bemenet és a föld között, ezt BTN0 -nak hívom, vagy ESC -nek, mivel ez a kapcsoló mindig észlelhető, és blokkolja az észlelést a többiek közül. A másik speciális gomb a Funkciógomb, ha megnyomja a BTN 0-4 megnyomásakor, akkor érzékelhető és használható a funkció megváltoztatására.

Ebben az ügyességi játék vázlatában használom:

  • FncKey+Btn1 visszatér menü módba
  • FncKey+Btn2 előrehaladási nehézségi szint (ha a legmagasabb, menjen vissza a legalacsonyabbra)
  • FncKey+Btn4 azonnali szünet (nyomja meg bármelyik gombot a szüneteltetés megszüntetéséhez)
  • Az FncKey + Btn 0 vagy 3 nincs meghatározva.

2. lépés: Alkatrészlista

Alkatrész lista
Alkatrész lista

Szükséges alkatrészek

  • LED -ek, piros, sárga, zöld és kék, mint ezek
  • NYÁK lapok hasonló elemek lehet, hogy nagyobb táblát kell vásárolnia, és a kívánt méretre kell vágnia.
  • tűs merítő aljzat hasonló elemek
  • Attiny-85 chip
  • ellenállások
  • használt gombkapcsolók: 12x12x8mm és 6x6x6mm PCB pillanatnyi tapintható nyomógombok

ajánlott:

  • zümmögő 5v, aktív típus
  • egy Popsicle bot
  • 2,54 mm -es tűs fejléc
  • 30 g-os huzal és dróttekercselő szerszám Bárcsak tudnék egy ilyen üzletről az igazi 30 ga -ra. huzal

3. lépés: Az építés legfontosabb elemei

Építési kiemelések
Építési kiemelések
Építési kiemelések
Építési kiemelések
Építési kiemelések
Építési kiemelések
Építési kiemelések
Építési kiemelések

Az alaplap szerelésénél elektromosan ugyanaz van, mint más korábbi LED-es létrafelszereléseknél, amelyeket érdemes megnézni a további alapvető építési irányokért

Azonban nem használok külső felhúzó ellenállást az A2 (PB4) analóg bemeneten, de vörös, sárga, zöld és kék LED -eket is használok az összes szín helyett, ami kívánatos a játékokhoz, amelyeket ehhez a hardverhez készítettem.

Íme az I/O hozzárendelések, ahogyan azt a mellékelt szoftvervázlatok elvárják:

MCU AT-85 Uno/Nano projekt

Nevek neve pin# brd név --------- ---- ---- --------- Piros L1-3 PB3 2 D-11 Yel L4-6 PB0 5 D-8 Zöld L7-9 PB1 6 D-9 Kék L10-11 PB2 7 D-10 Ain PB4/A2 3 A-2 Audio PB5 1 D-3

Az egyetlen jelentős különbség az, hogy két gombom van a PB4 -hez csatlakoztatva. Az első közvetlenül a PB4 -ről a földre megy, de nincs külső felhúzó ellenállás (ezt BTN0 -nak hívom). Van egy gombkapcsolóm is (amit BTN1 -nek hívok), egy 75Kohm -mal sorban a földhöz csatlakoztatva. Ez az alaplap a "Button" szerelőlap nélkül is használható, de korlátozott funkcionalitással.

A LED -készletekhez tartozó áramkorlátozó ellenállásokat a különböző színű LED -ek fényereje és az általuk kívánt fényerő alapján kell kiválasztani. Végül 91 ohm lett a piros készlet, 75 sárga, 430 zöld és 150 ohm a kék. Ezek az értékek alacsonynak tűnhetnek, de ne feledje, hogy a LED -ek multiplexeltek (általában az idő <100% -ában)

3 mm -es LED -eket használtam, és egy kicsit elkülönítettem őket. A LED -ek lába egy Popsicle bot volt. Így mindannyian ugyanannyit és mindenekelőtt más összetevőt álltak fel. Szándékomban áll valamikor felszerelni az egységet úgy, hogy a LED -ek csak egy kereten keresztül nyúlnak ki.

Úgy döntöttem, hogy a LED-es összeköttetéseket huzalba csomagolom. Speciális nyomtatott áramkör nélkül ezt könnyebb megtenni, mint a forrasztást szűk helyeken, sok összekapcsolással; nem hajlamos rövidnadrágot gyártani, és hiba esetén könnyebben átköthető. A milliamperes mikrovezérlőben és körülötte lévő összes áram mellett elegendő a 30 ga vezeték.

Gombok és kapcsolódó ellenállások:

Kidolgoztam az ellenállások és gombok egyedi konfigurációját (mintegy dupla Y), hogy a szoftver felismerhesse az egyes és a kettős gombnyomásokat (elméletileg e négy gomb bármely kombinációja azonosítható). Több konfigurációt is kipróbáltam sokféle ellenállási értékkel egy táblázatban, a legjobb konfigurációt keresve, majd azokat szoftverben szimuláltam, és kipróbáltam az összes lehetséges ellenálló kombinációt, hogy megtaláljam azt a készletet (amit használok), amely a lehető legkisebb különbséget eredményezi analóg leolvasások bármely és minden egyszeri és dupla gombnyomás között. Úgy rendeztem el őket, hogy a Btn1, a Btn4 és a Btn1+4 különösen elkülönüljenek.

Lásd a fenti gombhálózati diagramot.

Minden kábelt, amely a PB4-hez csatlakozik (és esetleg kapcsoló érintkezőket és ellenállásokat), elektromos szalaggal, forró ragasztóval vagy valami mással kell lefednie, amely egyáltalán nem vezet, mivel a pusztán megaohmos ellenállás elveszíti a képességet határozza meg, hogy melyik kapcsolót / gombokat nyomja meg; és minden ilyen kapcsolat, amelyet a szerelvény tartása közben hoz létre, ezt tenné.

Később kapcsolódó Instructables:

4-gombos játékok-egy-analóg bemenet használata/

Kettős tápellátás a hordozható mikrovezérlőhöz Proj/

3D-nyomtatott tok-in-line-LED-kijelző-konzol és/

4. lépés: További lehetőségek és megjegyzések

További lehetőségek és megjegyzések
További lehetőségek és megjegyzések

Opcionális audió kimenet

Az opcionális hangkimenet PB5 -öt használ. Csatlakoztattam egy 5 V -os hangjelzőt, sorban 150 Ohmos ellenállással, hogy korlátozzam az egyébként hangos idegesítő kimenetét. Javaslom az 50-200 Ohm használatát. A zümmögőt párhuzamba állíthatjuk egy kupakkal (2-10uf), hogy kevésbé legyen reszelős, vagy használhatunk 10 mm-es 32 Ohmos hangszórót, amely olcsó sztereó fülbimbókból lett kitörve, az ellenállás és a hangjelző helyett. Tetszik, a játék hangjaihoz képest jobban, ahogy van.

Alapértelmezés szerint az Attiny-85 a PB5-öt használja alaphelyzetbe állításként, ami azt jelenti, hogy a hang működne, de nem lesz rossz hatása más műveletekre. Nano vagy Uno használatakor az audió működni fog (jön ki a D3). Ahhoz, hogy hangot kapjon az Attiny segítségével, módosítania kell a belső pin konfigurációt, hogy a szoftver a PB5 -öt használhassa kimenetként. Ennek jelentős következményei vannak; kérjük, hivatkozzon ezekre:

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

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

és

Általában játék közben a hiba vagy kudarc csipogást vagy rövid málnahangot vált ki. Gratuláló dallam szólal meg, amikor befejez egy szintet vagy nyer, például a ping-pongnál. Azt tapasztalom, hogy a kísérő hangzás valóban növeli a játék örömét.

Alternatív játékvezérlő típusú gombok

Az unokáimnak, akik durvaak a felszerelésben, tartós, külön gombokat, Btn1 és Btn4 készítettem a hosszú vezetékek végére. Lásd a fotót. A gombokat make-sift markolatokba szereltem; 75Kohm soros Btn1 és ~ 37Kohm inline Btn4 esetén. A Btn4 -gyel sorozatban valójában 36K -t, 33K -t vagy akár 39K -t használtam. A külső dugattyúgombokat szem előtt tartva jó ötlet lenne külön fejléc-készlet, a Btn1 és Btn4 külső kézi gombok csatlakoztatásához.

Minőségi tápegység szükséges

Áramforrásként közvetlenül használhatja a számítógép, táblagép, fali töltő, tápegység vagy 3,7 literes akkumulátor USB 5 V-os kimenetét.

Azt tapasztaltam, hogy amikor a készüléket néhány USB töltőről és több USB tápegységről tápláljuk, észrevettem a villódzást és az alkalmi hibás viselkedést, sőt visszaállítom. Ha ezt tapasztalja, találjon jobb szabályozású áramforrást, különben nagy (100-1000uf) kondenzátor hozzáadása a +V-hez a földhöz segíthet.

Tesztelés

Mellékeltem egy tesztprogramot is a hardver érvényesítéséhez és hibakereséséhez. A kód egy folyamatban lévő munka, és nagy tisztításra szorul. Remélem, hogy elérem ezt, de közben azt kell szolgálnia az Ön igényeinek. Nemrég csak a kijelzőt és a billentyűzetet vezérlő Nano -val használtam. A legtöbb gomb segítségével kiválaszthat elemeket a menü módból. A demóból/tesztből való kilépéshez nyomja meg a legtöbb gombot. A gombvizsgálatból való kilépéshez (#4) nyomja meg az FncKey+Btn1 billentyűt, vagy tartsa lenyomva az EscKey gombot (földelő PB4), vagy újrahasznosítsa az áramot.

Az MCU belső ellenállások és az ellenállási tűrések eltérései miatt előfordulhat, hogy bizonyos beállításokat kell elvégeznie, hogy minden egy- és kétgombos megnyomást helyesen érzékeljen. Ehhez használja a tesztprogram 4-es tesztjét (ennek kiválasztásához lásd a menü működésének leírását). Ne feledje, hogy nem használtam külső felhúzó ellenállást, mivel a PB4 bemenetre további tervezett felhasználásokat terveztem, amelyek nem kompatibilisek semmilyen felhúzással.

5. lépés: A szoftver áttekintése

A LadderGames.ino vázlata négy játékot valósít meg, beleértve néhány alternatív verziót.

A vázlat letölthető és futtatható egy ATtiny-85, Nano, Uno stb. Eszközről. Attiny chipbe programozásához lásd: https://www.instructables.com/id/Program-an-ATtiny… és/vagy programozni az ATtiny-85 chip:

Változtassa meg az ATtiny85 belső óráját 8 MHz -re, mivel a játék teljesítménye kívánatos. Utal:

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

Ennek a vázlatnak visszafelé kompatibilisnek kell lennie a legtöbb korábbi ATtiny-85 led létraprojekttel, változtatás nélkül, de korlátozott funkcionalitással rendelkezik.

Menü működése

Indításkor állapotfelmérés történik a LED -ek söprésével és hangjelzésekkel. Ezután a főmenü üzemmódba lép. Az egyszínű LED -ek mindegyike pár másodpercig világít egymás után. A játék kiválasztása a gomb megnyomásával történik, miközben a hozzá tartozó készlet világít, 1. játék: piros, 2. játék: sárga, 3. játék: zöld, 4. játék: kék. Menü üzemmódban a Btn2, Btn3, Btn4 gombok megnyomásával közvetlenül a 2., 3., 4. játékra léphet. Miután kiválasztotta a játékot, meg kell adnia a kívánt variációt. Minden rendelkezésre álló változathoz egy sor színes led villog. Egyszerűen nyomja meg a kívánt gombot. Az egyes játékok variációit, „verzióit” az alábbiakban ismertetjük.

A négy játék közül az egyik verzió egyetlen gombbal játszható. Akár a PB4 és a föld között (Btn-0), mint a korábbi LED-es létra utasításokban, vagy egy kapcsolóval, amely egy 75k terhelést csatlakoztat a földhöz (Btn-1). Ezek bármelyike használható a játékokban, ha az utasítások nem specifikus gombnyomásra vonatkoznak.

Bármelyik játékból való kilépéshez használhatja az FncKey+Btn1 billentyűket, tartsa lenyomva az EscKey (más néven: Btn0) gombot 1-2 másodpercig, vagy kapcsolja be a kapcsolót.

6. lépés: Játék

1. játék: Push-It

Ez a "Push-It" játékom adaptációja az egyik korábbi utasításomból

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

A játék célja, hogy a pislogások számát és a világító LED -ek számát a lehető legtöbbre állítsuk. A Push-It számos villanással indul, majd ismétlődik. Ha megnyomja a gombot a sorozat utolsó villanása után, és amikor esetleg egy további villanás is létrejön, a következő LED kigyullad, és a vakuszám eggyel növekszik. De ha a „lenyomja” az esetleges kiegészítő vaku időtartama előtt vagy után, akkor a vaku villanásainak száma csökken.

Minden alkalommal, amikor sikerül növelni a villanások számát, a nehézségi szint növekszik, mivel az időzítés egy kicsit felgyorsul, ami egyre nehezebbé teszi a magasabb vakuszám elérését.

Az aktuális számlálási számot az EEPROM memória tárolja, hogy később ugyanazon a szinten újraindítsa.

2. játék: ping-pong

Nagyszerű (bár az egyetlen) két játékos versenyképes játék itt; ahol a labda (egyetlen fénycsapás) egyre gyorsabban megy egyik oldalról a másikra, minden alkalommal, amikor visszaüt.

Először az 1970-es években valósítottam meg ezt az egysoros fényjátékot egy repülőgép-szuper-mini számítógép előlapi gombjainak fényében.

A labda oda -vissza ütéséhez a megfelelő lapátnak meg kell ütnie (gomb megnyomása), amikor a véghelyzetben van (utolsó LED). Az első fél, aki kimarad, veszít, és a győztes oldalon villognak a fények.

Két variáció létezik, az egyik csak egy gombot igényel (Btn 0 vagy 1), amely mindkét végén eltalálja a labdát; és egy második változat, két személy számára fej -fej, amelyhez két gomb szükséges; gomb 1 a bal oldalon és 4 vagy 0 gomb a másikon. Az 1 és 4 gomb használata előnyös, mivel nem zavarják egymást; mindegyiket meg lehet ütni, hogy visszatérjen a labda a végéről, függetlenül a másik gomb állapotától.

A rally győztese mindig a következő szervere.

3. játék: Lövöldöző

Lődd le az összes célt (fényt), hogy teljesíts egy szintet. Minden magasabb szinten a cselekvés gyorsabb.

Két változat létezik; az egyik, ahol a webhely rögzítve van, és a célok mozognak, és egy másik, ahol a webhely mozog, és a célok mozdulatlanok. Minden esetben a találat kiüti a célfényt; és egy kihagyás miatt felbukkan egy célpont. Amikor egy célpont van a látómezőben, a látvány világosabban világít, különben homályos.

Az első változatban a látvány balról (alulról) indul és jobbra pásztáz. A 2. verzióban a látvány középen van rögzítve, miközben a célpont jobbról balra mozog. A kódot megnézve vannak kísérteties 3. és 4. verziók, amelyek aktiválhatók, de saját jólétét saját felelősségére teszi.

4. játék: JumpMan

Az ötlet az, hogy egy játék szintjén futsz, ahol olyan tárgyak jönnek, amelyeken át kell ugranod, ahogy haladsz, gyorsabban. Egy másik játékváltozatban vannak fej feletti tárgyak is, amelyek alá kell bújni.

Az első verzióban csak olyan tárgyak vannak, amelyeken át kell ugrani. Az ugráshoz meg kell nyomnia a gombot, amikor az objektum eléri a bal oldali utolsó cellát; ami ekkor felvillan. Ha két vagy több egymást követő objektumot szeretne ugrani, akkor az elsőre kell ugrani (nyomja meg), és a többi gombot lenyomva kell tartani.

A 2. verzióban a fej feletti (villogó) objektumok kerülnek hozzáadásra. Ezeket ugrásszerűen ugrik a sejt előtt, és elengedi, amíg a végsejtben van. Egyszerre csak egy fej villoghat, így ha az egyik elhaladt, láthatja, hogy egy másik (előtte nem villog) lecsupaszodik rád. Soha nem lesznek egymást követő rezsiköltségek, de lehetnek egy vagy több ugró (boulder típusú) objektum mellett.

A 3. játékváltozatban el kell jutnia, és külön gombot kell használnia a felső tárgyakhoz (Btn-2, 4 vagy 0 az Ön választása szerint); az ugrásokhoz Btn-1 szükséges.

Miután négynél több objektumon sikerült túlhaladnod, mint amin nem sikerült, előre lépsz; van hang- és vizuális gratuláció, majd folytatás nagyobb sebességgel. Egymást követő objektumok halmaza ugyanannak számít, mint egy egyedi objektum.

Azt tanácsolom, hogy nyomtassa ki a játékok működési szabályait, és olvassa el újra, mielőtt olyan játékot játszana, amelyet nemrég játszott. Ellenkező esetben frusztrálhatja magát; azt gondolva, hogy a játék ténylegesen nem működik megfelelően, de Önnek és a játéknak különböző módjai és elvárásai vannak. Jómagam is több mint párszor esett ennek a szemébe.

7. lépés: Frissítések, további játékok

Image
Image

Készítettem egy 3D nyomtatott konzol tokot az In-Line LED létra kijelzőjének és gombjainak elhelyezésére.

Több játékot is kitaláltam, amelyek ezt a hardvert használják. Nézd meg őket és érezd jól magad:

Új játékok a „Whack a Mole” -tól a „Tug of War” -ig

2016. december. A fenti link végén a kód egységes verziója található, amely mind a 12 játékot tartalmazza.

2017. február 17.: Íme a projekt legújabb játékkészlete, most 16 játékkal (vázlat lent). Ez minden MCU implementáción futni fog, 32 KB -os flash program memóriával. Bár a 16 játék közül akár egy -három, akár négy is beilleszthető egy ATtiny -be. Javaslom a Nano 3 arduinos használatát. A legutóbbi 4 játék a „Le Mans” versenyzés, a „Spray” fej -fej spray festőverseny.

Ezeknek a játékoknak a változatosabb és változatosabb játékával javítható a játékképességük, így minden szintű játékos élvezheti. Úgy gondolom, hogy a pálya elrendezése és a játékidőzítés révén sok fejlődési lehetőség van a Le Mans -i versenyzésben.

Írtam még körülbelül 10 tevékenységet/játékot/funkciót, amelyek közül néhányat remélem elérhetővé teszek 2017 ősze körül.

Ez az egysoros játék is módosítható egy 2 soros 2x16 LCD kijelzőhöz, egy sor játékobjektummal és egy másik szöveggel. Csináltam ebből egy keveset, de mivel látom a projekteket, amennyire csak látom, nem tudom, hogy mikor és mikor kapok hozzá. Tehát ha valaki motivált arra, hogy ezeket a játékokat 2x16 LCD -re fogadja és optimalizálja, ossza meg velem és másokkal.

A Menu_16Games.ino itt található 4 új játékán kívül mellékeltem a projektemet, és ehhez kapcsolódó utasításokat hoztam létre: Inline LED játékkonzol tok és a hordozható MCU projekt tápellátása

Remélem sokan szánnak időt és… ÉLVEZZE ezeket a játékokat.

Csoportjáték: 1– Piros 2- Sárga 3- Zöld 4- Kék

1 piros 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

2017. szeptember 2.: Javított munkaképesség a régi piszkos, zajos külső joystick gombokkal, fej-fej játékban (2. csoport).

2017. december 13.: A gombok visszapattanásának és a mérések rendezésének javítása, kisebb problémák megoldva. Próbáltam egy kondenzátort használni a gomb analóg bemeneti vonalán, de a hatékonyság érdekében lassú mérési rendezést eredményezett, ami hamis szint azonosítást eredményezett, vagy a szoftvert, amely ilyen sokáig várakozott hogy a gyors játékmenet veszélybe került.

2018. április: Azt tapasztaltam, hogy az 5/8 -os kompressziós csatolók nagyszerű testeket készítenek a külső dugattyús stílusú gombokhoz. Mivel a gyerekeim szeretik ezeket használni, hozzáadtam fejléceket, hogy kettőt könnyen összeköthessek (Btn1 és Btn4).

Vegye figyelembe, hogy tavaly októberben létrehoztam egy másik projektet, amely ennek az utasításnak a hardverére épül. Ez a Halloween szellemében van, és nagyon szórakoztató lehet, különösen a gyerekek számára. Utasítható: Ghostly-Psyche-Influenced-Devices

Ajánlott: