Pages: [1] 2 3 4   Go Down
Author Topic: Presentazione progetto e primi dubbi  (Read 4481 times)
0 Members and 1 Guest are viewing this topic.
Italy
Offline Offline
Jr. Member
**
Karma: 1
Posts: 56
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti!

Mi sono iscritto da poco e vorrei presentare brevemente il mio primo progetto per chiedere alcuni consigli in merito.

Ho intenzione di costruire un box contenente una serie di effetti per chitarra, comandato da Arduino Mega ed avente pressapoco le seguenti caratteristiche:
- Una serie di relay che attivano/disattivano gli effetti, comandati tramite un expander MCP23S17
- Una serie di pulsanti che comandano il tutto
- Una serie di LED di segnalazione comandati da un secondo expander
- Infine un display della Nuelectronics (un TFT con tanto di touchscreen e slot SD) che vorrei sfruttare per visualizzare ed impostare i vari parametri.

Mi rendo conto che come primo vero progetto è qualcosa di molto ambizioso. Però ho già sperimentato a lungo sulle funzionalità di base, ed avendo studiato programmazione all'università mi sento in grado di poter rischiare, magari procedendo per gradi e tralasciando inizialmente la parte del display.

Avrei ora un paio di domande:

- Primo: sarà di primaria importanza la velocità di risposta alla pressione di un pulsante, soprattutto nel cambiamento di stato dei relay, che deve avvenire pressoché istantaneamente. Non mi interessa invece una risposta fulminea nella visualizzazione sul display. La cosa è fattibile collegando i pulsanti ai normali ingressi digitali? Oppure dovrei sfruttare i vari interrupt?
- Secondo: nel mio progetto avrò dei circuiti per trattamento di segnale audio (distorsori, chorus, delay e simili) affiancati a circuiti digitali e bus SPI. Sarà necessario prendere delle precauzioni per evitare interferenze?
- Infine una domanda più specifica: sto facendo i primi test sull'utilizzo dell'SPI. Ho testato con successo un expander MCP23S17, ma ho problemi con l'utilizzo di un AD5206: sto utilizzando lo sketch di esempio (DigitalPotControl), ma con un solo led collegato al primo canale. Il problema è il seguente: all'accensione il led si accende e il wiper rimane per circa un minuto intorno ai 2V, poi esegue una volta il ciclo fade in/out, dopodiché si ferma del tutto. Dove può essere il problema?

Per ora vi ringrazio per le informazioni che mi fornirete, avrò sicuramente occasione di presentare meglio il progetto!
Logged

Parma
Offline Offline
Edison Member
*
Karma: 21
Posts: 2419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Cosa intendi per relé che attivano/disattivano gli effetti? Gli effetti come li generi?
Logged

Italy
Offline Offline
Jr. Member
**
Karma: 1
Posts: 56
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai ragione, ho dato per sottinteso il concetto di "effetto", ma in effetti non è così scontato.

Per effetto intendo un circuito a se stante, praticamente un quadripolo, con un suo ingresso del segnale originario e un'uscita del segnale. Il relay (DPDT) si occupa del far "scavalcare" il segnale al suddetto circuito (disattivato) oppure di farlo passare attraverso di esso (attivo). Ci sarà quindi una catena di relay che farà passare il segnale attraverso i circuiti che io desidero e scavalcherà gli altri.
Proprio per questo ho bisogno che il relay si attivi/disattivi istantaneamente alla pressione di un pulsante, in modo da non avere un vuoto tra la pressione del tasto e l'inserimento dell'effetto.

Allego il disegno Eagle della mia catena di relay, in cui ci sono un ingresso, un'uscita e tutti i connettori che portano il segnale ai vari effetti (in questo caso i connettori sono a 4 vie perchè devono portare ingresso, uscita, alimentazione e massa)


* Schermata 09-2456181 alle 19.53.36.png (21.96 KB, 1288x211 - viewed 52 times.)
Logged

