Home
Accesso / Registrazione
 di 

inserire file MP3, WAV in un Pic.

6 risposte [Ultimo post]
ritratto di OPGUIDO
Offline
Titolo: User++
Utente++
Ultima visita:
1 anno 38 settimane fa
Utente dal: 11/06/2011
Messaggi: 58

Salve,vorrei inserire dei file musicali (MP3 o WAV) all'interno di un Pic per sentirli riprodotti al prenere di un pulsante, mi spiegate come si fa?
Grazie.

ritratto di Emanuele
Offline
Titolo: Moderator
Moderatore
Ultima visita:
10 ore 46 min fa
Utente dal: 28/07/2007
Messaggi: 1022
Utente PREMIUM
File Wave o MP3 nei PIC

Ciao,
l'argomento è molto interessante e può essere approfondito a vari livelli.
A mio avviso il primo è questo:

hai letto questo articolo?
http://it.emcelettronica.com/come-processare-file-audio-wav-sistemi-embedded

ritratto di OPGUIDO
Offline
Titolo: User++
Utente++
Ultima visita:
1 anno 38 settimane fa
Utente dal: 11/06/2011
Messaggi: 58
Si, cosa ne pensi? Mi sembra

Si, cosa ne pensi? Mi sembra macchinoso.
Io preferirei mettere una memoria esterna con all'interno il file audio, ma non so come fare e quale memoria usare.
Ciao e grazie

ritratto di lucagiuliodori
Offline
Titolo: PowerUser
Utente Power
Ultima visita:
2 settimane 19 ore fa
Utente dal: 21/03/2011
Messaggi: 195
Dipende tutto da che PIC vuoi

Dipende tutto da che PIC vuoi usare e dalla spesa del progetto:

- Se hai già scelto un pic di "fascia bassa" (un PIC16 o un PIC18 per intenderci) o non intendi spendere molto, l'unica soluzione che mi viene in mente è quella di utilizzare una EEPROM esterna (già che ci sei puoi usare quelle della microchip: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=80) e salvare all'interno di essa i valori che sono pronti a essere forniti in uscita.

- Se non hai vincoli di prezzo o non hai ancora scelto il PIC, io ti consiglierei di utilizzare un PIC24 o un PIC32 e una memoria SD esterna in cui puoi memorizzare il file audio. Sul sito della microchip ci sono una marea di application note che ti danno il codice già scritto per gestire il file system di una SD e altre che ti dicono come gestire un file wave. A questo punto ti rimane solo da modificare un po il software per adattarlo alle tue esigenze e costruirti l'hardware.

Facci sapere.
Ciao!

ritratto di OPGUIDO
Offline
Titolo: User++
Utente++
Ultima visita:
1 anno 38 settimane fa
Utente dal: 11/06/2011
Messaggi: 58
Ciao, ci provo. I PIC delle

Ciao, ci provo.
I PIC delle famiglie 24 e 32 sono molto diversi nello scrivere il codice in C di un Pic 18?
Grazie

ritratto di lucagiuliodori
Offline
Titolo: PowerUser
Utente Power
Ultima visita:
2 settimane 19 ore fa
Utente dal: 21/03/2011
Messaggi: 195
Il C è sempre il C, sia per i

Il C è sempre il C, sia per i PIC18 sia per i PIC24 o 32.
Quello che cambia è la gestione delle periferiche che dipende dal compilatore e quindi dal processore, ma leggendo i datasheet del compilatore e del micro dovresti riuscire a cavartela senza problemi.

Facci sapere come va.
Ciao!

ritratto di slovati
Offline
Titolo: User+
Utente+
Ultima visita:
10 ore 28 min fa
Utente dal: 12/01/2009
Messaggi: 28
Utente PREMIUM
qualche consiglio

Personalmente ti consiglio di percorrere la strada: (Formato WAV + FileSystem MicroChip x MMC/SD + PIC). Il formato WAV, a differenza dell'MP3, non è compresso. In realtà ciò non è sempre vero, ma nella stragrande maggioranza dei casi i file WAV non sono compressi, a maggior ragione se poi li crei tu scegliendo le opzioni di codifica (con un tool come Audacity o similare). Quindi i file WAV sono facilmente "masticabili" da un microcontrollore (il PIC va benissimo) con un firmware tutto sommato non molto complesso. Il formato MP3, per contro, richiede chip di decodifica hardware, non proprio alla portata di tutti. Un primo problema che sorge a questo punto è lo spazio di memoria: essendo non compresso, il formato WAV richiede spazio. A meno che tu voglia riprodurre solo un brano di qualche secondo, è necessario ricorrere a una memoria esterna. Microchip ci viene incontro, perchè mette a disposizione degli sviluppatori un pacchetto software per la famiglia PIC in grado di implementare un file system FAT/FAT32 per memorie MMC/SD (le MMC sono in end of life), e Application Note con le spiegazioni del caso. Ti consiglio di scaricare questo pacchetto (free) e leggere bene le note: puoi infatti configurare il filesystem con varie opzioni (ad esempio un'unica directory dove mettere tutti i file, oppure una struttura a dalbero, e così via). Le opzioni migliori, ovviamente, si pagano in termini di memoria RAM richiesta. Con un PIC di fascia alta, comunque, vai sul sicuro, mi sembra di ricordare che abilitando tutte le opzioni sono richiesti poco più di 3Kb di RAM, e puoi quindi scegliere un PIC con la RAM da 4kb (non costano molto, e ci sono anche nelle versioni dual in line, proprio per gli hobbysti). Come memoria puoi quindi usare una SD, con pochi euro hai memoria da vendere.
Rimane a questo punto da scrivere il firmware. Un consiglio: l'accesso alla memoria SD (tramite SPI) ha una certa latenza. Anche scegliendo un formato WAV a 8kHz e 1 byte dati (8.000 campioni da 1 byte da riprodurre ogni secondo) non ce la fai a leggere da SD e riprodurre direttamente i campioni letti: avresti dei salti/pause. Il "trucco" (usato anche nei riproduttori commerciali) è quello di avere un buffer in RAM con almeno 2 blocchi di dati: uno è quello in riproduzione, l'altro è quello che nel frattempo viene letto dalla memoria. Poi i banchi vanno switchati quando necessario. Così mentre riproduci un blocco, ne leggi un altro, e hai sempre dati "freschi" in RAM (il tempo di accesso dalla RAM è ovviamente trascurabile).

 

 

Login   
 Twitter Facebook LinkedIn Youtube Google RSS

Chi è online

Ci sono attualmente 1 utente e 37 visitatori collegati.

Utenti online

Ultimi Commenti