Sommario:

Serpente su tagliere: 3 passaggi (con immagini)
Serpente su tagliere: 3 passaggi (con immagini)

Video: Serpente su tagliere: 3 passaggi (con immagini)

Video: Serpente su tagliere: 3 passaggi (con immagini)
Video: IL SERPENTE DEL MONDO!! | God Of War #3 2024, Luglio
Anonim
Serpente su tagliere
Serpente su tagliere
Serpente su tagliere
Serpente su tagliere
Serpente su tagliere
Serpente su tagliere

"Hai giochi sul tuo telefono?"

"Non esattamente."

Introduzione:

Semplice da controllare, facile da programmare e immortalato dal Nokia 6110, Snake è diventato uno dei progetti preferiti dagli ingegneri. È stato implementato in qualsiasi cosa, da matrici LED, LCD, illuminazione di scaffali e persino finestre di interi edifici. Implementeremo Snake su una piccola breadboard e uno schermo OLED. Le persone hanno sicuramente realizzato lettori di serpenti più piccoli, ma questo utilizza specificamente una breadboard, eliminando la necessità di progettare PCB o saldature.

(Potresti semplicemente creare un'app sul tuo telefono, ma non facciamo le cose perché sono facili.)

Prerequisiti:

Una conoscenza di base dei circuiti, come eseguire il breadboard e una solida conoscenza della programmazione in Arduino.

Forniture

  • Arduino Nano
  • 2 resistori ragionevolmente alti (1kOhm)
  • Tagliere minuscolo
  • 2 pulsanti
  • Cavo a nucleo solido 22 AWG
  • 128 x 64 OLED

Questi sono link di affiliazione Amazon, quindi guadagno una piccola commissione con ogni vendita. Se non disponi già di queste forniture e vuoi supportare i miei progetti futuri, segui questi link!:)

Passaggio 1: tagliere

tagliere
tagliere
tagliere
tagliere
tagliere
tagliere

Per realizzare il nostro prodotto finale, dobbiamo ovviamente assemblare l'hardware su cui programmare e testare il nostro progetto. Lo schema di sistema per questo progetto è abbastanza semplice, poiché coinvolge solo un totale di 4 componenti.

1. Disponilo:

Prendi i tuoi componenti e disponili sulla lavagna, assicurandoti che tutto si adatti. Visualizza quali fili e pin utilizzerai e per quali scopi. Assicurati che i fili previsti non si incrocino, perché ciò rende la breadboard più disordinata. Annota quali punti ti serviranno per connetterti! Sebbene questa sia una semplice breadboard, ti semplificherà la vita durante il processo di cablaggio e in generale. A causa delle dimensioni ridotte del nostro spazio di lavoro, questo è un passaggio incredibilmente importante.

Appunti:

Poiché l'OLED utilizza il bus I2C, è necessario utilizzare i pin A4 e A5. Le dimensioni della breadboard non consentono un'alimentazione e un binario di terra, quindi ho usato alcuni trucchi per far funzionare tutto. La tensione positiva per i pulsanti è fornita dai pin D13 e A2. Ho scoperto che i pin Arduino non solo possono fornire corrente, ma anche assorbire corrente, quindi ho usato A3 come massa per il pulsante destro. Per massimizzare lo spazio sulla breadboard, ho appeso metà del Nano alla scheda e ho sostenuto i perni sul lato sinistro con un pezzo di gommapiuma.

2. Collegalo:

Con un paio di spelafili e una discreta quantità di cavo a nucleo solido da 22 AWG, collega ordinatamente i tuoi componenti. L'utilizzo di un nucleo solido per realizzare progetti di breadboard semipermanenti è fondamentale, perché è possibile tagliarli a misura, a differenza dei fili dei ponticelli. Assicurati di non lasciare molta lunghezza in eccesso sui fili, creerà una tavola disordinata. Tagliare i cavi dei resistori pull-down in modo che si adattino a filo con la scheda.

(Puoi anche semplicemente seguire quello che ho fatto sopra.)

Passaggio 2: programma e test

Programma e test
Programma e test

Per risparmiarti il mal di testa in seguito, assicurati che l'OLED e i pulsanti funzionino come dovrebbero eseguendo programmi di test di base.

1. Pianifica, pianifica, pianifica:

Basta saltare direttamente nel codice non è una pratica saggia. Credimi, ci ho provato! Ecco perché dovresti delineare come funzionerà il tuo programma. Un diagramma di flusso del programma è un modo piuttosto solido per pianificare ciò che il tuo codice deve fare e ti manterrà sicuramente in pista. Prendi il mio per esempio (sopra)

2. Codice, codice, codice:

Francamente, questo progetto è un esercizio di programmazione più grande di quanto non sia un esercizio di hardware. L'unica libreria che ho usato è stata la libreria OLED di Adafruit, senza contare le librerie di supporto GFX e Wire.

Fai installare la libreria OLED di Adafruit tramite il gestore della libreria dell'IDE di Arduino.

Non posso documentare ogni singola riga di codice che ho scritto, ma ecco alcuni suggerimenti:

Suggerimenti:

Commenti:

- Prima di tutto, scrivi commenti chiari e utili mentre codifichi. In futuro tu e gli altri che leggeranno il tuo codice ti ringrazieranno sicuramente.

Memoria:

- Con progetti più complessi come questi, SRAM diventa una merce piuttosto calda. Nella libreria Adafruit, il buffer OLED 128 x 64 occupa solo 1 kB, che è circa la metà della memoria in un ATMega328p. Pertanto, la gestione intelligente della memoria è più importante che mai.

- Con grandi strutture di dati, i dati conservati si accumuleranno e occuperanno molto spazio. Per ridurre il footprint di memoria delle mie variabili, ho usato tipi di dati più piccoli (come short e byte) quando potevo.

- Le stringhe sono solitamente memorizzate in SRAM, ma l'uso della funzione F() le metterà invece in PROGMEM, risparmiando memoria preziosa.

Milli:

- Per ottenere una tempistica più accurata dei cicli di gioco, utilizza la funzione millis(). Ci sono molti buoni tutorial ed esempi online.

Predefinire:

- Usa la direttiva per il preprocessore #define come un modo semplice per impostare valori permanenti nel codice.

Test:

- Testa il tuo codice mentre procedi. Sarà molto più facile eliminare i bug.

Passaggio 3: divertiti

Divertiti con il tuo nuovo gioco del serpente!

(So di aver vinto a 20 punti nel video sopra, puoi impostare la condizione di vincita più alta nel mio codice.)

Cose su cui espandere:

  • Una batteria per la portabilità
  • Pulsanti più sicuri
  • Un gioco di serpenti ancora più piccolo
  • Ancora più giochi?

Consigliato: