| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #!/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.06)
|