#!/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: ") 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)