Comment programmer et contrôler un Arduino avec Python

Malheureusement, il est impossible de programmer directement un Arduino en Python, mais vous pouvez le contrôler via USB en utilisant un programme Python. Voici comment.

Malheureusement, il est impossible de programmer directement un Arduino en Python, mais vous pouvez le contrôler via USB en utilisant un programme Python.  Voici comment.
Publicité

Python a pris d'assaut le monde du codage. Parallèlement à la montée de cette nouvelle langue, la scène de l'électronique DIY a également prospéré. Les cartes de développement et les ordinateurs monocarte d'entreprises comme Arduino Qu'est-ce que Arduino et que pouvez-vous faire avec? Qu'est-ce que Arduino et que pouvez-vous faire avec? L'Arduino est un petit appareil électronique remarquable, mais si vous n'en avez jamais utilisé auparavant, que sont-ils exactement, et que pouvez-vous faire avec un? Lire la suite et Raspberry Pi Raspberry Pi: le tutoriel officieux Raspberry Pi: le tutoriel non officiel Si vous êtes un propriétaire Pi actuel qui veut en savoir plus ou un propriétaire potentiel de ce dispositif de taille de carte de crédit, ce n'est pas un guide que vous voulez manquer. Read More a changé la façon dont les gens créent de l'électronique brassée à la maison. Ne serait-ce pas génial si vous pouviez programmer un Arduino avec Python?

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 cependant possible, c'est un contrôle direct sur USB en utilisant un programme Python.

Cet article vous montrera comment configurer un Arduino UNO (bien que n'importe quelle carte compatible Arduino Guide d'achat Arduino: Quel conseil devriez-vous obtenir Guide d'achat Arduino: Quel conseil devriez-vous obtenir? Il y a tellement de différents types de conseils Arduino là-bas, Laissez-nous vous aider, avec ce guide d'achat Arduino! Read More peut fonctionner ici) pour être programmé et contrôlé à partir de la ligne de commande en utilisant des programmes Python. Ce tutoriel est écrit pour Windows 10, mais fonctionne aussi pour Mac et Linux. Vous pouvez même utiliser ce flux de travail pour contrôler un Arduino directement à partir d'un Raspberry Pi. Guide de domotique avec Raspberry Pi et Arduino Guide de domotique avec Raspberry Pi et Arduino Le marché de la domotique est inondé de systèmes coûteux, incompatibles entre eux et coûteux à installer . Si vous avez un Raspberry Pi et un Arduino, vous pouvez essentiellement réaliser la même chose à ... Read More pour l'ultime expérience de double down-DIY.

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, mais au moment de l'écriture, seuls les cartes Arduino Uno, Mega, Due et Nano sont prises en charge par l'interface pyFfirmata. Si vous êtes déjà un gourou Python, vous pouvez ajouter votre propre support de forum à pyFirmata - assurez-vous de mettre à jour leur GitHub si vous le faites!

programmer et contrôler arduino avec python

Si ce n'est déjà fait, installez l'IDE Arduino. Si vous êtes complètement nouveau dans le monde des microcontrôleurs, notre guide du débutant à Arduino Initiation à Arduino: Guide du débutant Initiation à Arduino: Guide du débutant Arduino est une plate-forme de prototypage électronique open source basée sur du matériel flexible et facile à utiliser. et logiciel. Il est destiné aux artistes, designers, amateurs et toute personne intéressée par la création d'objets ou d'environnements interactifs. Lire la suite 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 menu Outils . Chargez l'exemple d'esquisse StandardFirmata et téléchargez-le sur le tableau. Cela vous permettra de contrôler l'Arduino directement tant qu'il est connecté à l'ordinateur via USB. À condition que l'esquisse soit téléchargée sur votre tableau sans aucune erreur, vous êtes prêt à passer à autre chose.

Python et contrôle de ligne de commande

