|
|
@@ -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)
|