def run_wheel(self): while self.do_run: if self.can_drive(): angle = self.get_data()['x'] if angle is None: continue base = 0.000005 multiplexors = self.get_multiplexors() koeff = { 'linear': base * multiplexors['linear'], 'integral': base * multiplexors['integral'], 'diff': base * multiplexors['diff'] } self.integral = koeff['integral'] * angle + self.integral differential = koeff['diff'] * (angle - self.angle_prev) self.angle_prev = angle interval = koeff[ 'linear'] * angle + self.integral + differential # if -10 < angle < -10: # continue # print(interval) if interval > 0: kbe.keyPress(kbe.SC_LEFT, interval) elif interval < 0: kbe.keyPress(kbe.SC_RIGHT, -interval)
def run_speed(self): while self.do_run: if self.can_drive(): radius = self.get_data()['y'] if radius is None: continue gas = 0.15 sleep = gas if np.absolute(radius - self.radius_prev) > np.absolute( self.radius_prev) * 0.10: kbe.keyPress(kbe.SC_DOWN, sleep) elif np.absolute(radius - self.radius_prev) > np.absolute( self.radius_prev) * 0.05: kbe.keyPress(kbe.SC_UP, gas * 1.5) else: kbe.keyPress(kbe.SC_UP, gas) time.sleep(sleep) self.radius_prev = radius
def run(self): while self.do_run: if self.can_drive(): angle = self.get_data() if angle is None: continue elif angle > 45: kbe.keyPress(kbe.SC_LEFT) kbe.keyPress(kbe.SC_DOWN, 0.2) elif angle > 25: kbe.keyPress(kbe.SC_LEFT) kbe.keyPress(kbe.SC_DOWN, 0.15) elif angle > 15: kbe.keyPress(kbe.SC_LEFT) elif angle > 5: kbe.keyPress(kbe.SC_LEFT) kbe.keyPress(kbe.SC_UP, 0.2) elif angle < -45: kbe.keyPress(kbe.SC_RIGHT) kbe.keyPress(kbe.SC_DOWN, 0.3) elif angle < -25: kbe.keyPress(kbe.SC_RIGHT) kbe.keyPress(kbe.SC_DOWN, 0.3) elif angle < -15: kbe.keyPress(kbe.SC_RIGHT) elif angle < -5: kbe.keyPress(kbe.SC_RIGHT) kbe.keyPress(kbe.SC_UP, 0.15) else: kbe.keyPress(kbe.SC_UP, 0.1) kbe.keyPress(kbe.SC_UP, 0.1)
def wheel(): while True: #time.sleep(1) mouse = pyautogui.position() mouse_at_window = mouse[0] >= window[0] and mouse[0] <= window[ 2] and mouse[1] >= window[1] and mouse[1] <= window[3] if ranges['wheel'][0] == 1 and mouse_at_window: if 'l' == command: kbe.keyPress(kbe.SC_LEFT) kbe.keyPress(kbe.SC_DOWN, 0.1) elif 'l' == command: kbe.keyPress(kbe.SC_RIGHT) kbe.keyPress(kbe.SC_DOWN, 0.1) elif 'f' == command: kbe.keyPress(kbe.SC_UP, 0.1) kbe.keyPress(kbe.SC_UP, 0.1)