Nous allons utiliser Python 3.4 pour contrôler notre Arduino, car le module que vous allez installer spécifie ceci comme la dernière version compatible. Toute version antérieure devrait fonctionner correctement, et les versions ultérieures ont été signalées pour fonctionner. Vous pouvez télécharger Python 3.4 pour Windows 10 à partir du site de Python Software Foundation. Si vous voulez exécuter plusieurs versions de Python, notre guide sur les environnements virtuels Python Apprenez à utiliser l'environnement virtuel Python Apprenez à utiliser l'environnement virtuel Python Que vous soyez un développeur Python expérimenté, ou que vous ne faites que commencer, apprendre à la configuration d'un environnement virtuel est essentielle pour tout projet Python. Lire la suite sera en mesure de vous aider.

Une fois que vous avez installé Python, nous voulons l'ajouter à la variable PATH de votre système. Cela nous permettra d'exécuter le 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 configuration, en recherchant Environnement et en cliquant sur Modifier les variables d'environnement système . Au bas de la fenêtre, sélectionnez Variables d'environnement . Cela fera apparaître cette fenêtre:

programmer et contrôler arduino avec python

Si vous voyez déjà PATH dans la liste, cliquez sur Modifier et ajoutez votre répertoire Python et Python / Scripts . Si vous n'avez pas de variable PATH, cliquez sur new et ajoutez-la. Notez que Python a été installé directement dans C: \ ici. Si vous l'avez installé ailleurs, vous devrez le modifier pour refléter cela. Cliquez sur OK en bas de 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 vient sous la forme d'une interface Python appelée pyFirmata . Cette interface, créée par Tino de Bruijn, peut être téléchargée depuis github, mais vous pouvez l'installer directement depuis la ligne de commande en tapant:

pip install pyfirmata 

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

programmer et contrôler arduino avec python

Si cela échoue, ajoutez Python à la section Variable d'environnement et assurez-vous que vous avez donné le bon chemin à votre répertoire Python.

Fait en sorte que ça arrive

Maintenant tout est configuré, et vous pouvez créer un programme Python pour votre Arduino pour le tester. Ouvrez un IDE de votre choix. Nous allons utiliser Eclipse 8 Raccourcis clavier les plus utiles pour les utilisateurs débutants Eclipse IDE 8 Raccourcis clavier les plus utiles Pour les débutants IDE Eclipse Comme les débutants Eclipse IDE (interface) est, vous vous devez apprendre ces raccourcis clavier. Lire la suite aujourd'hui, mais vous pouvez tout aussi facilement utiliser un éditeur de texte Editeurs de texte vs IDE: Lequel est le mieux pour les programmeurs? Editeurs de texte contre IDE: quel est le meilleur pour les programmeurs? Choisir entre un IDE avancé et un éditeur de texte plus simple peut être difficile. Nous offrons un aperçu pour vous aider à prendre cette décision. Lire la suite, ou même un IDE dans le cloud Codenvy IDE: Un IDE en ligne pour Ruby, HTML, Java, Python, et plus Codenvy IDE: Un IDE en ligne pour Ruby, HTML, Java, Python, et plus.

Créez un nouveau script et enregistrez-le sous blink.py . Rompant tradition avec le programme LED clignotant standard, vous allez créer un programme qui invite l'utilisateur pour le nombre de fois qu'ils veulent que le 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 devrez importer ce dont vous avez besoin du module pyFirmata, avec le module Python Time standard.

 from pyfirmata import Arduino, util import time 

Maintenant, vous aurez besoin de configurer la carte Arduino. Cet article suppose que vous utilisez une carte Arduino Uno, bien que plusieurs autres cartes Arduino soient prises en charge. Reportez-vous au github pyFirmata pour plus de détails sur le support du conseil.

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

 board = Arduino("COM3") 

