Vibe Coding sur la carte Baguette S3 : piloter GPIO et LED avec un serveur Web

Vibe Coding the Baguette S3: Web Server GPIO and LED Control

Je suis Rich, responsable produits chez The Pi Hut. J’ai passé du temps à concevoir notre nouvelle carte Baguette S3 avec Colin, et je me suis amusé avec. Aujourd’hui, je vous parle de ma découverte du ‘vibe coding’ avec l’IA, je vous explique comment l’essayer et comment j’ai créé ce serveur web pour la Baguette S3.

Le test du vibe coding

Voici le problème. J’ai accès à plus de 8000 produits en stock, mais il me manque :

  • Du temps : je suis père de deux enfants, avec un long trajet et un travail chargé.
  • De l’énergie : voir ci-dessus
  • De la patience : voir ci-dessus

Comment un papa épuisé peut-il continuer à bidouiller pendant son peu de temps libre ? La réponse est le vibe coding.

Qu’est-ce que le vibe coding ?

Le vibe coding consiste à utiliser l’IA pour écrire du code à votre place. Vous ne faites qu’esquisser l’idée, puis vous passez en test le produit fini et effectuez des ajustements.

Mais… n’est-ce pas de la triche ? Je me suis toujours posé cette question. Je suis encore partagé.

Bon pour certains

D’un côté, pour des personnes comme moi, cela permet de continuer à profiter de ce hobby sans devoir rester debout jusqu’à 3 heures du matin un jour de semaine.

J’ai fait mes preuves, j’ai écrit ma part de scripts à l’ancienne et j’ai appris ainsi. Mais je l’ai fait quand j’avais le temps, moins de responsabilités, pas d’enfants et un travail moins exigeant. Si jamais il y avait un moment pour utiliser des raccourcis, c’est bien maintenant !

Moins bon pour d’autres

D’un autre côté, je déteste l’idée que de jeunes développeurs se tournent directement vers l’IA. Rien ne vaut la frappe manuelle du code pour apprendre ; cela permet de bien intégrer l’indentation, les fonctions et les commandes.

Il y a aussi la crainte que cela supprime des emplois, même si je ne suis pas convaincu que l’IA soit encore assez fiable pour des tâches sérieuses.

Ce n’est pas parfait

Pas encore. C’est plus mon opinion générale sur l’IA.

C’est impressionnant… jusqu’à ce que ça ne le soit plus. Je la trouve très utile pour des tâches limitées comme le formatage, mais rien ne vaut un humain pour la précision et la créativité.

J’ai constaté la même chose avec le vibe coding : c’est incroyable, puis des erreurs bêtes s’immiscent et on se retrouve à démêler un code qui a pris un mauvais chemin.

Je suis sûr que les 30 prochaines années rendront cette déclaration obsolète, mais pour l’instant, je ne suis pas ce qu’on appelle un pro-AI.

Vibe Coding sur la carte Baguette S3 piloter GPIO

Vibe coding sur la Baguette S3

Pour le logiciel, il existe de nombreuses options. J’ai utilisé Visual Studio Code avec l’extension Gemini.

Je ne suis pas un expert, je n’ai suivi aucun tutoriel. J’ai juste bidouillé avec une vieille carte ESP8266 cette semaine et je suis tombé sur cette extension VSC Gemini. C’est si intuitif que j’écrivais mes demandes en quelques minutes.

Vous voulez essayer ? Voici comment débuter :

Logiciel

Vous devez télécharger et installer :

  • Microsoft Visual Studio Code
  • Arduino IDE

Ensuite, installez :

  • Gemini Code Assist

J’ai accepté aveuglément toutes les options par défaut lors de l’installation. À part cela, c’est assez simple. Vous aurez besoin d’un compte Google pour vous connecter à Gemini.

Créer un nouveau script

Nous allons d’abord créer et sauvegarder un script vierge dans l’IDE Arduino, puis l’ouvrir dans VSC. Cette méthode permet d’avoir les deux programmes ouverts, et toute modification du code sera reflétée en temps réel dans les deux applications.

Ouvrez l’IDE Arduino, sélectionnez Fichier > Nouveau Sketch. Une fois chargé, sélectionnez Fichier > Enregistrer sous. Donnez-lui un nom, enregistrez, puis passez à VSC.

Astuce : si vous n’avez pas encore configuré votre Baguette S3 dans l’IDE Arduino, consultez notre guide utilisateur.

1793328033 80 Vibe Coding sur la carte Baguette S3 piloter GPIO

Ouvrez VSC, puis appuyez sur Ctrl+O (ou Fichier > Ouvrir un fichier). Naviguez jusqu’à votre sketch Arduino et ouvrez-le. Vous verrez le même script, et désormais toute modification dans une application se répercutera instantanément dans l’autre :

1793328033 753 Vibe Coding sur la carte Baguette S3 piloter GPIO

Ouvrir Gemini Code Assist

Nous allons utiliser une vue divisée, avec notre script à droite et Gemini à gauche.

Si tout est installé correctement, vous verrez l’option Gemini dans la barre latérale gauche. Cliquez dessus :

1793328033 947 Vibe Coding sur la carte Baguette S3 piloter GPIO

Vous devriez voir Gemini s’ouvrir sur le côté gauche comme dans l’exemple ci-dessous, prêt à accepter vos instructions :

1793328034 603 Vibe Coding sur la carte Baguette S3 piloter GPIO

