|
@@ -1,6 +1,7 @@
|
|
|
#!/usr/bin/env python3
|
|
#!/usr/bin/env python3
|
|
|
import paho.mqtt.client as mqtt
|
|
import paho.mqtt.client as mqtt
|
|
|
import threading
|
|
import threading
|
|
|
|
|
+import json
|
|
|
from time import sleep
|
|
from time import sleep
|
|
|
from os import path
|
|
from os import path
|
|
|
|
|
|
|
@@ -20,12 +21,14 @@ def on_message(client, userdata, msg):
|
|
|
if msg.topic == "video/servo1/restart":
|
|
if msg.topic == "video/servo1/restart":
|
|
|
restart_servos()
|
|
restart_servos()
|
|
|
if msg.topic == "video/servo1/rotate":
|
|
if msg.topic == "video/servo1/rotate":
|
|
|
- payload = msg.payload.decode("utf-8", errors="ignore")
|
|
|
|
|
- servo_arg = payload.split()[0]
|
|
|
|
|
try:
|
|
try:
|
|
|
|
|
+ payload = json.loads(msg.payload.decode("utf-8", errors="ignore"))
|
|
|
|
|
+ servo_arg = payload.split()[0]
|
|
|
offset = int(payload.split()[1])
|
|
offset = int(payload.split()[1])
|
|
|
- except:
|
|
|
|
|
|
|
+ except Exception as e:
|
|
|
|
|
+ print("Exception", e)
|
|
|
return
|
|
return
|
|
|
|
|
+ print(servo_arg, offset)
|
|
|
servo = -1
|
|
servo = -1
|
|
|
|
|
|
|
|
if servo_arg.lower() == "x":
|
|
if servo_arg.lower() == "x":
|
|
@@ -48,6 +51,7 @@ client.connect("192.168.2.123", 1883, 60)
|
|
|
|
|
|
|
|
|
|
|
|
|
def update_servo(servo, offset):
|
|
def update_servo(servo, offset):
|
|
|
|
|
+ print("rotating", servo, offset)
|
|
|
filename = "/tmp/servo_%s" % servo
|
|
filename = "/tmp/servo_%s" % servo
|
|
|
old_val = ""
|
|
old_val = ""
|
|
|
|
|
|
|
@@ -81,10 +85,11 @@ def update_servo(servo, offset):
|
|
|
|
|
|
|
|
servoblaster = open("/dev/servoblaster", "w")
|
|
servoblaster = open("/dev/servoblaster", "w")
|
|
|
for _ in range(0, steps):
|
|
for _ in range(0, steps):
|
|
|
- # print("%d=%sus" % ( servo, delta ))
|
|
|
|
|
|
|
+ print("%d=%sus" % ( servo, delta ))
|
|
|
print("%d=%sus" % (servo, delta), file=servoblaster)
|
|
print("%d=%sus" % (servo, delta), file=servoblaster)
|
|
|
servoblaster.flush()
|
|
servoblaster.flush()
|
|
|
sleep(0.12)
|
|
sleep(0.12)
|
|
|
|
|
+ servoblaster.close()
|
|
|
|
|
|
|
|
|
|
|
|
|
def restart_servos():
|
|
def restart_servos():
|
|
@@ -101,7 +106,9 @@ def restart_servos():
|
|
|
servo = 1
|
|
servo = 1
|
|
|
percentage = 61
|
|
percentage = 61
|
|
|
filename = "/tmp/servo_%d" % servo
|
|
filename = "/tmp/servo_%d" % servo
|
|
|
- print("%d=%d%%" % (servo, percentage), file=servoblaster)
|
|
|
|
|
|
|
+ s = "%d=%d%%" % (servo, percentage)
|
|
|
|
|
+ print(s)
|
|
|
|
|
+ print(s, file=servoblaster)
|
|
|
print(int((maxv-minv) * (percentage/100))+minv, file=open(filename, "w"))
|
|
print(int((maxv-minv) * (percentage/100))+minv, file=open(filename, "w"))
|
|
|
|
|
|
|
|
servoblaster.flush()
|
|
servoblaster.flush()
|