Pagina 1 di 9

tastiera analogica

Inviato: 29 apr 2023, 15:57
da tzenobite
ciao a tutti!
mi scuso per il titolo ma davvero a ben pensarci non saprei come definirla e mi scuso anche per la lunghezza ma non saprei come farla breve.
purtroppo e' necessaria una "breve" introduzione.
io sono coinvolto nel progetto di una ghironda (strumento musicale a tasti che non sto a spiegare) midi.
lo strumento ha una tastiera con 24 tasti e si basa su un teensy.
l'attuale versione prevede che ogni tasto che corrisponde a una nota azioni un pulsante collegato a un pin di input digitale del teensy, quindi 24 tasti corrispondono a 24 input. altri pin digitali vengono usati per interagire col software. microswitch e teensy sono montati su un circuito stampato integrato nella tastiera (se interessa vedere com'e' fatto c'e' un video dettagliato su http://www.digigurdy.com)
io sto sviluppando una versione alternativa che al post degli input digitali utilizzi quelli analogici.
in pratica a ogni nota corrisponde una tensione, modulata dai tasti attraverso resistenze: il software del teensy misura la tensione su due pin e in base a una lista di valori abbina tensione e tasto, quindi nota.
il modo piu' semplice sarebbe utilizzare un potenziometro a membrana ma potrebbe essere troppo delicato per questo utilizzo, quindi ho pensato a questo:



l'effettivo funzionamento si puo' verificare in questo emulatore:
https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgDOB0YzAsBOJyWoGwgIxkgJhrgOyEDMYAHLmkoSAKwR32MCmAtJpgFABuIcMECRIYBEXAPBTJJKRBx0uAd36CJEOHHIh14LgCd+WnZLq5tuiN0OF8JiOTWSrYLgGUQaCfc+2f8kAAzAEMAGwBnFilcZV9cHW9bcWd3EEdkhzQ4fykQiKjxWPIshOzyBAxcb1cVcsrvBE1-AxBG7N1sChzsVM6LSWw-S1ywyOiuAAd6cx8zbQqhOS4ADyEFkkJss0whYn4sbQAJAEkAcUOAUQAlAB1wgDkAeQAVC5WsMGFd7M46bI3aD9tAAZR4AdWudyer3eXnqsjQJAQCVEJiE73ImHaVDSRASyPa7Xe2DxVR+YEkVUBaO4q2ETFwCHiG3aCCYhJANwmJB470QO0x9DQAuyHIALiwWAA7cIATxag3iZKwmDMpSkPRUaCGdAw2uZIj0tRKuF1aRKwgwNQ+OowiqEhutiAwltUEFdrkMcx8XkJAU19CZDtE60dsToQdd+uDRvN-0N9o9sUTCdVBqtRQthujSZUvyV3nzMdcQA

ora, il mio problema e' che ormai ho scordato tutto il poco che conoscevo di queste cose e sono in difficolta' a simulare la tastiera completa, con 24 tasti. inoltre, vista che questa e' matematica, in teoria dovrebbe essere possibile stabilire prima la lista di valori di tensione che vorrei ottenere e di conseguenza dimensionare le resistenze, ma non ho la minima idea di come farlo.
infine, il teensy ammette solo fino a 3,3v, quindi i 25 valori saranno per forza piuttosto vicini.
visto che l'hardware e le funzioni base sono sviluppate a londra e il software di gestione in california, poter fornirgli dei valori teorici per gli input sarebbe gia' sufficiente per verificare la fattibilita' della mia idea.
potete aiutarmi?
grazie!

Re: tastiera analogica

Inviato: 29 apr 2023, 16:25
da MarcoD
Non sono riuscito a capire cosa è il " teensy " ?
Dal vocabolario sembra significare " minuscolo".

Se ho capito bene, vuoi rilevare la posizione dei tre pulsanti deviatori con una tensione?
Devi rilevare otto diversi valori ottenuti dalla combinazione dei tre deviatori?
0) 000
1) 001
2) 010
3) 011
4) 100
5) 101
6) 110
7) 111

Invece della configurazione in serie potresti usare una configurazione in parallelo con corrente pesata?

Re: tastiera analogica

Inviato: 29 apr 2023, 16:32
da boiler
tzenobite ha scritto:io sono coinvolto nel progetto di una ghironda (strumento musicale a tasti che non sto a spiegare) midi.

Non preoccuparti, non servono spiegazioni :ok:


io sto sviluppando una versione alternativa che al post degli input digitali utilizzi quelli analogici.

Ho capito correttamente che stai rifacendo il PCB e che quindi abbiamo anche la possibilità di usare gli switch in modo diverso?

In tal caso, considera la classica R-2R ladder che si usa in tutti i contesti un cui si vuole ottene qualcosa di simile:


La tensione d'uscita vale
V_{out} = \frac{V_{in}}{2^n}\;\mathrm{Val_{switches}}
Dove \mathrm{Val_{switches}} è il numero generato dagli interruttori presi come bit di un numero binario di lunghezza n.

La cosa bella è che in questo modo tutte le possibili combinazioni di interruttori aperti o chiusi vengono mappate su una loro tensione identificabile univocamente (--> ghironda polifonica!).

Se dovessi realizzarlo io, prenderei un buon ADC con almeno 24 bit effettivi alla frequenza di campionamento che ti serve. Poi estenderei i bit meno significativi del mio R-2R ladder cablandoli fissi (come se l'interruttore non ci fosse) fino alla risoluzione dell'ADC (per esempio 32 bit). In questo modo mi basta leggere il valore dell'ADC, so che gli 8 bit meno significativi li ignoro e il resto del numero che ho letto, preso bit per bit mi mappa direttamente la posizione dei tasti.

Tienici aggiornati!

Boiler

EDIT: corretto errore nello schema, grazie a Foto UtenteEcoTan per la segnalazione!

Re: tastiera analogica

Inviato: 29 apr 2023, 16:33
da boiler
MarcoD ha scritto:Non sono riuscito a capire cosa è il " teensy " ?

È una specie di arduino ma a 32 bit... perlomeno credo. Non frequento questi ambienti :mrgreen:
Ad ogni modo è un simil-arduino.

Boiler

Re: tastiera analogica

Inviato: 29 apr 2023, 16:35
da Etemenanki
MarcoD ha scritto:cosa è il " teensy " ?


Schedina di sviluppo tipo arduino, quasi tutte basate sui Cortex, tranne due ;-)

Re: tastiera analogica

Inviato: 29 apr 2023, 16:45
da MarcoD
Se dovessi realizzarlo io, prenderei un buon ADC con almeno 24 bit effettivi alla frequenza di campionamento che ti serve. Poi estenderei i bit meno significativi del mio R-2R ladder cablandoli fissi (come se l'interruttore non ci fosse) fino alla risoluzione dell'ADC (per esempio 32 bit).

Fattibile, oppure è quasi equivalente adoperare tre ingressi analogici di un convertitore ADC a soli 8 bit.
Anche il povero arduino che ha ben 6 ingressi analogici a 10 bit
potrebbe bastare, forse potrebbe inviare l'informazione come tre byte seriali a un altro processore che sintetizza i suoni.

Re: tastiera analogica

Inviato: 29 apr 2023, 16:48
da boiler
Però, pensandoci bene, non capisco perché vuoi avventurarti per questa via. Un I/O expander ti risolve il problema in modo molto piú economico, semplice e affidabile.

Questo, per esempio, costa poco meno di 3 dollari e ti gestisce 48 ingressi, fornendoti un interrupt sul microcontroller ogni volta che un tasto cambia stato: https://www.diodes.com/assets/Datasheet ... V96248.pdf

Boiler

Re: tastiera analogica

Inviato: 29 apr 2023, 16:50
da boiler
MarcoD ha scritto:Fattibile, oppure è quasi equivalente adoperare tre ingressi analogici di un convertitore ADC a soli 8 bit.

Sì, si può spezzare la catena in tre e usare tre converter, ma se il converter ha n bit, non userei una catena di lunghezza n, altrimenti sei in balia del rumore.

Anche il povero arduino che ha ben 6 ingressi analogici a 10 bit

Come detto, non uso arduino, ma ho sentito dire che il layout sul PCB è fatto così male che di quei 10 bit ne hai forse forse 6 di effettivi #-o

Boiler

Re: tastiera analogica

Inviato: 29 apr 2023, 17:05
da GioArca67
tzenobite ha scritto:io sto sviluppando una versione alternativa che al post degli input digitali utilizzi quelli analogici.

Perché "analogica"?

Re: tastiera analogica

Inviato: 29 apr 2023, 18:17
da standardoil
Io invece vorrei capire lo scopo
"Se funziona lascialo stare"

Oppure si vuole ridurre l'uso di pin per usare micro più economici
Oppure ridurre le dimensioni
Anche se è attuabile aggiungere HW

Se basta passare da 24 a 10 pin puoi mettere in matrice 5×5