Vous allez maintenant configurer l'invite de l'utilisateur. Ceux qui connaissent Python reconnaîtront tout ici. Vous imprimez une question à l'écran à l'aide de la fonction d' entrée et stockez la réponse en tant que variable. Une fois que l'utilisateur a fourni un numéro, le programme rapporte combien de fois le voyant clignote.

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

Pour que le voyant clignote le nombre approprié de fois, vous utilisez une boucle for . Si vous débutez avec Python 10 Exemples de base de Python qui vous aideront à apprendre rapidement 10 Exemples de base de Python qui vous aideront à apprendre rapidement Cet article d'exemples de base de Python est destiné à ceux qui ont déjà une expérience de programmation. possible. Lire la suite, prenez soin de l'indentation, car contrairement aux 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 allez transtyper la variable loopTimes en entier, 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 va entrer une valeur numérique. Toute autre entrée telle que "huit" va générer une erreur.

Enregistrez votre script et ouvrez l' invite de commande .

Lumières clignotantes et autres révélations

Tout est prêt à partir, tout ce que vous avez à faire est de naviguer vers l'emplacement du script et de l'exécuter. Pour ce faire, tapez cd [chemin d'accès au répertoire du script], puis tapez python blink.py .

Tout va bien, votre programme démarrera avec un léger retard lorsque l'Arduino s'initialisera, vous demandera un numéro, puis clignotera autant de fois en utilisant la LED intégrée.

La sortie du programme devrait ressembler à ceci:

programmer et contrôler arduino avec python

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

Petits débuts

Ce projet a été un début de communication entre Python et un tableau Arduino. Cette approche est très différente du workflow 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 plateforme, surtout si vous aimez le langage de programmation Python.

Si vous utilisez un serveur Linux 12 Les meilleurs systèmes d'exploitation de serveurs Linux et qui devrait les utiliser 12 Les meilleurs systèmes d'exploitation de serveurs Linux et qui devrait les utiliser Construire un serveur? Linux est idéal, offrant généralement des autorisations améliorées, une flexibilité et une stabilité accrues. Mais lequel devriez-vous choisir? Découvrez les 12 meilleurs systèmes d'exploitation de serveurs Linux et qui devrait les utiliser. En savoir plus à la maison, cette méthode de communication avec les cartes Arduino pourrait étendre ce serveur dans un système de domotique à part entière. En combinant des scripts Python contrôlant le microcontrôleur avec un circuit d'automatisation DIY Idées de projets Arduino pour une maison automatisée Idées de projets Arduino pour une maison automatisée Ne serait-il pas génial d'arroser votre serre sans quitter votre chaise? Un Arduino peut être utilisé comme élément clé de certains projets de domotique - en voici cinq! Lire la suite, Votre boîte de stockage NAS pourrait prendre un nouvel ensemble de fonctions utiles.

Pour en faire l'expérience ultime de bricolage, pourquoi ne pas créer votre propre boîte NAS Need Network Storage? Voici comment construire votre propre NAS Box Besoin de stockage en réseau? Voici comment construire votre propre NAS Box NAS signifie Network Attached Storage. Comme Windows est devenu plus facile à utiliser avec les périphériques connectés au réseau, et les prix du matériel ont chuté, ce terme a commencé à être utilisé sur le marché de la consommation. Aujourd'hui, il y a une grande variété ... Lire la suite et l'utiliser pour contrôler également vos appareils? Imaginez à quel point il serait cool d'appuyer sur jouer sur votre Plex Votre Guide pour Plex - The Awesome Media Center Votre guide pour Plex - The Awesome Media Center Si vous avez beaucoup de films et de séries TV, vous devez installer Plex. Et c'est le seul guide pour commencer avec Plex que vous aurez jamais besoin de lire. Lire plus de serveur et avoir les lumières s'éteignent automatiquement!

Êtes-vous déjà en train de contrôler Arduino en utilisant Python? Y a-t-il des solutions de contournement incroyables que nous ne connaissons pas encore? Faites-nous savoir dans la section commentaire ci-dessous!

In this article