Forum Électro-Bidouilleur

Merci de vous connecter ou de vous inscrire.

Connexion avec identifiant, mot de passe et durée de la session
Recherche avancée  

Nouvelles:

Le Forum est maintenant chiffré (préambule https). Bien sûr, des liens externes insérés dans les sujets vont demeurer inchangés. Mais la composition des pages du Forum est désormais sécurisée. Si des problèmes d'affichage surviennent, veillez à vider votre cache pour ce site.

Voir les contributions

Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.

Messages - Curiosus

Pages: 1 ... 9 10 [11] 12 13 ... 21
151
Bonjour sylvainmahe, et tout le forum,

Citer
Écrit par sylvainmahe : Vous en faites dans quelle région ?

Je pratique l'hélicoptériste dans la région àŽle-de-France

 8) Chapeau pour un autodidacte, et de plus qui n'est pas du tout du métier......  je suis pour ma part un de cela, et pour moi c'est pas toujours facile, car les datasheet tout en anglais :-\ même avec Google traduction j'ai du mal à  les comprendre.

Citer
Écrit par sylvainmahe : Par contre je doute fortement de la sensibilité, un sbm20 par exemple a beaucoup plus de surface, et un lnd712 comme j'utilise est sensible aux Alpha

Question surface, tout dépend de la quantité des photodiodes bpw34 que tu vas utiliser, quand à  la sensibilité ça dépends de ton ampli.

De plus c'est photodiodes sont sensibles aux Alpha, d'après ce que j'ai pu lire
 
Voici un montage à  base de cette photodiode : http://home.earthlink.net/~bat-detector/Loggers/RadMon.html

Citer
Écrit par sylvainmahe : j'ai supprimé cette page car je n'ai jamais réussi (j'ai pas beaucoup essayé certes) à  faire communiquer le MCP2221

Le MCP2221 à  un bug, il faut prendre le MCP2221A

Sur le site de Microchip tu peux consulter l'errata du MCP2221 ou il mentionne l'erreur, bon tout est en anglais >:(

Lien sur l'errata du MCP2221 : https://www.microchip.com/wwwproducts/en/MCP2221

Lien du MCP221A : https://www.microchip.com/wwwproducts/en/MCP2221A

Citer
Écrit par sylvainmahe : C'est du TWI le protocole (l'équivalent de l'I2C mais chez mocrochip).

Je connais bien les composants de chez Microchip, car je travaille beaucoup avec, si tu communiques en I²C c'est pas le plus simple.
pourquoi n'avoir pas pris le protocole Eusart qui est présent sur le MCP2221

Citer
Écrit par sylvainmahe : Par contre ce que je vais proposer bientôt est 100 fois mieux, de mon point de vu. Ce sera une interface RS232 relié en USART au microcontrôleur

MAX3232 pour une vrai RS232 c'est ce qui se fait de plus simple

Citer
Écrit par sylvainmahe : Certains le considèrent comme obsolète

C'est vrai qu'il est obsolète, mais comme les industrielles ne veulent pas changer toutes leurs machines, il garde ce protocole ;).


A+

152
Bonjour sylvainmahe, et tout le forum,

 8) Très belle conception, chapeau l'artiste, pas grand chose à  dire dessus, je fais moi même du modélisme dans le domaine de l’hélicoptère seulement, une question que je me pose vu la complicité de cette télécommande.

Ne pas répondre si ça te gêne,  tu fais quoi comme métier ?

Parce que la ça demande pas mal de connaisance technique sur tout point de vu....

J'ai vu aussi ton compteur Geiger, impressionnant, super bien fait, il existe des photodiodes bpw34 pour détection de la radioactivité l'avantage c'est que tu n'as pas besoin de haut tension, donc, beaucoup moins dangereux, car même si c'est bien protégé le risque est là .

J'ai une question concernant L'interface de communication USB

Avec le MCP2221 tu utilises quelle protocole(Eusart, I²C, SPI) sur ton microcontrôleur, pour communiquer avec l'ordinateur ?

 A+ 

153
Bonjour tout le monde,

Voila je viens de terminer mon petit oscilloscope, sans prétention, pour rejoindre les points j'ai utilisé l'algorithme de Bresenham

Il est évident que c'est pas un oscilloscope commercial, vous ne pourrez jamais dépasser les 20000Hz, je fais ça je vous le rappelle pour mon
enrichissement.

Le programme évoluera par la suite..... ;)

Un lien sur la nouvelle vidéo pour les plus intéressés  : https://www.youtube.com/watch?v=kdsdKreREfo

  A+


154
Bonsoir,

Le gros problème c'est que tu veux aller trop vite, sans comprendre le fonctionnement d'un enregistrement d'un fichier Wav

Sais tu ce que c'est un échantillonnage ?

Si oui, as tu une idée de la façon de procéder ?   

Pour faire un fichier Wav, il faut paramétrer ce que je viens de citer au-dessus, et tu feras de même pour ton convertisseur numérique de ton microcontrôleur ou sans lui, avec autre composant. 

Sous Windows il y a winmm.dll qui s'occupe de ça, mais si tu la paramètre pas l'enregistrement ne se feras pas.

Copier du code source je suis pas contre, mais si tu comprends pas un minimum tu feras pas grand chose. 

Je te conseille de lire ceci : http://culturesciencesphysique.ens-lyon.fr/ressource/numerisation-acoustique-Chareyron2.xml

C'est pas pour t'embêter que je dis ça, c'est pour que tu progresses  ;)

A+

155
Bonsoir,

Voila pour commencer un exemple d'une lecture de l'entête d'un fichier Wav, essai de comprendre ça.

Par la suite, quand j'aurais le temps, je vais te montrer comment créer un fichier Wav.

A+

156
Bonjour papyblue, et tout le forum,

Pour ceux qui sont intéressés voici une liste des potentiomètres et rhéostats numériques de chez Microchip https://www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=2ahUKEwjg3JzJwbDoAhU_DmMBHcJmCr0QFjAAegQIBBAB&url=http%3A%2F%2Fww1.microchip.com%2Fdownloads%2Fen%2FDeviceDoc%2F20002017D.pdf&usg=AOvVaw3_WiXv2YGAxB2TM3LT9H99

J'ai pu testé des MCP41XX d'une valeur de 10 kΩ, commandé en mode SPI, avec Pic18F26K22 en nombre de pas de 256 positions

Vous avez le choix lors de l'achat de 4 valeur résistif, pour les modéles de chez Microchip

- 5kΩ
- 10 kΩ
- 50 kΩ
- 100 kΩ

Ses potentiomètres numériques et rhéostats ont un nombre de pas, ainsi qu'une tolérance, défini dans la datasheet

Ils peuvent être du type volatile, et non volatile, les versions non-volatile ont une EEPROM

Ils intègrent la technologie WiperLock qui fournit une méthode de verrouillage de la configuration du curseur. 

Pour la déverrouiller, une commande haute tension est nécessaire (>8,5 V), ce qui protège la configuration pendant le fonctionnement normal.

Voici la datasheet du MCP41XX : https://www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=2ahUKEwig-5iHxLDoAhVRA2MBHbOwBI4QFjAAegQIBhAB&url=http%3A%2F%2Fww1.microchip.com%2Fdownloads%2Fen%2FDeviceDoc%2F22059a.pdf&usg=AOvVaw04i4cAfkGREqC6mfYFVhuT

Pour que vous puissiez tester sans achat je vous donne le schéma avec son fichier de simulation sous Proteus 8.9

Vous pouvez télécharger le logiciel Proteus en version d’évaluation (malheureusement) https://proteus.fr.malavida.com/#gref

Je vous joint aussi le fichier qui est à  mettre dans le Pic, sous simulation ou sans simulation

De plus voici le code écrit en langage assembleur (ASM)


    Errorlevel-302                        ; Supprime le message "Ensure that bank bits are correct"

    radix dec                             ; par defaut en mode décimal

    list p=18f26K22                       ; processeur utilisé                 
    #include <p18f26K22.inc>              ; Définitions des constantes

;***********************************************************************************************

; CONFIG11H
     CONFIG FOSC = INTIO67
     CONFIG FCMEN = OFF
     CONFIG IESO = OFF
; CONFIG2L
     CONFIG PWRTEN = OFF
     CONFIG BOREN = OFF
     CONFIG BORV = 190
; CONFIG2H
     CONFIG WDTEN = OFF
     CONFIG  WDTPS = 1
; CONFIG3H
     CONFIG CCP2MX = PORTC1                         
     CONFIG PBADEN = OFF
     CONFIG CCP3MX = PORTC6
     CONFIG HFOFST = OFF
     CONFIG T3CMX = PORTC0
     CONFIG P2BMX = PORTC0
     CONFIG MCLRE = INTMCLR
; CONFIG4L
     CONFIG STVREN = OFF
     CONFIG LVP = OFF
     CONFIG XINST = OFF
     CONFIG DEBUG = OFF
; CONFIG5L
     CONFIG CP0 = OFF
     CONFIG CP1 = OFF
     CONFIG CP2 = OFF
     CONFIG CP3 = OFF
; CONFIG5H
     CONFIG CPB = OFF
     CONFIG CPD = OFF
; CONFIG6L
     CONFIG EBTR0 = OFF
; CONFIG6H
     CONFIG EBTR1 = OFF
; CONFIG7L
     CONFIG EBTR2 = OFF
; CONFIG7H
     CONFIG EBTR3 = OFF

;*************************************** assignations *****************************************

#DEFINE cs     LATC,7                     ; RC7 ==> activer ou désactiver la transmission

#DEFINE led3   LATA,3                     ; RA3 led rouge, témoin de la limite maximal atteint par le potentiomètre

#DEFINE led2   LATA,0                     ; RA0 led bleu, témoin  de la limite minimal atteint par le potentiomètre

#DEFINE led1   LATA,7                     ; RA7 led verte, témoin de mise en fonction de l'appareil

;********************************* "déclaration des variables" *********************************

     CBLOCK H'20'                          ; bank0 
      loop1               :1
      loop2               :1
      loop3               :1
      loop4               :1
      loop5               :1                   
   
      buzzer              :1
      curseur             :2
 
      temps               :1
      tmps                :1

      adresse_low         :1
      adresse_hi          :1

      donner              :1
 
    ENDC

;************************* "Macro pour se positionner dans un tableau" *************************
tableau MACRO adresse

      movlw UPPER(adresse)                ;
      movwf TBLPTRU                       ;
      movlw HIGH(adresse)                 ;
      movwf TBLPTRH                       ;
      movlw LOW(adresse)                  ;
      movwf TBLPTRL                 
     
    ENDM

;************************** Macro pour écrit dans l'eeprom  ************************************
ecriture_eeprom MACRO valeur1,valeur2,valeur3

      movlw valeur1
      movwf adresse_hi

      movlw valeur2
      movwf adresse_low

      movf valeur3,W
      movwf donner

      call eeprom_ecriture

    ENDM

;*************************** Macro pour lire dans l'eeprom  ************************************
lecture_eeprom MACRO valeur1,valeur2

      movlw valeur1
      movwf adresse_hi

      movlw valeur2
      movwf adresse_low

      call eeprom_lecture

    ENDM

;******************************* "adresse de depart après reset" *******************************
    ORG H'0'
      bra debut

    ORG H'8'
      retfie

    ORG H'18'                                 
      retfie

debut
;***************** "configuration de la bank sélectionné du microcontrôleur" *******************

      movlw B'00000000'         
      movwf BSR

;******************** "configuration de l'oscillateur du microcontrôleur" **********************

      movlw B'01110100'                   ; oscillateur à  16 Mhz, fréquence stable si PLL (16 * 4)= 64 Mhz
;     movlw B'01100100'                   ; oscillateur à  8 Mhz, fréquence stable si PLL (8 * 4) = 32 Mhz
;     movlw B'01010010'                   ; oscillateur à  4 Mhz, fréquence stable 
;     movlw B'01000010'                   ; oscillateur à  2 Mhz, fréquence stable 
;     movlw B'00110010'                   ; oscillateur à  1 Mhz, fréquence stable 

      movwf OSCCON
     
;**************************** configuration du registre OSCTUNE ********************************

      movlw B'00000000'                   ; bit 6 à  1 : PLL * 4
      movwf OSCTUNE                       ; bit 6 à  0 : PLL désactivé
                                         
;*************************** configuration du registre ANSELA **********************************

      movlw B'00000000'                   ; en mode numérique :
      movwf ANSELA                        ; en mode E/S       : 2(RA0), 3(RA1), 4(RA2), 5(RA3), 7(RA5)

;**************************** configuration du registre ANSELB *********************************

      movlw B'00000000'                   ; en mode numérique :
      movwf ANSELB                        ; en mode E/S       : 21(RB0), 22(RB1) 23(RB2), 24(RB3), 25(RB4), 26(RB5) 
             
;**************************** configuration du registre ANSELC *********************************

      movlw B'00000000'                   ; en mode numérique :
      movwf ANSELC                        ; en mode E/S       : 13(RC2),  14(RC3), 15(RC4), 16(RC5), 17(RC6), 18(RC7) 

;*************************** configuration du registre ADCON0 **********************************

      movlw B'00000000'                   ; b0 = ADON mise en service le convertiseur 0 = arrêt : 1 = marche   
      movwf ADCON0                        ; b1 = GO/DONE indique la fin de la conversion analogique, et permet de lancer la conversion
                                          ; b2 à  b6 = réglage de la sélection du canal

;*************************** configuration du registre ADCON1 **********************************

      movlw B'00000000'                   ; b2 à  b3 = 00 : sélection de la tension de reférence, Vref+ = Vss   
      movwf ADCON1                        ; b0 à  b1 = 00 : sélection de la tension de reférence, Vref- = Vdd
                                         
;*************************** configuration du registre ADCON2 **********************************

      movlw B'00110110'                   ; b0 à  b2 = FOSC/64
      movwf ADCON2                        ; b3 à  b5 = 16 TAG
                                          ;
                                          ; b7 = détermine si le résultat de la conversion
                                          ; sera justifié à  droite = 1 ou à  gauche = 0 

;************************* configuration du registre CM1CON0 & CM2CON0 *************************

      movlw B'00000000'                   ; comparateur 1 off
      movwf CM1CON0

      movlw B'00000000'                   ; comparateur 2 off
      movwf CM2CON0

;*********************** "configuration du pwm du microncontrôleur" ****************************

      movlw D'255'                        ; réglage du "débordement" de TMR2
      movwf PR2                           ; PR2 D'255' donc fréquence à  1950 Hz avec prédiviseur à  4

                                 
      movlw B'00000101'                   ; "prédiviseur à  4" bit zéro à  1, bit un à  0
      movwf T2CON                         ; "timer on", bit deux à  1 (mise en route du timer2. 0 : arrêt. 1 : marche)
                                          ; "postdiviseur à  1" bit trois à  0, bit quatre à  0, bit cinq à  0, bit six à  0
                                          ; dans registre de contrôle
                                         
      movlw B'00001100'                   ; "1100" 4 bits mode pwm
      movwf CCP1CON                       ; "00" 2 bits pour variation du rapport cyclique(RC2)
      movwf CCP2CON                       ; "00" 2 bits pour variation du rapport cyclique(RC1)

;***************** configuration des registres TRISA & TRISB & TRISC & TRISE *******************

      movlw B'00000000'                   ; RA0(2), RA1(3), RA2(4), RA3(5), RA4(6), RA5(7), RA6(10), RA7(9) 
      movwf TRISA                         ;

      movlw B'11111111'                   ; RB0(21), RB1(22), RB2(23), RB3(24), RB4(25), RB5(26), RB6(27), RB7(28)
      movwf TRISB                         ;

      movlw B'01010000'                   ; RC0(11), RC1(12), RC2(13), RC3(14), RC4(15), RC5(16), RC6(17), RC7(18)     
      movwf TRISC                         ;

      movlw B'00001000'                   ; RE3(1)
      movwf TRISE                         ;

                                          ; VSS(8), VSS(19), VDD(20)

;**************************** configuration du registre SSP1CON1 *******************************

      movlw B'01000000'                   ; B7 = 0 : lecture des données au milieu
      movwf SSP1STAT                      ; B'01000000'
             
      movlw B'00100001'                   ; B0 ...B3 = spi en mode Maître, clock = FOSC/16, B5 = polarité négative
      movwf SSP1CON1                      ; 16 /16(quartz) = 1Mbps B'00100001'
           
;**************************** configuration du registre INTCON2 ********************************

     movlw B'00000000'                    ; B7 = 0 résistances en service
     movwf INTCON2                        ;

;**************************** configuration du registre WPUB ***********************************
                                       
     movlw B'11111111'                    ; tirage de résistance sur        : RB0(21), RB1(22), RB2(23), RB3(24), RB4(25), RB5(26), RB6(27), RB7(28) 
     movwf WPUB                           ; pas de tirage de résistance sur :

;**************************** configuration du registre INTCON *********************************     

    movlw B'00000000'                     ;
    movwf INTCON                          ; interruption hors service

;************************************ départ du programme **************************************

      clrf CCPR1L                         ; sortie du pwm(RC2)
      clrf CCPR2L                         ; sortie du pwm(RC1)

      clrf PORTA
      clrf PORTB
      clrf PORTC
   
      clrf LATA
      clrf LATB
      clrf LATC

;***********************************************************************************************

      bsf cs                              ; désactivé l'émision du port spi

;**************************** " témoin visuel de mise en fonction" *****************************

      movlw D'2'                          ; pour 2 clignotements
      movwf loop5
clignote
      bsf led1   
      rcall _1s
      bcf led1   
      rcall _1s
      decfsz loop5,F
      bra clignote   

;***********************************************************************************************

      clrf curseur+0
      clrf curseur+1

;***********************************************************************************************

      rcall traiter

;***********************************************************************************************

      bsf led2                            ; témoin de mise à  zéro

;***********************************************************************************************
gestion
      btfss PORTB,7
      rcall augmenter

      btfss PORTB,0
      rcall diminuer

      bra gestion

;***********************************************************************************************
augmenter
      btfsc led3
      return
         
      bcf led2
 
      movlw D'255'
      xorwf curseur+0,W
      btfsc STATUS,Z   
      bra plus_end

      incf curseur+0,F       
      bra traiter       

plus_end
      bsf led3
      clrf curseur+0                      ;
      bsf curseur+1,0                     ; 256         
      bra traiter       

;***********************************************************************************************
diminuer
      btfsc led2
      return

      bcf led3

      btfss curseur+1,0
      bra moins         

      clrf curseur+1
      movlw D'255'
      movwf curseur+0
      bra traiter       

moins
      movlw D'1'
      xorwf curseur+0,W
      btfsc STATUS,Z   
      bra moins_end

      decf curseur+0,F       
      bra traiter       

moins_end     
      bsf led2
      decf curseur+0,F       
      bra traiter       

;***********************************************************************************************
traiter             
      rcall _100ms                        ;

      bcf cs                              ; activé l'émision du port spi
      movf curseur+1,W                    ; poids haut
      rcall spi
      movf curseur+0,W                    ; poids bas
      rcall spi
      bsf cs                              ; désactivé l'émision du port spi

      return

;***********************************************************************************************
spi
      movwf SSP1BUF   
attends
      btfss SSP1STAT,BF                   ;
      bra attends 

      movf SSP1BUF,W                      ; 
     
      return

;************************* "pause de 1 seconde pour horloge de 16 Mhz" *************************
_1s
      movlw D'190'
      movwf loop1

      movlw D'75'
      movwf loop2

      movlw D'21'
      movwf loop3

      decfsz loop1,F
      bra $-D'2'
      decfsz loop2,F
      bra $-D'6'
      decfsz loop3,F
      bra $-D'10'

      return
;********************* "pause de 100 millisecondes pour horloge de 16 Mhz" *********************
_100ms
      movlw D'119'
      movwf loop1

      movlw D'8'
      movwf loop2

      movlw D'3'
      movwf loop3

      decfsz loop1
      bra $-D'2'
      decfsz loop2
      bra $-D'6'
      decfsz loop3
      bra $-D'10'

      return

;********************** "pause de 10 millisecondes pour horloge de 16 Mhz" *********************
_10ms
      movlw D'241'
      movwf loop1

      movlw D'52'
      movwf loop2

      decfsz loop1
      bra $-D'2'
      decfsz loop2
      bra $-D'6'

      return

