Python domine le monde du développement logiciel. Parallèlement, l'électronique DIY connaît un essor fulgurant grâce à des plateformes comme Arduino et Raspberry Pi, qui révolutionnent la création de projets maison. Et si vous pouviez programmer un Arduino directement avec Python ?
Combiner ces deux univers est passionnant ! Bien que l'Arduino ne supporte pas nativement l'interprétation de Python embarquée, il est possible de le contrôler en temps réel via USB avec un script Python. Ce tutoriel détaillé, testé sur Windows 10 (compatible Mac et Linux), vous guide pour configurer un Arduino UNO – adaptable à d'autres cartes compatibles.
Nous utilisons un Arduino Uno et l'interface pyFirmata pour Python. pyFirmata supporte les cartes Uno, Mega, Due et Nano (consultez le GitHub pour les mises à jour). Ajoutez votre support si nécessaire !

Installez l'IDE Arduino si ce n'est pas fait (guide du débutant). Connectez votre carte, sélectionnez-la et le port dans Outils, chargez l'exemple StandardFirmata et téléversez-le. Votre Arduino est prêt pour un contrôle USB direct.
Utilisez Python 3.x (la dernière version stable recommandée). Téléchargez-la sur python.org. Pour gérer plusieurs versions, consultez notre guide des environnements virtuels.
Ajoutez Python au PATH système : Ouvrez Panneau de configuration > recherchez Variables d'environnement > Modifier les variables d'environnement du système > Variables d'environnement. Éditez ou créez PATH en ajoutant les dossiers Python et Python/Scripts (ex. : C:\Python39 et C:\Python39\Scripts).

Validez toutes les fenêtres. Python est maintenant accessible en ligne de commande.
Installez pyFirmata (par Tino de Bruijn) via :
pip install pyfirmata
Si erreur, vérifiez le PATH.
Ouvrez votre IDE préféré (Eclipse, VS Code, etc.). Créez blink.py. Ce script demande le nombre de clignotements à l'utilisateur.
Imports :
from pyfirmata import Arduino, util
import timeInitialisez la carte (vérifiez le port COM dans l'IDE Arduino) :
board = Arduino('COM3')Invite utilisateur :
loopTimes = input('Combien de fois faire clignoter la LED ? ')
print(f"Clignotement {loopTimes} fois.")Boucle for (broche 13 = LED intégrée Uno) :
for x in range(int(loopTimes)):
board.digital[13].write(1)
time.sleep(0.2)
board.digital[13].write(0)
time.sleep(0.2)Enregistrez et exécutez en ligne de commande : cd [chemin] && python blink.py.
Un court délai d'initialisation, puis la LED clignote selon vos instructions.


Cette méthode ouvre des horizons : contrôle en temps réel, domotique avec serveur Linux/NAS, ou intégration Raspberry Pi. Imaginez un NAS qui éteint les lumières au démarrage de Plex !
Vous contrôlez déjà Arduino avec Python ? Partagez vos astuces en commentaires !
[]