Skip to content
JakobGreten edited this page Oct 14, 2020 · 4 revisions

Die Kamera kann für Object und Line-Tracking benutzt werden. Für das Objekt-Tracking sollte erst über die Software PixyMon v2 ein Objekt eingespeichert werden. Es können bis zu 7 verschiedene Signaturen(Objekte) eingespeichert werden. Über camera.getObjectData(signature,draw) können die Daten von einem eingespeicherten Objekt abgerufen werden. Dabei ist signature die Nummer der Signatur und draw ist vom Typ Boolean und signalisiert ob das Objekt auf dem Display des EV3 angezeigt werden soll, wenn es erkannt wird. Es kann aber immer nur ein Objekt zur Zeit gezeichnet werden, da das Display vor dem zeichnen zurückgesetzt wird. Es werden immer die x und y-Position und die Breite und Höhe des Objektes zurückgegeben. Sowohl für das Line-Tracking als auch für das Object-Tracking sind gute und gleichbleibende Lichtverhältnisse sehr wichtig. Deswegen hilft es oft, die Lampen and der Kamera über lam_on() anzustellen.

from pixy_camera import *
#Port des Sensors festlegen
camera = Camera(Port.S1)

camera.lamp_on()

x,y,width,height = camera.getObjectData(1,True)

Beim Line-Tracking wird ein Vektor(Roter Pfeil in PixyMon) zurückgegeben, wenn eine Linie erkannt wird. Der Winkel dieses Vektors wird über camera.get_line_tracking_angle() zurückgegeben und kann dann als Lenkwinkel benutzt werden. Außerdem bekommt man auch ein data-Objekt. Das data-Objekt muss unbedingt nach dem benutzen mit data.clear() gelöscht werden, bevor get_line_tracking_angle() erneut aufgerufen wird.

from pixy_camera import *
#Port des Sensors festlegen
camera = Camera(Port.S1)
angle,data = camera.get_line_tracking_angle()
Clone this wiki locally