Beispiele für Vision-Code
Kurzbeschreibung
Auf dieser Seite finden Sie kurze Python-Code-Beispiele für die Kommunikation mit dem Vision Starter Kit über TCP/IP.
Die Beispiele sollen als Ausgangspunkt für Ihre eigenen Anwendungen dienen.
Es handelt sich dabei nicht um fertige Projekte, sondern um wiederverwendbare Bausteine für die Anbindung an den Sensor, den Empfang von Daten und das Senden einfacher Befehle.
Übersicht über die Code-Beispiele
| Beispiel | Zweck | Schwierigkeitsgrad |
|---|---|---|
| Mit dem Bildsensor verbinden | Eine TCP-Verbindung zum Sensor herstellen | Grundlagen |
| Sensormeldungen empfangen | Eingehende Nachrichten kontinuierlich lesen | Grundlagen |
| Bildaufnahme auslösen | Triggerbefehle an den Sensor senden | Mittelstufe |
Bevor Sie beginnen
Stellen Sie sicher, dass das Vision Starter Kit angeschlossen ist und von Ihrem Computer aus erreichbar ist.
Möglicherweise müssen Sie die folgenden Werte in den Code-Beispielen anpassen:
Netzwerkeinstellungen
Die IP-Adresse und der Port können je nach Konfiguration Ihres Sensors variieren.
Überprüfen Sie die Netzwerkeinstellungen Ihres Vision Starter Kits, bevor Sie den Code ausführen.
Beispiel 1: Verbindung zum Bildsensor herstellen
Purpose
Dieses Beispiel zeigt, wie man mit Python eine TCP-Verbindung zum Vision-Sensor herstellt.
Dies kann als erster Verbindungstest dienen, um zu überprüfen, ob Ihr Computer den Sensor über die konfigurierte IP-Adresse und den konfigurierten Port erreichen kann.
Code
import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_ip = "192.168.0.1"
server_port = 34170
client.connect((server_ip, server_port))
print("Connected to Vision Sensor")
client.close()
Expected Result
Wenn die Verbindung erfolgreich hergestellt wurde, sollte auf dem Terminal Folgendes angezeigt werden:
Sollte die Verbindung fehlschlagen, überprüfen Sie Folgendes:
- IP-Adresse des Sensors
- Sensoranschluss
- Netzwerkverbindung
- Firewall-Einstellungen
- Konfiguration des Netzwerkadapters
Beispiel 2: Sensor-Meldungen kontinuierlich empfangen
Purpose
In diesem Beispiel wird eine Verbindung zum Sensor hergestellt und es werden kontinuierlich eingehende Nachrichten empfangen.
Damit lässt sich überprüfen, ob der Sensor Daten an Ihre Python-Anwendung sendet.
Code
import socket
def run_client():
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_ip = "192.168.0.1"
server_port = 34170
client.connect((server_ip, server_port))
try:
while True:
message = client.recv(1024)
message = message.decode("utf-8")
print("Received:", message)
except KeyboardInterrupt:
print("Stopping client...")
finally:
client.close()
run_client()
Expected Result
Das Terminal gibt die vom Sensor empfangenen Meldungen aus.
Beispiel:
Beenden Sie das Skript mit:
Kontinuierlicher Empfang
In diesem Beispiel wird auf eingehende Daten vom Sensor gewartet.
Wenn nichts ausgedruckt wird, überprüfen Sie, ob der Sensor so konfiguriert ist, dass er Ergebnisdaten übermittelt.
Beispiel 3: Bildaufnahme auslösen
Purpose
In diesem Beispiel werden einfache Auslösebefehle an den Sensor gesendet.
Damit lassen sich über ein Python-Skript ein Auftrag auswählen, die Bildaufnahme auslösen und die Bildaufzeichnung starten.
Code
import socket
def trigger_image():
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_ip = "192.168.0.1"
server_port = 34170
client.connect((server_ip, server_port))
client.sendall(b"\x02set job 2\x03")
client.sendall(b"\x02trigger\x03")
client.sendall(b"\x02RecordImages\x03")
print("Trigger commands sent")
client.close()
trigger_image()
Expected Result
Der Sensor empfängt die Auslösebefehle und startet den konfigurierten Bildaufnahme-Workflow.
Auf dem Terminal sollte Folgendes angezeigt werden:
Auftragsnummer
Der Befehl set job 2 wählt die Auftragsnummer 2 aus.
Ändern Sie diesen Wert, wenn Ihr entsprechender Auftrag eine andere Auftragsnummer hat.
Befehlsformat
Die Zeichen \x02 und \x03 markieren den Anfang und das Ende des Befehlstelegramms.
Erwartetes Ergebnis
Der Sensor empfängt die Auslösebefehle und startet den konfigurierten Bildaufnahme-Workflow.
Auftragsnummer
Der Befehl set job 2 wählt die Auftragsnummer 2 aus.
Ändern Sie diesen Wert, wenn in Ihrem jeweiligen Auftrag eine andere Zahl verwendet wird.
Fehlerbehebung
Fehlerbehebung
Verbindung abgelehnt
Überprüfen Sie, ob der Sensor erreichbar ist und ob der richtige Anschluss verwendet wird.
Keine Rückmeldung vom Sensor
Überprüfen Sie die Ethernet-Verbindung und die Einstellungen des Sensornetzwerks.
Unerwartetes Nachrichtenformat
Stellen Sie sicher, dass der Sensor so konfiguriert ist, dass er das erwartete Antwortformat übermittelt.
Nächste Schritte
Nutzen Sie diese Beispiele als Bausteine für Ihre eigenen „Vision Starter Kit“-Projekte.