» elektronik »Miniatyrspil med Pong-spil

Miniature spilkonsol med Pong-spil

hilsner indbyggerne på vores site!
I dag har vi et projekt med en mikrospil, som enhver kan gentage.


Nødvendige materialer og komponenter:








Denne manual er hentet fra AlexGyver YouTube-kanal. Mikrocontrolleren til dette projekt har brug for dette:


Dette er Attiny85 i DIP-pakken, det vil være nok for os. For ikke at lodde det, tager vi den såkaldte stikkontakt.

Vi har også brug for et display med Aliexpress, OLED med en opløsning på 128 x 32 pixels.


Pins er også nyttige.

Knapper, vi vil bruge her, er:

Selvfølgelig kan du tage tastaturer, men de skal færdiggøres, men jeg vil ikke rigtig klippe og lodde. Batterirummet er af denne type:

Og vi samler vores spilkonsol med en brødbræt (hvis du ønsker det, kan du selv lave et bræt). Vi vil blinke USBasp-programmereren, men enhver AVR vil gøre det.

Ledningsdiagram Komponenterne vil være som følger:

Displayet opretter forbindelse til I2C-busstifterne på mikrokontrolleren. Vi forbinder knapper til andre gratis pins. Tilføj også en afbryder for at tænde og slukke for systemet. Og grundlæggende er det alt, det gjenstår at tilslutte strømmen.
Firmware indlæses i mikrokontrolleren af ​​programmereren i henhold til følgende skema:
Miniature spilkonsol med Pong-spil

Lad os nu komme i gang med samlingen og arrangere alle elementerne på brødbrættet. Lad os prøve at samle og se, hvordan det hele ser ud.


Det viste sig ret asketisk. Ikke dårligt. Den overskydende del af brødbrættet kan saves.


Nu fixer vi alle komponenter bare ved at lodde deres ben.



Nu skal du forbinde konklusionerne i henhold til skemaet. Til dette formål anbefaler forfatteren at bruge en tynd kinesisk monteringsledning.

Og for nemheds skyld kan du bruge dette spejlforbindelsesdiagram.

Disse ledninger har en så tynd isolering, at du kan lodde dem direkte. Selve isoleringen smelter, og wiren loddes.

Fortsæt derefter med at forsegle batterirummet og kontakten. Rummet skal også monteres yderligere med en varm limpistol.


Det er alt sammen, systemet er samlet, det gjenstår at downloade firmwaren. Vi vil blinke “stenen” separat ved at forbinde den til programmereren på brødbrættet.


Firmwaren, som med alle forfatterens projekter, er i det offentlige domæne og kan downloades fra. På projektsiden finder du også et diagram og alle andre nødvendige oplysninger om dette projekt.

Vi vil ikke dvæle ved downloadet i detaljer, hvis noget ikke er klart, kan du altid se på de detaljerede instruktioner til forfatteren.
For firmware skal du bare installere Arduino ide, installer kernen til at arbejde med Attiny-seriens mikrokontrollere, vælg et bord, vælg en programmør.


Vælg derefter frekvensen på 8 eller 16 MHz, åbn fanen "Tools", find og vælg "Record Bootloader".

Der er ingen læsser der, men mikrokontrolleren vil være indstillet til den krævede frekvens. Vælg derefter fanen "Sketch" - "download via programmereren". Og vi venter, indtil skitsen er indlæst i mikrokontrolleren.

Nu tager vi "sten" og sætter den ind i hjertet af vores mini-spilkonsol.


Som du kan se, fungerer det! Og lad os nu se nærmere på, hvad vi har i firmwaren. ATtiny85 er en mikrocontroller med 512 bytes RAM, som er meget lille. 99% af bibliotekerne til at arbejde med en sådan skærm bruger en buffer på siden af ​​mikrokontrolleren til korrekt tegning af billedet, fordi dette display ikke kan læse data fra sin egen buffer, og det er der forresten.

Bufferen til denne visning på 128 * 32 pixels tager 512 bytes, hvis vi vil huske tilstanden for hver bit, det vil sige en pixel.
Ud over bufferen er vi også nødt til at gemme andre data, så denne mulighed passer bestemt ikke ind i hukommelsen i en sådan størrelse.

