Sommario:
- Passaggio 1: parti
- Passaggio 2: cablaggio
- Passaggio 3: cablaggio alternativo
- Passaggio 4: codice + spiegazione
- Passaggio 5: grazie per la lettura
Video: Pong Tennis con matrice LED, Arduino e joystick: 5 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
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
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
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 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:
Luce dell'orologio con display a matrice di strisce LED controllate WiFi: 3 passaggi (con immagini)
Luce dell'orologio con display a matrice di strisce LED controllate tramite WiFi: strisce LED programmabili, ad es. basati su WS2812, sono affascinanti. Le applicazioni sono molteplici e puoi ottenere rapidamente risultati impressionanti. E in qualche modo costruire orologi sembra essere un altro campo a cui penso molto. Partendo da una certa esperienza in
MATRICE LED RGB CON NEOPIXEL: 8 passaggi (con immagini)
MATRICE LED RGB UTILIZZANDO NEOPIXEL: In questo tutorial, ti mostrerò come costruire una LEDMATRIX RGB 5*5 UTILIZZANDO NEOPIXEL. Con questa matrice, possiamo visualizzare animazioni ipnotizzanti, emoji e lettere supersemplici molto attraenti. Iniziamo
Connessione a matrice di LED Arduino con Utsource: 9 passaggi (con immagini)
Connessione a matrice di LED Arduino con Utsource: una matrice di LED o display a LED è una forma grande e a bassa risoluzione di display a matrice di punti, utile sia per display di informazioni industriali e commerciali, sia per interfacce uomo-macchina per hobby. È costituito da una matrice di diodi 2-D con il loro catho
Arduino Telesketch con matrice di LED: 6 passaggi (con immagini)
Arduino Telesketch With Led Matrix: Ecco una semplice guida per creare un telesketch usando un Arduino. Questo design utilizza un Arduino, due matrici led di 8x32, un Buzzer, due encoder rotativi e alcuni pulsanti. Ci auguriamo che imparerai a utilizzare gli encoder rotativi e la matrice led. Anche lui salta
Treppiede per palline da tennis: 4 passaggi (con immagini)
Treppiede per palline da tennis: ricicla una pallina da tennis morta in un treppiede per fotocamera tascabile. Scatta foto nitide usando un muro, una recinzione, un ramo di un albero, una porta, un cofano per auto, un palo di bambù o un cartello. Velcro, elastico o appendi a una ventosa con il fori di montaggio opzionali