File: bubble_level_2d.py

package info (click to toggle)
firmware-microbit-micropython 1.0.1-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, sid
  • size: 25,448 kB
  • sloc: ansic: 83,496; cpp: 27,664; python: 2,475; asm: 274; makefile: 245; javascript: 41; sh: 25
file content (26 lines) | stat: -rwxr-xr-x 777 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
"""
Two-dimensional bubble level which uses the accelerometer.
"""

from microbit import *

sensitivity = 'medium'  # Change to 'low', 'medium', or 'high' to adjust
divisors = {'low':64, 'medium':32, 'high':16}

def clamp(number, min, max):
    """Returns number limited to range specified by min and max, inclusive"""
    if number < min:
        return min
    elif number > max:
        return max
    else:
        return number

while True:
    x_grav, y_grav, _ = accelerometer.get_values()
    # Map raw values from accelerometer to pixels on display
    x_pixel = 4 - clamp(2 + x_grav // divisors.get(sensitivity), 0, 4)
    y_pixel = 4 - clamp(2 + y_grav // divisors.get(sensitivity), 0, 4)
    display.clear()
    display.set_pixel(x_pixel, y_pixel, 9)
    sleep(100)