sviluppo di un prototipo di simulatore polifonico per concerto di campane trieste, 12 marzo 2013...
TRANSCRIPT
SVILUPPO DI UN PROTOTIPO DI SIMULATORE
POLIFONICO PER CONCERTO DI CAMPANE
Trieste, 12 marzo 2013
Laureando:
Francesco Guzzi
Relatore:
Prof. Sergio Carrato
Correlatore:
Ing. Piergiorgio Menia
Università degli Studi di Trieste
DIPARTIMENTO DI INGEGNERIA E ARCHITETTURACorso di Laurea in Ingegneria Elettronica
PREMESSA E SPECIFICHE:● Simulare un gruppo di 12 campane → 12 semitoni● Sistema da collegare ad un sequencer esterno.● Riproduzione campioni audio pre-registrati → 10 s● Gestione ritardi.● 2 file per campana
→ 24 file● Latenza < 10 ms.● Basso costo totale.
DELAY 1PLAY 1 DELAY 1 PLAYBACK
DELAY 1PLAY 2 DELAY 2 PLAYBACK AUDIO OUT
DELAY 1PLAY 24 DELAY 24 PLAYBACK
...
MEMORIACAMPIONIINTERFACCIA
REMOTO
PC
... ...
SEQUENCERESTERNO
2/ 16
SOLUZIONE IMPLEMENTATA● Boot istantaneo.● Bassa latenza.● 24 ingressi digitali. ● 1 uscita monofonica
analogica.● Ritardi programmabili
per ogni voce.● Gestione da remoto.● Soluzione a memoria
distribuita
BUS
MODULO 1
MODULO 2
MODULO 12
PLAY 1
PLAY 2
MCU
PLAY 24
OUT
PC
BUS
BUS
...
...
...
...
...
3/ 16
MODULO VS1000mod● 12 moduli● Alimentazione 5 V.● Formato DIP32.● File in formato VORBIS (o WAV).● SoC VS1000 programmabile.● Funzioni tipiche in ROM istruzioni.● Poca RAM istruzioni.● Sorgenti firmware di default.● GPIO a livelli CMOS.● FLASH SPI da 16 Mbit. → 23,7 s● Uscita audio analogica lineout 4/16
FIRMWARE CUSTOMInit audio structs
Set Pll
Auto Addressing
Check upload startup
Check volume startup
Main code Endless loop
GPIO conf
Init SPI
Enable interrupts
START
Set Hook
– Usa funzioni di libreria del firmware originario
– Accesso FLASH-SPI
– Lettura/scrittura filesystem a blocchi
– “Raw” TX/RX UART
– Implementato decoder software WAV
– GPIO “manuale”.
– Protocollo → upload file.
→ set volume.5/ 16
UPLOAD FILES: protocollo– Implementato protocollo a pacchetto di tipo
“stop and wait”
– Risposta ACK / NACK
– ByteStuffing / De-stuffing
– Campo dati a lunghezza variabile (MAX 240 Byte)
– Gestione timeout, overflow, address-mismatch
– Struttura pacchetto:
[STX] || [Indirizzo][Tipo_pacchetto][num_sequenza][dati][CHK] || [ETX]
6/ 16
SISTEMA DI CONTROLLO– Triggerare esecuzione dei file audio dopo il delay
programmato.
– Rimanere in ascolto sulla porta seriale per esecuzione comandi.
• Propri
• “Helper”
7/ 16
–12 x 2 Input e Output digitali.
– 1 uscita per pilotare il reset moduli;
– UART
– memoria non volatile;
– Prototipo con ATMEGA16L
SISTEMA DI CONTROLLO
8/ 16
– Tutti i nodi in ascolto
– Tx solo se indirizzo coincide
– RS232 logica invertita
– Idle “alto”
– Buffer digitali IN/OUT
BUS SERIALE MULTIDROP
9/ 16
Software di gestione
10/ 16
SISTEMA DI MISCELAZIONESIMULAZIONE
Frequenza [Hz]
Attenuazione[dB]
11/16
SCHEMA FINALE SOMMATORE
– Partitore idealizzato
– Uso di entrambi gli opmap nel package
12/16
MODULO ALIMENTATORE
– Alimentazione 12 V CC → 5 V → 3.3 V
– 80 mW / modulo (consumo tipico in play)
13/16
CONSIDERAZIONI FINALI
– Sistema prototipo funzionante egregiamente.
– Test protocollo con azioni disturbanti
– Unplug cavo durante trasmissione.
– Generazione di semplici errori nel pacchetto.
– Problemi / semplicità derivanti da:
– scelta del sistema modulare.
– uso di campioni pre-registrati.
14/16
SVILUPPI FUTURI– Implementazione di una funzionalità di
“sequencer autonomo” tipo “carillon”.
– Play standalone ma gestione su PC.
– Auto-apprendimento del tempo di ritardo.
– Riduzione firmware moduli.
– Miglioramento sicurezza protocollo.
15/16
Grazie per l'attenzione.