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!
tastiera analogica
Moderatori: g.schgor, BrunoValente, carloc, IsidoroKZ
0
voti
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?
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?
2
voti
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
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
Dove è 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 EcoTan per la segnalazione!
0
voti
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
Ad ogni modo è un simil-arduino.
Boiler
0
voti
MarcoD ha scritto:cosa è il " teensy " ?
Schedina di sviluppo tipo arduino, quasi tutte basate sui Cortex, tranne due
"Sopravvivere" e' attualmente l'unico lusso che la maggior parte dei Cittadini italiani,
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
sia pure a costo di enormi sacrifici, riesce ancora a permettersi.
-
Etemenanki
7.521 3 6 10 - Master
- Messaggi: 4723
- Iscritto il: 2 apr 2021, 23:42
- Località: Dalle parti di un grande lago ... :)
0
voti
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.
0
voti
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
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
0
voti
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
Boiler
0
voti
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
"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
-
standardoil
460 2 4 - Stabilizzato
- Messaggi: 371
- Iscritto il: 15 lug 2022, 19:14
Chi c’è in linea
Visitano il forum: Nessuno e 76 ospiti