;****************************** "pour écrit dans l'eeprom" *************************************
eeprom_ecriture
      movf adresse_hi,W                   ; adresse du poid fort
      movwf EEADRH                        ;

      movf adresse_low,W                  ; adresse du poid faible
      movwf EEADR                         ;

      movf donner,W                       ;
      movwf EEDATA                        ; écriture de la donnée
 
      bcf EECON1,EEPGD                    ; préparation à  l'autorisation
      bcf EECON1,CFGS                     ; access eeprom

      bsf EECON1,WREN                     ; Enable writes   
 
      bcf INTCON,GIE                      ; couper les interruptions

      btfsc INTCON,GIE                    ; contrôl si les interruptions sont bien coupés
      bra $-D'2'                          ; remonte à  la ligne 2 jusqu'a coupures des interruptions

      movlw H'55'                         ; séquence spécifique (c'est comme ça, il faut le savoir)
      movwf EECON2                        ; séquence spécifique
      movlw H'AA'                         ; séquence spécifique
      movwf EECON2                        ; séquence spécifique

      bsf EECON1,WR                       ; lance une opération d'écriture

      btfsc EECON1,WR                     ; on attend que l'operation d'ecriture soit finie (de l'ordre de la ms
      bra $-D'2'                          ; remonte à  la ligne 2 jusqu'a fin d'écriture

      bcf EECON1, WREN                    ; interdiction de l'écriture

      return

;******************************** "pour lire dans l'eeprom" ************************************
eeprom_lecture
      movf adresse_hi,W                   ; adresse du poid fort
      movwf EEADRH                        ;

      movf adresse_low,W                  ; adresse du poid faible
      movwf EEADR                         ;

      bcf EECON1,EEPGD                    ; préparation à  la lecture
      bcf EECON1,CFGS                     ; access EEPROM
      bsf EECON1,RD                       ; lecture de l'EEPROM

      movf EEDATA,W                       ; la valeur lue dans l'éeprom est placée dans W
      movwf donner

      return

;***********************************************************************************************

      End


Fichier joint :

157
Bonsoir,

Si j'ai le temps, je vais te l'écrire en RapidQ, voir ici https://fr.wikipedia.org/wiki/RapidQ 

C'est du basic, langage de programmation entièrement gratuit, fonctionne sous linux et jusquâ€™à  maintenant sur tous les Windows et même sous dos. ;)

Pour faire des petits programmes pour applications électroniques, il y a pas mieux.

A+

158
Bonjour,

Si tu pratique un langage de programmation sur PC, tu pourrais écrire un programme pour comprendre le principe (je le fais systématiquement pour tout ce que je comprends pas et sa m'aide vraiment) 

Pour commencer :  lecture de l'entête de celui-ci, puis quand tu as bien assimilé cela tu fais un lecteur de fichier Wav.

Après tu pourras passer au microcontrôleur ou ça seras plus dur, car tu travailles pour le type de ton microcontrôleur en 8 bits, mais avec une résolution de 10 bits ;) pour ADC

Regarde ici https://fr.wikipedia.org/wiki/Waveform_Audio_File_Format Il donne le code source que je remets ici

Citer


                                                                            Bloc de déclaration d'un fichier au format WAVE

   FileTypeBlocID  (4 octets) : Constante «RIFF»  (0x52,0x49,0x46,0x46)
   FileSize        (4 octets) : Taille du fichier moins 8 octets
   FileFormatID    (4 octets) : Format = «WAVE»  (0x57,0x41,0x56,0x45)

[Bloc décrivant le format audio]
   FormatBlocID    (4 octets) : Identifiant «fmt »  (0x66,0x6D, 0x74,0x20)
   BlocSize        (4 octets) : Nombre d'octets du bloc - 16  (0x10)

   AudioFormat     (2 octets) : Format du stockage dans le fichier (1: PCM, ...)
   NbrCanaux       (2 octets) : Nombre de canaux (de 1 à  6, cf. ci-dessous)
   Frequence       (4 octets) : Fréquence d'échantillonnage (en hertz) [Valeurs standardisées : 11 025, 22 050, 44 100 et éventuellement 48 000 et 96 000]
   BytePerSec      (4 octets) : Nombre d'octets à  lire par seconde (c.-à -d., Frequence * BytePerBloc).
   BytePerBloc     (2 octets) : Nombre d'octets par bloc d'échantillonnage (c.-à -d., tous canaux confondus : NbrCanaux * BitsPerSample/8).
   BitsPerSample   (2 octets) : Nombre de bits utilisés pour le codage de chaque échantillon (8, 16, 24)

[Bloc des données]
   DataBlocID      (4 octets) : Constante «data»  (0x64,0x61,0x74,0x61)
   DataSize        (4 octets) : Nombre d'octets des données (c.-à -d. "Data[]", c.-à -d. taille_du_fichier - taille_de_l'entête  (qui fait 44 octets normalement).
   DATAS[] : [Octets du Sample 1 du Canal 1] [Octets du Sample 1 du Canal 2] [Octets du Sample 2 du Canal 1] [Octets du Sample 2 du Canal 2]

   * Les Canaux :
      1 pour mono,
      2 pour stéréo
      3 pour gauche, droit et centre
      4 pour face gauche, face droit, arrière gauche, arrière droit
      5 pour gauche, centre, droit, surround (ambiant)
      6 pour centre gauche, gauche, centre, centre droit, droit, surround (ambiant)


 Ici :https://audio.online-convert.com/fr/convertir-en-wav il propose de convertir un fichier audio au format WAV regarde bien car il parle résolution, d'échantillonnage, canaux.

Modifier la résolution en bits : 8 bits, 16 bits, 24 bits, 32 bits

Modifier le taux d'échantillonnage : 8000 Hz, 11025 Hz, 16000 Hz, 22050 Hz, 32000 Hz,44100 Hz, 48000 Hz, 96000 Hz

Modifier les canaux audio : mono, stéréo

Si tu arrives à  comprendre ça, c'est que tu as tout compris ;)

    A+

 

159
Bonsoir,

Citer
Écrit par Ayobo : 2*20KhZ

Non, c'est pas 2*20KHz

Ton micro c'est 20Hz au minimum et 20KHz au maximum, après tout dépends de celui-ci.

Ton microcontrôleur possède un ADC (Convertiseur analogique) qui est généralement sous 10 bits, ça te fait de 0 -1023 ça veut dire que si tu prends une tension de référence de 5 volts tu auras un pas de

5 volts / 1023 = 0,004887 volts

il te faudra amplifier ton signal ou prendre un module comme celui-ci https://www.ebay.fr/itm/GY-4466-MAX4466-Electret-Microphone-Amplifier-Adjustable-Gain-for-Arduino/113877068629?_trkparms=aid%3D555018%26algo%3DPL.SIM%26ao%3D1%26asc%3D20131003132420%26meid%3Dfe492ec7e38b4bb0a86934beb388e9e3%26pid%3D100005%26rk%3D2%26rkt%3D12%26mehot%3Dco%26sd%3D283259784596%26itm%3D113877068629%26pmt%3D1%26noa%3D0%26pg%3D2047675%26algv%3DSimplAMLv5PairwiseWeb&_trksid=p2047675.c100005.m1851

Qui est réglable en amplitude

A savoir que tu peux enregistrer et sauvegarder les données avec ton microcontrôleur, en sdram pour plus de rapidité puis le récupérer après.

Si tu veux réussir à  faire ton projet, tu devras apprendre pas mal de chose.

A+

160
Bonjour Ayobo, et tout le forum,

Citer
Écrit par Ayobo : mon but est d’échantillonner-bloquer puis ensuite numérisée un signal provenant d'un module microphone

Regarde le procéder utilisé avec un oscilloscope, j'en parle ici : http://forum.bidouilleur.ca/index.php?topic=698.0


Citer
Écrit par Ayobo : 1) Quelle est la fréquence du signal provenant du microphone

La fréquence dépend de ton microphone(qualité), en général celle-ci est comprise entre 20 Hz à  20000 Hz, après reste à  voir avec la datasheet
de ton microphone.

Citer
Écrit par Ayobo : est t'elle variable ou non

Ben ouais, elle est variable

Citer
Écrit par Ayobo : si variable quelles sont les fréquences min/max possible. Est-ce [20Hz;20Khz] ?

Pour ton oreille c'est 20Hz à  20000 Hz mais certain arrive à  entendre au-delà , (comme les chiens, les chats, chauve souris.......)

Citer
Écrit par Ayobo :2) Pour entré un peu plus dans le détail de la fonction EB, si j'ai bien compris la datasheet du lf398, l'entrée LOGIQUE permet d'envoyer des impulsion dont la fréquence est l'image de la fréquence d'échantillonnage (Mode SAMPLE) ?? De plus la capacité appeler Ch (hold capacity) permet donc de maintenir le signal après chaque échantillon prélever (Mode HOLD) ??

