def __init__(self): robohat.init() print("Robohat version: ", robohat.version()) self.sstate[self.tilt] = 0 self.sstate[self.pan] = 0 robohat.setServo(self.pan, self.sstate[self.pan]) robohat.setServo(self.tilt, self.sstate[self.tilt])
def init(): global settings if os.path.exists("johnny_settings.json"): settings = json.load(open("johnny_settings.json", "r")) else: settings["tilt_centre"] = 0 settings["rotation_angle"] = 0 settings["speed"] = 100 json.dumps(settings, open("johnny_settings.json", "w")) robohat.init() robohat.setServo(1, settings["rotation_angle"])
def right_pulse(): global settings # Check right robohat.setServo(settings["rotation_angle"] + 45) time.sleep(0.3) distance = int(robohat.getDistance()) # Face forwards robohat.setServo(settings["rotation_angle"]) return distance
def doServo(self, item): sid = item['servo'] val = item['val'] step = 5 if (val < self.sstate[sid]): step = -step #current - target for s in range(self.sstate[sid], val, step): robohat.setServo(sid, s) time.sleep(0.0001) robohat.setServo(sid, val) self.sstate[sid] = val
def doServos(): robohat.setServo(pan, pVal) robohat.setServo(tilt, tVal)
def tiltLeft(): global tiltVal, tiltId tiltVal = max(-max_range, tiltVal - step_size) robohat.setServo(tiltId, tiltVal)
def tiltRight(): global tiltVal, tiltId tiltVal = min(max_range, tiltVal + step_size) robohat.setServo(tiltId, tiltVal)
def panUp(): global panVal, panId panVal = min(max_range, panVal + step_size) robohat.setServo(panId, panVal)
def panDown(): global panVal, panId panVal = max(-max_range, panVal - step_size) robohat.setServo(panId, panVal)
import time import threading robohat.init() max_range = 45 step_size = 3 runtime = 10 if len(sys.argv) > 1 and sys.argv[1]: runtime = int(sys.argv[1]) panId = 0 tiltId = 1 panVal = 0 tiltVal = 0 robohat.setServo(panId, panVal) robohat.setServo(tiltId, tiltVal) def panDown(): global panVal, panId panVal = max(-max_range, panVal - step_size) robohat.setServo(panId, panVal) def panUp(): global panVal, panId panVal = min(max_range, panVal + step_size) robohat.setServo(panId, panVal)
def tiltLeft(): global tiltVal, tiltId tiltVal = max(-max_range, tiltVal-step_size) robohat.setServo(tiltId, tiltVal)
def tiltRight(): global tiltVal, tiltId tiltVal = min(max_range, tiltVal+step_size) robohat.setServo(tiltId, tiltVal)
def panUp(): global panVal, panId panVal = min(max_range, panVal+step_size) robohat.setServo(panId, panVal)
def panDown(): global panVal, panId panVal = max(-max_range, panVal-step_size) robohat.setServo(panId, panVal)
import threading import thread robohat.init() max_range = 45 step_size = 3 runtime = 10 if len(sys.argv) > 1 and sys.argv[1]: runtime = int(sys.argv[1]) panId = 0 tiltId = 1 panVal = 0 tiltVal = 0 robohat.setServo(panId, panVal) robohat.setServo(tiltId, tiltVal) def panDown(): global panVal, panId panVal = max(-max_range, panVal-step_size) robohat.setServo(panId, panVal) def panUp(): global panVal, panId panVal = min(max_range, panVal+step_size) robohat.setServo(panId, panVal) def tiltRight(): global tiltVal, tiltId tiltVal = min(max_range, tiltVal+step_size)