INHOUDSOPGAWE:

Tap Tap Rainbow - 'n vinnige reaksie -speletjie vir twee spelers: 4 stappe (met foto's)
Tap Tap Rainbow - 'n vinnige reaksie -speletjie vir twee spelers: 4 stappe (met foto's)

Video: Tap Tap Rainbow - 'n vinnige reaksie -speletjie vir twee spelers: 4 stappe (met foto's)

Video: Tap Tap Rainbow - 'n vinnige reaksie -speletjie vir twee spelers: 4 stappe (met foto's)
Video: CS50 2015 - Week 5 2024, Julie
Anonim
Tik Tik Rainbow - 'n vinnige reaksie -speletjie vir twee spelers
Tik Tik Rainbow - 'n vinnige reaksie -speletjie vir twee spelers
Tik Tik Rainbow - 'n vinnige reaksie -speletjie vir twee spelers
Tik Tik Rainbow - 'n vinnige reaksie -speletjie vir twee spelers
Tap Tap Rainbow - 'n vinnige reaksie -spel vir twee spelers
Tap Tap Rainbow - 'n vinnige reaksie -spel vir twee spelers

Die LED -string gebruik slegs 3 drade. Ek het dus net 'n 5V -krag (rooi), grond (wit) en sein (groen) nodig gehad. As u ook 'n Espruino gebruik, moet u die tutoriale op hul webwerf nagaan. Die een vir die RGB LED's word baie duidelik verduidelik.

Ek het die LED -string in 3 dele van 6 LED's gesny en dit dan met ekstra drade verbind. Op hierdie manier gebruik alle LED's almal dieselfde skikking wat my 2 ekstra poorte op die bord bespaar, en dit is makliker om te programmeer.

Dit was 'n bietjie moeiliker om die knoppies aan te sluit. Ek wou so min as moontlik hawens op die bord gebruik, en ek het daaraan gedink om 'n I2C -opstelling te gebruik, maar ek het dit baie misluk. Ek kon dit nie laat werk nie, en ek kyk na iets anders.

Uiteindelik het ek 'n handleiding oor Espruino vir 'n toetsbord gevind, wat as 'n toetsmatriks met 16 knoppies bedraad is. Dit lyk redelik maklik om te implementeer, so ek het die kant toe gegaan. Ek het net 12 knoppies nodig, so ek sou 'n 3x4 matriks nodig hê.

In 'n bedieningsmatriks word alle knoppies in kolomme en rye verbind. Op hierdie manier benodig u slegs 8 poorte vir 16 knoppies. In my opstelling het ek slegs 2 keer 6 knoppies nodig gehad, dus 'n totaal van 7 poorte op die bord (4 rye met 3 kolomme). Dit is nog baie minder as om die 12 knoppies afsonderlik aan te sluit, en die toetsbordmodule van Espruino is baie maklik om te gebruik.

Ek het 'n goeie handleiding gevind oor die basiese beginsels van die bedieningspaneel wat my baie gehelp het met die bedrading van die knoppies.

Toe ek dit regkry om al my knoppies aan te sluit, het ek baie gefrustreerd geraak omdat die verbindings voortdurend afgegly het en dit raak laat. Dus plak ek alles op die boks vas en vergeet heeltemal om foto's te neem. Ook nie baie gebruikersvriendelik die dag as ek 'n draad in een van die bokse moet aansluit nie.

Stap 3: Skryf die kode

Die skryf van die kode
Die skryf van die kode
Die skryf van die kode
Die skryf van die kode
Die skryf van die kode
Die skryf van die kode

Espruino is in Javascript geprogrammeer, dus vir my is dit baie minder ingewikkeld as om kode vir Arduino te skryf.

Die kode kan 'n mate van optimalisering gebruik, maar dit werk tans. Daar is ook 'n fout (miskien is dit 'n kenmerk: D) waar u nie presies dieselfde tyd op 2 knoppies kan druk nie. Maar dit maak dit 'n bietjie meer uitdagend (lees frustrerend) om die spel te speel, so ek het nog nie die kwessie ondersoek nie, ek hou nogal daarvan (as u dit verloor, is dit ekstra frustrerend).

Die programmering van die LED's is nogal maklik. Elke LED in die string het drie waardes in 'n skikking. As u dus 'n skikking soos [255, 0, 0, 255, 0, 0] het, het u die eerste 2 LED's rooi.

In 'n vinnige oorsig.

1. Eerstens definieer ek my kleure en maak ek 'n verskeidenheid kleure

2. Dan definieer ek die spelerinstellings, soos die knoppie -ID's en watter indeks elke speler in die LED -string het

3. Aan die begin van die spel skommel ek al die kleure in die reënboogreeks en stoor die inligting in 'n nuwe reeks. Dan stel ek alle LED's terug en verlig die boonste LED's met die geskommelde reënboogkleure

4. Laastens het ons die kode wat na die belangrikste gebeurtenisse luister. Ek stoor alle insette in 'n skikking en kyk of hierdie skikking in die regte volgorde is.

5. 'n Pragtige ekstra wat ek gister bygevoeg het dat die wenners behandel word met 'n wonderlike reënboog -animasie: D

Daar is nog baie dinge wat ek in gedagte het om dit lekkerder te maak, maar dit is iets vir later;)

Ek kan nie die volledige bronkode oplaai nie, so ek het dit op Gitlab geplaas

gitlab.com/marzsman/tap_tap_rainbow

Stap 4: Geniet dit !!! ?

Image
Image
Geniet dit !!! ?
Geniet dit !!! ?

Toe ek en my dogter haar idee neerskryf en dink hoe dit moet lyk, het ek die idee dadelik geniet. Maar ek moet sê, ek het nooit gedink dit sal so lekker wees om te speel nie. Ons het al 'n paar groot reënboog -afslaande gehad: D

Ek hoop dat iemand net soveel plesier daarmee sal hê as ons.

Dit is ook die eerste volledige projek wat ek in so 'n kort tydjie gemaak het, en iets wat ek met my dogter van 8 jaar gedoen het, en dit is ook my eerste opdrag (UITEINDELIK!), So op 'n manier is dit vir my 'n baie spesiale projek. So ek hoop daarvan!

As u enige vrae of voorstelle het, hoor ek dit graag!

Aanbeveel: