» Electronics »Miniature game console na may Pong game

Miniature game console na may Pong game

Pagbati ang mga naninirahan sa aming site!
Ngayon mayroon kaming isang proyekto na may isang micro game console, na maaaring ulitin ng sinuman.


Mga kinakailangang materyales at sangkap:








Ang manwal na ito ay kinuha mula sa channel ng YouTube AlexGyver. Ang microcontroller para sa proyektong ito ay nangangailangan ng:


Ito ay Attiny85 sa package ng DIP, ito ay magiging sapat para sa amin. Upang hindi ito maibenta, kinuha namin ang tinatawag na socket.

Kailangan din namin ng isang display kasama ang Aliexpress, OLED na may isang resolution ng 128 sa pamamagitan ng 32 mga pixel.


Ang mga Pins din ay madaling gamitin.

Ang mga pindutan na gagamitin namin dito ay:

Siyempre, maaari kang kumuha ng mga keyboard, ngunit kakailanganin nilang tapusin, ngunit hindi ko talaga nais na i-cut at solder. Ang baterya kompartimento ay sa ganitong uri:

At tipunin namin ang aming console ng laro sa isang breadboard (kung nais mo, maaari kang gumawa ng isang board mismo). I-flash namin ang programer ng USBasp, ngunit gagawin ang anumang AVR.

Diagram ng mga kable Ang mga sangkap ay ang mga sumusunod:

Nag-uugnay ang display sa mga pin ng I2C bus ng microcontroller. Ikinonekta namin ang mga pindutan sa iba pang mga libreng pin. Magdagdag din ng isang switch upang i-on / off ang system. At talaga ang lahat, ito ay nananatiling ikonekta ang kapangyarihan.
Ang firmware ay nai-load sa microcontroller ng programmer ayon sa sumusunod na pamamaraan:
Miniature game console na may Pong game

Ngayon magsimula tayo sa pagpupulong at ayusin ang lahat ng mga elemento sa breadboard. Subukan nating tipunin at tingnan kung paano ito nakikita.


Ito ay naging napaka-ascetic. Hindi masama. Ang labis na bahagi ng breadboard ay maaaring makita sa labas.


Ngayon ayusin namin ang lahat ng mga sangkap sa pamamagitan lamang ng paghihinang ng kanilang mga binti.



Ngayon kailangan mong ikonekta ang mga konklusyon ayon sa pamamaraan. Para sa layuning ito, inirerekumenda ng may-akda ang paggamit ng isang manipis na pag-mount na wire ng China.

At para sa kaginhawahan, maaari mong gamitin ang diagram na may mirrored na koneksyon.

Ang mga wires na ito ay may tulad na isang manipis na pagkakabukod na maaari mong direktang ibebenta ang mga ito. Ang pagkakabukod mismo ay matunaw at ang wire ay ibebenta.

Pagkatapos ay magpatuloy sa pag-sealing ng kompartimento ng baterya at ang switch. Ang kompartimento ay dapat ding naidagdag na may isang mainit na baril na pandikit.


Well, iyon lang, ang sistema ay natipon, nananatili itong i-download ang firmware. Magkislap kami ng "bato" nang hiwalay sa pamamagitan ng pagkonekta nito sa programmer sa breadboard.


Ang firmware, tulad ng lahat ng mga proyekto ng may-akda, ay nasa pampublikong domain at mai-download mula sa. Gayundin sa pahina ng proyekto ay makikita mo ang isang diagram at lahat ng iba pang kinakailangang impormasyon sa proyektong ito.

Hindi kami tatahan sa pag-download nang detalyado, kung ang isang bagay ay hindi malinaw, kung gayon maaari mong palaging tumingin sa may-akda para sa detalyadong mga tagubilin.
Para sa firmware, i-install lamang Arduino ideyo, i-install ang kernel para sa pakikipagtulungan sa mga microcontroller ng serye, pumili ng isang board, pumili ng isang programmer.


Pagkatapos ay pipiliin namin ang dalas ng 8 o 16 MHz, buksan ang tab na "Mga tool", hanapin at piliin ang "Record Loader".

Walang loader doon, ngunit ang microcontroller ay mai-tono sa kinakailangang dalas. Pagkatapos ay piliin ang tab na "Sketch" - "i-download sa pamamagitan ng programmer". At naghihintay kami hanggang sa ang sketch ay na-load sa microcontroller.

Ngayon inilalabas namin ang "bato" at inilalagay ito sa puso ng aming mini gaming console.


Tulad ng nakikita mo, gumagana ito! At ngayon tingnan natin kung ano ang mayroon tayo sa firmware. Ang ATtiny85 ay isang microcontroller na may 512 byte ng RAM, na napakaliit. Ang 99% ng mga aklatan para sa pagtatrabaho sa tulad ng isang display ay gumagamit ng isang buffer sa gilid ng microcontroller upang mai-redraw ang larawan, dahil ang pagpapakita na ito ay hindi makakabasa ng data mula sa sarili nitong buffer, at naroroon ito.

Ang buffer para sa pagpapakita ng 128 * 32 mga pixel ay kukuha ng 512 byte, kung nais naming matandaan ang estado ng bawat bit, iyon ay, isang pixel.
Bilang karagdagan sa buffer, kailangan din nating mag-imbak ng iba pang data, kaya ang pagpipiliang ito ay tiyak na hindi umaangkop sa memorya ng tulad ng isang sukat.

Samakatuwid, napagpasyahan na babaan ang resolution ng pagpapakita sa 64 * 16 na mga piksel sa pamamagitan ng mga buffering square na 4 na mga pixel.

Ang may-akda ay nagtrabaho sa display na ito nang direkta at pinamamahalaang upang matagumpay na ipatupad ang kanyang ideya. Ang isang sketch ay maaaring madaling magamit para sa isang taong nais na gumana sa pagpapakita na ito gamit ang Attiny.


Ngayon tungkol sa laro mismo. Gumagana ito nang simple. Ang isang bola ay gumagalaw sa isang hiwalay na timer, ang kilusan ay binubuo sa pagtanggal ng isang punto na may parehong mga coordinate at pagdaragdag ng isang bagong punto sa mga bagong coordinate.

Ang pagkalkula ng mga coordinate ay simpleng pagdaragdag ng mga halaga ng bilis sa mga coordinate sa system ng pagpapakita.
Kapag ang bola ay lumampas sa mga pahalang na pader, binawi lamang nito ang mga ito, binabago ang vertical na bahagi ng bilis sa kabaligtaran, iyon ay, na may isang minus sign (-).

Bilang karagdagan, sinusuri ng programa ang mga patayong mga hangganan ng patlang ng paglalaro, kung ang bola ay tumama sa raketa (na rin, o anuman ang tinawag mo nang tama), pagkatapos ito ay nagba-bounce, at ang anggulo ng bounce ay random.
Kung sinira ng bola ang pader sa likod ng raketa, samakatuwid, ang player ay nawala sa kasalukuyang pag-ikot, at ang kalaban ay tumatanggap ng isang punto.

Ang paggalaw ng raketa ng manlalaro ay ipinatupad sa parehong paraan tulad ng paggalaw ng bola, iyon ay, ang lumang raketa ay tinanggal at ang isang bago ay iguguhit, mayroon nang mga bagong coordinate. Nagbabago ang mga coordinate kapag nag-click ka sa pindutan.
Kaya, lumiliko ito nang mas mabilis kaysa sa paglilinis ng buong pagpapakita at muling pag-render ng lahat ng mga elemento.


Ngayon para sa raket ng kalaban. Ito ay kinokontrol ng AI (artipisyal na katalinuhan).

Sa gayon, ang artipisyal na katalinuhan ay malakas na sinabi ng kurso, ngunit gayunpaman, ang katalinuhan na ito ay gumagawa ng isang napaka-simpleng bagay, lalo na, ginagawa nitong ilipat ang racket sa direksyon kung saan ang bola ngayon, habang sinusubukang ihanay ang gitna nito sa kahabaan ng patayong axis na may vertical coordinate ng bola. Upang talagang matalo ang tulad ng isang kalaban, ginawa ng may-akda ang kanyang mabagal, iyon ay, kinakalkula niya ang kanyang susunod na paglipat muli ng timer, at sa gayon ay maaaring magkaroon ng oras upang mahuli ang bola at sa gayon ay itaboy siya.

Gayundin sa laro naipatupad mekanika ng pagtaas ng pagiging kumplikado. Ang bawat 10 puntos na pabor sa player, ang bilis ng bola ay nagdaragdag. Kasabay nito, ang bilis ng reaksyon ng AI (kalaban) ay lumalaki din.

Bilang isang resulta, narito ang isang simpleng maliit na Pong. Hindi para sa wala, ang larong ito ng video ay binuo ng una, sapagkat kahit isang baguhan na programmer ay maaaring sumulat nito. Ngunit sa kabila ng maliwanag na pagiging simple ng proyekto, ang pag-aalsa sa pagpapakita ng Intsik ay tumagal ng halos 20 oras ng purong oras mula sa may-akda. Kasabay nito, hindi niya isinasaalang-alang ang oras na ginugol sa pagsulat ng code ng laro mismo at iba pang daloy ng trabaho na may kaugnayan sa pag-debug at pag-set up ng circuit.



Sa bagay na ito, ang buzz mismo ay ang proseso ng pagpupulong, hindi ang application.Ang pagbuo ng mga laro, kahit na ang mga simpleng iyan, ay maaaring maging talagang kawili-wili. Lalo na kung sinubukan mong itulak ang mga ito sa isang napakaliit na microcontroller. At kapag ang display ng Intsik ay naghihintay sa iyo sa paligid ng sulok ...

Iyon lang. Salamat sa iyong pansin. Makita ka agad!

Video ng may-akda:
6.5
5.5
5.5

Magdagdag ng isang puna

    • ngitinakangitixaxaok langhindi alamyahoonea
      bosskumamottangaoooo-ooagresibolihim
      sorrysayawsayaw2sayaw3kapatawarantumulonginumin
      humintomga kaibiganmabutigoodgoodsipolswoondila
      usokpumapalakpakkrayolaipahayagnakakainisdon-t_mentionpag-download
      initnakakainistumawa1mdapagpupulongnakikipag-usapnegatibo
      hindi_ipopcornparusahanbasahintakottakotpaghahanap
      panunuyasalamat_youitoto_clueumniktalamaksumang-ayon
      masamabeeeblack_eyeblum3namulamagyabanginip
      censoredkaaya-ayalihim2nagbabantatagumpayyusun_bespectacled
      shokrespektlolnagustuhanmaligayang pagdatingkrutoyya_za
      ya_dobryikatulongne_huliganne_othodimapusokpagbabawalmalapit
1 komentaryo
ketchup
sa halip na pag-plagiarizing ay mas mahusay na makabuo ng iyong sarili

Pinapayuhan ka naming basahin:

Ipasa ito para sa smartphone ...