Sadržaj:
- Korak 1: Šta vam treba?
- Korak 2: Brzo prototipiranje
- Korak 3: Izrada kućišta
- Korak 4: Izrada LED matrice
- Korak 5: Pisanje kodova igara i otklanjanje grešaka na hardveru
- Korak 6: Spajanje svega zajedno
Video: Slagači Arkadna igra: 6 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:07
Zdravo momci, danas želim podijeliti s vama ovu nevjerovatnu arkadnu igru koju možete napraviti s hrpom Ws2812b LED dioda i mikrokontrolerom/FPGA. Behold Stack Overflow - naša hardverska implementacija klasične arkadne igre. Ono što je počelo kao školski projekt brzo je postalo rad ljubavi jer smo počeli trošiti sve više vremena na razvoj naše igre i učenje više od nje (i zanemarivanje studija u procesu xD). Na kraju, naša je igra bila toliko dobro izgrađena i prihvaćena u našoj školi da je konfiscirana (kao demo materijal za sljedeću grupu učenika). Pa, uvijek možemo izgraditi drugu. Hajde da počnemo!
Mrežna verzija igre:
Korak 1: Šta vam treba?
Materijali:
1. Mikrokontroler/Mikroračunalo/FPGA - FPGA se koristi za implementaciju logike naše igre. Odaberite svoju ploču, za naš projekt moramo koristiti Mojo FPGA ploču. Za neupućene, to je vrsta ploče koja koristi hardver za implementaciju svojih funkcija, a ne kodove. Stoga bih rekao da je prilično nizak i potpuno drugačiji nego ako koristite Arduino ili Pi. Ako koristite druge ploče, morate napisati vlastiti kod, ali ovu igru je prilično lako kodirati i hej! Sada možete naučiti i kodiranje!
2. LED diode Ws2812b - Ovdje koristimo LED diode za izradu ekrana za našu igru. Ne možete biti proizvođač ako niste dodirnuli Ws2812b prije xD -a. To je jedna adresa koja znači da možete odrezati pojedinačne LED diode i zalijepiti ih u bilo koju formaciju koja vam se sviđa. RGB znači da možete ispisati bilo koju boju koja vam se sviđa. Nadalje, FastLED - Arduino biblioteka za kontrolu Ws2812b je vrlo dobro razvijena. Preporučio bih ljudima da koriste Arduino umjesto FPGA -e ako ga nemate. LED diode možete kupiti od Taobao/Amazon, ali mi smo naše kupili od Sim Lim tornja u Singapuru.
3. Drvo-Za vanjsko kućište koristili smo šperploču debljine 1 cm, a za LED matricu šperploču debljine 0,3 cm. Našli smo zalihe starog drveta iz laboratorije naše škole.
4. Akril za raspršivanje svjetla - Za naš ekran isprobali smo različite vrste akrila i otkrili smo ovaj matirani akril zvan PL -422 koji je zaista dobar za raspršivanje svjetla. Ako ne možete pronaći točan model, pokušajte potražiti mat akril. Naše smo kupili u Dama Plastics u Singapuru.
5. Pjenasta ploča - Da bismo odvojili svaki pojedinačni piksel svjetlosti, bila nam je potrebna mrežasta struktura, a ova pjena je idealan materijal za to. U školskoj knjižari kupili smo pjenastu ploču debljine 0,5 cm.
6. Veliko crveno dugme - Ok, nije potrebno da imamo tako veliko crveno dugme, ali uvijek je dobro imati dugme za ljude da zalupe! xD Kupili smo ga u kuli Sim Lim u Singapuru.
Alati:
1. Ljepilo za drvo
2. Lemilica
3. Lemljenje
4. Žice. Najbolje je ako imate meke žice u odnosu na čvršće. I jednojezgreno u poređenju sa višejezgrenim.
5. Skidač žice
6. Rezač žice
7. Bušite bušilicama promjera 1 mm
8. Pila za pomicanje
9. Tračna pila
Otklanjanje grešaka:
1. Varijabilna jedinica za napajanje
2. Osciloskop
Korak 2: Brzo prototipiranje
Za naš projekt upotrijebili smo brzu izradu prototipova prije nego što smo izgradili LED matricu i programirali igru. Razlog za to je što ne želimo izgraditi LED matricu samo da bismo shvatili da naši kodovi ne funkcioniraju ili je logika igre pogrešna.
Što se tiče hardvera, u prvoj fazi smo samo testirali svoju logiku prebacivanja svjetlosnih uzoraka na našu jednostavnu LED matricu. Nakon što smo testirali da logika dobro funkcionira, izašli smo izrezati trake od 5 LED dioda Ws2812b samo da bismo testirali logiku igre s različitim redovima. Kada to uspije, nastavljamo s proizvodnjom LED matrice u punom opsegu.
Također smo testirali različite uzorke akrila sa LED prije nego što smo se odlučili za PL-422 kao najbolji difuzor svjetlosti. Za strukturu separatora također smo testirali različite visine kako bi se LED potpuno raspršila. Na kraju smo shvatili da je kvadrat 3 cm*3 cm s visinom od 4 cm najbolji za širenje. Na temelju ove optimalne veličine odlučili smo i koja je veličina šperploče potrebna za LED matricu 5 x 11 ostavljajući razmak od 0,5 cm za pjenu između kvadrata.
Sa softverske strane, pokušavamo biti što modularniji - prvo testiramo mogu li se LED diode upaliti prije nego što dodamo funkciju pomaka, a zatim i druge. Rezultati bi mogli biti katastrofalni ako to ne učinite. To smo naučili na teži način pokušavajući kodirati cijelu igru velikim dijelom prije nego što smo shvatili da to ne možemo otkloniti. Ouch!
Korak 3: Izrada kućišta
Za naše kućište, otišli smo sa klasičnim arkadnim mašinama koje izgledaju i izgledaju. Prvo smo izrezali tanku šperploču kako bismo brzo prototipirali oblik jer je lakše i brže rezati tanku šperploču i testirati je. Kad smo bili zadovoljni svojim dimenzijama i oblikom, počeli smo koristiti deblju šperploču za izradu kućišta. Koristili smo trakastu pilu za rezanje deblje šperploče, a za rezanje tanjih špaleta. Nakon toga smo ih zalijepili ljepilom za drvo.
Za stražnju stranu šperploče htjeli smo lako pristupiti elektronici iznutra, pa smo je pretvorili u zaključani komad koji možete lako ukloniti kad god želite.
Da bismo pričvrstili dugme, prvo smo nacrtali krug veličine promjera mikroprekidača dugmeta (donji dio dugmeta). Zatim smo izbušili rupu blizu ruba i pomoću spiralne pile izrezali krug. Zatim smo postavili dugme i uvrnuli ga.
Također smo izrezali tanki komad šperploče kao osnovu naše LED matrice prema veličinama koje smo prethodno izračunali.
Napomena: Izvinjavam se zbog nedostatka procesa korak po korak. Nismo dokumentirali korake do kraja i kad smo shvatili da moramo dokumentirati korake, omotač je već bio gotov. Dijagram također nije konačna dimenzija.
Korak 4: Izrada LED matrice
Koristeći tanki komad koji smo ranije izrezali, prvo označavamo položaj svake LED diode crtanjem kvadrata na osnovu naše strukture pjene i iscrtavanjem križa na sredini kvadrata kao mjesto na koje trebamo zalijepiti LED. Zatim također izbušimo 3 male rupe sa svake strane LED diode za prolazak žica i lemimo ih na svaku LED diodu.
Svaki niz LED dioda povezujemo njihovim pinovima za ulaz podataka i izlaz za podatke i lemimo svaki GND i VCC na zajedničku žicu. Vodeći Data In će generirati svjetlosne uzorke za svaki red, a mi smo ga povezali sa pinout -om mikrokontrolera/FPGA. Također možete lemiti posljednje podatke iz jednog reda u vodeći podatak iz drugog reda. Način na koji Ws2812b LED radi je da svaka LED dioda sadrži IC koji će uzeti potrebne podatke iz žice, a ostatak prenijeti niz lanac. LED smo zasnovali na još jednoj fantastičnoj instrukciji (u stvari, kopirali smo je tačno! XD)
Ovdje bismo također željeli naglasiti važnost korištenja mekih žica. Ako koristite čvrste, tvrde žice za vodeći pin za prijenos podataka, ono što se događa je svaki put kada povučete žicu, ona bi mogla izvući bakrenu podlogu na vašem Ws2812b koja će je uništiti. U ovom projektu, prije nego što smo prešli na meke žice, uništili smo ukupno 40 LED dioda, što je 1/3 LED dioda potrebnih za naš projekt.
Upute:
Korak 5: Pisanje kodova igara i otklanjanje grešaka na hardveru
Mojo radi na Lucid HDL -u, koji nije najpopularniji jezik. U Lucidu ne možemo pronaći LED biblioteke Ws2812b, pa smo pribjegli pisanju vlastite biblioteke, što je vrlo zanimljivo iskustvo. Da bismo to učinili, prvo smo analizirali signal koji se odašilje pomoću Arduinove FastLED biblioteke i napisali kodove da to repliciramo. Evo trika hardverskog otklanjanja grešaka, osciloskop je vrlo, vrlo koristan za analizu signala, bilo da se radi o otklanjanju grešaka u vašem vlastitom signalu za koji niste sigurni ili provjeri i kopiranju drugih signala.
Nakon pisanja biblioteke za Ws2812b, zatim nastavljamo sa kodiranjem igre, koristili smo funkcije Bit shift za pomicanje svakog bloka ulijevo i udesno te smo koristili Bitwise AND do AND kvadrate svakog reda u prethodni red. Možete razmišljati i o tome da to implementirate u Arduino, što ne bi trebalo biti tako teško. Čak smo kodirali ekrane za igru radi zabave!
Naša igra je imala 2 nivoa, a to je igra vidljivog slaganja (zelena) i druga razina nevidljiva igra slaganja (plava).
Čak i nakon što smo imali ispravne kodove i radnu LED matricu, ponekad se i dalje suočavamo s problemima poput treperenja svjetla ili svijetljenja kad ne bi trebali. Problem je obično zbog nepravilnog uzemljenja, nivoa napajanja ili smetnji. Ovdje će vam trebati drugi hardverski alati za otklanjanje grešaka, poput varijabilne jedinice za napajanje kako biste provjerili je li Mojo/Arduino napajanje dovoljno ili previsoko. Prema mom iskustvu, Ws2812b ima prilično širok raspon radnih napona od 2,8v do 5v. Ovdje imam video koji prikazuje kako svjetla luduju nakon što pojačam snagu.
Međutim, dodatnom provjerom otkriveno je da smo imali neko nepravilno lemljenje, nakon što smo ih ponovno lemili, naš problem je riješen. Takođe bi mogao postojati problem sa smetnjama ili unakrsnim razgovorima, ali srećom, nikada se nismo suočili s bilo kojim od njih.
Github kodovi:
Arduino Bitwise Shift:
Arduino Bitwise I:
Korak 6: Spajanje svega zajedno
Imate kućište i LED matricu. Vrijeme je da sve spojimo. Prvo stavljamo pjenu na prednju stranu, a LED matricu iza nje i prilagođavamo položaj. Budući da pjena ima vrlo visoko trenje, samo je ugrađena na trenje dok je LED matrica vruće zalijepljena na mjestu. Nakon toga smo postavili ekran ispred rešetke. Zatim smo priključili pin svakog reda na mikrokontroler i počeli svirati!: D
Jedna stvar koja mi se sviđa kod ovog projekta je njegova fleksibilnost, uvijek možete reprogramirati mikrokontroler da bude dio druge igre i isprobati nešto poput stvaranja animacije ili reakcije. Nadam se da ćete uživati u izradi ovoga i naučiti nešto za pravljenje ovoga. GgEz!
Preporučuje se:
Retro arkadna stand-up igra za 2 igrača by Micro Center: 20 koraka
Retro arkada za 2 igrača Stand-Up Micro Center: Vaš lokalni Micro Center sada sadrži sve što vam je potrebno za izradu vlastitog Retro Arcade ormara zasnovanog na Raspberry Pi. Kompleti su potpuno prilagodljivi, uključuju ormarić, Raspberry Pi, dugmad, upravljačke palice, audio i video pribor i još mnogo toga. To je
POiNG! - Arduino arkadna igra!: 3 koraka
POiNG! - Arduino arkadna igra !: Gradit ćemo arkadnu igru u stilu PONG-a koja koristi dijelove iz " Najcjelovitijeg početnog kompleta UNO R3 projekta " komplet iz Elegoo Inc. Potpuno otkrivanje podataka - Većinu dijelova isporučenih za ovu uputu Elegoo je autoru dostavio
Arduino ciklon Arkadna igra: 6 koraka
Arduino ciklon Arkadna igra: Blistava blistava svjetla! Arduino! Igra! Šta još treba reći? Ova igra je bazirana na arkadnoj igri Cyclone, gdje igrač pokušava zaustaviti LED klizanje po krugu na određenom mjestu
Ciklona LED arkadna igra: 4 koraka
Ciklonska LED arkadna igra: Namjera ovog projekta bila je stvoriti jednostavnu igru koristeći Arduino koja bi bila interaktivna i zabavna za djecu. Sjećam se da je arkadna igra Cyclone jedna od mojih omiljenih arkadnih igara dok sam bila mlađa, pa sam odlučila da je ponovim. T
Arduino LED laserska arkadna igra: 3 koraka (sa slikama)
Arduino LED laserska arkadna igra: U ovom uputstvu pokazat ću kako napraviti lasersku arkadnu igru koristeći LED i svjetlosne senzore. Kôd je uključen i ne trebate puno dijelova za njegovu izradu. Neću vam reći kako pravim kućište, to ćete morati sami napraviti! T