INHOUDSOPGAWE:

Stackers Arcade Game: 6 stappe (met foto's)
Stackers Arcade Game: 6 stappe (met foto's)

Video: Stackers Arcade Game: 6 stappe (met foto's)

Video: Stackers Arcade Game: 6 stappe (met foto's)
Video: ПОЛТЕРГЕЙСТ 5 УРОВНЯ СНОВА НЕ ДАЕТ ПОКОЯ, ЖУТКАЯ АКТИВНОСТЬ / LEVEL 5 POLTERGEIST, CREEPY ACTIVITY 2024, November
Anonim
Stackers Arcade Game
Stackers Arcade Game

Hallo ouens, vandag wil ek hierdie wonderlike arcade game wat jy kan maak met 'n klomp Ws2812b LED's en 'n mikrobeheerder/FPGA met julle deel. Behold Stack Overflow - ons hardeware -implementering van 'n klassieke arcade game. Wat as 'n skoolprojek begin het, het vinnig 'n liefdevolle taak geword, aangesien ons meer en meer tyd begin spandeer het in die ontwikkeling van ons spel en meer daaruit kon leer (en ons studies in die proses verwaarloos xD). Uiteindelik was ons spel so goed gebou en goed ontvang deur ons skool dat dit gekonfiskeer is (as demonstrasiemateriaal vir die volgende groep studente). Wel, ons kan altyd 'n tweede een bou. Laat ons begin!

Aanlyn weergawe van die spel:

Stap 1: Wat het u nodig?

Wat het jy nodig?
Wat het jy nodig?
Wat het jy nodig?
Wat het jy nodig?
Wat het jy nodig?
Wat het jy nodig?
Wat het jy nodig?
Wat het jy nodig?

Materiaal:

1. 'n Mikrobeheerder/Mikrorekenaar/FPGA - Die FPGA word gebruik om die logika van ons spel te implementeer. Kies u bord, vir ons projek moet ons die Mojo FPGA -bord gebruik. Vir die oningewydes is dit 'n soort bord wat hardeware gebruik om sy funksies eerder as kodes te implementeer. Daarom sou ek sê dat dit redelik laag is en heeltemal anders is as as u Arduino of Pi gebruik. As u ander borde gebruik, moet u u eie kode skryf, maar hierdie speletjie is redelik maklik om te kodeer en hey! Nou kan u ook leer kodering!

2. Ws2812b LED's - Hier gebruik ons die LED's om die skerm vir ons spel te bou. Kan nie 'n vervaardiger wees as u nog nie aan Ws2812b's geraak het nie xD. Dit is 'n enkele adres wat beteken dat u enkele LED's kan afsny en plak in enige vorm wat u wil. En dit is RGB, wat beteken dat u enige kleur wat u wil, kan uitvoer. Verder is FastLED - die Arduino -biblioteek vir die beheer van Ws2812b baie goed ontwikkel. Ek sou mense aanbeveel om Arduino in die plek van die FPGA te gebruik as u nie een het nie. U kan die LED's by Taobao/Amazon koop, maar ons het ons s'n gekoop by die Sim Lim -toring in Singapoer.

3. Hout-Vir die buitekant gebruik ons laaghout van 1 cm dik en laaghout van 0,3 cm dik vir die LED-matriks. Ons het ons voorraad afvalhout gevind by die fabriekslaboratorium van ons skool.

4. Ligte verspreidende akriel - Vir ons skerm het ons verskillende soorte akriel probeer, en ons het hierdie ryp akriel genaamd PL -422 gevind, wat baie goed is om lig te versprei. As u nie die presiese model kan vind nie, probeer dan om te kyk vir mat akriel. Ons het ons by Dama Plastics in Singapoer gekoop.

5. Skuimplank - Om elke individuele ligpunt te skei, benodig ons 'n roosterstruktuur en hierdie skuim is die ideale materiaal om dit te doen. Ons het skuimbord van 0,5 cm dik by ons skoolwinkel gekoop.

6. Groot rooi knoppie - Ok, dit is nie nodig dat ons so 'n groot rooi knoppie het nie, maar dit is altyd goed om 'n knoppie te hê sodat mense kan klap! xD Ons het dit by die Sim Lim -toring in Singapoer gekoop.

Gereedskap:

1. Houtgom

2. Soldeerbout

3. Soldeer

4. Drade. Dit is die beste as u sagte drade het in vergelyking met die stywer drade. En 'n enkele kern in vergelyking met multicore.

5. Draadstropper

6. Draadsnyer

7. Boor met 1 mm boorpunte

8. Rolsaag

9. Bandzaag

Ontfouting:

1. Veranderlike kragbron

2. Ossilloskoop

Stap 2: Vinnige prototipering

Vinnige prototipering
Vinnige prototipering
Vinnige prototipering
Vinnige prototipering
Vinnige prototipering
Vinnige prototipering
Vinnige prototipering
Vinnige prototipering

Vir ons projek het ons 'n vinnige prototipe gebruik voordat ons ons LED -matriks gebou en ons spel geprogrammeer het. Die rede hiervoor is dat ons nie die LED -matriks wil bou net om te besef dat ons kodes nie werk nie, of dat ons spellogika gebrekkig is.

Aan die hardeware kant, in die eerste fase het ons net ons logika getoets om die ligpatrone op ons eie eenvoudige LED -matriks te verskuif. Sodra ons getoets het dat die logika goed werk, het ons uitgegaan om stroke van 5 Ws2812b LED's uit te sny net om ons spellogika met verskillende rye te toets. Sodra dit uitwerk, gaan ons voort met die vervaardiging van die LED -matriks op volle skaal.

Ons het ook verskillende akrielmonsters met die LED getoets voordat ons met PL-422 besluit het as die beste ligverspreider. En vir die skeidingstruktuur het ons ook verskillende hoogtes getoets om die LED volledig te versprei. Uiteindelik het ons besef dat 'n vierkant van 3 cm*3 cm met 'n hoogte van 4 cm die beste is vir verspreiding. Op grond van hierdie optimale grootte, het ons ook besluit wat die grootte van laaghout is wat nodig is vir 'n 5 x 11 LED -matriks deur 'n gaping van 0,5 cm vir die skuim tussen die vierkante te laat.

Aan die sagtewarekant probeer ons om so modulêr moontlik te wees - ons toets eers of die LED's kan brand voordat ons met die skuiffunksie begin, en dan ander. Die resultate kan katastrofies wees as u dit nie doen nie. Ons het dit op die moeilike manier geleer terwyl ons probeer het om die hele spel in 'n groot stuk uit te kodeer voordat ons besef het dat ons dit nie kan ontfout nie. Ai!

Stap 3: Maak die omhulsel

Maak die omhulsel
Maak die omhulsel
Maak die omhulsel
Maak die omhulsel
Maak die omhulsel
Maak die omhulsel
Maak die omhulsel
Maak die omhulsel

Vir ons omhulsel het ons 'n klassieke arcade -masjien gevoel en voorkoms. Eerstens sny ons dun laaghout om die vorm vinnig te prototipe, aangesien dit makliker en vinniger is om dun laaghout te sny en te toets. Toe ons tevrede was met ons afmetings en vorm, het ons begin om dikker laaghout te gebruik om die omhulsel te bou. Ons het 'n bandsaag gebruik om die dikker laaghout deur te sny en 'n bladsaag om die dunner te sny. Daarna het ons houtgom gebruik om dit aan mekaar vas te plak.

Aan die agterkant van die laaghout wou ons maklik toegang tot die elektronika kry, daarom het ons 'n slot gemaak wat u maklik kan verwyder wanneer u wil.

Om die knoppie vas te maak, trek ons eers 'n sirkel van die grootte van die mikroskakelaar se deursnee (die langste onderste deel van die knoppie). Ons boor toe 'n gat naby die rand en gebruik die bladsaag om 'n sirkel deur te saag. Toe plaas ons die knoppie en draai dit in.

Ons sny ook 'n dun stuk laaghout as die basis van ons LED -matriks volgens die groottes wat ons voorheen bereken het.

Opmerking: ek vra om verskoning vir die gebrek aan stap-vir-stap proses. Ons het die stappe nie heeltemal gedokumenteer nie, en toe ons besef dat ons die stappe moet dokumenteer, was die omhulsel reeds klaar. Die diagram is ook nie die finale afmetings nie.

Stap 4: Maak die LED Matrix

Maak die LED Matrix
Maak die LED Matrix
Maak die LED Matrix
Maak die LED Matrix

Met die dun stuk wat ons vroeër uitgesny het, merk ons eers die posisie van elke LED deur 'n vierkant te teken op grond van ons skuimstruktuur en 'n kruisie in die middel van die vierkant te teken as die plek waar ons die LED moet plak. Dan boor ons ook 3 klein gaatjies aan elke kant van die LED sodat die drade deurkom en aan elke LED soldeer.

Ons verbind elke rits LED met hul Data In en Data Out penne en soldeer elke GND en VCC aan 'n gemeenskaplike draad. Die toonaangewende Data In sal die ligpatrone vir elke ry genereer en ons het dit gekoppel aan die pinout van die mikrobeheerder/FPGA. U kan ook die laaste data uit een ry soldeer aan die voorste data -in van 'n ander ry. Die manier waarop die Ws2812b LED werk, is dat elke LED 'n IC bevat wat die nodige data uit die draad sal haal en die res in die ketting kan deurgee. Ons het ons LED gegrond op nog 'n fantastiese instruksies (ons het dit eintlik presies gekopieer! XD)

Hier wil ons ook beklemtoon hoe belangrik dit is om sagte drade te gebruik. As u stewige, harde drade vir die voorste Data In -pen gebruik, is dit wat gebeur as u elke keer aan die draad trek, die kopervulling op u Ws2812b kan uittrek, wat dit sal vernietig. In hierdie projek, voordat ons na sagte drade verander het, het ons 'n totaal van 40 LED's vernietig, wat 1/3 van die LED's is wat nodig is vir ons projek.

Onderrigbaar:

Stap 5: Skryf die spelkodes en ontfoutingshardeware

Skryf die spelkodes en ontfouting hardeware
Skryf die spelkodes en ontfouting hardeware
Skryf die spelkodes en ontfouting hardeware
Skryf die spelkodes en ontfouting hardeware
Skryf die spelkodes en ontfouting hardeware
Skryf die spelkodes en ontfouting hardeware

Mojo werk op Lucid HDL, wat nie die gewildste taal is nie. Ons kan geen Ws2812b LED -biblioteke in Lucid vind nie, daarom het ons ons eie biblioteek begin skryf, wat 'n baie interessante ervaring is. Om dit te doen, ontleed ons eers die sein wat flou word deur die FastLED -biblioteek van Arduino te gebruik en kodes te skryf om dit te herhaal. Hier is 'n truuk van hardeware -ontfouting; die ossilloskoop is baie, baie handig om seine te ontleed, of dit u eie sein is waarmee u nie seker is nie, of om ander seine te kontroleer en te kopieer.

Nadat ons die biblioteek vir die Ws2812b geskryf het, gaan ons voort met die kode vir die spel, ons gebruik die Bit -verskuiwingsfunksies om elke blok na links en regs te skuif en Bitwise EN na EN die vierkante van elke ry na die vorige ry te gebruik. U kan ook daaraan dink om dit in Arduino te implementeer, wat nie so moeilik moet wees nie. Ons het selfs spelskerms gekodeer vir die lekkerte daarvan!

Ons spel het 2 vlakke, wat die sigbare stapelspel (groen) en die tweede vlak onsigbare stapelspel (blou) is.

Selfs nadat ons 'n werkskode en 'n werkende LED -matriks gehad het, ondervind ons soms steeds probleme, soos ligte wat flikker of ligte wat brand as dit nie moet nie. Die probleem is gewoonlik as gevolg van onbehoorlike aarding, kragtoevoer of inmenging. Dit is waar u ander hardeware -ontfoutingsinstrumente benodig, soos 'n veranderlike kragbron, om te kyk of die voeding van die Mojo/Arduino voldoende of te hoog is. Volgens my ervaring het die Ws2812b 'n redelike wye reeks werkspannings van 2.8v - 5v. Hier het ek 'n video wat wys hoe die ligte heeltemal mal word nadat ek die krag verhoog het.

Verdere ondersoek het egter aan die lig gebring dat ons 'n onbehoorlike soldeer gehad het, nadat ons dit weer gesoldeer het, is ons probleem opgelos. Daar kan ook 'n probleem wees met inmenging of kruispraatjies, maar gelukkig het ons dit nooit ondervind nie.

Github-kodes:

Arduino Bitwise Shift:

Arduino Bitwise EN:

Stap 6: Alles saamvoeg

Alles aanmekaar sit
Alles aanmekaar sit
Alles aanmekaar sit
Alles aanmekaar sit
Alles aanmekaar sit
Alles aanmekaar sit
Alles aanmekaar sit
Alles aanmekaar sit

U het die omhulsel en die LED -matriks. Dit is nou tyd om alles aanmekaar te sit. Eers plaas ons die skuim aan die voorkant en die LED -matriks daaragter en pas die posisie aan. Omdat skuim baie hoë wrywing het, is dit net wrywing gemonteer terwyl die LED -matriks warm vasgeplak is. Daarna het ons die skerm voor die rooster geplaas. Ons steek dan die pen van elke ry aan die mikrobeheerder en begin speel!: D

Een ding wat ek van hierdie projek hou, is die buigsaamheid daarvan; u kan die mikrobeheerder altyd herprogrammeer om deel te wees van 'n ander speletjie en iets soos animasie of 'n reaksiespel te probeer. Hoop julle geniet dit om dit te maak en leer iets om dit te maak. GgEz!

Aanbeveel: