Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

adding displayio example #41

Merged
merged 2 commits into from
Feb 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions docs/examples.rst
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,13 @@ Provides an example on how to use the sensor as an inclinometer
.. literalinclude:: ../examples/mpu6050_inclinometer.py
:caption: examples/mpu6050_inclinometer.py
:linenos:


DisplayIO Simpletest
---------------------

This is a simple test for boards with built-in display.

.. literalinclude:: ../examples/mpu6050_displayio_simpletest.py
:caption: examples/mpu6050_displayio_simpletest.py
:linenos:
66 changes: 66 additions & 0 deletions examples/mpu6050_displayio_simpletest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# SPDX-FileCopyrightText: 2024 Tim Cocks for Adafruit Industries
# SPDX-FileCopyrightText: 2024 Jose D. Montoya
#
# SPDX-License-Identifier: MIT

import time
import board
from adafruit_display_text.bitmap_label import Label
from terminalio import FONT
from displayio import Group
import adafruit_mpu6050

# Simple demo of using the built-in display.
# create a main_group to hold anything we want to show on the display.
main_group = Group()
# Initialize I2C bus and sensor.
i2c = board.I2C() # uses board.SCL and board.SDA
mpu = adafruit_mpu6050.MPU6050(i2c)


# Create Label(s) to show the readings. If you have a very small
# display you may need to change to scale=1.
display_output_acceleration = Label(FONT, text="", scale=1)
display_output_gyro = Label(FONT, text="", scale=1)
display_output_temperature = Label(FONT, text="", scale=1)

# place the label(s) in the middle of the screen with anchored positioning
display_output_acceleration.anchor_point = (0, 0)
display_output_acceleration.anchored_position = (
4,
board.DISPLAY.height // 2 - 60,
)
display_output_gyro.anchor_point = (0, 0)
display_output_gyro.anchored_position = (
4,
board.DISPLAY.height // 2 - 40,
)
display_output_temperature.anchor_point = (0, 0)
display_output_temperature.anchored_position = (
4,
board.DISPLAY.height // 2 - 20,
)


# add the label(s) to the main_group
main_group.append(display_output_acceleration)
main_group.append(display_output_gyro)
main_group.append(display_output_temperature)

# set the main_group as the root_group of the built-in DISPLAY
board.DISPLAY.root_group = main_group

# begin main loop
while True:
# update the text of the label(s) to show the sensor readings
accx, accy, accz = mpu.acceleration
gyro_x, gyro_y, gyro_z = mpu.gyro
display_output_acceleration.text = (
f"Acc X:{accx:.1f} Y:{accy:.1f} Z:{accz:.1f} m/s^2"
)
display_output_gyro.text = (
f"Gyro X:{gyro_x:.1f} Y:{gyro_y:.1f} Z:{gyro_z:.1f} rad/s"
)
display_output_temperature.text = f"Temp: {mpu.temperature:.1f} C"
# wait for a bit
time.sleep(0.5)