# Finds all locally installed apps that have an external.py def get_external_hook_paths(): return ["%s/external" % app.folder_path for app in get_local_apps() if is_file("%s/external.py" % app.folder_path)] def low_power(): ugfx.backlight(0) ugfx.power_mode(ugfx.POWER_OFF) ugfx.init() imu=IMU() neo = pyb.Neopix(pyb.Pin("PB13")) neo.display(0x04040404) ledg = pyb.LED(2) ival = imu.get_acceleration() if ival['y'] < 0: ugfx.orientation(0) else: ugfx.orientation(180) buttons.init() if not onboard.is_splash_hidden(): splashes = ["splash1.bmp"] for s in splashes: ugfx.display_image(0,0,s) delay = 2000 while delay: delay -= 1 if buttons.is_triggered("BTN_MENU"):
"%s/external" % app.folder_path for app in get_local_apps() if is_file("%s/external.py" % app.folder_path) ] def low_power(): ugfx.backlight(0) ugfx.power_mode(ugfx.POWER_OFF) ugfx.init() imu = IMU() neo = pyb.Neopix(pyb.Pin("PB13")) neo.display(0x04040404) ledg = pyb.LED(2) ival = imu.get_acceleration() if ival['y'] < 0: ugfx.orientation(0) else: ugfx.orientation(180) buttons.init() if not onboard.is_splash_hidden(): splashes = ["splash1.bmp"] for s in splashes: ugfx.display_image(0, 0, s) delay = 2000 while delay: delay -= 1 if buttons.is_triggered("BTN_MENU"): break
from imu import IMU import pyb imu = IMU() while True: print(imu.get_acceleration()) pyb.delay(1000);
from imu import IMU import pyb imu = IMU() while True: print(imu.get_acceleration()) pyb.delay(1000)
class Bike(): def __init__(self, log=False): if str(log) == "True": dir_path = os.getcwd() + "/" file_name = time.strftime("%Y.%m.%d.%H.%M.%S") + ".log" log = dir_path + file_name self.log = log self.mtr = BigBoy() self.imu = IMU() self.fps = FPS(1.0) self.t0 = time.time() self.steps = 5 self.max_steps = 60 self.pos = 0 self.threshold = 1.5 self.tilt_constant = -25.0 # record parameters at the top of the log def balance(self): x, y, self.tilt = self.imu.get_acceleration() self.goal = int(self.tilt_constant * self.tilt) self.response = 'Goal: ' + str(self.goal) self.try_step(self.goal - self.pos) time.sleep(0.005) def balance_initial(self): t = time.time() - self.t0 x, y, self.tilt = self.imu.get_acceleration() if tilt < -self.threshold: self.response = 'leaning left' self.try_step(self.steps) elif tilt > self.threshold: self.response = 'leaning right' self.try_step(-self.steps) elif self.pos > 0: self.response = 'recentering right' self.try_step(-self.steps) elif self.pos < 0: self.response = 'recentering left' self.try_step(self.steps) if self.log: data = [ t, x, y, self.pos, self.tilt, self.response, ] with open(self.log, 'a') as f: f.write(",".join(data) + "\n") def try_step(self, steps): if abs(self.pos + steps) <= self.max_steps: self.pos += steps self.mtr.step(steps) def updateFPS(self): self.fps.update(verbose=True) def cleanup(self): self.mtr.cleanup()
from imu import IMU import wifi TILT_THRESHOLD = -0.4 TILT_PLAY = -0.1 imu = IMU() host = 'http://192.168.0.12:8001' if not wifi.nic().is_connected(): wifi.connect(timeout=20) triggered = False while(True): y = imu.get_acceleration()['y'] if(int(y) < TILT_THRESHOLD): triggered = True elif(y > TILT_PLAY and triggered): try: print('foobar') get(host, timeout=10).raise_for_status() except Exception as e: print('Request Failed {}'.format(str(e))) except OSError as e: print('Request Failed {}'.format(str(e))) finally: triggered = False pyb.delay(500)
FLAT = 2 WIREFRAME = 3 # Start with backface culling mode mode = BACKFACECULL last_polygons = [] last_mode = WIREFRAME # Main loop run = True while run: gc.collect() # Render the scene render( mode, calculateRotation(smoothing, imu.get_acceleration()) ) # Button presses if buttons.is_pressed("JOY_LEFT"): y_rotation -= 5 if buttons.is_pressed("JOY_RIGHT"): y_rotation += 5 if buttons.is_pressed("JOY_CENTER"): y_rotation = 0 if buttons.is_pressed("BTN_B"): selected += 1 if selected >= len(objects): selected = 0 loadObject(objects[selected]) time.sleep_ms(500) # Wait a while to avoid skipping ahead if the user still has the button down if buttons.is_pressed("BTN_A"):