Comment programmer et contrôler un Arduino avec Python

Comment programmer et contrôler un Arduino avec Python

Python a pris d'assaut le monde du codage. Parallèlement à l'essor de ce nouveau langage, la scène de l'électronique DIY s'est également épanouie. Cartes de développement et ordinateurs monocarte d'entreprises telles que Arduino et Raspberry Pi ont changé la façon dont les gens créent des appareils électroniques maison. Ne serait-ce pas génial si vous pouviez programmer un Arduino avec Python ?





meilleure distribution Linux pour le développement web

Il n'y a pas de meilleur sentiment que de combiner deux choses sympas. Malheureusement, il est impossible de programmer directement un Arduino avec Python, car les cartes n'ont aucune option pour l'interprétation embarquée du langage. Ce qui est possible cependant, c'est un contrôle direct sur USB à l'aide d'un programme Python.





Cet article vous montrera comment configurer un Arduino UNO (bien que n'importe quelle carte compatible Arduino puisse fonctionner ici) pour qu'il soit programmé et contrôlé à partir de la ligne de commande à l'aide de programmes Python. Ce tutoriel est écrit pour Windows 10, mais fonctionne également pour Mac et Linux. Vous pouvez même utiliser ce flux de travail pour contrôler un Arduino directement à partir d'un Raspberry Pi pour une expérience de bricolage ultime.





Configuration de votre Arduino pour Python

Pour le projet d'aujourd'hui, nous utiliserons un Arduino Uno, ainsi que l'interface pyFirmata pour Python. Vous pouvez utiliser presque toutes les cartes compatibles Arduino pour cela, bien qu'au moment de la rédaction de cet article, seuls les Arduino Uno, Mega, Due et Nano soient pris en charge par l'interface pyFfirmata. Si vous êtes déjà un gourou Python, vous pouvez ajouter votre propre support de carte à pyFirmata -- assurez-vous de mettre à jour leur GitHub si vous le faites !

Si vous ne l'avez pas déjà fait, installez l'IDE Arduino. Si vous êtes complètement nouveau dans le monde des microcontrôleurs, notre guide du débutant sur Arduino vous aidera à tout mettre en place.



Connectez votre carte Arduino et ouvrez l'IDE. Assurez-vous que la carte et le port corrects sont sélectionnés dans le Outils menu. Chargez le StandardFirmata exemple de croquis et téléchargez-le sur le tableau. Cela vous permettra de contrôler directement l'Arduino tant qu'il est connecté à l'ordinateur via USB. À condition que les croquis soient téléchargés sur votre tableau sans aucune erreur, vous êtes prêt à passer à autre chose.

Python et contrôle de ligne de commande

Nous utiliserons Python 3.4 pour contrôler notre Arduino, car le module que vous installerez le spécifie comme la dernière version compatible. Toute version antérieure devrait fonctionner correctement, et les versions ultérieures ont été signalées comme fonctionnant. Vous pouvez télécharger Python 3.4 pour Windows 10 à partir du Fondation du logiciel Python placer. Si vous souhaitez exécuter plusieurs versions de Python, notre guide des environnements virtuels Python pourra vous aider.





Une fois que vous avez installé Python, nous souhaitons l'ajouter à la variable PATH de votre système. Cela nous permettra d'exécuter du code Python directement à partir de la ligne de commande sans avoir besoin d'être dans le répertoire dans lequel il a été installé. Vous pouvez le faire en ouvrant le Panneau de commande , à la recherche de Environnement et cliquez sur Modifier les variables d'environnement système . En bas de la fenêtre sélectionnez Variables d'environnement . Cela fera apparaître cette fenêtre :

Si vous voyez déjà CHEMIN dans la liste, cliquez sur modifier et ajoutez votre Python et Python/Scripts annuaire. Si vous n'avez pas de variable PATH, cliquez sur nouveau et ajoutez-la. Notez que Python a été installé directement dans le C :  ici. Si vous l'avez installé ailleurs, vous devrez le modifier pour refléter cela. Cliquez sur OK dans la chaîne de fenêtres et vous êtes presque prêt à contrôler votre Arduino avec Python !





La graisse magique

Vous aurez besoin d'une dernière pièce du puzzle pour que Python parle bien avec notre Arduino. Cela se présente sous la forme d'une interface Python appelée pyFirmata . Cette interface, créée par Tino de Bruijn est disponible en téléchargement à partir de github, bien que vous puissiez l'installer directement à partir de la ligne de commande en tapant :

pip install pyfirmata

Tout va bien, il devrait s'installer et ressembler à ceci:

Si cela échoue, passez en revue l'ajout de Python au Variable d'environnement section et assurez-vous que vous avez donné le bon chemin vers votre répertoire Python.

Fait en sorte que ça arrive

Maintenant, tout est configuré et vous pouvez créer un programme Python pour que votre Arduino le teste. Ouvrez un IDE de votre choix. nous utiliserons Éclipse aujourd'hui, mais vous pouvez tout aussi bien utiliser n'importe quel éditeur de texte , ou même un IDE dans le cloud .

Créez un nouveau script et enregistrez-le sous blink.py . Brisant la tradition avec le programme LED clignotant standard, vous allez créer un programme qui invite l'utilisateur à indiquer le nombre de fois qu'il souhaite que la LED clignote avant de l'exécuter. C'est un programme court, que vous pouvez télécharger ici si vous voulez y aller directement, mais décomposons-le.

Tout d'abord, vous voudrez importer ce dont vous avez besoin à partir du pyFirmata module, avec le Python standard Temps module.

manette n'allume pas xbox one
from pyfirmata import Arduino, util
import time

Maintenant, vous voudrez configurer la carte Arduino. Cet article suppose que vous utilisez un Arduino uno carte, bien que plusieurs autres cartes Arduino soient prises en charge. Reportez-vous au github pyFirmata pour plus de détails sur la prise en charge des cartes.

Vérifiez quel port COM vous utilisez dans l'IDE Arduino et entrez-le dans votre code en tant que variable planche .

board = Arduino('COM3')

Vous allez maintenant configurer l'invite utilisateur. Ceux qui connaissent Python reconnaîtront tout ici. Vous imprimez une question à l'écran en utilisant le saisir fonction et stockez la réponse sous forme de variable. Une fois que l'utilisateur a fourni un numéro, le programme rapporte combien de fois la LED clignotera.

loopTimes = input('How many times would you like the LED to blink: ')
print('Blinking ' + loopTimes + ' times.')

Pour faire clignoter la LED le nombre de fois approprié, vous utilisez un pour boucle . Si vous êtes nouveau en Python , faites attention à l'indentation, car contrairement à d'autres langues, les espaces font partie de la syntaxe. Notez que la broche 13 est la LED embarquée pour l'Arduino Uno, vous devrez la modifier si votre carte est différente.

for x in range(int(loopTimes)):
board.digital[13].write(1)
time.sleep(0.2)
board.digital[13].write(0)
time.sleep(0.2)

Vous lancerez le loopTimes variable à un entier ici, car l'entrée de l'utilisateur sera automatiquement stockée sous forme de chaîne. Dans cette démo simple, nous supposons que l'utilisateur entrera une valeur numérique. Toute autre entrée telle que « huit » générera une erreur.

Enregistrez votre script et ouvrez le Invite de commandes .

Lumières clignotantes et autres révélations

Tout est prêt, tout ce que vous avez à faire est de naviguer jusqu'à l'emplacement du script et de l'exécuter. Faites-le en tapant cd [chemin vers le répertoire du script] puis en tapant python blink.py .

Tout va bien, votre programme démarrera avec un léger retard au fur et à mesure que l'Arduino s'initialise, vous demandera un numéro, puis clignotera autant de fois à l'aide de la LED intégrée.

La sortie du programme devrait ressembler à ceci :

Dès que vous appuyez sur Entrée après le nombre de clignotements que vous avez choisi, l'Arduino devrait exécuter vos commandes.

Petits débuts

Ce projet a été un début de communication rudimentaire entre Python et une carte Arduino. Cette approche est très différente du flux de travail habituel de téléchargement de scripts sur l'Arduino lui-même, mais elle ouvre une toute nouvelle façon de travailler avec la plate-forme, surtout si vous aimez le langage de programmation Python.

Si vous utilisez un Serveur Linux à la maison, cette méthode de communication avec les cartes Arduino pourrait étendre ce serveur en un système domotique DIY à part entière. En combinant des scripts Python contrôlant le microcontrôleur avec un circuit d'automatisation DIY, votre boîtier de stockage NAS pourrait prendre en charge un tout nouvel ensemble de fonctions utiles.

comment récupérer des photos récemment supprimées Android

Pour en faire l'expérience de bricolage ultime, pourquoi pas construisez votre propre boîtier NAS et l'utiliser pour contrôler également vos appareils ? Imaginez à quel point ce serait cool d'appuyer sur play sur votre serveur Plex et que les lumières s'éteignent automatiquement !

Contrôlez-vous déjà Arduino en utilisant Python ? Existe-t-il des solutions de contournement incroyables que nous ne connaissons pas encore ? Faites-nous savoir dans la section commentaire ci-dessous!

Partager Partager Tweeter E-mail 5 astuces pour surcharger vos machines Linux VirtualBox

Vous en avez assez des mauvaises performances offertes par les machines virtuelles ? Voici ce que vous devez faire pour améliorer les performances de votre VirtualBox.

Lire la suite
Rubriques connexes
  • DIY
  • La programmation
  • Arduino
  • Automatisation de la maison
  • Python
A propos de l'auteur Ian Buckley(216 articles publiés)

Ian Buckley est un journaliste indépendant, musicien, interprète et producteur vidéo vivant à Berlin, en Allemagne. Quand il n'écrit pas ou sur scène, il bricole de l'électronique ou du code DIY dans l'espoir de devenir un savant fou.

Plus de Ian Buckley

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner