» elettronica »Console di gioco in miniatura con gioco Pong

Console di gioco in miniatura con gioco Pong

saluti gli abitanti del nostro sito!
Oggi abbiamo un progetto con una console per micro giochi, che chiunque può ripetere.


Materiali e componenti necessari:








Questo manuale è stato tratto dal canale YouTube di AlexGyver. Il microcontrollore per questo progetto ha bisogno di questo:


Questo è Attiny85 nel pacchetto DIP, sarà sufficiente per noi. Per non saldarlo, prendiamo il cosiddetto socket.

Abbiamo anche bisogno di un display con Aliexpress, OLED con una risoluzione di 128 per 32 pixel.


Anche i pin sono utili.

I pulsanti che utilizzeremo qui sono:

Certo, puoi prendere le tastiere, ma dovranno essere finalizzate, ma non voglio davvero tagliare e saldare. Il vano batterie è di questo tipo:

E assembliamo la nostra console di gioco con una breadboard (se lo desideri, puoi creare tu stesso una scheda). Faremo lampeggiare il programmatore USBasp, ma qualsiasi AVR lo farà.

Schema elettrico I componenti saranno i seguenti:

Il display si collega ai pin del bus I2C del microcontrollore. Colleghiamo i pulsanti ad altri pin gratuiti. Aggiungi anche un interruttore per accendere / spegnere il sistema. E fondamentalmente è tutto, resta da collegare la potenza.
Il firmware viene caricato nel microcontrollore dal programmatore secondo il seguente schema:
Console di gioco in miniatura con gioco Pong

Ora iniziamo con l'assemblaggio e disponiamo tutti gli elementi sulla breadboard. Proviamo a assemblare e vedere come appare tutto.


Si è rivelato abbastanza ascetico. Non male. La parte in eccesso della breadboard può essere segata.


Ora ripariamo tutti i componenti semplicemente saldando le gambe.



Ora è necessario collegare le conclusioni secondo lo schema. A tale scopo, l'autore consiglia di utilizzare un filo di montaggio cinese sottile.

E per comodità, è possibile utilizzare questo diagramma di connessione speculare.

Questi fili hanno un isolamento così sottile che puoi saldarli direttamente. L'isolamento stesso si scioglierà e il filo verrà saldato.

Quindi procedere alla sigillatura del vano batteria e dell'interruttore. Il compartimento deve inoltre essere fissato con una pistola per colla a caldo.


Bene, tutto qui, il sistema è assemblato, resta da scaricare il firmware. Faremo lampeggiare la "pietra" separatamente collegandola al programmatore sulla breadboard.


Il firmware, come per tutti i progetti dell'autore, è di dominio pubblico e può essere scaricato da. Inoltre nella pagina del progetto troverai un diagramma e tutte le altre informazioni necessarie su questo progetto.

Non ci soffermeremo sul download in dettaglio, se qualcosa non è chiaro, puoi sempre guardare l'autore per istruzioni dettagliate.
Per il firmware, basta installare Arduino ide, installa il kernel per lavorare con i microcontrollori della serie Attiny, seleziona una scheda, scegli un programmatore.


Quindi selezioniamo la frequenza di 8 o 16 MHz, apriamo la scheda "Strumenti", troviamo e selezioniamo "Record Loader".

Non c'è caricatore lì, ma il microcontrollore sarà sintonizzato sulla frequenza richiesta. Quindi selezionare la scheda "Schizzo" - "scarica tramite il programmatore". E aspettiamo che lo schizzo sia caricato nel microcontrollore.

Ora estraiamo la "pietra" e la inseriamo nel cuore della nostra mini console di gioco.


Come puoi vedere, funziona! E ora diamo un'occhiata più da vicino a ciò che abbiamo nel firmware. ATtiny85 è un microcontrollore con 512 byte di RAM, che è molto piccolo. Il 99% delle librerie per lavorare con un simile display utilizza un buffer sul lato del microcontrollore per ridisegnare correttamente l'immagine, poiché questo display non è in grado di leggere i dati dal proprio buffer ed è comunque presente.

Il buffer per questo display di 128 * 32 pixel richiederà 512 byte, se vogliamo ricordare lo stato di ogni bit, ovvero un pixel.
Oltre al buffer, dobbiamo anche memorizzare altri dati, quindi questa opzione non si adatta sicuramente alla memoria di tali dimensioni.

