FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

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. Les cartes de développement et les ordinateurs à carte unique d'entreprises comme Arduino et Raspberry Pi ont changé la façon dont les gens créent de l'électronique maison. Ne serait-il pas génial de pouvoir programmer un Arduino avec Python ?

Il n'y a pas de meilleure sensation que de combiner deux choses cool. 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 le 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 être 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 ultime de bricolage double.

Configurer 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 n'importe quelle carte compatible Arduino pour cela, bien qu'au moment de la rédaction, seuls les Arduino Uno, Mega, Due et Nano soient pris en charge par l'interface pyFfirmata. Si vous êtes déjà un gourou de Python, vous pouvez ajouter votre propre support de carte à pyFirmata -- assurez-vous de mettre à jour leur GitHub si vous le faites !

Comment programmer et contrôler un Arduino avec Python

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 d'avoir sélectionné la bonne carte et le bon port dans les Outils menu. Charger le StandardFirmata exemple de croquis 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 utiliserons Python 3.4 pour contrôler notre Arduino, car le module que vous allez installer le spécifie comme la dernière version compatible. Toute version antérieure à celle-ci 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 site Python Software Foundation. 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 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 , recherche 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 :

Comment programmer et contrôler un Arduino avec Python

Si vous voyez déjà PATH 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 sur github, bien que vous puissiez l'installer directement depuis la ligne de commande en tapant :

pip installer pyfirmata 

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

Comment programmer et contrôler un Arduino avec Python

Si cela échoue, continuez à ajouter Python à la variable d'environnement section et assurez-vous d'avoir donné le bon chemin vers votre répertoire Python.

Faire en sorte que cela se produise

Maintenant, tout est configuré et vous pouvez créer un programme Python pour votre Arduino afin de le tester. Ouvrez un IDE de votre choix. Nous utiliserons Eclipse 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 . Rompant avec la tradition avec le programme standard de LED clignotantes, vous allez créer un programme qui demande à l'utilisateur 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 accéder directement, mais décomposons-le.

Tout d'abord, vous voudrez importer ce dont vous avez besoin depuis le pyFirmata module, avec le module standard Python Time module.

à partir de pyfirmata import Arduino, util 
temps d'importation

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 de la carte.

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

carte =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 en utilisant l'entrée fonction et stockez la réponse sous forme de variable. Une fois que l'utilisateur a fourni un numéro, le programme indique combien de fois la LED clignotera.

loopTimes =input('Combien de fois voudriez-vous que la LED clignote :') 
print("Clignotement " + loopTimes + " fois.")

Pour faire clignoter la LED le nombre de fois approprié, vous utilisez une boucle for . Si vous débutez avec Python, faites attention à l'indentation, car contrairement à d'autres langages, les espaces font partie de la syntaxe. Notez que la broche 13 est la LED intégré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)
temps.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émonstration simple, nous supposons que l'utilisateur saisira une valeur numérique. Toute autre entrée telle que 'huit' générera une erreur.

Enregistrez votre script et ouvrez l'invite de commande .

Lumières clignotantes et autres révélations

Tout est prêt à fonctionner, tout ce que vous avez à faire est de naviguer jusqu'à l'emplacement du script et de l'exécuter. Faites cela 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 lorsque l'Arduino s'initialise, vous demandera un numéro, puis clignotera plusieurs fois à l'aide de la LED intégrée.

La sortie du programme devrait ressembler à ceci :

Comment programmer et contrôler un Arduino avec Python

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.

Comment programmer et contrôler un Arduino avec Python

Petits débuts

Ce projet a été un début de communication 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 de domotique à part entière. En combinant des scripts Python contrôlant le microcontrôleur avec un circuit d'automatisation DIY, votre boîte de stockage NAS pourrait prendre un tout nouvel ensemble de fonctions utiles.

Pour en faire l'expérience de bricolage ultime, pourquoi ne pas construire 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 avec Python ? Existe-t-il des solutions de contournement incroyables que nous ne connaissons pas encore ? Faites-le nous savoir dans la section des commentaires ci-dessous !


[]