From 0590464c893b6b334c6947f9f420c42171967359 Mon Sep 17 00:00:00 2001 From: Thomas Farstrike Date: Wed, 23 Apr 2025 21:52:40 +0200 Subject: [PATCH] Better gyro visualization --- apps/com.example.imu/assets/main.py | 31 +++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/apps/com.example.imu/assets/main.py b/apps/com.example.imu/assets/main.py index 91f2e05c..04d1e681 100644 --- a/apps/com.example.imu/assets/main.py +++ b/apps/com.example.imu/assets/main.py @@ -5,9 +5,6 @@ import machine sensor = QMI8658(I2C(0, sda=machine.Pin(48), scl=machine.Pin(47))) -print(f"""{sensor.temperature=} -{sensor.acceleration=} -{sensor.gyro=}""") templabel = lv.label(subwindow) templabel.align(lv.ALIGN.TOP_MID, 0, 10) @@ -30,24 +27,42 @@ slidery.align(lv.ALIGN.CENTER, 0, -30) sliderz = lv.slider(subwindow) sliderz.align(lv.ALIGN.CENTER, 0, 0) +slidergx = lv.slider(subwindow) +slidergx.align(lv.ALIGN.CENTER, 0, 30) +slidergy = lv.slider(subwindow) +slidergy.align(lv.ALIGN.CENTER, 0, 60) +slidergz = lv.slider(subwindow) +slidergz.align(lv.ALIGN.CENTER, 0, 90) + canary = lv.obj(subwindow) canary.add_flag(0x0001) # LV_OBJ_FLAG_HIDDEN is 0x0001 while canary.get_class(): + print(f"""{sensor.temperature=} {sensor.acceleration=} {sensor.gyro=}""") + temp = int(sensor.temperature * 100) + templabel.set_text(f"Temperature: {temp}") ax = sensor.acceleration[0] axp = int((ax * 100 + 100)/2) ay = sensor.acceleration[1] ayp = int((ay * 100 + 100)/2) az = sensor.acceleration[2] azp = int((az * 100 + 100)/2) - temp = int(sensor.temperature * 100) - templabel.set_text(f"Temperature: {temp}") - #acclabelx.set_text(f"AXP: { axp}") - #acclabely.set_text(f"AY: {sensor.acceleration[1]}") - #acclabelz.set_text(f"AZ: {sensor.acceleration[2]}") sliderx.set_value(axp, lv.ANIM.OFF) slidery.set_value(ayp, lv.ANIM.OFF) sliderz.set_value(azp, lv.ANIM.OFF) + # values between -200 and 200 => /4 becomes -50 and 50 => +50 becomes 0 and 100 + gx = sensor.gyro[0] + gxp = int(gx / 4 + 50) + gy = sensor.gyro[1] + gyp = int(gy / 4 + 50) + gz = sensor.gyro[2] + gzp = int(gz / 4 + 50) + #acclabelx.set_text(f"AXP: { axp}") + #acclabely.set_text(f"AY: {sensor.acceleration[1]}") + #acclabelz.set_text(f"AZ: {sensor.acceleration[2]}") + slidergx.set_value(gxp, lv.ANIM.OFF) + slidergy.set_value(gyp, lv.ANIM.OFF) + slidergz.set_value(gzp, lv.ANIM.OFF) time.sleep_ms(100)