Nykyään meillä on projekti mikropelikonsolilla, jonka kuka tahansa voi toistaa.
Tarvittavat materiaalit ja komponentit:
Tämä opas on otettu AlexGyver YouTube -kanavalta. Projektin mikro-ohjain tarvitsee tämän:
Tämä on Attiny85 DIP-paketissa, se riittää meille. Otamme ns. Pistorasian, jotta sitä ei juotettaisi.
Tarvitsemme myös näytön, jossa on Aliexpress, OLED, resoluutiolla 128 x 32 pikseliä.
Tapit ovat myös hyödyllisiä.
Tässä käytettävät painikkeet ovat:
Tietysti voit ottaa näppäimistöjä, mutta ne on viimeistelty, mutta en todellakaan halua leikata ja juottaa. Paristolokero on tyyppiä:
Kokoonpanamme pelikonsolimme leivänpäällä (jos haluat, voit itse tehdä sen). Salamamme USBasp-ohjelmoijan, mutta AVR tekee sen.
Kytkentäkaavio Komponentit ovat seuraavat:
Näyttö kytketään mikro-ohjaimen I2C-väylätappeihin. Yhdistämme painikkeet muihin ilmaisiin tappeihin. Lisää myös kytkin järjestelmän päälle / pois päältä. Ja pohjimmiltaan kaikki, se on vain kytkeä virta.
Ohjelmoija lataa laiteohjelmiston mikro-ohjaimeen seuraavan kaavan mukaisesti:
Aloitetaan nyt kokoonpano ja järjestetään kaikki elementit leipätaululle. Yritetään koota ja nähdä miten se kaikki näyttää.
Se osoittautui melko askeettiseksi. Ei paha. Leipälevyn ylimääräinen osa voidaan sahaa pois.
Nyt korjaamme kaikki komponentit juottamalla niiden jalat.
Nyt sinun on kytkettävä johtopäätökset järjestelmän mukaan. Tätä tarkoitusta varten kirjoittaja suosittelee ohuen kiinalaisen kiinnityslangan käyttöä.
Ja mukavuuden vuoksi voit käyttää tätä peilattua kytkentäkaaviota.
Näillä johdoilla on niin ohut eristys, että voit juottaa ne suoraan. Itse eristys sulaa ja lanka juotetaan.
Jatka sitten paristolokeron ja kytkimen sulkemiseen. Lokero on myös kiinnitettävä lisäksi kuumalla liimapistoolilla.
No, siinä kaikki, järjestelmä on koottu, jää jäljellä laiteohjelmiston lataaminen. Salamaamme "kivi" erikseen kytkemällä sen leipäpuolen ohjelmoijaan.
Laiteohjelmisto, kuten kaikki tekijän projektit, on julkista aluetta ja se voidaan ladata osoitteesta. Myös projektisivulta löydät kaavion ja kaikki muut tarvittavat tiedot tästä projektista.
Emme pidä lataamisesta yksityiskohtaisesti, jos jotain ei ole selvää, voit aina tarkistaa kirjoittajan ohjeet.
Asenna vain laiteohjelmisto Työläs ide, asenna ydin Attiny-sarjan mikrokontrollerien kanssa työskentelemiseen, valitse kortti ja valitse ohjelmoija.
Sitten valitsemme taajuuden 8 tai 16 MHz, avaa ”Työkalut” -välilehti, löydä ja valitse ”Tallennuslaite”.
Latauslaitetta ei ole, mutta mikrokontrolleri viritetään vaaditulle taajuudelle. Valitse sitten ”Sketch” -välilehti - “Lataa ohjelmoijan kautta”. Ja odotamme, kunnes luonnos ladataan mikro-ohjaimeen.
Nyt otamme “kiven” pois ja asetamme sen minipelikonsolin sydämeemme.
Kuten huomaat, se toimii! Ja nyt katsotaanpa tarkemmin mitä meillä on firmware. ATtiny85 on mikrokontrolleri, jossa on 512 tavua RAM-muistia, mikä on hyvin pieni. 99% kirjastoista, jotka työskentelevät tällaisen näytön kanssa, käyttävät puskuria mikrokontrollerin sivulla kuvan oikein piirtämiseen, koska tämä näyttö ei voi lukea tietoja omasta puskuristaan, ja se on muuten olemassa.
Tämän 128 * 32 pikselin näytön puskuri vie 512 tavua, jos haluamme muistaa kunkin bitin, toisin sanoen pikselin, tilan.
Puskurin lisäksi meidän on tallennettava myös muita tietoja, joten tämä vaihtoehto ei varmasti sovi tällaisen koon muistiin.
Siksi päätettiin alentaa näytön tarkkuus 64 * 16 pikseliin puskuroimalla 4 pikselin neliöt.
Kirjailija työskenteli tämän näytön kanssa suoraan ja onnistui onnistuneesti toteuttamaan ideansa. Luonnos voi olla hyödyllinen henkilölle, joka haluaa työskennellä tämän näytön kanssa Attyyn avulla.
Nyt itse peliin. Se toimii yksinkertaisesti. Pallo liikkuu erillisellä ajastimella, liike koostuu pisteen poistamisesta samoilla koordinaateilla ja uuden pisteen lisäämisestä uusiin koordinaateihin.
Koordinaattien laskeminen on yksinkertaisesti nopeusarvojen lisäämistä näyttöjärjestelmän koordinaateihin.
Kun pallo menee vaakasuuntaisten seinien ulkopuolelle, se vain poistuu niistä, muuttamalla nopeuden pystysuuntaista komponenttia vastakkaiselle, ts. Miinusmerkillä (-).
Lisäksi ohjelma tarkistaa pelikentän pystysuuntaiset rajat, jos pallo osuu mailaan (hyvin tai mihin tahansa sitä oikein kutsut), sitten se pomppii, ja pomppukulma on satunnainen.
Jos pallo murtaa mailan takana olevan seinän, pelaaja on siis menettänyt nykyisen kierroksen ja vastustaja saa pisteen.
Pelaajan mailan liike toteutetaan samalla tavalla kuin pallon liike, eli vanha maila poistetaan ja uusi piirretään, jo uusilla koordinaateilla. Koordinaatit muuttuvat, kun napsautat painiketta.
Siksi se osoittautuu paljon nopeammaksi kuin koko näytön puhdistaminen ja kaikkien elementtien renderointi uudelleen.
Nyt vastustajan maila. Sitä hallitsee AI (tekoäly).
No, keinotekoinen älykkyys sanotaan tietysti äänekkäästi, mutta silti tämä älykkyys tekee hyvin yksinkertaisen asian, nimittäin se saa mailan liikkumaan siihen suuntaan, missä pallo on nyt, yrittäen kohdistaa sen keskipistettä pystyakselia pitkin pallon pystysuuntaiseen koordinaattiin. Voidakseen todella voittaa sellaisen vastustajan, kirjailija sai hänet hitaaksi, toisin sanoen, hän laskee seuraavan liikkeensä uudelleen ajastimella, joten hänellä ei ehkä ole aikaa tarttua palloon ja siten hylätä häntä.
Myös pelissä toteutettu mekaniikka yhä monimutkaisemmaksi. Jokainen 10 pistettä pelaajalle, pallon nopeus kasvaa. Samanaikaisesti myös AI: n (vastustajan) reaktionopeus kasvaa.
Seurauksena on tässä niin yksinkertainen pieni Pong. Ei mitään, tämä videopeli kehitettiin aivan ensimmäiseksi, koska jopa aloitteleva ohjelmoija osaa kirjoittaa sen. Mutta projektin näennäisestä yksinkertaisuudesta huolimatta kiina Kiinan näyttelyn kanssa kesti kirjailijalta noin 20 tuntia puhdasta aikaa. Samanaikaisesti hän ei ottanut huomioon itse pelikoodin kirjoittamiseen kuluvaa aikaa ja muuta virheenkorjaukseen ja piirin asettamiseen liittyvää työnkulkua.
Tässä asiassa itse buzz on kokoamisprosessi, ei sovellus.Pelien, jopa sellaisten yksinkertaisten, kehittäminen voi olla todella mielenkiintoista. Varsinkin kun yrität työntää ne erittäin pieneen mikrokontrolleriin. Ja kun kiinalainen näyttö odottaa sinua nurkan takana ...
Siinä kaikki. Kiitos huomiosta. Nähdään pian!
Tekijän video: