Exemple #1
0
def main():
	try:
		ser = serial.Serial('/dev/ttyACM0',115200)
	except serial.serialutil.SerialException as e:
		pass
	
	tracker = Eyetracker()
	tracker.getBoundingRectangle()
	tracker.calibrate()
	
	maxRotationVal = 40
	minRotationVal = -40
	
	
	start = time.time()
	end = time.time()
	blinktimer = 0
	forwardmode = False
	
	while True:
		
		
		end = time.time()
		dt = end-start
		if tracker.detectBlink():
			blinktimer += dt
		else:
			blinktimer = 0
		start = time.time()
		
		if blinktimer > 0.5:
			if forwardmode:
				forwardmode = False
			else:
				forwardmode = True
			blinktimer = -9999
		r = 192
		f = 64
		
		if not tracker.blink:
			tracker.trackPupil()
			dist = tracker.pupil[0]- tracker.center[0]
			if dist > maxRotationVal:
				dist = maxRotationVal
			if dist < minRotationVal:
				dist = minRotationVal

			if dist < 0:
				r = r - 63*dist/minRotationVal
			if dist > 0:
				r = r + 63*dist/maxRotationVal
			if forwardmode:
				print("FORWAAAAAARD")
				f = 80
			
			
		#ser.write(chr(r))
		#ser.write(chr(f))
		
		#print(r)
		tracker.draw()
		
		if cv2.waitKey(1) & 0xFF == ord('q'):
			break
			
	tracker.cam.release()
Exemple #2
0
def main():
    try:
        ser = serial.Serial('/dev/ttyACM0', 115200)
    except serial.serialutil.SerialException as e:
        pass

    tracker = Eyetracker()
    tracker.getBoundingRectangle()
    tracker.calibrate()

    maxRotationVal = 40
    minRotationVal = -40

    start = time.time()
    end = time.time()
    blinktimer = 0
    forwardmode = False

    while True:

        end = time.time()
        dt = end - start
        if tracker.detectBlink():
            blinktimer += dt
        else:
            blinktimer = 0
        start = time.time()

        if blinktimer > 0.5:
            if forwardmode:
                forwardmode = False
            else:
                forwardmode = True
            blinktimer = -9999
        r = 192
        f = 64

        if not tracker.blink:
            tracker.trackPupil()
            dist = tracker.pupil[0] - tracker.center[0]
            if dist > maxRotationVal:
                dist = maxRotationVal
            if dist < minRotationVal:
                dist = minRotationVal

            if dist < 0:
                r = r - 63 * dist / minRotationVal
            if dist > 0:
                r = r + 63 * dist / maxRotationVal
            if forwardmode:
                print("FORWAAAAAARD")
                f = 80

        #ser.write(chr(r))
        #ser.write(chr(f))

        #print(r)
        tracker.draw()

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    tracker.cam.release()