Pagina 1 di 1

Calcolo o Memoria, Array per LED

MessaggioInviato: 22 dic 2023, 18:05
da ThEnGi
Fork di questo topic: Link
Chiedo perché e nata una semi discussione in ufficio

MCU = STM32F1/ qualsiasi MCU a 32bit
Led = 200 * WS2812

Domanda
Per generare giochi di luce è preferibile calcolare al momento la stringa da inviare o leggerla da una memoria esterna ?
Mettiamo che devo fare un fade, faccio prima a calcolarlo o a tenerlo su una memoria esterna e semplicemente leggero e inviarlo ai led ?

Nel caso dell'utilizo di una memoria esterna (Flash ?), i vari array da mandare li genero da PC e li salvo su una SD il micro deve solo leggerli e inviarli ai led (uso cpu basso)
Ipotizando 10 step e arrotondo a 250 per comodità di calcolo:
24bit * 200 * (250/10) = 120 kb
Sono tanti ma ora le memorie ("esterne") costano abbastanza poco

Nel caso del calcolo dovrei usare costantemente il Core M3, voi direte ma tanto non devi farci altro :mrgreen:

Con il Fade è semplice sono tutti valori uguali :mrgreen: ma per qualcosa di più complesso ?
Nel caso dei dati in memoria l'uso/velocità non cambia leggo i miei 5kb e li rinvio, con il calcolo non so come si comporterebbe

Pareri opinioni ?

O_/

Re: Calcolo o Memoria, Array per LED

MessaggioInviato: 22 dic 2023, 18:53
da elfo
Controdomanda:

e se uno dovesse/volesse accendere i LED in modo (pseudo)casuale?

Re: Calcolo o Memoria, Array per LED

MessaggioInviato: 22 dic 2023, 19:10
da ThEnGi
elfo ha scritto:e se uno dovesse/volesse accendere i LED in modo (pseudo)casuale?


Sei un Foto Utenteelfo cattivo :mrgreen:
scusa non ho resistito :oops:

Dovresti generare l'array al momento per forza o accetti di generare a PC un array di X "fotogrammi" casuali e ripeterlo in loop

O_/

Re: Calcolo o Memoria, Array per LED

MessaggioInviato: 16 gen 2024, 13:09
da IlGuru
C'è anche una via intermedia, precalcolare i valori dell'array all'inizio o nel momento in cui si decide di cambiare il "gioco" di luci ed utilizzarli poi nel loop.

Re: Calcolo o Memoria, Array per LED

MessaggioInviato: 16 gen 2024, 18:24
da djnz
Se il calcolo è semplice, e il tempo di calcolo non influisce visibilmente sul tempo di processo, calcolo. Altrimenti LUT.

O, girata al contrario: LUT quando serve velocità, o per configurazioni complesse.

Re: Calcolo o Memoria, Array per LED

MessaggioInviato: 17 gen 2024, 10:03
da lelerelele
unico motivo per la scelta, secondo me, a parte problemi di velocità di esecuzione, che in qusto caso sono certo non c'entri niente, potrebbe essere la possibilità di cambiare sequenza da PC, nel caso di usare un supporto esterno, per esempio un file di testo che possa essere interpretato per le varie combinazioni, altrimenti tanto vale che sia tutto entro il software.

saluti.

Re: Calcolo o Memoria, Array per LED

MessaggioInviato: 17 gen 2024, 11:53
da dadduni
un grande classico di questi problemi. Credo non si possa risolvere senza avere delle "specifiche" di progetto piu' precise.

- i giochi di luce sono tutti "calcolabili"? Esiste una espressione matematica che li rappresenta?
- possono essere arbitrari?
- quante volte devono cambiare nel tempo? (intendo dire quante volte dirai "voglio togliere/aggiungere un gioco di luce che prima non esisteva proprio)

Se hai intenzione dei cambiarli allora coniene una memoria esterna, altrimenti devi riprogrammare il micro. Se non sono calcolabili allora conviene memoria esterna. Se sono pochi, semplici da scrivere, facilmente calcolabili e hai potenza di calcolo allora risparmiati le LUT e calcolali di volta in volta.


In generale direi di calcolarli a meno di non avere altre condizioni particolari.

Re: Calcolo o Memoria, Array per LED

MessaggioInviato: 17 gen 2024, 12:09
da stefanopc
Da ignorante vagamente informato io preferisco il calcolo.
I sensi umani poi non sono esattamente perfetti e c'è un certo margine di approssimazione che permette di poter semplificare abbastanza.
Ciao

Re: Calcolo o Memoria, Array per LED

MessaggioInviato: 30 mar 2024, 20:14
da DavideDaSerra
La risposta, per me, dipende dalle condizioni al contorno, entrambe le soluzioni sono valide, ma nessuna in senso assoluto.

Vuoi una configurabilità esterna più semplice -> memoria
Hai poca memoria e una cpu potente -> calcolo
Hai CPU potente stressata da altre funzionalità -> memoria
Vuoi effetti (pseudo) casuali -> calcolo
Hai effetti che considerano input esterni (es ritmo musicale) -> calcolo
Hai bisogno della massima predicibilità -> memoria