Pertanto, è stato deciso di ridurre la risoluzione del display a 64 * 16 pixel bufferando i quadrati di 4 pixel.

L'autore ha lavorato direttamente con questo display e è riuscito a implementare con successo la sua idea. Uno schizzo potrebbe tornare utile per chi desidera lavorare con questo display utilizzando Attiny.


Ora per quanto riguarda il gioco stesso. Funziona abbastanza semplicemente. Una palla si muove su un timer separato, il movimento consiste nell'eliminare un punto con le stesse coordinate e aggiungere un nuovo punto nelle nuove coordinate.

Il calcolo delle coordinate è semplicemente l'aggiunta di valori di velocità alle coordinate nel sistema di visualizzazione.
Quando la palla supera le pareti orizzontali, rimbalza semplicemente su di esse, cambiando la componente verticale della velocità al contrario, cioè con un segno meno (-).

Inoltre, il programma controlla i confini verticali del campo di gioco, se la palla colpisce la racchetta (bene, o come la chiami bene), quindi rimbalza e l'angolo di rimbalzo è casuale.
Se la palla rompe il muro dietro la racchetta, quindi, il giocatore ha perso il round corrente e l'avversario riceve un punto.

Il movimento della racchetta del giocatore viene implementato allo stesso modo del movimento della palla, ovvero la vecchia racchetta viene cancellata e una nuova viene disegnata, già con nuove coordinate. Le coordinate cambiano quando si fa clic sul pulsante.
Pertanto, risulta molto più veloce della pulizia dell'intero display e del rendering di nuovo di tutti gli elementi.


Ora per la racchetta dell'avversario. È controllato dall'intelligenza artificiale (intelligenza artificiale).

Bene, naturalmente si dice ad alta voce l'intelligenza artificiale, ma tuttavia questa intelligenza fa una cosa molto semplice, vale a dire, fa muovere la racchetta nella direzione in cui si trova ora la palla, mentre cerca di allineare il suo centro lungo l'asse verticale con la coordinata verticale della palla. Per battere davvero un tale avversario, l'autore lo ha rallentato, cioè calcola di nuovo la sua prossima mossa dal timer, e quindi potrebbe non avere il tempo di prendere la palla e quindi respingerlo.

Anche nel gioco sono state implementate meccaniche di crescente complessità. Ogni 10 punti a favore del giocatore, la velocità della palla aumenta. Insieme a questo, aumenta anche la velocità di reazione dell'IA (avversaria).

Di conseguenza, ecco un piccolo Pong così semplice. Non per niente, questo videogioco è stato sviluppato per primo, perché anche un programmatore inesperto può scriverlo. Ma nonostante l'apparente semplicità del progetto, la confusione con il display cinese ha richiesto all'autore circa 20 ore di tempo puro. Allo stesso tempo, non ha tenuto conto del tempo impiegato per scrivere il codice del gioco stesso e altri flussi di lavoro relativi al debug e alla configurazione del circuito.



In questa cosa, il ronzio stesso è il processo di assemblaggio, non l'applicazione.Lo sviluppo di giochi, anche quelli semplici, può essere davvero molto interessante. Soprattutto quando provi a spingerli in un microcontrollore molto piccolo. E quando il display cinese ti aspetta dietro l'angolo ...

Tutto qui. Grazie per l'attenzione. A presto!

Video dell'autore:
6.5
5.5
5.5

Aggiungi un commento

    • sorrideresorrisiXaxabeneDONTKNOWyahoonea
      capozeroimbrogliaresìSì-sìaggressivosegreto
      scusaballaredance2dance3perdonoaiutobevande
      arrestoamicibuonogoodgoodfischiodeliquiolinguetta
      fumobattimanicraydeclarederisoriodon-t_mentionscaricare
      caloreadiratolaugh1mdaincontromoskingnegativo
      not_ipopcornpunireleggerespaventarespaventacerca
      schernirethank_youquestoto_clueumnikacutoconcordare
      cattivobeeeblack_eyeblum3arrossirevanterianoia
      censuratospiritosagginesecret2minacciarevittoriayusun_bespectacled
      ShokRespektlolPrevedbenvenutoKrutoyya_za
      ya_dobryiaiutantene_huliganne_othodiFludbandovicino
1 commento
ketchup
invece di plagiare sarebbe meglio inventare il tuo

Ti consigliamo di leggere:

Passalo per lo smartphone ...