J'ai entrepris de lire un fichier son de nature Wav avec un pic, histoire de voir si on pouvais le faire, à priori ça fonctionne, mais j'ai beaucoup de chose à détaillé.
J'ai pour cela utilisé le Pic18F26K22 voici son datasheet
Ce pic possède 3896 octets de mémoire ram, 1024 octets de mémoire eeprom, et 64K de mémoire programme, malgré ses caractéristiques il ne fait pas le poids.
Un son de nature Wav prends énormément de place, et ne pourras pas tenir plus de 5 secondes à qualité très base
Explication
L'astuce... consiste à utiliser le Pwm de ce Pic, on faisant varier la modulation, ce qui permet de créer une tension qui va varié en fonction de la lecture du fichier son, après il faut le filtrer, et l'amplifier.
Pour le filtrage : j'ai utilisé un transformateur base fréquence, récupérer sur une télévision à tube cathodique que j'ai cannibalisé
Pour l'amplification : haut parleur avec ampli d'un vieux PC qui était jeté,
Schéma
Fichier son
En ce qui concerne le fichier son, il faut le convertir en format compatible pour pic,
Une fois converti voici un extrait de ce que ça donne
Code : Tout sélectionner
;***********************************************************************************************
;******************************** Nom du fichier : Balla-2.wav *********************************
;********************** Taille : 32972 octets, Durée : 00 h 00 min 01 sec **********************
;**** Codec : Microsoft PCM Format (Cbr), Échantillonage : 22050 Bytes/Sec, 11025 Hz, Mono *****
; Utilisation pour microcontrôleur avec la fonction decfsz : 0x01(upper), 0x80(high), 0xA0(low)
;***********************************************************************************************
ORG H'8FC'
sonwav
db 0x01,0x80,0xA0,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00
db 0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0xFF,0x00
db 0x00,0x00,0xFF,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
Les 3 premier octets définisse la taille des données pour l'utilisation du langage ASM, avec la fonction decfsz
ça ne fonctionnera pas en C, en réalité la taille réelle est 0x00,0x80,0xA0, si vous voulez que je l'adapte pour langage C, demander le moi.
Ce programme sera disponible très bientôt, mais j'ai encore des choses à terminer avec l'usart
Code du Pic
Le code ASM a été écrit avec jens file Editor 3.95
Fichier code : SonWav(code).zip
Fichier à mettre dans le Pic : SonWav(Hex).zip
Le son n'est pas vraiment nette, je me demande si on peut l’améliorer, voici ce que ça donne avec un enregistrement micro
Fichier sortie pic : Balla-2(Mp3).zip


pas le Q du bas, ni le Q(I) du haut ,mais le facteur de qualité Q)
j'ai trouvé mon bug entre le choix AVEC ou SANS impression du contenu des blocs de 128 bytes ..