Sei sulla pagina 1di 15

UNIVERSITA DEGLI STUDI DI TRIESTE FACOLTA DI INGEGNERIA Dipartimento di Ingegneria Industriale e dell'Informazione

Sviluppo di un sistema audio su FPGA per applicazioni robotiche


Laureando:
Davide Cannarella

Relatore: Prof. Enzo MUMOLO

Motivazioni

Utilizzo del canale audio in robotica Principali applicazioni: Comunicazione uomo-robot Comunicazione robot-robot Localizzazione robotica Fusione sensoriale Esperienze con sistemi FPGA

Introduzione (1)

In questa tesi stato realizzato un sistema di elaborazione audio mediante un sistema FPGA Sono stati realizzati: Sistema di acquisizione audio mono canale Sistema di acquisizione stereo Sistema di restituzione audio Sistema di microfoni direzionali (Beamforming a due canali)

Strumenti hardware utilizzati


Spartan 3-AN FPGA Pmodmic

PmodD/A2

Ambiente semi-insonorizzato

Strumenti software utilizzati


Il pacchetto software utilizzato fornito dalla Xilinx e comprende
ISE Design Suite 9.1 (sintetizzatore, compilatore e generatore)

Strumenti software utilizzati


Altri sottoprogrammi utilizzati
PlanAhead Design and Analysis: crea il collegamento logico tra componenti della board (*.NGD) System Generator for DSP: genera il file di interfaccia (*.NGC) IMPACT: programma di interfaccia tra software (ISE) e hardware (FPGA)

Temporizzazione ADC

Algoritmi implementati
Sistema di acquisizione mono canale e stereo
Processo di abilitazione dell' ADC
Abilita_ADC: process (current_state) begin if current_state = Idle then nCS <='1'; [.] elsif current_state = ShiftIn then nCS <='0'; [.] else --if current_state = SyncData then nCS <='1'; end if; end process;

Processo di acquisizione e instradamento del vettore data


Instrada : process(clk_div, enParalelLoad, enShiftCounter) begin if (clk_div = '1' and clk_div'event) then if (enShiftCounter = '1') then temp <= temp(14 downto 0) & SDATA; shiftCounter <= shiftCounter + '1'; elsif (enParalelLoad = '1') then shiftCounter <= "0000"; DATA <= temp(11 downto 0); end if; end if; end process;

Algoritmi implementati
Sistema di restituzione mono canale e stereo
Processo di abilitazione DAC Processo di instradamento di vettore/i audio in uscita
counter : process(clk_div, enParalelLoad, enShiftCounter) begin if (clk_div = '1' and clk_div'event) then if enParalelLoad = '1' then ShiftCounter <= "0000"; // utilizzato per P_to_S temp1 <= control & DATA1; temp2 <= control & DATA1; elsif (enShiftCounter = '1') then temp1 <= temp1(14 downto 0)&temp1(15); temp2 <= temp2(14 downto 0)&temp2(15); shiftCounter <= shiftCounter + '1'; end if; end if; end process;

Abilita_DAC: process (current_state) begin if current_state = Idle then NSYNC <='1'; [...] elsif current_state = ShiftOut then NSYNC <='0'; [...] else --if current_state = SyncData then NSYNC <='1'; [...] end if; end process;

Algoritmi implementati
Sistema di beamforming con due microfoni

Process(start) Begin --Algoritmo di Beamforming temp_dac <= ("0" & data1) + data; --sum <= temp(10 downto 0); --carry_out <= temp(11); end process;;

Ambiente di misura

Risultati sperimentali
Risultati microfono mono
Cardioide ideale Risultato sperimentale misurato

Risultati sperimentali
Risultati beamforming
Beamforming ideale Risultato sperimentale misurato

Conclusioni & prospettive future


Il sistema audio su FPGA stato realizzato con successo I sistemi mono canale e stereo risultano essere di ottima qualit Il prototipo di microfoni direzionali mediante approccio Delay & Sum risponde in maniera corretta Implementazione di queste applicazioni in un sistema robotico reale

Grazie