|
|
|
@ -9,7 +9,6 @@ import time
|
|
|
|
import argparse
|
|
|
|
import argparse
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MothtrapPlugin(shepherd.plugin.Plugin):
|
|
|
|
class MothtrapPlugin(shepherd.plugin.Plugin):
|
|
|
|
@staticmethod
|
|
|
|
@staticmethod
|
|
|
|
def define_config(confdef):
|
|
|
|
def define_config(confdef):
|
|
|
|
@ -30,18 +29,14 @@ class MothtrapPlugin(shepherd.plugin.Plugin):
|
|
|
|
print("Mothtrap config:")
|
|
|
|
print("Mothtrap config:")
|
|
|
|
print(self.config)
|
|
|
|
print(self.config)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#servo_max = self.config["servo_open_pulse"] / 1000000
|
|
|
|
#servo_max = self.config["servo_open_pulse"] / 1000000
|
|
|
|
#servo_min = self.config["servo_closed_pulse"] / 1000000
|
|
|
|
#servo_min = self.config["servo_closed_pulse"] / 1000000
|
|
|
|
|
|
|
|
|
|
|
|
#if servo_min > servo_max:
|
|
|
|
# if servo_min > servo_max:
|
|
|
|
# servo_min, servo_max = servo_max, servo_min
|
|
|
|
# servo_min, servo_max = servo_max, servo_min
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#print(F"Supplied min: {servo_min}, max: {servo_max}")
|
|
|
|
#print(F"Supplied min: {servo_min}, max: {servo_max}")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
self.interface.attach_hook("usbcam", "pre_cam", self.led_on)
|
|
|
|
self.interface.attach_hook("usbcam", "pre_cam", self.led_on)
|
|
|
|
self.interface.attach_hook("usbcam", "post_cam", self.led_off)
|
|
|
|
self.interface.attach_hook("usbcam", "post_cam", self.led_off)
|
|
|
|
self.interface.attach_hook("usbcam", "post_cam", self.run_servo)
|
|
|
|
self.interface.attach_hook("usbcam", "post_cam", self.run_servo)
|
|
|
|
@ -50,28 +45,28 @@ class MothtrapPlugin(shepherd.plugin.Plugin):
|
|
|
|
|
|
|
|
|
|
|
|
def led_on(self):
|
|
|
|
def led_on(self):
|
|
|
|
self.plugins["scout"].set_out1(True)
|
|
|
|
self.plugins["scout"].set_out1(True)
|
|
|
|
#self.led_power.on()
|
|
|
|
# self.led_power.on()
|
|
|
|
|
|
|
|
|
|
|
|
def led_off(self):
|
|
|
|
def led_off(self):
|
|
|
|
self.plugins["scout"].set_out1(False)
|
|
|
|
self.plugins["scout"].set_out1(False)
|
|
|
|
#self.led_power.off()
|
|
|
|
# self.led_power.off()
|
|
|
|
|
|
|
|
|
|
|
|
def run_servo(self):
|
|
|
|
def run_servo(self):
|
|
|
|
self.plugins["scout"].set_aux5v(True)
|
|
|
|
self.plugins["scout"].set_aux5v(True)
|
|
|
|
#self.door_servo_power.on()
|
|
|
|
# self.door_servo_power.on()
|
|
|
|
time.sleep(0.5)
|
|
|
|
time.sleep(0.5)
|
|
|
|
|
|
|
|
|
|
|
|
self.plugins["scout"].set_pwm1(True, self.config["servo_open_pulse"])
|
|
|
|
self.plugins["scout"].set_pwm1(True, self.config["servo_open_pulse"])
|
|
|
|
#self.door_servo.pulse_width = self.config["servo_open_pulse"] / 1000000
|
|
|
|
#self.door_servo.pulse_width = self.config["servo_open_pulse"] / 1000000
|
|
|
|
time.sleep(self.config["servo_open_time"])
|
|
|
|
time.sleep(self.config["servo_open_time"])
|
|
|
|
|
|
|
|
|
|
|
|
self.plugins["scout"].set_pwm1(True, self.config["servo_closed_pulse"])
|
|
|
|
self.plugins["scout"].set_pwm1(True, self.config["servo_closed_pulse"])
|
|
|
|
#self.door_servo.pulse_width = self.config["servo_closed_pulse"] / 1000000
|
|
|
|
#self.door_servo.pulse_width = self.config["servo_closed_pulse"] / 1000000
|
|
|
|
time.sleep(self.config["servo_open_time"])
|
|
|
|
time.sleep(self.config["servo_open_time"])
|
|
|
|
self.plugins["scout"].set_pwm1(False, self.config["servo_closed_pulse"])
|
|
|
|
self.plugins["scout"].set_pwm1(False, self.config["servo_closed_pulse"])
|
|
|
|
#self.door_servo.detach()
|
|
|
|
# self.door_servo.detach()
|
|
|
|
self.plugins["scout"].set_aux5v(False)
|
|
|
|
self.plugins["scout"].set_aux5v(False)
|
|
|
|
#self.door_servo_power.off()
|
|
|
|
# self.door_servo_power.off()
|
|
|
|
|
|
|
|
|
|
|
|
def test(self):
|
|
|
|
def test(self):
|
|
|
|
self.led_on()
|
|
|
|
self.led_on()
|
|
|
|
|