Salve a tutti, sono un nuovo utente del Forum (anche se leggo da parecchi mesi i vari topic )
Mi sto cimentando nell' utilizzo di un piccolo display OLED 128x64 (SSD1603) con Digispark
Quello che vorrei fare è un piccolo retrogame (Arkanoid per intenderci) utilizzando come core proprio un digispark, ci sono molti sketch già scritti disponibili online per molti giochi ma siccome ho la testa dura voglio provare a partire da zero nel farlo.
Per ora, utilizzando varie librerie, riesco a fare alcune cose come stampare a display scritte, muovere dei caratteri alla pressione di un tasto, ecc...
Queste librerie "contengono" molte funzioni che a me non servono per il risultato finale, e siccome di flash ho disponibile circa 6 kb le mie domande sono...
Dovrei scrivere io una libreria "su misura" per il mio progetto che contenga solo le cose che servono per Arkanoid?
Esistono "metodi" per utilizzare questi OLED senza librerie? (ovvero utilizzare un codice senza includere nulla)
Mi scuso se ho sbagliato sezione, e ringrazio anticipatamente chiunque vorrà chiarirmi le idee.
Benvenuto. Essendo il tuo primo post, nel rispetto del regolamento, ti chiediamo cortesemente di presentartiQUI (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con attenzione il su citato REGOLAMENTO... Grazie.
Qui una serie di link utili, non inerenti al tuo problema:
Bitto:
Queste librerie "contengono" molte funzioni che a me non servono per il risultato finale, e siccome di flash ho disponibile circa 6 kb le mie domande sono...
Non sono certo le poche funzioni della libreria per gli oled 128x64 a occupare spazio, sono i font che lo fanno, inoltre il 90% delle funzioni contenute, p.e. per tracciare linee, ti serve e non ha senso riscriverle da zero.
Comunque con 6k di flash non vai da nessuna parte per realizzare un gioco anche se "semplice" come Arkanoid, tra parentesi, a meno che non usi un oled a colori, non facilmente reperibili e non certo economici, quel gioco rende male in monocromatico, al massimo con un oled non a colori ci puoi fare pong.
Se non te ne sei ancora accorto i vari oled con controller SSID1603 sono esclusivamente monocromatici, l'intensità è variabile solo in blocco per tutti i pixel, al massimo trovi oled divisi in due zone, una superiore di una ventina di pixel in giallo e gli altri bianchi o azzurri.
Ciao grazie per i suggerimenti!
Hai ragione, mi sono espresso male, sono i vari caratteri e font ad occupare spazio
Purtroppo come display ho questo monocromatico e quindi la resa non sarà ottimale, ma alla fine non mi dispiace molto vederlo bianco e nero, dona un tocco vintage
A questo punto potrebbe convenire utilizzare una libreria esistente e magari tentare di modificarla togliendo le parti superflue? ne conosci qualcuna che potrebbe andare bene in particolare?
Grazie
I font basta che non li usi e non occupano spazio, io per gli oled uso una versione specifica della UTFT, la OLED_I2C, e mi ci sono trovato molto bene, di suo occupa poco spazio.
Realizzare in monocromatico, e intendo un solo colore non in bianco in nero con i livelli dei grigi, un gioco che ha questo aspetto la vedo molto dura.
Guardo subito la libreria che mi hai consigliato!
Sui colori hai ragione, penso che a questo punto i mattoncini cercherò di farli tutti bianchi su sfondo nero!
In che senso i font se non li uso non occupano spazio? io pensavo che una volta inclusa una libreria tutto quello che c'è dentro viene "scritto" dentro al micro, a prescindere se poi verrà utilizzato o meno. (scusa l' ignoranza)
PS: per adesso ho 6 kb in quanto sto usando un Digispark (il cui bootloader occupa circa 2kb) ma penso che potrei usare direttamente un Attiny85 e programmarlo con Arduino la cui flash è di 8kb
Quando includi una libreria viene compilata solo la parte che effettivamente utilizzi, ovvero se alcune funzioni presenti in libreria non le richiami, non vengono usate da altre funzioni che utilizzi, il loro codice viene ignorato durante la compilazione.
Idem per i font, se li dichiari nel tuo codice vengono inclusi e occupano molto spazio, se non li dichiari anche se presenti nella libreria vengono ignorati dal compilatore.
Non avevo fatto caso che stai usando un Attiny85, la libreria che ti ho segnalato non supporta quei micro, dai uno sguardo a questa, dovrebbe supportarli.