Pour plus d'info voici une vidéo :https://www.youtube.com/watch?v=Y3B1tQ9Hk4I

Citer
Écrit par Ayobo : Quelle serait la fréquence d’échantillonnage et de maintient idéal pour un signal provenant d'un module microphone arduino pour avoir une qualité acceptable ??

Un échantillonnage ça dure quelle que micro-seconde, de plus il te faut plusieurs échantillonnage pour créer un son.

Citer
Écrit par Ayobo : Comment le vérifier si nous avons pas de matos.

Apparemment tu as les outils nécessaire, car tu possèdes un microcontrôleur (l’Arduino-Nano), après faut savoir s'en servir.......
 
Je peux t'aider, mais pas avec Arduino-Nano

Moi je travaille avec des microcontrôleur Microchip(Pic) et son datasheet, dans le langage ASM, ce qui me permets de bien comprendre le microcontrôleur.

Exemple du Théorème de Shannon :https://www.f-legrand.fr/scidoc/docimg/numerique/tfd/echantillonnage/echantillonnage.html

Pour moi, et vu mon niveau, le Théorème de Shannon ça me fait trop de mathématique, je suis partit sur des points, avec l'algorithme de Bresenham voir ici pour les plus intéressées : https://fr.wikipedia.org/wiki/Algorithme_de_trac%C3%A9_de_segment_de_Bresenham

A+

 

161
Bonjour,

Merci à  Électro-Bidouilleur pour toutes c'est info, j'ai moi même beaucoup de mal avec les datasheet.

Je vais lire tous ça, et aurait peut être des questions par la suite... ;)

A+

162
Bonsoir tout le forum,

Je viens de voir une des dernières vidéos d'Électro-Bidouilleur:sur le langage assembleur : https://www.youtube.com/watch?v=N53I0CbDejo

Je tiens à  remercier Électro-Bidouilleur pour cette vidéo.

Pour ma part je programme tous mes Microcontrôleurs (Microchip) en assembleur, de plus, j 'ai créée  mes propres bibliothèques.

Ce qui me rends totalement autonome, ça n'a pas été toujours facile, j'ai appris avec les cours de Monsieur Bigonoff donc voici l'adresse
pour les intéressés : https://www.abcelectronique.com/bigonoff/organisation.php?par=5d58e

Ne pas oublié que tout les langages de haut niveau sont fait avec l'assembleur,  ce qui explique leurs lenteurs.

De plus en choisissant un langage de haut niveau vous pouvez vous retrouver avec des fonctions qui seront limitées(comme dans le  cas c'est super réalisation http://forum.bidouilleur.ca/index.php?topic=391.msg2270#msg2270)

Avec la langage assembleur, vous pouvez désassembler le programme compilé pour ainsi obtenir le code source.

ça sert à  comprendre un programme,  trouver un bug(erreur), ou améliorer un code, mais il faut déjà  avoir beaucoup d’expérience pour manipuler ceci.

A+

163
Bonsoir TK_Ryuzaki, et tout le forum,


Un forum qui est tout en français, et dans la plupart des langages pour les microcontrôleur Pic http://www.fantaspic.fr/index.php

Pour les livres, surtout en C++ tu ne trouveras pas grand chose, faut apprendre sur le tas.

A+

164
Bonsoir Yffig, et tout le forum,

J'ai publié une petite vidéo, voir ici : https://www.youtube.com/watch?v=NKMaj2xxP-4

Citer
Écrit par Yffig : Les gusses qui écrivent "J'ai une panne sur mon récepteur FM. Pouvez vous m'aider, SVP",  ça me "saoûle": des photos, des références du matos, c'est trop demander ?

Certain ne veule même pas faire l'effort d'apprendre un peu (ils ont aucun centre d'intérêt) j'irais pas plus loin sur ce sujet.....   

Citer
Écrit par Yffig : Toi, quand tu postes,  tu mets systématiquement ton code

Ben, je le mettrais quand tout sera fini, il y encore du boulot, maintenant si on me demande le code sans que cela soit fini, je le donne sans aucun problème...

Reste à  faire : l'interpolation des points entre eux, affichage sans effacer les points affiché à  l'écran, et améliorer légèrement de la stabilisation de l'image, qui n'est vraiment pas mal de mon point de vue.

Coté PC juste à  gérer le protocole de communication RS232 ou USB, par voie hertzienne, pour le programme PC, il est quasiment fini, j'ai fait simple, on verra pas la suite pour amélioration.

A+

165
Bonsoir Yffig, papyblue, et tout le forum,


Citer
Écrit par Yffig : La vidéo de Dave Jones a des sous titres que tu peux activer mais uniquement en anglais..

Merci j'avais pas vu

Citer
Écrit par Yffig : Sinon, l'interpolation par Sin(x)/x (dite Sinc(x) ou Sinus Cardinal) est,  théoriquement, la méthode parfaite pour reconstituer un signal échantillonné telle que démontrée par le théorème d'échantillonnage de Shannon

J'aime bien les mathématiques, mais j'ai mes limites, là ..... c'est trop haut pour moi... , merci Yffig  ;)

Citer
Écrit par papyblue : il explique beaucoup mieux que moi, du coup je fais "petit joueur" avec mes 4 photos !

J’apprécie énormément ta volonté de vouloir aider, et même si quelqu'un fait mieux que toi, c'est pas grave, l'intension et là , merci papyblue  ;)

Citer
Écrit par papyblue : Quand j'ai vu la vidéo de Bertrand, j'avais pensé participer au défit

On peut très bien le continuer, sans vouloir participer au défi, moi c'est l'idée qui me plait, car comme tu le sais je programme en ASM

Je suis obligé de faire mes bibliothèques, et de comprendre ce que je fais, pour moi hors de question de charger une bibliothèque donc j'en comprends rien.

Il y a pas que la s-vidéo, tu peux aussi le faire par prise VGA, après renseignement j'ai vu que Arduino avait une bibliothèque pour cela.

Citer
Écrit par papyblue : Il ne faut surtout pas imaginer qu'au bout du compte on aura un oscilloscope capable de rendre le moindre service

C'est surtout l'enrichissement personnelle que ça apporte, et c'est bien pour cela que je ne veux pas passer par les bibliothèques toutes faites.

Je vais envoyer via un petit émetteur les données sur PC(100 octets) toutes les 100ms, protocole Eusart, pour y reproduire le signal via un petit programme que je suis entraint d'écrire sur PC

Parfois ça part d'une idée, et l'idée grossis, regarde Debian(Linux) c'est des étudiants qui l'on s'en cesse améliorer, et ça à  fini dans nos smartphone (Android)   

A+

Pages: 1 ... 9 10 [11] 12 13 ... 21