コード例 #1
0
def deal_with_command(s):
    if s[0] != ID:
        return 0

    if s[1] != ord(b'S') and s[1] != ord(b'R') and s[1] != ord(b'Q'):
        return 0

    if s[1] == ord(b'S'):
        for i in range(4, 8, 1):
            speed[i - 4] = s[i]
        set_car_speed()

    st = struct.pack('4s4B6i', s[0:4], speed[0], speed[1], speed[2], speed[3],
                     compass.get_x(), compass.get_y(), compass.get_z(),
                     accelerometer.get_x(), accelerometer.get_y(),
                     accelerometer.get_z())
    uart.write(st)

    sleep(20)

    if s[1] == ord(b'R'):
        display.show(Image.SAD)
        uart.write('+++')
        for i in range(4, 8, 1):
            speed[i - 4] = 0
        set_car_speed()
        sleep(1000)
        reset()
    return 1
コード例 #2
0
def get_sensor_data():
    x = accelerometer.get_x()
    y = accelerometer.get_y()
    z = accelerometer.get_z()
    a = button_a.was_pressed()
    b = button_b.was_pressed()
    print(x, y, z, a, b)
    return x, y
コード例 #3
0
    def getAcceleration(self):
        x = accelerometer.get_x()
        y = accelerometer.get_y()
        z = accelerometer.get_z()

        acceleration = math.sqrt(x**2 + y**2 + z**2)

        return acceleration
コード例 #4
0
    def getAcceleration(self):
        x = accelerometer.get_x()
        y = accelerometer.get_y()
        z = accelerometer.get_z()

        acceleration = math.sqrt(x ** 2 + y ** 2 + z ** 2)  # ** means make this a power of.

        return acceleration
コード例 #5
0
def main():
    display.show(Image.HAPPY)

    while True:
        if button_a.is_pressed():
            x = accelerometer.get_x()
            y = accelerometer.get_y()
            mouse.move_relative(x // 10, y // 10)
            sleep(50)

        if button_b.is_pressed():
            mouse.left_click()
            sleep(500)
コード例 #6
0
ファイル: altair.py プロジェクト: pdbperks/altair8800
def level():
    global row, col
    bright = 4
    for x in range(1, 5):
        display.set_pixel(x, 0, 0)
    for y in range(0, 5):
        display.set_pixel(0, y, 0)
    row = accelerometer.get_x()  #pitch 2 row
    row = min(max(1,
                  int(row / 200) + 2),
              4)  # roll sensitivity row/60=narrow 400=wide + tilt factor
    display.set_pixel(row, 0, bright)
    col = accelerometer.get_y()  # roll 4 bit cols
    col = min(
        max(3,
            int(col / 200) + 2),
        4)  #pitch sensitivity 200 horizontal 300 more vertical + tilt factor
    display.set_pixel(0, col, bright)
コード例 #7
0
ファイル: balancer.py プロジェクト: garybake/microbake
    def update(self):
        # Move the droplet around the board based on the accelerometer
        x_reading = accelerometer.get_x()
        if x_reading > 20:
            delta_x = 1
        elif x_reading < -20:
            delta_x = -1
        else:
            delta_x = 0

        y_reading = accelerometer.get_y()
        if y_reading > 20:
            delta_y = 1
        elif y_reading < -20:
            delta_y = -1
        else:
            delta_y = 0

        # Move the tail along
        self.x[2] = self.x[1]
        self.x[1] = self.x[0]
        self.y[2] = self.y[1]
        self.y[1] = self.y[0]

        # Update x and y and check for boundaries
        self.x[0] = self.x[0] + delta_x
        if (self.x[0] > 4):
            self.x[0] = 4
        elif (self.x[0] < 0):
            self.x[0] = 0

        self.y[0] = self.y[0] + delta_y
        if (self.y[0] > 4):
            self.y[0] = 4
        elif (self.y[0] < 0):
            self.y[0] = 0
コード例 #8
0
ファイル: simon_says.py プロジェクト: zealmaster/materials
from random import randrange

# Define left, stay still and right
directions = ["L", "O", "R"]
points = 0

# While the micro:bit is on
while True:
    # Pick a random direction
    direction = directions[randrange(3)]
    display.show(direction)
    # Sleep for a second (1000ms)
    sleep(1000)

    # Get the X-axis (left-right) tilt
    acc_x = accelerometer.get_x()
    # Determine direction
    if acc_x < -200:
        player_in = "L"
    elif abs(acc_x) < 200:
        player_in = "O"
    elif acc_x > 200:
        player_in = "R"

    # Check win condition
    if player_in == direction:
        # Player's input is correct
        points += 1
    else:
        display.scroll(points)
        display.show(Image.SAD)
コード例 #9
0
ballDirection = 1  # Falling  (-1 = Rising)
hitCount = 0
gameOn = True

while gameOn:

    # Modify game timing to adjust game "hardness/easiness"
    # sleep(delay)       # Makes game easy
    # sleep(delay//2)    # Not so easy
    # sleep(delay//4)    # Moderate

    display.clear()

    # Get accelerometer's x-axis and y-axis values so we can move
    # the paddle around using accelerometor's x,y coordinates
    xVal = accelerometer.get_x()
    yVal = accelerometer.get_y()

    # =======================
    #  Paddle Movement Code:
    # =======================

    # Save previous paddle "x,y" location.
    oldPadX = padX
    oldPadY = padY

    # Relative to the previous position of the lit pixel,
    # calculate x-axis change (if any) of the lit pixel.
    if xVal > gestureSensitivity:
        padX = oldPadX + 1
    elif xVal < -gestureSensitivity:
コード例 #10
0
ファイル: upaint.py プロジェクト: jneves/upaint
            self.x += 1

    def move_left(self):
        if not self.y == 0:
            self.y -= 1

    def move_right(self):
        if not self.y == 4:
            self.y += 1
            

screen = Screen()
pointer = Pointer()

while True:
    sleep(25)
    if accelerometer.get_x() < -200:
        pointer.move_left()
    if accelerometer.get_x() > 200:
        pointer.move_right()
    if accelerometer.get_y() < -200:
        pointer.move_up()
    if accelerometer.get_y() > 200:
        pointer.move_down()
    if button_a.was_pressed():
        screen.toggle(pointer.x, pointer.y)
    if button_b.was_pressed():
        screen.publish()
    screen.display(pointer)
    sleep(25)
コード例 #11
0
ファイル: accplay.py プロジェクト: swfiua/marydot
import radio

import random

from microbit import accelerometer, sleep

radio.on()
while True:

    radio.send(str(accelerometer.get_x()))
    sleep(random.randint(0, 8) * 50)
コード例 #12
0
display.clear()
audio.play(Sound.SPRING)
sleep(500)
numbers = ('One', 'Two', 'Three')
for i in range(3, 0, -1):
    display.show(i)
    speech.say(numbers[i - 1], speed=500, pitch=50, throat=100, mouth=50)
    sleep(750)

set_volume(volume)

while score < max_score:
    shake = max(
        0,
        abs(accelerometer.get_x()) + abs(accelerometer.get_y()) +
        abs(accelerometer.get_z()) - 2048)
    level = min(
        max(0, level - drop_level + translate(shake, 0, 2048, 0, add_level)),
        max_level)
    pitch = round(translate(level, 0, max_level, 440, 880))
    plotBarGraph(level, max_level)
    if level == max_level:
        level = 0
        score += 1
        music.stop()
        sleep(50)
        display.show(Image.YES)
        music.play(music.BA_DING)
        sleep(450)
        continue
コード例 #13
0
ファイル: tilty.py プロジェクト: blogmywiki/tilty
def get_xy():
    yaccel = accelerometer.get_y() * accelerometer_sensitivity
    xaccel = accelerometer.get_x() * accelerometer_sensitivity
    return yaccel, xaccel
コード例 #14
0
        buf = buf + s
        if len(buf) < 8:
            continue
        s = buf
        buf = b''
        display.show(Image.HEART)

        data = struct.unpack('8s', s)

        if data[0][0] != ID:
            continue

        if data[0][1] == ord(b'S'):
            for i in range(4, 8, 1):
                speed[i - 4] = data[0][i]
            set_car_speed()

        st = struct.pack('4s4B3i3i', data[0][0:4], speed[0], speed[1],
                         speed[2], speed[3], compass.get_x(), compass.get_y(),
                         compass.get_z(), accelerometer.get_x(),
                         accelerometer.get_y(), accelerometer.get_z())
        uart.write(st)

        if data[0][1] == ord(b'R'):
            display.show(Image.SAD)
            for i in range(4, 8, 1):
                speed[i - 4] = 0
            set_car_speed()
            sleep(1000)
            reset()
コード例 #15
0
def read_y():
    i2c.write(MMA8653_ADDR, bytes([MMA8653_OUT_Y_MSB]), repeat=True)
    result = i2c.read(MMA8653_ADDR, 1)
    # Unpack it as a signed char
    result = ustruct.unpack('b', result)[0]
    # Scale it to 0 to +/- 2000 and set orientation
    return result * 16 * -1


def read_z():
    i2c.write(MMA8653_ADDR, bytes([MMA8653_OUT_Z_MSB]), repeat=True)
    result = i2c.read(MMA8653_ADDR, 1)
    # Unpack it as a signed char
    result = ustruct.unpack('b', result)[0]
    # Scale it to 0 to +/- 2000
    return result * 16


check_device()

while True:
    x = read_x()
    y = read_y()
    z = read_z()
    print("[X:{}] [Y:{}] [Z:{}]".format(x, y, z))
    print("[X:{}] [Y:{}] [Z:{}]\n".format(accelerometer.get_x(),
                                          accelerometer.get_y(),
                                          accelerometer.get_z()))
    sleep(200)
コード例 #16
0
def get_xy():
    yaccel = accelerometer.get_y() * accelerometer_sensitivity
    xaccel = accelerometer.get_x() * accelerometer_sensitivity
    return yaccel, xaccel
コード例 #17
0
ballDirection = 1  # Falling  (-1 = Rising)
hitCount = 0
gameOn = True

while gameOn:

    # Modify game timing to adjust game "hardness/easiness"
    # sleep(delay)       # Makes game easy
    # sleep(delay//2)    # Not so easy
    # sleep(delay//4)    # Moderate

    display.clear()

    # Get accelerometer's x-axis and y-axis values so we can move
    # the paddle around using accelerometor's x,y coordinates
    xVal = accelerometer.get_x()
    yVal = accelerometer.get_y()

    # =======================
    #  Paddle Movement Code:
    # =======================

    # Save previous paddle "x,y" location.
    oldPadX = padX
    oldPadY = padY

    # Relative to the previous position of the lit pixel,
    # calculate x-axis change (if any) of the lit pixel.
    if xVal > gestureSensitivity:
        padX = oldPadX + 1
    elif xVal < -gestureSensitivity:
コード例 #18
0
def read_y():
    i2c.write(MMA8653_ADDR, bytes([MMA8653_OUT_Y_MSB]), repeat=True)
    result = i2c.read(MMA8653_ADDR, 1)
    # Unpack it as a signed char
    result = ustruct.unpack('b', result)[0]
    # Scale it to 0 to +/- 2000 and set orientation
    return result * 16 * -1


def read_z():
    i2c.write(MMA8653_ADDR, bytes([MMA8653_OUT_Z_MSB]), repeat=True)
    result = i2c.read(MMA8653_ADDR, 1)
    # Unpack it as a signed char
    result = ustruct.unpack('b', result)[0]
    # Scale it to 0 to +/- 2000
    return result * 16


check_device()
configure_device()

while True:
    x = read_x()
    y = read_y()
    z = read_z()
    print("[X:{}] [Y:{}] [Z:{}]".format(x, y, z))
    print("[X:{}] [Y:{}] [Z:{}]\n".format(
        accelerometer.get_x(), accelerometer.get_y(), accelerometer.get_z()))
    sleep(200)
コード例 #19
0
LEN_CUTOFF1 = len(CUTOFF_X1)
LEN_CUTOFF2 = len(CUTOFF_X2)

use_cutoff = 2

### SETTINGS END ###

from microbit import accelerometer, button_b, pin1, pin2, display, Image, sleep
import math
import utime
#import music

# variables
current_sec = float(utime.ticks_ms())/1000.  # some reference time in ms
# read in currect accel data
accel = math.sqrt(float(accelerometer.get_x())**2
                        + float(accelerometer.get_y())**2
                        + float(accelerometer.get_z())**2)

window_values = [0] * RAVG_AVG_WIN
amplitude_window_values = [0] * RAVG_AMP_WIN
stepspermin_window_values = [0] * RAVG_AMP_WIN
count = 0
count_amplitude = 0
accel_avg = 0.
#peak_resolution_accel = 50
peaks_sec = [current_sec, current_sec, current_sec]
peaks = [-1, -1, -1]
current_peak = 0
nr_peaks = 3
valleys_sec = [current_sec, current_sec, current_sec]
コード例 #20
0
import music
from microbit import accelerometer

while True:
    music.pitch(accelerometer.get_x(), 20)
コード例 #21
0
    elif x == (2, 3):
        microbit.display.set_pixel(2, 2, lightValue)
        microbit.display.set_pixel(4, 2, lightValue)
    else: 
        pass
    sleep(500)

# The radio won't work unless it's switched on.
# A unique configuration for the master micro bit.
radio.config(address = 0x1337b33f)
radio.on()

compass.calibrate()
# Event loop.
while contValue == True:
    reading = accelerometer.get_x()
    if reading < -450:
        slave = "1"
        lightOn(1)
    elif reading >= -450 and reading < -150:
        slave = "12"
        lightOn((1, 2))
    elif reading >= -150 and reading < 150:
        slave = "2"
        lightOn(2)
    elif reading >= 150 and reading < 450:
        slave = "23"
        lightOn((2, 3))
    elif reading >= 450:
        slave = "3"
        lightOn(3)
コード例 #22
0
def rotationRoll():
    return atan2(
            accelerometer.get_x(), 
            sqrt(accelerometer.get_y() ** 2 + accelerometer.get_z() ** 2)
            ) * (180 / pi)
コード例 #23
0
import music
from microbit import accelerometer

buckets = [
    262,  # C
    294,  # D
    330,  # E
    392,  # G
    440,  # A
]

while True:
    reading = abs(accelerometer.get_x())
    bucket = min(4, max(0, reading // 200))  # quantize!
    music.pitch(buckets[bucket], 20)
コード例 #24
0
ファイル: bopit.py プロジェクト: jacks38/microbit-scripts
            sleep(0.1)
        break

while True:

    while True:
        command = random.choice(commands)
        display.scroll(command[:2])

        start = running_time()
        diff = 0
        correct = False

        # Get current state for comparison
        start_bearing = compass.heading()
        start_x = accelerometer.get_x()
        start_y = accelerometer.get_y()
        while diff < WAIT_TIME:

            if command == "bop it":
                if button_a.is_pressed() and button_b.is_pressed():
                    correct = True
                    break
            elif command == "twist it":
                print(abs(compass.heading() - start_bearing))
                if abs(compass.heading() - start_bearing) >= 90:
                    correct = True
                    break
            elif command == "shake it":
                if accelerometer.current_gesture() == "shake":
                    correct = True