Parma
Offline Offline
Edison Member
*
Karma: 21
Posts: 2419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quindi te hai già realizzato (o comprato) dei circuiti (analogici quindi?) di effetti a se stanti che vuoi collegare con dei relé.
Come ben saprai nulla è istantaneo, devi dirci il ritardo massimo che vuoi avere e vedremo se esiste una soluzione.
I relé non sono famosi per essere commutatori veloci, perché proprio relé?

Secondo me sarebbe interessante fare tutto in digitale senza relé, etc.. con effetti via sw (o hw con logiche programmabili), sai se andrebbe bene?

Ciao
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12678
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho idea che questo sia un circuito generatore di effetti per chitarra elettrica. A mia memoria ogni effetto interviene variando il suono portante (quello originale della chitarra); in alcuni casi questi effetti si possono sovrapporre, in altri generano solo bordello.
Sicuramente possiene il generatore di effetti è l'idea è chiara dallo schema elettrico; se questa è nessun problema di ritardi, il tempo di commutazione del relé è trascurabile ed i suoi contatti (a patto che si tratti di relé di qualità) non influenzano in alcun modo il suono, cosa che invece potrebbe avvenire con qualsiasi altro sistema di commutazione non meccanica, anche in caso di commutazione a basso valore ohmico.
Logged


Marche
Offline Offline
Edison Member
*
Karma: 34
Posts: 2276
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Anche se non sono del settore mi è capitato di vedere diverse pedaliere e su tutte c'erano i relè per la commutazione del segnale ma non so il perchè di questa decisione.
Una pedaliera ha il compito di collegare più pedali (lo dice il nome stesso); ogni pedale ha la funzione di alterare il suono, in genere ogni pedale ha un suo effetto regolabile attraverso potenziometri. La pedaliera a bordo ha diversi interruttori che il musicista attiva con il piede per abilitare/disabilitare gli effetti.
Da quanto ho capito lui ha già i pedali, ora deve costruire la pedaliera per assemblare il tutto.
Un consiglio: usa cavi rigorosamente schermati per i vari collegamenti, non risparmiare sulla qualità di cavi e connettori che poi te ne penti.
Chiedo scusa per il linguaggio poco tecnico.
Logged

Italy
Offline Offline
Jr. Member
**
Karma: 1
Posts: 56
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Anche se non sono del settore mi è capitato di vedere diverse pedaliere e su tutte c'erano i relè per la commutazione del segnale ma non so il perchè di questa decisione.
[...]
Da quanto ho capito lui ha già i pedali, ora deve costruire la pedaliera per assemblare il tutto.
[...]

In realtà non ho i pedali interi, ho solo i circuiti da me assemblati ma senza pulsante e senza scatola di metallo. La mia pedaliera non sarà una valigetta contenente dei pedali acquistati in precedenza, ma un'unico chassis di metallo contenente tutti i circuiti (per la maggior parte analogici) di generazione degli effetti, concatenati e attivabili tramite questi relay.
Inizialmente volevo infatti collegarli tramite dei normali deviatori meccanici (uno per ciascun effetto), ma non era una soluzione molto comoda.La comodità dei relay sta nel fatto che è possibile programmarli per fare in modo che alla pressione di un tasto si possa attivare anche più di un effetto, oppure nella possibilità di memorizzare ciò che è attivo e scorrere queste memorie in base alla necessità.
Il mio dubbio non sta nella concatenazione degli effetti, ma proprio nella gestione di questa catena.

Sicuramente possiene il generatore di effetti è l'idea è chiara dallo schema elettrico; se questa è nessun problema di ritardi, il tempo di commutazione del relé è trascurabile ed i suoi contatti (a patto che si tratti di relé di qualità) non influenzano in alcun modo il suono, cosa che invece potrebbe avvenire con qualsiasi altro sistema di commutazione non meccanica, anche in caso di commutazione a basso valore ohmico.