Derfor blev det besluttet at sænke skærmopløsningen til 64 * 16 pixels ved at buffere firkanter på 4 pixels.

Forfatteren arbejdede direkte med denne skærm og formåede at implementere sin idé med succes. En skitse kan komme til nytte for en der ønsker at arbejde med dette display ved hjælp af Attiny.


Nu med hensyn til selve spillet. Det fungerer ganske enkelt. Bolden bevæger sig på en separat timer, bevægelsen består i at slette et punkt med de samme koordinater og tilføje et nyt punkt i de nye koordinater.

Beregning af koordinater er simpelthen tilføjelsen af ​​hastighedsværdier til koordinaterne i displaysystemet.
Når bolden går ud over de vandrette vægge, spretter den simpelthen fra dem og ændrer den lodrette komponent af hastigheden til det modsatte, det vil sige med et minustegn (-).

Derudover kontrollerer programmet de vertikale grænser for spillefeltet, hvis bolden rammer ketsjeren (godt, eller hvad du end kalder det korrekt), så hopper det, og afvisningsvinklen er tilfældig.
Hvis bolden bryder væggen bag ketsjenten, har spilleren derfor mistet den aktuelle runde, og modstanderen får et point.

Bevægelsen af ​​spillerens racket implementeres på samme måde som bevægelsen af ​​bolden, det vil sige den gamle racket slettes, og en ny tegnes, allerede med nye koordinater. Koordinaterne ændres, når du klikker på knappen.
Således viser det sig meget hurtigere end at rengøre hele skærmen og gengive alle elementerne igen.


Nu til modstanderens ketcher. Det styres af AI (kunstig intelligens).

Kunstig intelligens siges naturligvis højlydt, men ikke desto mindre gør denne intelligens en meget enkel ting, nemlig at det får ketsjeren til at bevæge sig i den retning, hvor kuglen er nu, mens den prøver at rette sin midte langs den lodrette akse med kuglens lodrette koordinat. For virkelig at slå en sådan modstander gjorde forfatteren ham langsom, det vil sige, han beregner sit næste træk igen ved timeren, og har derfor måske ikke tid til at fange bolden og derved afvise ham.

Også i spillet implementeret mekanik med stigende kompleksitet. Hver 10. point til fordel for spilleren øges hastigheden på bolden. Sammen med dette vokser AI (modstanderens) reaktionshastighed også.

Som et resultat her er sådan en simpel lille Pong. Ikke for intet, dette videospil blev udviklet allerførst, fordi selv en begynderprogrammør kan skrive det. Men på trods af projektets tilsyneladende enkelhed, tog opstyret med det kinesiske display ca. 20 timers ren tid fra forfatteren. Samtidig tog han ikke hensyn til den tid, der blev brugt på at skrive koden til selve spillet og anden arbejdsgang med hensyn til fejlsøgning og opsætning af kredsløbet.



I denne ting er selve brødet samlingsprocessen, ikke applikationen.At udvikle spil, også disse enkle, kan være virkelig interessant. Især når du prøver at skubbe dem ind i en meget lille mikrocontroller. Og når det kinesiske display venter dig rundt om hjørnet ...

Det er alt. Tak for din opmærksomhed. Vi ses snart!

Forfatterens video:
6.5
5.5
5.5

Tilføj en kommentar

    • smilesmilxaxaokdontknowyahoonea
      bossscratchnarrejaja-jaaggressivhemmelighed
      undskylddansdance2dance3benådninghjælpdrikkevarer
      stop-vennergodgoodgoodfløjtedånetunge
      røgklappecrayerklærerspottendedon-t_mentiondownloade
      hedeirefullaugh1mdamødemoskingnegativ
      not_ipopcornstraffelæseskræmmeforskrækkelsersøg
      hånethank_youdetteto_clueumnikakutenig
      dårligbeeeblack_eyeblum3blushpralekedsomhed
      censureretpleasantrysecret2truesejryusun_bespectacled
      SHOKRespektlolprevedvelkommenkrutoyya_za
      ya_dobryihjælperenne_huliganne_othodiFludforbudtæt
1 kommentar
ketchup
i stedet for at plagiere, ville det være bedre at komme med dine egne

Vi råder dig til at læse:

Giv den til smartphonen ...