You've already forked MicroPythonOS
mirror of
https://github.com/m5stack/MicroPythonOS.git
synced 2026-05-20 11:51:27 -07:00
imutest: fix
This commit is contained in:
@@ -1,28 +1,7 @@
|
||||
appscreen = lv.screen_active()
|
||||
|
||||
from machine import Pin, I2C
|
||||
from qmi8658 import QMI8658
|
||||
import machine
|
||||
|
||||
sensor = QMI8658(I2C(0, sda=machine.Pin(48), scl=machine.Pin(47)))
|
||||
|
||||
templabel = lv.label(appscreen)
|
||||
templabel.align(lv.ALIGN.TOP_MID, 0, 10)
|
||||
|
||||
sliderx = lv.slider(appscreen)
|
||||
sliderx.align(lv.ALIGN.CENTER, 0, -60)
|
||||
slidery = lv.slider(appscreen)
|
||||
slidery.align(lv.ALIGN.CENTER, 0, -30)
|
||||
sliderz = lv.slider(appscreen)
|
||||
sliderz.align(lv.ALIGN.CENTER, 0, 0)
|
||||
|
||||
slidergx = lv.slider(appscreen)
|
||||
slidergx.align(lv.ALIGN.CENTER, 0, 30)
|
||||
slidergy = lv.slider(appscreen)
|
||||
slidergy.align(lv.ALIGN.CENTER, 0, 60)
|
||||
slidergz = lv.slider(appscreen)
|
||||
slidergz.align(lv.ALIGN.CENTER, 0, 90)
|
||||
|
||||
def map_nonlinear(value: float) -> int:
|
||||
# Preserve sign and work with absolute value
|
||||
sign = 1 if value >= 0 else -1
|
||||
@@ -36,8 +15,7 @@ def map_nonlinear(value: float) -> int:
|
||||
scaled = (sqrt_value / max_sqrt) * 50.0 # Scale to [0, 50]
|
||||
return int(50.0 + (sign * scaled)) # Shift to [0, 100]
|
||||
|
||||
import time
|
||||
while appscreen == lv.screen_active():
|
||||
def refresh(timer):
|
||||
#print(f"""{sensor.temperature=} {sensor.acceleration=} {sensor.gyro=}""")
|
||||
templabel.set_text(f"IMU chip temperature: {sensor.temperature:.2f}°C")
|
||||
ax = sensor.acceleration[0]
|
||||
@@ -53,5 +31,31 @@ while appscreen == lv.screen_active():
|
||||
slidergx.set_value(map_nonlinear(sensor.gyro[0]), lv.ANIM.OFF)
|
||||
slidergy.set_value(map_nonlinear(sensor.gyro[1]), lv.ANIM.OFF)
|
||||
slidergz.set_value(map_nonlinear(sensor.gyro[2]), lv.ANIM.OFF)
|
||||
time.sleep_ms(100)
|
||||
|
||||
|
||||
def janitor_cb(timer):
|
||||
if lv.screen_active() != appscreen:
|
||||
print("imutest.py backgrounded, cleaning up...")
|
||||
janitor.delete()
|
||||
refresh_timer.delete()
|
||||
|
||||
sensor = QMI8658(I2C(0, sda=machine.Pin(48), scl=machine.Pin(47)))
|
||||
|
||||
appscreen = lv.screen_active()
|
||||
templabel = lv.label(appscreen)
|
||||
templabel.align(lv.ALIGN.TOP_MID, 0, 10)
|
||||
sliderx = lv.slider(appscreen)
|
||||
sliderx.align(lv.ALIGN.CENTER, 0, -60)
|
||||
slidery = lv.slider(appscreen)
|
||||
slidery.align(lv.ALIGN.CENTER, 0, -30)
|
||||
sliderz = lv.slider(appscreen)
|
||||
sliderz.align(lv.ALIGN.CENTER, 0, 0)
|
||||
slidergx = lv.slider(appscreen)
|
||||
slidergx.align(lv.ALIGN.CENTER, 0, 30)
|
||||
slidergy = lv.slider(appscreen)
|
||||
slidergy.align(lv.ALIGN.CENTER, 0, 60)
|
||||
slidergz = lv.slider(appscreen)
|
||||
slidergz.align(lv.ALIGN.CENTER, 0, 90)
|
||||
|
||||
refresh_timer = lv.timer_create(refresh, 100, None)
|
||||
janitor = lv.timer_create(janitor_cb, 500, None)
|
||||
|
||||
Reference in New Issue
Block a user