Sommario:

Arduino Sorta Sudoku: 3 passaggi (con immagini)
Arduino Sorta Sudoku: 3 passaggi (con immagini)

Video: Arduino Sorta Sudoku: 3 passaggi (con immagini)

Video: Arduino Sorta Sudoku: 3 passaggi (con immagini)
Video: COME COSTRUIRE UN SISMOGRAFO (ARDUINO) IN CASA CON MENO DI 30€ - Tutorial - SPECIALE 10K 2024, Novembre
Anonim
Arduino Sorta Sudoku Game
Arduino Sorta Sudoku Game

A molte persone piace giocare a Sudoku e ai nipoti piacciono gli indovinelli, quindi ho deciso di creare un gioco portatile "Sorta Sudoku". Nella mia versione il gioco è una griglia 4x4 ma viene fornito un solo numero. L'idea è di indovinare il resto dei numeri nel minor numero di tentativi. È un gioco semplice, ma può creare dipendenza se cerchi il punteggio perfetto di 15. Il gioco richiede sia un elemento di fortuna che logica e il punteggio migliore che ho visto finora è 16. Dai un'occhiata perché anche se non sei interessato a creare il gioco, potrebbero esserci alcuni elementi del software che puoi utilizzare in uno dei tuoi progetti.

Passaggio 1: hardware

Hardware
Hardware
Hardware
Hardware
Hardware
Hardware

L'hardware può essere basato praticamente su qualsiasi versione di Arduino. Ho fatto la prototipazione usando un Nano e poi ho masterizzato il codice in un chip ATMega328. Questo è lo stesso chip utilizzato nel Nano, ma usarlo da solo consente una costruzione più compatta e un minor consumo energetico. Come puoi vedere, ho costruito il circuito su una piccola breadboard che si trova sulle spalle del modulo LCD. L'altro aspetto diverso è che il Nano funziona a 16 MHz utilizzando un cristallo esterno, ma ho scelto di utilizzare l'oscillatore integrato da 8 MHz per il chip ATMega328. Ciò consente di risparmiare parti e potenza.

L'LCD del 2004 si interfaccia all'Arduino allo stesso modo di un LCD 1602. Una differenza interessante è nell'indirizzamento delle posizioni di visualizzazione. Ovviamente c'è una differenza perché ci sono quattro linee invece di due ma, nel 2004, la terza linea è un'estensione della prima linea e la quarta linea è un'estensione della seconda linea. In altre parole, se avessi un programma di test che ha appena inviato una stringa di caratteri al display LCD, il 21° carattere verrebbe visualizzato all'inizio della terza riga e il 41° carattere torna all'inizio della prima riga. Il software gestisce questa differenza con una tabella di ricerca degli indirizzi LCD.

L'input per il gioco è una matrice di switch 4x4 fatta in casa. Ciascun interruttore corrisponde direttamente alla posizione equivalente sul display. C'è anche un interruttore di alimentazione e un interruttore di ripristino. L'interruttore di ripristino cancella il vecchio gioco e genera un nuovo gioco.

Ho deciso di alimentare la mia versione a batteria, quindi ho utilizzato una comune batteria agli ioni di litio 18650 da 3,6 volt. Ciò ha richiesto l'aggiunta di una piccola scheda per consentire la ricarica USB e un'altra piccola scheda per aumentare la tensione della batteria a 5 volt per l'LCD e il chip ATMega. Le immagini mostrano i moduli che ho usato ma ci sono anche moduli all-in-one che svolgono entrambe le funzioni.

Passaggio 2: software

Il software è lo stesso sia per il chip Nano che per quello ATMega328. L'unica differenza è nel metodo di programmazione. Uso la mia versione barebone del software LCD e del software di decodifica della matrice della tastiera. Questi sono file "include" separati per il progetto.

I comandi "random" e "randomSeed" vengono utilizzati per aiutare a creare il gioco. Ho aggiunto un salvataggio in EEPROM del "seme" per garantire che venga generata una sequenza diversa ad ogni accensione. Le linee per il puzzle sono derivate da un array di ricerca di 24 elementi. Le prime tre righe vengono selezionate casualmente dalla tabella, con controlli per assicurarsi che una riga selezionata non sia in conflitto con una riga precedente. L'ultima riga viene compilata manualmente perché in quel punto sarà possibile solo un motivo. Dopodiché è solo questione di scansionare la matrice della tastiera e convertire i tasti premuti in numeri.

Per indovinare un numero, premere ripetutamente l'interruttore corrispondente. Ogni pressione aumenta il numero visualizzato. Se superi il numero che desideri, continua a premere. Se si rilascia l'interruttore per un secondo, si bloccherà l'ultimo numero visualizzato. Se il numero non è corretto, verrà cancellato e potrai riprovare. Ogni ipotesi incrementa il contatore visualizzato e, una volta indovinato correttamente un numero, l'interruttore a matrice viene effettivamente disabilitato.

Passaggio 3: display

display
display
display
display
display
display

Di seguito alcune immagini dei vari display.

Consigliato: