Voila j'aimerai que mes sculptures animé avec moteurs 12 volt (faible puissance) soient commandés (vitesse sens de rotation) par des fréquences sonores trompette sax et autres.
bref peut on transformer des fréquences sonores en impulsions électriques ?
Voila un vidéo de mes machines
Le but c'est de faire une performance musicien machines
Selon le volume et la fréquence sonore le moteur accélère et ou change de sens
En résumé peut on commander des servos moteur ou des moteur DC avec du son ?
Il faut un micro, faire un échantillonage du bruit ambiant, extraire l’enveloppe, une FFT pour extraire les fréquences et ensuite utiliser cette info pour piloter le,moteur
En gros Vous utilisez un micro pour capturer le signal (échantillonnage numérique à une fréquence adaptée), puis vous appliquez la transformation de Fourier rapide (FFT) qui va vous donner les amplitudes des différentes fréquences dans le signal.
Il y a des bibliothèques adaptées pour la FFT
Il faut un Arduinoqui pedale assez vite et avec assez de RAM pour avoir une fenêtre d’échantillonnage correcte
Merci à tous
Je précise que je suis débutant
Et j'essaye d'apprendre…
Un FFT c'est quoi
Pouvez vous me faire voir à quoi ressemble le montage
Et dite moi si je m'attaque à quelque chose de très complexe pour un ignorant
Encore merci
PS je viens de voir que la réponse sur le FFT à été donnée par JML
Je regarde ça
Il y’a pas mal de tutos (en anglais sans doute) si vous cherchez arduino FFT
Certains pilotent un ruban led en fonction des fréquences, ce serait un code similaire mais au lieu d’allumer des leds vous pilotez les moteurs
Tu te mélanges les pinceaux ici...
La fréquence d'échantillonnage doit être au moins le double de la fréquence maximale à détecter. C'est Nyquist qui l'a dit.
Ou alors on dira, que comme la fréquence échantillonnage doit être au moins de deux fois la fréquence maximal que tu aura dans ton signal, tu peux alors prendre toutes les techniques qui respecte ce théorème.
Je ne vois pas ce qui te gêne avec ça ?
Edit:
On parle bien de faire un échantillonnage pour déterminer le spectre de fréquence du signal.
Si tu parle de déterminer la forme d'onde, il est évident que ce n'est pas adéquate.
Il n'y a pas de probléme @terwal , je plaisantais et m'inclinais bien bas.
Je serais incapable de coder tout cela.
Au pire je ferais des filtres passe bandes à ampli OP centrés sur les fréquences voulues, genre quand le filtre entend la fréquence qui le chatouille, il se réveille et commande par exemple un transistor qui commande un servo ou un moteur... Parce que je ne sais pas faire autrement
Et encore, je ne sais pas si ça marcherait.
@J-M-L t'a expliqué le principe dans le message numéro 2 :
Acquérir le signal sonore, le numériser
Calculer la transformée de Fourier, c'est à dire le contenu fréquentiel de ton signal (qu'on appelle le spectre sonore)
Pour chaque fréquence d'intérêt (à préciser) : vérifier si l'amplitude du signal à cette fréquence est supérieure à un seuil choisi au démarrage
Si oui, lancer l'action correspondante
Ce n'est pas forcément facile, mais l'utilisation de bibliothèques spécialisées va te simplifier le travail.
Il faut commencer par choisir le matériel : pour le calcul, je te conseille un ESP32 : plus rapide, et aussi facile à programmer qu'un Arduino. Pour le microphone, il existe plusieurs solutions. Personnellement j'ai déjà utilisé le MAX9814 et il me donnait entière satisfaction (2.16€ chez Ali).
Tu peux voir ici ce que j'en ai fait : un analyseur de son avec ESP32 et transformée de Fourier.
Tu n'es pas forcé de t'en inspirer, mais ça te montre ce qu'un ESP32 peut faire.
Je crois qu'il existe une autre transformée qui permet d'obtenir directement l'amplitude d'une fréquence unique et qui est plus rapide, mais j'ai oublié son nom. Je crois que c'était @al1fch qui en parlait dans une discussion sur le forum. Peut-être qu'il verra ce message et donnera ce nom.
Si tu veux juste faire des actions sur un petit nombre de fréquences, ce sera plus efficace.