» electronică »Consolă de joc în miniatură cu joc Pong

Consolă de joc în miniatură cu joc Pong

salutări locuitorii site-ului nostru!
Astăzi avem un proiect cu o consolă de jocuri micro, pe care oricine o poate repeta.


Materiale și componente necesare:








Acest manual a fost preluat de pe canalul YouTube AlexGyver. Microcontrolerul pentru acest proiect are nevoie de acest lucru:


Acesta este Attiny85 în pachetul DIP, va fi suficient pentru noi. Pentru a nu-l vinde, luăm așa-numita priză.

Avem nevoie și de un display cu Aliexpress, OLED cu o rezoluție de 128 x 32 pixeli.


Pinii vin de asemenea la îndemână.

Butoanele pe care le vom folosi aici sunt:

Desigur, puteți lua tastaturi, dar acestea vor trebui finalizate, dar nu vreau cu adevărat să taie și să lipească. Compartimentul bateriei este de acest tip:

Și vom asambla consola noastră de jocuri cu o panou de pâine (dacă doriți, puteți să faceți chiar și o placă). Vom bloca programatorul USBasp, dar orice AVR va face.

Schema de cablare Componentele vor fi următoarele:

Ecranul se conectează la pinii I2C ai microcontrolerului. Conectăm butoanele la alți pini liberi. Adăugați de asemenea un comutator pentru a porni / opri sistemul. Și practic asta este tot, rămâne să conectați puterea.
Firmware-ul este încărcat în microcontroler de programator conform următoarei scheme:
Consolă de joc în miniatură cu joc Pong

Acum, să începem cu asamblarea și să aranjăm toate elementele de pe panou. Să încercăm să asamblăm și să vedem cum arată totul.


S-a dovedit destul de ascetic. Nu este rău. Părțile în exces din panou pot fi tăiate.


Acum remediem toate componentele doar prin lipirea picioarelor.



Acum trebuie să conectați concluziile în conformitate cu schema. În acest scop, autorul recomandă utilizarea unui fir subțire de montare chinezesc.

Și pentru comoditate, puteți utiliza această diagrama de conexiune oglindită.

Aceste fire au o izolație atât de subțire încât le puteți vinde direct. Izolația în sine se va topi și firul va fi lipit.

Apoi continuați la sigilarea compartimentului bateriei și a comutatorului. Compartimentul trebuie să fie, de asemenea, fixat cu un pistol cu ​​clei fierbinte.


Ei bine, asta este tot, sistemul este asamblat, rămâne să descărcați firmware-ul. Vom bloca „piatra” separat conectând-o la programatorul de pe panou.


Firmware-ul, ca și în cazul tuturor proiectelor autorului, se află în domeniul public și poate fi descărcat de pe. De asemenea, pe pagina proiectului veți găsi o diagramă și toate celelalte informații necesare despre acest proiect.

Nu vom descărca în detaliu descărcarea, dacă ceva nu este clar, atunci puteți să vă uitați întotdeauna la instrucțiunile detaliate pentru autor.
Pentru firmware, trebuie doar să instalați Arduino ide, instalează kernelul pentru lucrul cu microcontrolerele din seria Attiny, selectează o placă, alege un programator.


Apoi selectăm frecvența de 8 sau 16 MHz, deschidem fila „Instrumente”, găsim și selectăm „Încărcător de înregistrare”.

Nu există încărcător acolo, dar microcontrolerul va fi reglat la frecvența dorită. Apoi selectați fila „Sketch” - „descărcați prin programator”. Și așteptăm până schița să fie încărcată în microcontroler.

Acum scoatem „piatra” și o introducem în inima mini consolei noastre de jocuri.


După cum vedeți, funcționează! Și acum să aruncăm o privire mai atentă asupra a ceea ce avem în firmware. ATtiny85 este un microcontroler cu 512 octeți de RAM, care este foarte mic. 99% din bibliotecile pentru lucrul cu un astfel de afișaj folosesc un tampon din partea microcontrolerului pentru a redescoperi corect imaginea, deoarece acest afișaj nu poate citi date din propriul tampon și este acolo apropo.

Memoria tampon pentru acest afișaj de 128 * 32 pixeli va lua 512 octeți, dacă vrem să ne amintim starea fiecărui bit, adică un pixel.
În plus față de buffer, trebuie să stocăm și alte date, deci această opțiune nu se încadrează cu siguranță în memoria unei asemenea dimensiuni.

Prin urmare, s-a decis scăderea rezoluției afișajului la 64 * 16 pixeli prin tamponarea pătratelor de 4 pixeli.

Autorul a lucrat direct cu acest ecran și a reușit să își implementeze cu succes ideea. O schiță ar putea veni la îndemână pentru cineva care dorește să lucreze cu acest ecran folosind Attiny.


Acum în ceea ce privește jocul în sine. Funcționează destul de simplu. O minge se deplasează pe un cronometru separat, mișcarea constă în ștergerea unui punct cu aceleași coordonate și adăugarea unui punct nou în noile coordonate.

Calculul coordonatelor este pur și simplu adăugarea valorilor de viteză la coordonatele din sistemul de afișare.
Atunci când mingea depășește pereții orizontali, pur și simplu îi răspunde, schimbând componenta verticală a vitezei în sens opus, adică cu un semn minus (-).

În plus, programul verifică limitele verticale ale terenului de joc, dacă mingea lovește racheta (bine, sau orice s-ar numi corect), atunci acesta sări, iar unghiul de sarb este aleatoriu.
Dacă mingea sparge peretele din spatele rachetei, jucătorul a pierdut runda actuală, iar adversarul primește un punct.

Mișcarea rachetei jucătorului este implementată în același mod cu mișcarea mingii, adică racheta veche este ștearsă și una nouă este desenată, deja cu noi coordonate. Coordonatele se schimbă atunci când faceți clic pe buton.
Astfel, se dovedește mult mai rapid decât curățarea întregului afișaj și redarea din nou a tuturor elementelor.


Acum pentru racheta adversarului. Este controlat de AI (inteligență artificială).

Ei bine, despre inteligența artificială se spune cu siguranță, dar, cu toate acestea, această inteligență face un lucru foarte simplu, și anume, face ca racheta să se miște în direcția în care se află acum mingea, în timp ce încearcă să-și alinieze centrul de-a lungul axei verticale cu coordonata verticală a mingii. Pentru a-l învinge cu adevărat pe un astfel de adversar, autorul l-a făcut încet, adică el calculează din nou următoarea mișcare de către cronometru și, astfel, poate să nu aibă timp să prindă mingea și să-l respingă.

De asemenea, în joc a implementat mecanici de complexitate crescândă. La fiecare 10 puncte în favoarea jucătorului, viteza mingii crește. Odată cu aceasta, viteza de reacție a AI (adversar) crește și ea.

Drept urmare, iată un mic Pong atât de simplu. Nu degeaba, acest joc video a fost dezvoltat foarte întâi, deoarece chiar și un programator începător îl poate scrie. Dar, în ciuda aparentei simplități a proiectului, confruntarea cu ecranul chinezesc a necesitat aproximativ 20 de ore de pură durată de la autor. În același timp, el nu a ținut cont de timpul petrecut în scrierea codului jocului în sine și a altor fluxuri de lucru cu privire la depanare și configurare a circuitului.



În acest lucru, buzz-ul în sine este procesul de asamblare, nu aplicația.Dezvoltarea jocurilor, chiar și a celor simple, poate fi cu adevărat destul de interesantă. Mai ales când încercați să le împingeți într-un microcontroler foarte mic. Iar când afișajul chinezesc te așteaptă după colț ...

Totul este. Vă mulțumim pentru atenție. Ne vedem curând!

Videoclipul autorului:
6.5
5.5
5.5

Adaugă un comentariu

    • zâmbetzâmbetexaxabinedontknowYahooNea
      șefzgârieturăpăcălidada-daagresivsecret
      scuzedansdance2dance3iertareajutorbăuturi
      oprireprietenibungoodgoodfluiersincopălimbă
      fumaplauzeCrayvestimbatjocoritorDon-t_mentiondescărcare
      căldurămânioslaugh1mdaîntâlniremoskingnegativ
      not_ifloricele de porumbpedepsicititsperiasperiecăutare
      batjocurăthank_youacestto_clueUmnikacutconveni
      răubeeeblack_eyeblum3roșilăudăroșenieplictiseală
      cenzuratpleasantrysecret2amenințavictorieyusun_bespectacled
      ShokRespektlolprevedbun venitKrutoyya_za
      ya_dobryiajutorne_huliganne_othodifludinterdicțieînchide
1 comentariu
ketchup
în loc să plagiați, ar fi mai bine să vii cu ai tăi

Vă sfătuim să citiți:

Înmânează-l pentru smartphone ...