Il concetto è proprio questo: possiedo già i circuiti di generazione dell'effetto ed ho bisogno di capire se la commutazione di diversi relay tramite un expander, su bus SPI, attraverso la pressione di un tasto potrebbe creare problemi di reattività. Non ho infatti avuto modo di capire se tutti questi passaggi possono in qualche modo generare ritardi.
Per la questione dei commutatori a stato solido avevo preso in considerazione la possibilità, ma ho lasciato perdere su consiglio di chi ci ha già provato (problemi di impedenze, perdita di alte frequenze, ecc). Inoltre avendo già in casa dei relay panasonic TQ2 ho deciso di sfruttarli.

Secondo me sarebbe interessante fare tutto in digitale senza relé, etc.. con effetti via sw (o hw con logiche programmabili), sai se andrebbe bene?

La maggior parte dei circuiti sono di mia realizzazione e sono già pronti e testati, tranne alcune eccezioni che, appunto, sono digitali.
Sono comunque tutte copie di circuiti, più o meno datati, di cui girano da tempo gli schemi, e che sono stati ampiamente testati da molte persone. Non vedo praticabile la strada degli effetti software per il semplice motivo che non è per nulla semplice creare da zero un algoritmo di elaborazione audio (o per lo meno attualmente non sono in grado di farlo).

Comunque dalle vostre risposte credo di aver capito che in realtà il problema della commutazione dei relè non sussiste. In base alle mie prove e a ciò che ho già visto da altri utenti non dovrebbe costituire un problema. Probabilmente è una domanda da principiante ma (ripeto) il mio dubbio era proprio sui ritardi software.
E a questo punto il problema principale si sposterebbe sull'utilizzo del bus SPI (ed eventuali problemi di interferenze) e sul mio test con il potenziometro digitale.

Mi scuso poi se non sono riuscito a fornire sufficienti dettagli, ma finora ho frequentato alcuni forum in cui la maggior parte degli utenti navigano nel campo degli strumenti musicali, quindi tendo a dare per scontati alcuni dettagli
Logged

Parma
Offline Offline
Edison Member
*
Karma: 21
Posts: 2419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il ritardo maggiore è il relé, il resto è trascurabile in relazione in quanto si parla di microsecondi (10^(-6) secondi), es. magari in tutto ci voglio 50uS che sono uguali a 0.05ms, molto meno del tempo di commutazione del relé

Ciao
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12678
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ma nello specifico il ritardo del relé è assolutamente trascurabile, la stragrande maggioranda di questi strumenti commuta a relé, non stiamo parlano di 30 secondi ma di qualche ms che non influenza in alcun modo gli effetti; ora però non mi voglio mettere a fare una disquisizione sui tempi di commutazione, li ho usati in una decina di circuiti di effetti e mix audio senza aver mai avuto problemi, se vogliamo andare a scovare la coda alla mosca mi arrendo in partenza, fate vobis smiley
Logged


0
Offline Offline
Faraday Member
**
Karma: 31
Posts: 2908
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Guarda caso sabato ho tirato fuori il push-pull di EL34 che feci più di dieci anni fa, ho ripreso l'elettrica e ho cominciato a fare un po di casino, peccato per quel multieffetto che....mmm insomma non suona fa solo casino e pensare che quando lo comprai mi sembrava perfetto.

Ok mi iteressa seguire la cosa che stai progettando, ma mi piacerebbe vedere anche tutto il resto che hai già realizzato, magari c'è qualcosa che di interessante che posso realizzare anche io.

Il problema principale in questi tipi di circuiti è legato al disturbo che avviene durante la commutazione, sia che si tratti di relè o interruttore il problema permane, ed è evidente se il guadagno del circuito di amplificazione/trattamento posto a valle è alto come accade nei circuiti per chitarra ( vedi overdrive, compressori, ecc.). Pertanto per commutare si usa chiudere il circuito audio a massa per l'instante necessario al rele di effettuare la commutazione, di solito si usa un "fet". Quindi questo è il primo circuito che dovresti realizzare e testare.

