Ejemplo n.º 1
0
# 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"):
Ejemplo n.º 2
0
        "%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
Ejemplo n.º 3
0
from imu import IMU
import pyb

imu = IMU()

while True:
    print(imu.get_acceleration())
    pyb.delay(1000);
Ejemplo n.º 4
0
from imu import IMU
import pyb

imu = IMU()

while True:
    print(imu.get_acceleration())
    pyb.delay(1000)
Ejemplo n.º 5
0
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()
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
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"):