Gestenerkennung Client
Dieser Teil ist nur optional und noch in Entwicklung und ist nicht als Zielsetzung für das ursprüngliche Projekt anzusehen.
import cv2
import time
import serial
import socket
import pickle
serialcom = serial.Serial('/dev/ttyACM0', 115200)
kamera = cv2.VideoCapture(0)
letzte_zeit = time.time()
# Verbindung zum Server wird hergestellt
clientsocket=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
clientsocket.connect(('server.tesy-robot.de',8089))
# Schleife, die durchläuft solange die Gestenerkennung läuft
while True:
success, frame = kamera.read() # Liest einen einzelnen Frame der Webcam aus
if not success:
break
# Schickt die Daten an den oben festgelegten Server, und teils diese vorher in kleine Stück auf
clientsocket.send(pickle.dumps(frame))
# Empfängt die Daten vom Server
received = clientsocket.accept().recv(4096)
data_arr = pickle.loads(received) # Speichert die empfangenen Daten (Rückgabewerte in Form von Zahlen) vom Server
# Schickt wenn eine Mindestzeit zum letzten senden vorliegt die verarbeiteten Daten an der Arduino zurück
aktuelle_zeit = time.time()
if aktuelle_zeit - letzte_zeit > 0.001:
serialcom.write(bytearray(data_arr))
letzte_zeit = aktuelle_zeit
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# Beendet die Verbindung zum Server und schließt die Verbindung zum Servern
clientsocket.close()
kamera.release()Last updated