Instructions pour Gemini Code Assist

Retour à l’histoire. À ce stade, je chercherais habituellement la meilleure façon de formuler une instruction. Mais étant le sceptique de l’IA que je suis, je voulais voir si cela fonctionnerait « juste comme ça ».

Je suis donc allé droit au but, en lui disant ce que je voulais avec mes propres mots, quelque chose comme :

J’utilise une carte de développement Baguette S3 ESP32-S3 avec l’IDE Arduino. Je veux pouvoir contrôler des éléments de la carte via une interface web :

  • Toutes les broches GPIO en HIGH/LOW via des boutons ON/OFF dans une grille compacte.
  • Un bouton ON/OFF pour la LED RGB intégrée.
  • Un sélecteur de couleur pour la LED RGB.

Je veux que l’interface web ait un style ‘mode sombre’, avec des couleurs d’accent en #be1443. Je veux pouvoir ajouter deux SSID pour le WiFi.

Le programme doit être robuste, avec des exceptions intégrées en cas d’absence de WiFi ou d’autres problèmes potentiels.

Gemini s’est mis au travail tout de suite…

… et j’ai été bluffé ! Il a créé un script pour moi sans confondre le type de carte ni poser de questions supplémentaires. Après une lecture rapide, cela semblait prometteur.

Il m’a donné des instructions sur les bibliothèques à inclure dans l’IDE Arduino, les champs à modifier (comme le SSID et le mot de passe WiFi), et a même suggéré d’autres questions que je pourrais poser.

Il suffisait de cliquer sur le bouton ‘Accepter’, et mon script serait mis à jour, se reflétant à la fois dans VSC et l’IDE Arduino :

1793328034 142 Vibe Coding sur la carte Baguette S3 piloter GPIO

J’étais plein de confiance, alors je suis passé à l’IDE Arduino, j’ai installé les bibliothèques suggérées et j’ai téléversé le script sur ma Baguette S3…

… et ça n’a pas fonctionné.

Ajustements et tests

Le script a échoué, mais puisque nous avons l’IA à disposition, ce n’est pas grave. J’ai copié l’erreur et je l’ai simplement collée dans le chat Gemini.

1793328034 592 Vibe Coding sur la carte Baguette S3 piloter GPIO

Gemini a analysé l’erreur, expliqué le problème, suggéré une correction et m’a même donné un bouton Accepter pratique pour mettre à jour mon code automatiquement.

Même routine : acceptez le changement, testez-le, puis continuez à affiner jusqu’à ce que cela fonctionne comme vous le souhaitez.

1793328035 862 Vibe Coding sur la carte Baguette S3 piloter GPIO

Apparemment, c’est comme ça avec le vibe coding : moins d’inspection du code, plus de test du produit final et de demandes de modifications. Je trouve que cela fait gagner beaucoup de temps et aide à éviter d’abandonner un projet par frustration en regardant l’heure et en réalisant que vous auriez dû être au lit depuis longtemps.

J’ai continué à ajuster et j’ai fini par obtenir le sketch ci-dessous.

Serveur web Baguette S3 : Contrôle GPIO et LED

Vous pouvez télécharger mon sketch ici et le consulter par vous-même.

Vous devrez :

  • Vérifier que votre type de carte et votre port COM sont correctement sélectionnés.
    • Notre guide utilisateur Baguette S3 explique comment faire.
  • Mettre à jour les lignes 9 et 10 avec vos propres détails WiFi.
  • Installer la bibliothèque Adafruit NeoPixel dans votre IDE Arduino.

Le sketch fera défiler des couleurs sur la LED RGB pendant quelques secondes au démarrage, puis se connectera à votre réseau WiFi. Récupérez son adresse IP depuis votre routeur ou une application comme Fing ou WiFiman, puis allez à cette adresse IP depuis votre téléphone, tablette ou PC pour voir les commandes.

Si vous trouvez des bugs, faites-le moi savoir dans les commentaires. Je blâmerai les robots, bien sûr.

1793328035 220 Vibe Coding sur la carte Baguette S3 piloter GPIO

Pourquoi ne pas l’ouvrir dans VSC et demander à Gemini d’ajouter un mot de passe à l’interface ? Ou d’ajouter une section affichant les données de la carte ? Voyez ce que vous pouvez inventer.

Vibe coding : votre avis

C’est un sujet sensible. Est-ce que cela rend la jeunesse moins perspicace et vole des emplois, ou n’est-ce qu’un outil utile ? Cela rend-il les créateurs paresseux, ou ouvre-t-il la scène du DIY à ceux qui n’auraient même pas regardé une carte de développement auparavant ?

Personnellement, j’ai trouvé que cela me permettait de me montrer créatif avec le matériel sans être découragé par le temps que peut prendre le codage (j’ai toujours été plus un type hardware).

Je peux travailler sur plus de projets maintenant, tout en respectant mes engagements professionnels et familiaux. Bien sûr, il fait des erreurs, mais il peut (généralement) les corriger lui-même, et j’ai mes propres connaissances sur lesquelles m’appuyer si nécessaire.

Est-ce que je le montrerais à mes enfants ? Non, pas pour l’instant. Je les garderai sur Scratch pour le moment. Il faut marcher avant de courir.

Ajoutez un commentaire ci-dessous pour partager votre avis ou vos meilleurs conseils en matière de vibe coding.

Retrouvez l’histoire de Raspberry Pi dans cette vidéo :