Seconda cosa, per evitare contaminazione tra segnale digitale e segnale analogico si deve tenere lontani i circuiti ad alta impedenza da quelli digitali. Ma questo non basta si deveno separare le alimentazioni, e per finire curare le schermature e i circuiti di massa schermo, come si fà non lo so, so solo che alle volte c'è da impazzire.

L'oggetto che devi realizzare cosa sarà?
Uno switch da rack?
oppure
Una unità contenente switch e trattamento segnali in unico contenitore?

Per il pot digitale, non ho idea, non lo conosco e dovrei documentarmi leggendo il datasheet, e mi sa tanto che dovrai farlo tu e postare qui i tuoi dubbi.




* 11092012080.jpg (225.49 KB, 1600x1200 - viewed 42 times.)
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Italy
Offline Offline
Jr. Member
**
Karma: 1
Posts: 56
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hehe, mi fa piacere trovare un altro chitarrista. Io ne ho terminato uno pochi mesi fa... Un clone di un Hiwatt DR-504, che è proprio un push pull di due EL34... E' stata una grandissima soddisfazione sentire le note della chitarra uscire da quelle valvole!

Tornando al progetto, la maggior parte dei circuiti sono semplicemente delle realizzazioni di alcuni circuiti presi da www.tonepad.com e www.generalguitargadget.com, se ti può interessare qualche dettaglio in particolare chiedimi pure!
La mia soluzione sarà pressapoco quella allegata sotto (ho fatto un po' di modellazione 3D per capire gli spazi): uno chassis in alluminio contenente tutto, da Arduino al display, ai vari regolatori di tensione a tutti i singoli circuiti degli effetti. Solo l'alimentatore principale sarà esterno. Poi con calma mostrerò meglio anche tutto il resto.

Il disturbo di commutazione sinceramente non mi ha mai dato più di tanto fastidio, nemmeno con i pulsanti meccanici. E a questo punto non sarà un problema neanche un ritardo di qualche ms in più, soprattutto se il ritardo software è trascurabile rispetto al ritardo del relay. Il mio dubbio era nato guardando dei filmati su youtube in cui utilizzando display e altre periferiche il ritardo era notevole, soprattutto per la visualizzazione della grafica sul display. Essendo però la visualizzazione meno prioritaria rispetto alla commutazione, a questo punto potrei tranquillamente eseguirla (nel software) dopo tutte le altre operazioni.

Quindi assodato che il relay può essere una soluzione fattibile, mi rimane da capire la questione della gestione digitale, separazione delle masse ed isolamenti. Sto già prevedendo una certa logica per riuscire a dividere le alimentazioni, ma non so fin dove posso tenere il tutto separato... Devo mettermi con calma ed analizzare tutti i circuiti che coinvolgono parti digitali.


* Rendering-1.PNG (203.33 KB, 1065x760 - viewed 28 times.)
Logged

0
Offline Offline
Faraday Member
**
Karma: 31
Posts: 2908
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Caspita si tratta di un progetto complesso sotto tutti i punti di vista, lato software il problema potrebbe presentarsi subito se non suddividi i compiti realizzando più schede a microprocessore che dialogano fra di loro. Una scheda con micro gestisce i pulsanti e dialoga con il display (display dodato di mcu), un'altra scheda mcu gestisce i relè il mute ecc, in questo modo puoi realizzare un pezzo è testarlo, alla fine metti tutto insieme e sai che funzionerà perchè ogni unita/pezzo/funzione è stata testata. Diciamo che l'approccio di sviluppo software è valido anche lato hardware, con la differenza che qui ci sono entrambe insieme.

Oggi sono in vena: smiley-razz

Ipotizziamo di avere 3 relè, 2 ( A e B) sono on e C è off  (on o off mi riferisco alla bobbina se è alimentata o meno), la scheda tastiera invia un dato via I2c a tutti i dispositivi connessi al bus, il dato cambia a secondo del pulsante premuto. Tutti i dispositivi sul bus I2c ricevono questo dato è sanno cosa devono fare (con il bus I2c c'è la possibilità di inviare una chiamata generale senza dover specificare l'indirizzo). Quindi la scheda relè pone A e B in off e C in on, il display è indipendente e può predersi la briga di fare anche giochini grafici, se non ha niente da fare, ma se arriva un dato sul bus I2c visualizzo il nuovo stato corrispondente, se arriva un nuovo dato nel bus mentre che è a lavoro verra messo nel buffer di dati.

La scheda tastiera può essere usata anche per gestire altri eventi esterni, tipo una interfaccia seriale (midi o meno) verso il mondo esterno.

Il display essendo dotato di mcu programmabile può essere usato anche per mostrare l'entita del segnale in modo grafico oltre che i volumi dei pot digitali il tutto agendo in modo indipendente dalla tastiera e dalla scheda relè.

Con questa suddivisione a livello softare non puoi avere problemi di nessun tipo, puoi gestire il debounche dei tasti senza influenzare le altre funzionalità.

Riguardo il rumore di commutazione, durante situazioni live se il rumore è minimo non è avvertibile dal publico, specie se stai suonando al pub, ma in registrazione potrebbe essere un problema, dipende tutto dall'entità del rumore stesso e quando e quante volte avviene una commutazione e questo dipende dal brano che stai suonando.

Se realizzi uno schema a blocchi funzionali, i primi problemi vengono fuori e saranno risolti prima di avere messo mani al portafogli.

Spero di averti dato spunto per future riflessioni.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Italy
Offline Offline
Jr. Member
**
Karma: 1
Posts: 56
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

La tua soluzione indubbiamente è molto interessante... Vorrei però utilizzare alcuni componenti che ho già in casa, ed in particolare un paio di AD5206 (digital pot) e di MCP23S17 (expander) Sono entrambi su bus SPI e, visto che me ne serviranno due di entrambi avrei pensato di sfruttare ciò che ho in casa e risparmiare qualche buon euro. Cambierebbe qualcosa nelle modalità di comunicazione? Non conosco bene SPI e I2C.
Come display ne ho uno della nuelectronics che ho comprato sull'onda dell'entusiasmo (come quello del link youtube che ho messo sotto, non riesco a linkare direttamente il sito perchè è offline!)... E' molto bello ma occupa tutta la fila di i/o dal 22 al 53, quindi limita la quantità di pin disponibili. Proprio per questo avevo pensato agli expander.

Come gestione delle schede avevo già pensato ad una suddivisione con l'utilizzo di un unico gestore centrale (appunto l'arduino mega) e varie periferiche:
- una scheda con il circuto di debounce, dove ognuno dei pulsanti è collegato direttamente su un ingresso digitale (per il debouncing posso usare un integrato dedicato, ed eventualmente potrei sfruttare i 6 interrupt del mega per i pulsanti che richiedono una rapidità di risposta maggiore)
- una scheda con i relè collegati alle uscite di un expander, in modo che con il bus SPI ed una linea di attivazione gestisco tutta la catena di relè. Questo sarebbe il primo attivato alla pressione di un tasto
- un'altra scheda per i potenziometri digitali, sempre su bus SPI, il cui aggiornamento del valore sarebbe meno prioritario dell'attivazione dei relay
- un'ultima scheda con il secondo expander per i led di segnalazione, stessa logica di sopra ma ancora meno prioritario
- Infine il display, il meno prioritario di tutti, che potrei aggiornare tranquillamente alla fine di tutte le altre operazioni
In questo modo da un veloce calcolo dovrei avere a disposizione porte sufficienti per le varie linee di slave select e per tutti i pulsanti da collegare direttamente ad arduino.

Per quanto riguarda la parte software ho già messo in conto di partire da una cosa molto basilare, del tipo: alla pressione di un tasto attivo una serie di relè e una serie di led, se ri-premuto li disattivo. Poi potrei aggiungere la regolazione dei pot digitali (ad esempio alla pressione di un altro tasto aumento il valore di un potenziometro che mi intensifica un certo effetto). Infine aggiungerei le funzionalità del display.

Il display mi servirebbe essenzialmente per programmare alcune funzioni senza ricorrere al PC, ad esempio decidere quali relay attivare alla pressione di un tasto, modificare manualmente il valore di un pot.digitale e cose simili

Logged

0
Offline Offline
Faraday Member
**
Karma: 31
Posts: 2908
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Visto che hai già materiale dentro è d'obbligo usarlo e alla fine quelli che hai elencato vanno bene. Tra I2c e SPI cambia il numero di pin necessari per ogni device connesso al bus, 2 soli fili per I2c e 3 per ISP più 1 per il chip select.

Quindi gestirai tutto con l'arduino Mega?

Controlla quanto memoria flash e ram occupa la gestione del display, così da sapere quanto ti puoi allargare con il codice di gestione generale.

La rogna può essere la gestione dei pulsanti, se devi scrivere un debounce software questo o viene complicato oppure impiega un certo tempo in cui il micro non può fare altro che aspettare. Gli interrupt a tempo o esterni sono comodi per la gestione di eventi che devono essere serviti subito, infatti il micro sospende quello che sta facendo e salta ad eseguire la routine di interrupt ed esce da questa dopo avere eseguito tutto il codice contenuto, in questo frangente il loop non gira e se premi un pulsante il software non se ne accorge. Per questo motivo il codice della routine di interrupt deve impiegare il minor tempo cpu possibile.

Quote
Per quanto riguarda la parte software ho già messo in conto di partire da una cosa molto basilare, del tipo: alla pressione di un tasto attivo una serie di relè e una serie di led, se ri-premuto li disattivo. Poi potrei aggiungere la regolazione dei pot digitali (ad esempio alla pressione di un altro tasto aumento il valore di un potenziometro che mi intensifica un certo effetto). Infine aggiungerei le funzionalità del display.

Devi mantenere in memoria lo stato attuale di ogni relè, ho usi una struttura (classe) o un array definendo delle #define come indici dell'array, tipo
#define IDX_RELE_BOOST     0
#define IDX_RELE_FLANGER 1
#define IDX_RELE_BYPASS    2
stateRele[10]

if (!stateRele[IDX_FLANGER])
    stateRele[IDX_FLANGER] = 1;

ecc.

Aspetto lo schema a blocchi funzionali.

Ciao.
Logged

AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

Italy
Offline Offline
Jr. Member
**
Karma: 1
Posts: 56
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Si, è un arduino mega.
Non so se è sufficiente sapere questo, ma ho compilato uno sketch di esempio contenente tutto il necessario (librerie e codice) per alcuni menu, caratteri e touchscreen, e mi restituisce:

Dimensione del file binario dello sketch: 19.456 bytes (su un massimo di 258.048 bytes)

Per la gestione dei pulsanti non ho problemi ad utilizzare un debounce esterno (lo ho già testato con altre applicazioni), mentre per l'interrupt teoricamente tra una pressione e l'altra di un pulsante passa qualche istante (diciamo almeno mezzo secondo), quindi ci sarebbe il tempo per eseguire qualche operazione.

Per lo schema a blocchi mi serve un po' di tempo. Nei prossimi giorni sono piuttosto occupato, ma vedrò di disegnare qualcosa.

Grazie di tutti i consigli!
Logged

Pages: [1] 2 3 4   Go Up
Jump to: