David 10 years ago
parent
commit
5c2c5b7cde
1 changed files with 63 additions and 0 deletions
  1. 63 0
      camera1/rotate-servo.py

+ 63 - 0
camera1/rotate-servo.py

@@ -0,0 +1,63 @@
+#!/usr/bin/env python3
+from sys import exit, argv
+from time import sleep
+from os import path
+
+args = argv
+if len(args) != 3:
+	print("Args: <servo(x/y)> <offset (10,+10,-10)>")
+	exit(1)
+
+servo_arg = args[1]
+offset = int(args[2])
+
+servo = -1 
+
+if servo_arg == "x" or servo_arg == "X":
+	servo = 1
+
+if servo_arg == "y" or servo_arg == "Y":
+	servo = 0
+
+if servo == -1:
+	print("Servo invalido")
+	exit(2)
+
+
+filename="/tmp/servo_%s" % servo
+old_val = ""
+
+if path.isfile(filename):
+	valfile = open(filename, "r+")
+	old_val = valfile.read()
+else:
+	valfile = open(filename, "w")
+
+try:
+	old_val=int(old_val)
+except:
+	print("Can't convert. Defaulting")
+	old_val = 1500
+
+print(old_val)
+valfile.seek(0)
+
+new_val = old_val+offset
+new_val = min( max( new_val, 900 ), 1750 )
+print(new_val, file=valfile)
+print(new_val)
+
+steps = int(abs(new_val-old_val)/10)
+if steps == 0:
+	exit(0)
+delta = int(offset/steps)
+
+if delta > 0:
+	delta="+%d" % delta
+
+servoblaster = open("/dev/servoblaster","w")
+for i in range(0,steps):
+	#print("%d=%sus" % ( servo, delta ))
+	print("%d=%sus" % ( servo, delta ), file=servoblaster)
+	servoblaster.flush()
+	sleep(0.03)