Passer d'un Arduino Uno à un ESP32, c'est simple?

Bonjour
Jusqu'ici, j'ai toujours programmé des Arduino Uno. Seulement pour un projet de jukebox, j'ai besoin d'utiliser quelque chose de plus puissant et avec plus de mémoire (utilisation d'une librairie de Fast Fourier Transform pour faire un affichage type spectrum analyzer via des LED strips et bien plus de LED strips encore pour faire un affichage des titres et artistes en haut du meuble.
Ma question simple est: est-ce juste une histoire de changer dans Arduino IDE le type du device utilisé pour que ça marche à l'identique ou est-ce bien plus compliqué? Ce que je veux dire principalement, c'est que j'utilise les librairies FastLED et ArduinoFFT, marcheront-elles forcément sur ce type de microcontroller: https://www.amazon.fr/gp/product/B074RGW2VQ/?
Merci
David

Bonjour

oui c'est simple

il faut bien entendu tenir compte du fait que l'ESP32 travaille sous 3,3V ce qui implique un adaptation de niveau logique si on veut lui associer un module travaillant soius 5V

On peut s'attendre de temps en temps à quelques petites retouches de code mais pour l'utilsiateur c'est presque à l'identique.

Il me semble que fastLED est compatible ESP32, ArduinoFFT j'en suis certain pour l'avoir utilisée

Si tu as un doute pour une librairie vas voir sur son site ou son dépôt pour connaître les processeurs compatibles

Probablement, pour le vérifier il faut installer la carte et les bibliothèques via le gestionaire de l'IDE.
La manip est possible même sans carte physique. Si ça compile c'est bon.

Il n'y a pas que le coté logiciel à controler il y a le coté matériel : les circuits Espressif fonctionnent en 3,3 V et n'acceptent pas de tension supérieure à 3,3 V. Quand je dis accepter cela signifie que tu crames une entrée si tu lui appliques 5 V.

Bien sur ce n'est pas bloquant, il existe des modules pour décaler les niveaux dans les deux sens, il faut juste ne pas oublier d'en acheter et de s'en servir.

Grillé par Al1fch

Merci à vous 2 de vos réponses très rapides, je vais donc commander ce µcontroller.

Pour ce qui est de FastLED, je traine sur un forum de flipper virtuel (pincabpassion.net) et j'ai vu que ça tournait avec une WEMOS d1 mini pro qui est aussi en 3.3V il me semble, donc l'aspect 3.3V en sortie devrait fonctionner.

Je n'avais pas pensé à l'histoire de l'entrée (entre 0 et 3.3V, c'est ça? pas d'entrée négative?).
Serait-il possible de savoir de quels modules vous parlez (qui permettraient de ramener un signal par exemple de [-9V,9V] à [0V,3.3V], ça je suppose qu'avec des diviseurs de tension ça se fait, mais qui font que si jamais il y a un dépassement genre que ça monte à [-12V, 12V] on s'assure de ne pas émettre en sortie quelque chose qui sort de [0V, 3V])?

@al1fch vous utilisez ArduinoFFT avec un ESP32, combien de samples utilisez-vous? Avec le Uno on était limité à 64 prises, ce n'était pas fameux. Vous utilisez du son en entrée A0?

de mémoire (j'irai vérifier) 256 echantillons passaient sans pb , peut être même davantage

EDIT : je viens de retrouver un essai avec une taille 1024, échantillonnage à 4kHz, essai qui donnait de bosn résultat pour la partie du spectre qui m'intéressait.

Avec le moteur de recherche du forum on doit pouvoir trouver des échanges sur le sujet

le signal dans mon cas était issu d'une petite carte microphone d'Adafuit dont la sortie est centrée sur Vdd/2, carte reliée à l'une des entrées analogiques de l'ESP32.
Utilisé aussi un microphone à sortie numérique sur bus I2S

pour l'adaptation des niveaux logiques on peut faire par pont diviseur, par mosfet, par circuit intégré spécialisé....

Excusez moi de vous embêter encore, mais serait-il possible d'avoir un lien vers le genre de circuit intégré spécialisé/module dont vous parlez avec @68tjs (promis après, je ne vous embête plus), je souhaite être sûr d'éviter tout souci.

Si l'entrée analogique est limitée à [0-3.3] V, tu ne peux pas enregistrer les valeurs négatives du signal. Donc tu en perd la moitié, et tu introduit de la distorsion (des harmoniques désagréables).
Il faut donc un circuit spécialisé pour acquérir du son.
Ensuite, pour faire une FFT, il faut connaître précisement la fréquence d'échantillonage, qui doit être constante.

Un moteur de recherche avec 'arduino logic level converter' te donnera pas mal de réponses !!

en voila deux (la première solution convient bien au bus I2C)

@biggil J'ai déjà utilisé le FFT avec des résultats probants, j'ai programmé l'Arduino Uno avec, mais justement je souhaite passer à plus puissant pour améliorer et pouvoir mettre (bien) plus de LEDs.
Voilà à quoi ressemble le meuble pour l'instant:

Tout ce qui est montré est en LED strip adressable, on va être à pas loin de 800 LEDs (j'ai prévu l'alimentation à découpage 5V/60A), donc forcément la mémoire d'un Arduino commence à être limite pour tout ça.

Pour le passage de [-9,9] à [0,3.3], je pense qu'il faut insérer un offset pour passer de [-9,9] à [0,18], puis de réduire à [0,3], mais ce qui m'intéresse plus ce sont les modules dont parlaient les posters précédents pour éviter tout souci.

Merci de ta réponse.

@al1fch merci je vais regarder tes liens et avec 'arduino logic level converter'.
Je ne vous embête plus.

Pour l'acquisition du son j'avais utilisé ce module analogique à CAG qui fournit en sortie un signal adapté à une entrée analogique d'ESP Electret Microphone Amplifier - MAX9814 with Auto Gain Control : ID 1713 : $7.95 : Adafruit Industries, Unique & fun DIY electronics and kits

Sur le bus I2S des ESP32 un micro numérique INMP441 donne de bons résultats (on trouve facilement des petits modules à INMP441 sur Aliexpress)

Si le son ne provient pas d'un de ces micros un petit montage à ampli opérationnel permet d'obtenir un décalage et une amplitude maximale convenables

Oui mais je ne veux pas capter les bruits extérieurs, je préfère utiliser directement le signal en sortie du mixer dont je connais le range des tensions.
Je mixe plusieurs entrées, car le mini PC (MP3/M4a/radios internet/CD audio) est relié à l'une de niveau ligne, il y a aussi un jack femelle pour une autre entrée niveau ligne (brancher un ipod, un instrument amplifié, etc...), un jack femelle pour une entrée niveau instrument pour pouvoir brancher une guitare ou tout instrument non amplifié et enfin une entrée XLR pour brancher un micro. Je suis un peu zicos alors, j'aimais bien l'idée de la Sound Box.
Il faut que je regarde comment utiliser un ampli op pour ton montage de shifting+scaling. J'ai quelques TL081 qui trainent à la maison.
Merci encore

de mémoire le niveau ligne c'est 1V efficace par conséquent un simple décalage pourrait peut être suffire ?

-un pont diviseur pour mettre à Vdd/2 l'entrée analogique en absence de signal
-un condensateur de liaison pour amener ce signal d'un peu moins de 3V crête à crête

En fait mon mixer mixe toutes les entrées et les amplifie quand même, donc je monte plutôt jusqu'à 7/8V, d'où la bonne idée d'utiliser un AOP.
Je suis tombé sur ce montage Non-Inverting Op-Amp Level Shifter - Daycounter , mais, même si je comprends que 1.6V, c'est plus ou moins la moitié de 3.3V, je ne comprends pas comment mettre cette tension à cette borne.

La tension sur l’entrée en question est celle qu’on retrouve en sortie quand le signal d’entrée vaut zéro (ça se demontre par un simple calcul de ponts diviseurs de tension et le “V+ = V-” du montage inverseur)

Mais il faut injecter cette tension à cet endroit? Ça voudrait dire qu'il faut l'avoir cette tension

Oui (facile a créer : potentiometre ou del rouge)

D'ac.
Merci

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.