Sommario:

Biglietto da visita/console di gioco: ATtiny85 e schermo OLED: 5 passaggi (con immagini)
Biglietto da visita/console di gioco: ATtiny85 e schermo OLED: 5 passaggi (con immagini)

Video: Biglietto da visita/console di gioco: ATtiny85 e schermo OLED: 5 passaggi (con immagini)

Video: Biglietto da visita/console di gioco: ATtiny85 e schermo OLED: 5 passaggi (con immagini)
Video: ATTiny85 handheld game console - Part 1 2024, Novembre
Anonim
Image
Image
il coraggio
il coraggio

Ciao a tutti

Oggi ti mostrerò come puoi costruire il tuo biglietto da visita/console di gioco/qualsiasi cosa tu possa immaginare con un display OLED I2C retroilluminato e un microprocessore ATtiny85. In questo Instructable ti dirò come funziona effettivamente un PCB che ho progettato, come puoi costruirlo e cosa puoi fare con questa funzionalità. Se hai già uno schermo I2C collegato a un ATtiny85, questo Instructable può ancora essere utile se stai cercando di visualizzare le immagini o vuoi creare menu, un gioco e altro.

Probabilmente ti starai chiedendo cosa sia in realtà questa cosa. È solo un semplice circuito stampato con batteria integrata, schermo, pulsanti, interruttore on/off e unità di elaborazione. Pensalo come un piccolo Gameboy, che puoi facilmente programmare per fare una varietà di cose. Avanti!

Passaggio 1: il coraggio

il coraggio
il coraggio
il coraggio
il coraggio

Se non lo hai già fatto, ti consiglio vivamente di creare un account su circuits.io. Questo ti permetterà di personalizzare il mio design in base alle tue esigenze.

In questo passaggio spiegherò come puoi effettivamente mettere le mani su uno di questi circuiti stampati (PCB). Ho creato il mio PCB in circuits.io, un ottimo strumento online che puoi utilizzare per creare schemi di circuiti e PCB. Puoi visualizzare il design qui:

Se sei interessato a ottenere il PCB, puoi ordinarne quanti ne vuoi da OSH Park utilizzando questo link:

