Wie man ein Arduino mit Python programmiert und steuert

Wie man ein Arduino mit Python programmiert und steuert

Python hat die Programmierwelt im Sturm erobert. Neben dem Aufkommen dieser neuen Sprache florierte auch die DIY-Elektronikszene. Entwicklungsboards und Single Board Computer von Firmen wie Arduino und Raspberry Pi haben die Art und Weise verändert, wie Menschen selbst gebraute Elektronik herstellen. Wäre es nicht toll, wenn Sie einen Arduino mit Python programmieren könnten?





wie man ein gif als hintergrundbild hat windows 10

Es gibt kein besseres Gefühl, als zwei coole Dinge zu kombinieren. Leider ist es unmöglich, einen Arduino direkt mit Python zu programmieren, da die Boards keine Möglichkeit zur Onboard-Interpretation der Sprache haben. Was jedoch möglich ist, ist die direkte Kontrolle über USB mit einem Python-Programm.





Dieser Artikel zeigt Ihnen, wie Sie ein Arduino UNO einrichten (obwohl jedes Arduino-kompatible Board hier funktionieren kann), um mit Python-Programmen über die Befehlszeile programmiert und gesteuert zu werden. Dieses Tutorial wurde für Windows 10 geschrieben, funktioniert aber auch für Mac und Linux. Sie können diesen Workflow sogar verwenden, um ein Arduino direkt von einem Raspberry Pi aus zu steuern, um das ultimative Double-Down-DIY-Erlebnis zu erzielen.





Einrichten Ihres Arduino für Python

Für das heutige Projekt verwenden wir ein Arduino Uno zusammen mit der pyFirmata-Schnittstelle für Python. Sie können dafür fast jedes Arduino-kompatible Board verwenden, obwohl zum Zeitpunkt des Schreibens nur Arduino Uno, Mega, Due und Nano von der pyFfirmata-Schnittstelle unterstützt werden. Wenn Sie bereits ein Python-Guru sind, können Sie pyFirmata Ihre eigene Board-Unterstützung hinzufügen - aktualisieren Sie ihren GitHub, wenn Sie dies tun!

Falls noch nicht geschehen, installieren Sie die Arduino-IDE. Wenn Sie völlig neu in der Welt der Mikrocontroller sind, ist unser Anfängerleitfaden für Arduino wird Ihnen helfen, alles in Ordnung zu bringen.



Schließen Sie Ihr Arduino-Board an und öffnen Sie die IDE. Stellen Sie sicher, dass Sie das richtige Board und den richtigen Port im ausgewählt haben Werkzeuge Speisekarte. Laden Sie die StandardFirmata Beispielskizze und lade sie auf das Board hoch. Auf diese Weise können Sie den Arduino direkt steuern, solange er über USB mit dem Computer verbunden ist. Vorausgesetzt, dass die Skizze fehlerfrei auf Ihr Board hochgeladen wird, können Sie fortfahren.

Python und Befehlszeilensteuerung

Wir verwenden Python 3.4, um unser Arduino zu steuern, da das Modul, das Sie installieren werden, dies als neueste kompatible Version angibt. Jede Version davor sollte gut funktionieren, und spätere Versionen wurden gemeldet, um zu funktionieren. Sie können Python 3.4 für Windows 10 von der herunterladen Python Software Foundation Seite? ˅. Wenn Sie mehrere Python-Versionen ausführen möchten, kann Ihnen unser Leitfaden zu virtuellen Python-Umgebungen helfen.





Sobald Sie Python installiert haben, möchten wir es der PATH-Variablen Ihres Systems hinzufügen. Dadurch können wir Python-Code direkt über die Befehlszeile ausführen, ohne sich in dem Verzeichnis befinden zu müssen, in dem er installiert wurde. Sie können dies tun, indem Sie das Schalttafel , auf der Suche nach Umfeld und klicke auf Bearbeiten Sie die Systemumgebungsvariablen . Wählen Sie am unteren Rand des Fensters Umgebungsvariablen . Dadurch wird dieses Fenster geöffnet:

Wenn du schon siehst WEG Klicken Sie in der Liste auf Bearbeiten und fügen Sie Ihr . hinzu Python und Python/Skripte Verzeichnis. Wenn Sie keine PATH-Variable haben, klicken Sie auf Neu und fügen Sie sie hinzu. Beachten Sie, dass Python direkt in die installiert wurde C: Hier. Wenn Sie es an anderer Stelle installiert haben, müssen Sie es ändern, um dies widerzuspiegeln. Klicken Sie in der Fensterkette auf OK, und Sie sind fast bereit, Ihr Arduino mit Python zu steuern!





Das magische Fett

Sie benötigen ein letztes Puzzleteil, um Python dazu zu bringen, gut mit unserem Arduino zu sprechen. Dies kommt in Form einer Python-Schnittstelle namens pyFirmata . Diese von Tino de Bruijn erstellte Benutzeroberfläche ist zum Download verfügbar von github, obwohl Sie es direkt über die Befehlszeile installieren können, indem Sie Folgendes eingeben:

pip install pyfirmata

Wenn alles in Ordnung ist, sollte es so installiert werden und aussehen:

Wenn dies fehlschlägt, fügen Sie Python hinzu Umgebungsvariable Abschnitt und stellen Sie sicher, dass Sie den richtigen Pfad zu Ihrem Python-Verzeichnis angegeben haben.

Es passieren lassen

Jetzt ist alles eingerichtet und Sie können ein Python-Programm für Ihren Arduino erstellen, um es zu testen. Öffnen Sie eine IDE Ihrer Wahl. Wir werden verwenden Finsternis heute, aber Sie könnten genauso gut einen beliebigen Texteditor oder sogar eine IDE in der Cloud verwenden.

Erstellen Sie ein neues Skript und speichern Sie es unter blink.py . Um die Tradition mit dem standardmäßigen blinkenden LED-Programm zu brechen, werden Sie ein Programm erstellen, das den Benutzer auffordert, wie oft die LED blinken soll, bevor es ausgeführt wird. Es ist ein kurzes Programm, das Sie können Hier herunterladen wenn Sie direkt dazu kommen wollen, aber lassen Sie es uns aufschlüsseln.

Zunächst möchten Sie importieren, was Sie aus dem pyFirmata Modul, zusammen mit dem Standard-Python Zeit Modul.

wie man den ram im pc erhöht, ohne zu kaufen
from pyfirmata import Arduino, util
import time

Jetzt möchten Sie das Arduino-Board einrichten. In diesem Artikel wird davon ausgegangen, dass Sie ein Arduino uno Board, obwohl mehrere andere Arduino-Boards unterstützt werden. Weitere Informationen zur Board-Unterstützung finden Sie im Github von pyFirmata.

Überprüfen Sie, welchen COM-Port Sie in der Arduino IDE verwenden, und geben Sie ihn als Variable in Ihren Code ein Planke .

board = Arduino('COM3')

Jetzt richten Sie die Benutzeraufforderung ein. Wer mit Python vertraut ist, wird hier alles erkennen. Sie drucken eine Frage auf dem Bildschirm mit dem Eingang Funktion und speichern Sie die Antwort als Variable. Sobald der Benutzer eine Nummer eingegeben hat, meldet das Programm zurück, wie oft die LED blinkt.

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

Um die LED entsprechend oft blinken zu lassen, verwenden Sie a für Schleife . Wenn du bist neu bei Python , achten Sie auf die Einrückung, da die Leerzeichen im Gegensatz zu anderen Sprachen Teil der Syntax sind. Beachten Sie, dass Pin 13 die Onboard-LED für das Arduino Uno ist. Sie müssen dies ändern, wenn Ihr Board anders ist.

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

Du wirst das werfen loopTimes Variable hier auf eine ganze Zahl um, da die Eingaben des Benutzers automatisch als String gespeichert werden. In dieser einfachen Demo gehen wir davon aus, dass der Benutzer einen numerischen Wert eingibt. Jeder andere Eintrag wie 'acht' löst einen Fehler aus.

Speichern Sie Ihr Skript und öffnen Sie das Eingabeaufforderung .

Blinkende Lichter und andere Enthüllungen

Alles ist einsatzbereit, Sie müssen nur zum Skript navigieren und es ausführen. Tun Sie dies, indem Sie eingeben cd [Pfad zum Verzeichnis des Skripts] und dann tippen Python blink.py .

Wenn alles gut ist, startet Ihr Programm mit einer leichten Verzögerung, wenn das Arduino initialisiert, fordert Sie zur Eingabe einer Zahl auf und blinkt dann so oft mit der Onboard-LED.

Die Programmausgabe sollte wie folgt aussehen:

Sobald Sie nach der gewählten Anzahl von Blinken die Eingabetaste drücken, sollte der Arduino Ihre Befehle ausführen.

Kleine Anfänge

Dieses Projekt war ein Barebone-Anfang, um zwischen Python und einem Arduino-Board zu kommunizieren. Dieser Ansatz unterscheidet sich stark vom üblichen Workflow zum Hochladen von Skripten auf das Arduino selbst, eröffnet jedoch eine ganz neue Art der Arbeit mit der Plattform, insbesondere wenn Sie die Programmiersprache Python mögen.

Wenn Sie a . verwenden Linux-Server zu Hause könnte diese Methode der Kommunikation mit Arduino-Boards diesen Server zu einem vollwertigen Heimwerker-Hausautomationssystem erweitern. Durch die Kombination von Python-Skripten, die den Mikrocontroller mit einer DIY-Automatisierungsschaltung steuern, kann Ihre NAS-Speicherbox eine ganze Reihe neuer nützlicher Funktionen übernehmen.

Film kostenlos online ansehen, ohne Download oder Registrierung

Um es zum ultimativen DIY-Erlebnis zu machen, warum nicht? Bauen Sie Ihre eigene NAS-Box und damit auch Ihre Geräte steuern? Stellen Sie sich vor, wie cool es wäre, auf Ihrem Plex-Server auf Play zu drücken und die Lichter automatisch ausschalten zu lassen!

Steuern Sie Arduino bereits mit Python? Gibt es erstaunliche Workarounds, von denen wir noch nichts wissen? Lass es uns im Kommentarbereich unten wissen!

Teilen Teilen Tweet Email 5 Tipps zum Aufladen Ihrer VirtualBox-Linux-Maschinen

Haben Sie genug von der schlechten Leistung virtueller Maschinen? Hier ist, was Sie tun sollten, um Ihre VirtualBox-Leistung zu steigern.

Weiter lesen
Verwandte Themen
  • Heimwerken
  • Programmierung
  • Arduino
  • Heimautomatisierung
  • Python
Über den Autor Ian Buckley(216 veröffentlichte Artikel)

Ian Buckley lebt als freiberuflicher Journalist, Musiker, Performer und Videoproduzent in Berlin. Wenn er nicht gerade schreibt oder auf der Bühne steht, bastelt er an DIY-Elektronik oder Code herum, in der Hoffnung, ein verrückter Wissenschaftler zu werden.

Mehr von Ian Buckley

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um sich zu abonnieren