- Voraussetzungen:
- Installieren von VPython auf Ihrem Computer:
- Programmieren von VPython:
- Bereiten Sie Ihr Arduino vor:
- Arbeiten:
In unserem vorherigen Tutorial haben wir gelernt, wie Sie Python auf unserem Windows-Computer installieren und wie Sie Arduino mithilfe eines einfachen LED-Steuerungsprojekts mit Python verbinden. Wenn Sie neu sind, würde ich Ihnen dringend empfehlen, auf das vorherige Tutorial zurückzugreifen, da dieses Tutorial eine Fortsetzung desselben ist.
Sie haben sich vielleicht schon gefragt, warum wir Python mit Arduino brauchen würden, wenn es nur über die serielle Schnittstelle kommunizieren könnte. Python ist jedoch eine sehr starke Entwicklungsplattform, auf der viele coole Anwendungen integriert werden können, in die maschinelles Lernen, Computer Vision und vieles mehr integriert werden können. In diesem Tutorial erfahren Sie, wie Sie mit Python eine kleine grafische Oberfläche erstellen können. Dazu benötigen wir ein Modul namens Vpython. Das folgende Tutorial gilt nur für Windows-Benutzer, da das Verfahren für Mac- oder Linux-Benutzer anders ist.
Am Ende dieses Tutorials erfahren Sie, wie Sie mit Python eine einfache Benutzeroberfläche erstellen können. Wir werden eine kleine Animation machen, die auf den Wert des Ultraschallsensors reagiert, der am Arduino angebracht ist. Diese Anwendung verfolgt das Objekt mithilfe eines Ultraschallsensors und zeigt es mit VPython in grafischer Form auf einem Computer an. Während wir das Objekt bewegen, erkennt der Ultraschallsensor die Entfernung und sendet diese Informationen mit Arduino an das Python-Programm. Das Objekt wird dann auch im Computer bewegt. Klingt interessant, oder? Also los geht's…
Voraussetzungen:
- Arduino (Beliebige Version)
- Ultraschallsensor HC-SR04
- Kabel anschließen
- Computer mit Python
- Kenntnisse im vorherigen Tutorial
Installieren von VPython auf Ihrem Computer:
In unserem vorherigen Tutorial haben wir bereits gelernt, wie Sie Python auf Ihrem Computer installieren und wie Sie sich darin bewegen und mit Arduino ein einfaches Programm erstellen. Jetzt haben wir Visual Python (VPython) darüber installiert, damit wir mit Python für Arduino coole Grafiken erstellen können. Für die folgenden einfachen Schritte, um mit VPython zu beginnen
Schritt 1. Stellen Sie sicher, dass Python bereits gemäß den vorherigen Richtlinien für Lernprogramme installiert ist.
Schritt 2. Klicken Sie auf VPython, um die exe-Datei für Visual Python herunterzuladen. Entscheiden Sie sich nicht für die Installation einer 64-Bit-Version, auch wenn Ihr Computer mit 64-Bit ausgeführt wird. Folgen Sie einfach dem angegebenen Link.
Schritt 3. Starten Sie die exe-Datei und folgen Sie dem Setup. Ändern Sie nicht den Standardverzeichnispfad und stellen Sie sicher, dass Sie "Vollinstallation" ausgewählt haben.
Schritt 4. Nach der Installation sollten Sie eine neue Anwendung mit dem Namen "VIDLE (VPython)" auf Ihrem Desktop oder im Anwendungsbereich finden (siehe unten).
Schritt 5. Starten Sie die Anwendung und Sie sollten ein Fenster wie unten gezeigt erhalten.
Schritt 6. In diesem Fenster geben wir das Programm für VPython ein. Lassen Sie uns zunächst überprüfen, ob Vpython funktioniert, indem Sie ein Beispielprogramm öffnen. Wählen Sie dazu Datei-> Öffnen-> Bounce
Schritt 7. Sie sollten ein Beispielprogramm öffnen lassen. Versuchen Sie, das Programm über Ausführen -> Modul ausführen zu starten. Wenn alles wie erwartet funktioniert, sollte der folgende Bildschirm angezeigt werden.
Sie sollten das Shell-Fenster (links) mit zwei >>> sehen, die eine erfolgreiche Kompilierung anzeigen, und das tatsächliche Fenster (vorne), in dem ein Ball springt.
Schritt 8. Sie können auch andere Beispielprogramme ausprobieren, um die Leistung von VPython zu ermitteln. Das Beispielprogramm „Elektromotor“ wird Sie beispielsweise auf dem folgenden Bildschirm in Erstaunen versetzen.
Schritt 9. Dies bedeutet, dass Ihr VPython einsatzbereit ist und Sie zum Thema „ Programmieren Ihres Vpython “ wechseln können .
Schritt 10. Andernfalls verlieren Sie nicht die Hoffnung, wenn Sie wie einer von vielen sind, die einen „Numpy Error“ erhalten , denn wir werden dieses Problem in den weiteren Schritten lösen
Schritt 11. Öffnen Sie Arbeitsplatz -> Laufwerk C -> Python 27 -> Skripte -> local.bat . Dadurch wird eine Eingabeaufforderung wie unten gezeigt gestartet
Schritt 12. Geben Sie nun "pip install --upgrade numpy" ein und drücken Sie die Eingabetaste. Die neue Version von Numpy sollte auf Ihrem Computer installiert werden. Möglicherweise müssen Sie einige Zeit warten, wenn Ihre Internetverbindung langsam ist.
Schritt 13. Sobald Sie fertig sind, können Sie auf Schritt 4 zurückgreifen und ein Beispielprogramm ausprobieren. Sie sollten in der Lage sein, es zum Laufen zu bringen.
Programmieren von VPython:
Als nächstes beginnen wir mit der Programmierung in unserem VPython-Fenster. In diesem Programm erstellen wir zwei rechteckige 3D-Objekte, von denen eines in der Mitte des Bildschirms in Bezug auf den stationären Ultraschallsensor platziert wird und das andere sich an einem dynamischen Ort befindet, der auf dem Abstand zwischen dem US-Sensor und dem Objekt (Papier) basiert.
Den vollständigen Python-Code finden Sie am Ende dieser Seite. Weiter unten habe ich diesen Python-Code erklärt, indem ich sie in kleine sinnvolle Junks aufgeteilt habe.
Die erste Zeile wäre, die visuelle Bibliothek zu importieren, damit wir 3D-Objekte erstellen können. Die folgende Zeile macht dasselbe.
vom visuellen Import *
Sie sollten mit den nächsten vier Zeilen vertraut sein, da wir sie bereits in unserem vorherigen Tutorial verwendet haben. Sie werden zum Importieren der Serien- und Zeitbibliothek sowie zum Herstellen einer seriellen Verbindung mit Arduino bei COM18 mit 9600 als Baudrate verwendet
Importieren der Seriennummer #Serial für die serielle Kommunikation importiert Importzeit #Erforderlich für die Verwendung von Verzögerungsfunktionen ArduinoSerial = serial.Serial ('com18', 9600) #Create Serial Port-Objekt mit dem Namen arduinoSerialData time.sleep (2) #Warten Sie 2 Sekunden, bis die Kommunikation erfolgt etablieren
Jetzt ist es Zeit, Objekte zu erstellen. Ich habe zwei 3D-Rechtecke mit dem Namen obj und wall erstellt. Die WandL ist eine stationäre Wand in Cyan-Farbe, die in der Mitte des Bildschirms platziert ist, und das Objekt ist das bewegliche Objekt in Weiß. Ich habe auch einen Text "US-Sensor" in der Nähe des Wandobjekts platziert.
obj = box (pos = (- 5,0,0), size = (0,1,4,4), color = color.white) wallL = box (pos = (- 1,0,0), size = (0,2), 12,12), Farbe = Farbe.Cyan) Text (Text = 'US-Sensor', Achse = (0,1,0), Pos = (- 2, -6,0), Tiefe = -0,3, Farbe = color.cyan)
Ich bin sicher, dass die obigen drei Zeilen für die meisten Erstleser als Griechisch und Lateinisch erschienen wären, aber mit der Zeit würden Sie es verstehen können. Alles, was in Klammern angegeben ist, sind (x, y, z) Koordinaten. Und diese Koordinaten sind denen sehr ähnlich, die wir in unserer High-School-Geometrieklasse finden, wie unten gezeigt.
Jetzt ist die Grafik und die serielle Schnittstelle fertig. Alles, was wir tun müssen, ist , die Daten zu lesen und das „obj“ (weißes Rechteck) an einer Stelle zu platzieren, die den Daten des Arduino entspricht. Dies kann durch die folgenden Zeilen erfolgen, wobei obj.pos.x die X-Koordinatenposition des Objekts steuert (weißes Rechteck).
t = int (ArduinoSerial.readline ()) #lesen Sie die seriellen Daten und drucken Sie sie als Zeile t = t * 0.05 obj.pos.x = t
Bereiten Sie Ihr Arduino vor:
Das Python-Skript ist bereit, auf Werte vom COM-Port zu warten und die Grafiken entsprechend zu animieren, aber unser Arduino ist noch nicht bereit. Zuerst müssen wir den Ultraschallsensor gemäß dem folgenden Schaltplan an das Arduino anschließen. Wenn Sie mit US-Sensoren und Arduino noch nicht vertraut sind, müssen Sie auf das Tutorial zur Abstandsmessung auf Basis von Arduino- und Ultraschallsensoren zurückgreifen.
Laden Sie dann das am Ende dieser Seite angegebene Arduino-Programm hoch. Das Programm wird anhand von Kommentarzeilen selbst erklärt. Wir wissen, dass der Ultraschallsensor die Zeit berechnet, die der Puls benötigt, um ein Objekt zu treffen und zurückzukehren. Dieser Wert wird mithilfe der PulseIn- Funktion in Arduino berechnet. Später wird die benötigte Zeit mit der folgenden Zeile in Entfernung umgewandelt.
dist = (Zeitplan / 2) / 2,91;
Hier wird der Abstand in Millimetern (mm) berechnet.
Arbeiten:
Die Arbeit des Projekts ist einfach. Starten Sie das Python-Programm und platzieren Sie ein Objekt wie unten gezeigt vor dem US-Sensor:
Starten Sie nun das Python-Programm und Sie sollten feststellen können, dass sich das weiße Rechteck mit Ihrem Papier bewegt. Der Abstand zwischen Papier und Sensor wird auch im Shell-Fenster angezeigt (siehe Abbildung unten).
Auf diese Weise können wir die Bewegung eines Objekts mithilfe des Ultraschallsensors und Python mit Arduino verfolgen.
Ich hoffe, Sie haben das Projekt verstanden und es genossen, eines zu bauen. Dies ist nur ein subtiler Schritt in Richtung Python, aber Sie können damit viel kreativere Dinge bauen. Wenn Sie eine Idee haben, was Sie mit diesem Beitrag erstellen sollen, geben Sie diese im Kommentarbereich an und nutzen Sie die Foren für technische Hilfe. Wir sehen uns mit einem weiteren interessanten Python-Projekt.