Ci vuole un po' per ottenere le schede (1-3 settimane), ma fidati di me. Ne vale la pena! Avrai bisogno delle seguenti parti per costruire la tua scheda multifunzionale:

  • ATtiny85 nel pacchetto SOIC-8. Questo è il cervello del nostro progetto che controlla TUTTO.
  • Schermo OLED I2C 128x64 pixel:
  • 2 resistori da 22k ohm. Queste sono resistenze di pullup per i pulsanti.
  • Supporto CR2032 a montaggio superficiale:
  • Batteria a bottone CR2032. Questa piccola batteria può alimentare il circuito per un bel po' di tempo.
  • Interruttore a scorrimento a 3 pin. Questo è l'interruttore di alimentazione!
  • Intestazioni femminili. Puoi usarli per programmare l'ATtiny85 mentre è nel circuito!
  • Pulsanti da 6 mm:
  • Un circuito stampato (puoi ordinarlo usando il link qui sopra

Utensili:

  • Saldatore (con punta fine)
  • Saldare
  • Tagliacapelli

Per programmare ATtiny85:

  • 6 cavi jumper maschio-maschio
  • Un condensatore da 10 micro-farad
  • Arduino Uno o qualche altro microcontrollore basato su ATmega

Passaggio 2: assemblaggio del PCB

Assemblaggio del PCB
Assemblaggio del PCB
Assemblaggio del PCB
Assemblaggio del PCB

Questo è davvero abbastanza facile. Tutto quello che devi fare è saldare tutti i componenti nelle rispettive posizioni, come indicato sulla scheda. Alcuni di questi schermi OLED sono disponibili in diverse dimensioni, quindi se il tuo è troppo grande per la scheda, puoi appenderlo sopra come nell'immagine sopra e piegare le intestazioni sull'altro lato e saldarle ai fori dove dovevano andare. Guarda la seconda immagine se sei confuso.

Alcuni suggerimenti utili:

  • Il puntino sull'ATtiny deve essere orientato in modo che sia vicino all'interruttore a scorrimento, altrimenti i pin saranno nell'ordine sbagliato.
  • L'orientamento del supporto della batteria è importante. L'estremità del supporto con il segno più inciso deve essere sul pad inferiore (puntato verso un resistore).
  • L'orientamento di interruttori, pulsanti, intestazioni e resistori non ha importanza

Se avete domande, scrivetemi a info[at]coniferapps.com

Passaggio 3: è ora di iniziare a programmare

Ho fatto funzionare la mia combinazione ATtiny/screen utilizzando il seguente Instructable: https://www.instructables.com/id/ATTiny85-connects-to-I2C-OLED-display-Great-Things/. In effetti, uso persino la libreria che AndyB2 ha modificato nei miei schizzi.

Il modo in cui programmiamo l'ATtiny è tramite un Arduino Uno. Il seguente Instructable mostra come farlo: https://www.instructables.com/id/Program-an-ATtiny-with-Arduino/. Se non l'hai già notato, tutti i pin necessari sono utilmente suddivisi sul PCB con i numeri dei pin etichettati sul retro.

Se vuoi iniziare con un esempio di base, carica lo schizzo collegato sopra sulla tua scheda. Assicurati che l'interruttore di alimentazione sia spostato a destra prima di farlo. Non vuoi che la batteria e l'Uno forniscano entrambe la tensione allo stesso tempo! In quella cartella ci sono un mucchio di file. Ne parlerò di più nel passaggio successivo, ma la maggior parte dei file di intestazione sono rappresentazioni esadecimali di immagini bitmap monocromatiche. I file.bmp sono queste immagini che ho appena menzionato - come puoi vedere, sono in bianco e nero e esattamente 128x64 pixel. Questi non sono caricati sul microcontrollore, ma ho pensato di includerli come riferimento.

Passaggio 4: informazioni sul programma stesso

Lo schizzo che ti ho fatto caricare nel passaggio precedente è un esempio molto semplice di come potresti implementare un menu. Quando si fa clic su ciascuno dei pulsanti sinistro e destro, si attiva un contatore nel programma. Viene quindi chiamata una funzione che fa controllare all'ATtiny lo stato di questo contatore e, in base al numero del contatore, l'ATtiny disegna sullo schermo un'immagine dell'opzione di menu attualmente selezionata. Ciascuna delle diverse celle del menu selezionate è la propria immagine. Se si preme il pulsante in alto, ATtiny controlla nuovamente lo stato del contatore per determinare quale schermata di dettaglio visualizzare. Mentre vengono visualizzate queste schermate di dettaglio, ATtiny controlla costantemente se viene premuto un pulsante. Una volta rilevata la pressione di un pulsante, viene richiamata nuovamente la funzione che disegna i menu e sullo schermo viene disegnato lo stato corrente del menu, riportandoci nel menu. Sembra un po' scoraggiante se sei nuovo nella programmazione, ma ti prometto che una volta che guardi il codice avrà più senso.

Ciascuna delle schermate di dettaglio è anche la propria immagine.

Se non l'hai notato, l'opzione sorpresa non fa nulla. Ci arriveremo nel prossimo passaggio:).

Passaggio 5: personalizzazione della tua creazione

Ora che hai visto cosa ho fatto, è il momento di personalizzare la carta con le tue informazioni. Quella libreria che ho incluso ha una funzione per disegnare il testo sullo schermo, ma ti consiglio vivamente di scegliere una soluzione rigorosamente basata su immagini, poiché tende ad avere un aspetto MOLTO migliore. Inizialmente avevo intenzione di aggiungere foto alla parte del programma di questo istruibile, ma è abbastanza lungo da giustificare il proprio istruibile. Puoi vederlo qui:

Ora che sai come aggiungere foto, ci sono un sacco di cose che puoi fare con la carta. Puoi utilizzare i miei menu e la schermata della guida e aggiungere semplicemente le tue informazioni di contatto. Potresti anche creare un piccolo gioco per l'opzione "sorpresa". Sarebbe abbastanza semplice spostare uno sprite 10x10 molto piccolo sullo schermo usando i pulsanti e controllare se si scontra con un altro sprite. Potresti creare un clone di un uccello flappy usando lo stesso concetto! Se fai qualcosa, per favore posta una foto/video/file nei commenti!

Solo un altro piccolo punto che ho dimenticato di menzionare. Per quanto riguarda lo spazio di archiviazione, l'ATtiny85 non ne ha molto. Per i programmi, è circa 8kb. Il mio attuale schizzo con 5 immagini e libreria di display OLED occupa circa 7 di quegli 8kb. Qualsiasi gioco che realizzerai dovrà rientrare in questo margine relativamente piccolo, quindi sarà una sfida divertente:).

Grazie per avermi ascoltato divagare, e se hai domande non esitare a inviarmi un'e-mail a info[at]coniferapps.com (sostituisci [at] con @). Vota per me al concorso Autodesk Circuits! Spero che presto avrai il tuo biglietto da visita/gioco da mostrare!

Consigliato: