» elektronikk »Miniatyr spillkonsoll med Pong-spill

Miniatyr spillkonsoll med Pong-spill

hilsener innbyggerne på nettstedet vårt!
I dag har vi et prosjekt med et mikrospillkonsoll, som alle kan gjenta.


Nødvendige materialer og komponenter:








Denne håndboken er hentet fra AlexGyver YouTube-kanal. Mikrokontrolleren for dette prosjektet trenger dette:


Dette er Attiny85 i DIP-pakken, det vil være nok for oss. For ikke å lodde det, tar vi den såkalte stikkontakten.

Vi trenger også en skjerm med Aliexpress, OLED med en oppløsning på 128 x 32 piksler.


Pins er også nyttige.

Knapper vi vil bruke her er:

Selvfølgelig kan du ta tastaturer, men de må ferdigbehandles, men jeg vil egentlig ikke kutte og lodde. Batterirommet er av denne typen:

Og vi vil sette sammen spillkonsollen vår med en brødbrett (hvis du ønsker det, kan du lage et brett selv). Vi vil blinke USBasp-programmereren, men enhver AVR vil gjøre det.

Koblingsskjema Komponentene vil være som følger:

Displayet kobles til I2C-busstiftene på mikrokontrolleren. Vi kobler knapper til andre gratispinner. Legg også til en bryter for å slå av og på systemet. Og i utgangspunktet er det alt, det gjenstår å koble strømmen.
Fastvaren lastes inn i mikrokontrolleren av programmereren i henhold til følgende skjema:
Miniatyr spillkonsoll med Pong-spill

La oss nå sette i gang med monteringen og ordne alle elementene på brødbordet. La oss prøve å sette sammen og se hvordan det hele ser ut.


Det viste seg ganske asketisk. Ikke verst. Den overskytende delen av brødplaten kan sages av.


Nå fikser vi alle komponentene bare ved å lodde bena.



Nå må du koble konklusjonene i henhold til ordningen. For dette formålet anbefaler forfatteren å bruke en tynn kinesisk monteringsledning.

Og for enkelhets skyld kan du bruke dette speilede tilkoblingsskjemaet.

Disse ledningene har en så tynn isolasjon at du kan lodde dem direkte. Selve isolasjonen smelter og ledningen blir loddet.

Fortsett deretter med å tette batterirommet og bryteren. Rommet må også festes med en varm limpistol.


Vel, det er alt, systemet er satt sammen, det gjenstår å laste ned firmware. Vi vil blinke "steinen" separat ved å koble den til programmereren på brødbrettet.


Firmware, som for alle forfatterens prosjekter, er i det offentlige og kan lastes ned fra. Også på prosjektsiden finner du et diagram og all annen nødvendig informasjon om dette prosjektet.

Vi vil ikke dvele med nedlastningen i detalj, hvis noe ikke er klart, kan du alltid se på de detaljerte instruksjonene til forfatteren.
For firmware, bare installer Arduino ide, installer kjernen for å jobbe med Attiny-seriens mikrokontrollere, velg et brett, velg en programmerer.


Så velger vi frekvensen på 8 eller 16 MHz, åpner fanen “Verktøy”, finner og velger “Record Loader”.

Det er ingen laster der, men mikrokontrolleren vil være innstilt til ønsket frekvens. Velg deretter "Sketch" -fanen - "last ned via programmereren". Og vi venter til skissen er lagt inn i mikrokontrolleren.

Nå tar vi ut “steinen” og setter den inn i hjertet av min spillkonsoll.


Som du ser, fungerer det! Og la oss nå se nærmere på hva vi har i firmware. ATtiny85 er en mikrokontroller med 512 byte RAM, som er veldig liten. 99% av bibliotekene for å jobbe med en slik skjerm bruker en buffer på siden av mikrokontrolleren for å tegne bildet riktig, fordi dette displayet ikke kan lese data fra sin egen buffer, og det er der forresten.

Bufferen for denne visningen på 128 * 32 piksler vil ta 512 byte, hvis vi vil huske tilstanden til hver bit, det vil si en piksel.
I tillegg til bufferen, trenger vi også å lagre andre data, så dette alternativet passer absolutt ikke i minnet på en slik størrelse.

Derfor ble det besluttet å senke skjermoppløsningen til 64 * 16 piksler ved å buffere firkanter på 4 piksler.

Forfatteren jobbet direkte med denne skjermen og klarte å implementere ideen sin. En skisse kan komme til nytte for noen som vil jobbe med denne skjermen ved å bruke Attiny.


Nå med hensyn til selve spillet. Det fungerer ganske enkelt. En ball beveger seg på en egen tidtaker, bevegelsen består i å slette et punkt med de samme koordinatene og legge til et nytt punkt i de nye koordinatene.

Beregning av koordinater er ganske enkelt tilføyelsen av hastighetsverdier til koordinatene i skjermsystemet.
Når ballen går utover de horisontale veggene, spretter den ganske enkelt av dem, og endrer den vertikale komponenten av hastigheten til det motsatte, det vil si med et minustegn (-).

I tillegg sjekker programmet de vertikale grensene for spillefeltet, hvis ballen treffer racketen (vel, eller hva du kaller det riktig), så spretter den, og avvisningsvinkelen er tilfeldig.
Hvis ballen bryter veggen bak racketen, har derfor spilleren tapt den aktuelle runden, og motstanderen får et poeng.

Bevegelsen av spillerens racket implementeres på samme måte som bevegelsen av ballen, det vil si at den gamle racketen slettes og en ny tegnes, allerede med nye koordinater. Koordinatene endres når du klikker på knappen.
Dermed viser det seg mye raskere enn å rengjøre hele skjermen og gjengi alle elementene igjen.


Nå for motstanderens racket. Det styres av AI (kunstig intelligens).

Kunstig intelligens sies selvfølgelig høyt, men allikevel gjør denne intelligensen en veldig enkel ting, nemlig at den får racketen til å bevege seg i retningen der ballen er nå, mens du prøver å rette senteret langs den vertikale aksen med ballens vertikale koordinat. For å virkelig slå en slik motstander, gjorde forfatteren ham treg, det vil si at han beregner sitt neste trekk igjen med tidtakeren, og har dermed kanskje ikke tid til å fange ballen og derved avvise ham.

Også i spillet implementert mekanikk av økende kompleksitet. Hver 10. poeng til fordel for spilleren øker hastigheten på ballen. Sammen med dette øker også reaksjonshastigheten til AI (motstander).

Som et resultat er her en så enkel liten Pong. Ikke for ingenting, dette videospillet ble utviklet aller først, fordi selv en nybegynner-programmerer kan skrive det. Til tross for prosjektets tilsynelatende enkelhet, tok oppstyret med den kinesiske skjermen omtrent 20 timer med ren tid fra forfatteren. Samtidig tok han ikke hensyn til tidsbruken til å skrive koden til selve spillet og annen arbeidsflyt relatert til feilsøking og konfigurering av kretsen.



I denne tingen er selve surret monteringsprosessen, ikke applikasjonen.Å utvikle spill, også de enkle, kan være veldig interessant. Spesielt når du prøver å skyve dem inn i en veldig liten mikrokontroller. Og når det kinesiske displayet venter deg rundt hjørnet ...

Det er alt. Takk for oppmerksomheten. Vi ses snart!

Forfatterens video:
6.5
5.5
5.5

Legg til en kommentar

    • smilersmilerxaxaokdontknowyahoonea
      sjefscratchlurejaja-jaaggressivhemmelighet
      beklagerdansedance2dance3benådninghjelpdrikkevarer
      stoppvennergodgoodgoodfløytebesvimelsetunge
      røykklappingCrayerklærehånligdon-t_mentionnedlasting
      heteirefullaugh1MDAmøtemoskingnegative
      not_ipopcornstraffeleseskremmeskremmersøk
      spydighetthank_youdetteto_clueumnikakuttenig
      dårligbeeeblack_eyeblum3rødmeskrytekjedsomhet
      sensurertpleasantrysecret2trueseieryusun_bespectacled
      ShokRespektlolPrevedvelkommenKrutoyya_za
      ya_dobryihelperne_huliganne_othodiFLUDforbudnær
1 kommentar
ketchup
i stedet for å plagiere, ville det være bedre å komme med dine egne

Vi anbefaler deg å lese:

Gi den til smarttelefonen ...