Sommario:

Pong Tennis con matrice LED, Arduino e joystick: 5 passaggi (con immagini)
Pong Tennis con matrice LED, Arduino e joystick: 5 passaggi (con immagini)

Video: Pong Tennis con matrice LED, Arduino e joystick: 5 passaggi (con immagini)

Video: Pong Tennis con matrice LED, Arduino e joystick: 5 passaggi (con immagini)
Video: Arduino Snake Game Project - LED Matrix + Joystick 2024, Dicembre
Anonim
Pong Tennis con matrice LED, Arduino e joystick
Pong Tennis con matrice LED, Arduino e joystick

Questo progetto è destinato sia ai principianti che agli esperti di bricolage. A un livello base può essere fatto con una breadboard, dei ponticelli e attaccato a un pezzo di materiale di scarto (ho usato il legno) con Blu-Tack e senza saldature. Tuttavia, a un livello più avanzato, può essere saldato su una scheda perf o su un PCB personalizzato.

Dato che si trattava di un progetto di blocco, non avevo accesso a molti strumenti o materiali, quindi perché è rimasto bloccato su un pezzo di legno di scarto che è leggermente troppo piccolo con Blu-Tack, tuttavia nonostante questo è un progetto divertente che si riunisce rapidamente ed è composto da parti comunemente disponibili che possono essere trovate a buon mercato online.

Passaggio 1: parti

Per realizzare il Pong Game di cui hai bisogno;

  • 1x Un Arduino (qualsiasi tipo funzionerà)
  • 4x MAX7219 8x8 matrici LED
  • 2x joystick
  • 1x cicalino piezoelettrico (opzionale)
  • 15x cavi jumper femmina-femmina (3x gruppi di 5)
  • 15x cavi jumper maschio-femmina (3x gruppi di 5)
  • 18x cavi jumper maschio-maschio
  • 1x tagliere
  • 1x resistenza da 220Ω

Invece di una scheda Arduino Uno o Nano puoi usare un Arduino basato su breadboard con;

  • 1x CI ATmega328p 28pin
  • 1x oscillatore a cristallo da 16kHz
  • Condensatori ceramici 2x 22pF
  • 1x convertitore USB FTDI UART
  • 1x condensatore elettrolitico da 100uF
  • 1x Micro USB Breakout (opzionale)

Utensili;

  • PC con Arduino IDE (e libreria LedControl)
  • Cavo USB rilevante per il tuo Arduino
  • Power Bank per alimentare il gioco lontano dal tuo computer

Passaggio 2: cablaggio

Cablaggio
Cablaggio
Cablaggio
Cablaggio

Il cablaggio è molto semplice in quanto tutto ciò che serve sono i ponticelli per collegare le intestazioni delle matrici e dei joystick ad Arduino. L'unica complicazione è la potenza in quanto Arduino Uno ha solo 3 connessioni GND e una connessione 5v. È qui che entra in gioco la breadboard e funge da binario di distribuzione dell'alimentazione per tutti i componenti. Se stai utilizzando un NANO, la breadboard servirà allo stesso scopo oltre a consentirti di collegare tutto.

Per il cablaggio seguire questi collegamenti.

  • Joystick sinistro - GND e 5v ai rispettivi power rail. SW - pin 9, VRx - A0, VRy - A1.
  • Joystick destro - GND e 5v ai rispettivi power rail. SW - pin 8, VRx - A2, VRy - A3.
  • Matrice LED più a destra - GND e 5v ai rispettivi binari di alimentazione. DIN - 13, CS - 11, CLK - 12. (Come riga 25)
  • Tutte le altre matrici LED possono essere collegate a margherita dall'uscita della prima andando da destra a sinistra in modo che il codice funzioni correttamente.
  • Buzzer opzionale - Anodo(+) tramite resistore di limitazione della corrente da 220Ω al pin 10, Catodo(-) - GND.

Passaggio 3: cablaggio alternativo

Cablaggio alternativo
Cablaggio alternativo
Cablaggio alternativo
Cablaggio alternativo
Cablaggio alternativo
Cablaggio alternativo

Dopo averlo cablato con un Arduino UNO per risparmiare spazio, ho deciso di mettere l'IC Arduino dell'UNO sulla breadboard con un oscillatore a cristallo da 16 Mhz e una coppia di condensatori da 22 pF da ciascun lato a terra. Ritengo che questa sia stata una modifica utile in quanto rende il progetto più ordinato e più rifinito, tuttavia è necessario utilizzare un programmatore USB FTDI per aggiornare il programma.

Passaggio 4: codice + spiegazione

Per caricare il codice su Arduino scarica la libreria LedControl da GitHub qui, github.com/wayoda/LedControl e aggiungi il file Zip o aggiungilo tramite il Gestore della libreria all'interno dell'IDE. Dopodiché apri lo schizzo allegato, seleziona il tuo Arduino nella scheda e le impostazioni della porta in Strumenti e caricalo su Arduino.

Spiegazione

Riga 1: aggiunge la libreria

Riga 5-23: Imposta tutte le variabili, costanti e numeri di pin.

Riga 25: imposta il LED Martix e imposta i pin di controllo e quanti display.

Riga 27: imposta la funzione di ripristino.

Riga 30-35: Funzione di spegnimento per accendere/spegnere tutti i display insieme.

Riga 38-43: Funzione SetIntensity per impostare la luminosità di tutti i display insieme.

Riga 46-51: Funzione ClearAll per cancellare tutti i display insieme.

Riga 53-64: joystick Funzione per ottenere la posizione dei joystick, mapparli sulle 7 possibili posizioni della mazza per colpire la palla e quindi spostare la mazza nella nuova posizione.

Riga 67-435: Funzione che sposta la palla al giocatore sinistro all'altezza e alla velocità specificate, controlla se il giocatore l'ha colpita e continua e imposta lo stato di crash su true o fa rimbalzare la palla, aggiunge 1 al punteggio e aumenta la velocità.

Riga 438-811: Funzione che sposta la palla al giocatore destro all'altezza e alla velocità specificate, controlla se il giocatore l'ha colpita e continua e imposta lo stato di crash su true o fa rimbalzare la palla, aggiunge 1 al punteggio e aumenta la velocità.

Riga 813-823: Funzione per visualizzare una faccina sorridente, un segno di spunta, una croce o un punto interrogativo sul display specificato (da 0 a destra a 3 a sinistra).

Riga 861-979: Funzione per visualizzare i numeri 0-9 sul display specificato.

Riga 981-1047: Funzione per visualizzare il punteggio a ciascun lato dello schermo dei giocatori.

Riga 1049-1064: Funzione per verificare se il lettore è pronto.

Riga 1066-1076: Setup Sezione del codice per il codice che viene eseguito una volta all'avvio del programma.

Riga 1078-1136: Sezione Main Loop per la logica di gioco in cui vengono utilizzate tutte le funzioni e dove viene deciso chi vince e quindi riavvia il programma dopo 5 secondi dalla visualizzazione del punteggio.

Passaggio 5: grazie per la lettura

Grazie per aver letto
Grazie per aver letto

Grazie per aver letto questo Instructable, è stato un divertente progetto di blocco che si è riunito in un paio di giorni mentre imparavo di più sulla programmazione di Arduino. Se ti è piaciuto, sentiti libero di votarlo nel concorso Arduino.

Consigliato: