From 6bbc40ac5eee08b93dd41226fec48beb6de234ec Mon Sep 17 00:00:00 2001 From: Kattni Rembor Date: Tue, 4 Feb 2020 15:00:15 -0500 Subject: [PATCH 1/3] Update display class, add simpletest. --- adafruit_clue.py | 38 ++++++++++++++-------------- examples/clue_display_sensor_data.py | 23 +++++++++++++++++ examples/clue_simpletest.py | 29 ++++++++------------- 3 files changed, 53 insertions(+), 37 deletions(-) create mode 100644 examples/clue_display_sensor_data.py diff --git a/adafruit_clue.py b/adafruit_clue.py index 7fdc41e..b6c5421 100644 --- a/adafruit_clue.py +++ b/adafruit_clue.py @@ -76,10 +76,10 @@ __version__ = "0.0.0-auto.0" __repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_CLUE.git" -class _DisplayClueData: - """Display sensor data.""" +class _ClueSimpleTextDisplay: + """Easily display lines of text on CLUE display.""" def __init__(self, title="CLUE Sensor Data", title_color=0xFFFFFF, title_scale=1, # pylint: disable=too-many-arguments - clue_data_scale=1, font=None, num_lines=1, colors=None): + text_scale=1, font=None, num_lines=1, colors=None): import displayio import terminalio from adafruit_display_text import label @@ -104,8 +104,8 @@ def __init__(self, title="CLUE Sensor Data", title_color=0xFFFFFF, title_scale=1 title.y = 8 self._y = title.y + 20 - self.data_group = displayio.Group(max_size=20, scale=clue_data_scale) - self.data_group.append(title) + self.text_group = displayio.Group(max_size=20, scale=text_scale) + self.text_group.append(title) self._lines = [] for num in range(num_lines): @@ -117,17 +117,17 @@ def __getitem__(self, item): def add_text_line(self, color=0xFFFFFF): """Adds a line on the display of the specified color and returns the label object.""" - clue_data_label = self._label.Label(self._font, text="", max_glyphs=45, color=color) - clue_data_label.x = 0 - clue_data_label.y = self._y - self._y = clue_data_label.y + 13 - self.data_group.append(clue_data_label) + text_label = self._label.Label(self._font, text="", max_glyphs=45, color=color) + text_label.x = 0 + text_label.y = self._y + self._y = text_label.y + 13 + self.text_group.append(text_label) - return clue_data_label + return text_label def show(self): """Call show() to display the data list.""" - self._display.show(self.data_group) + self._display.show(self.text_group) def show_terminal(self): """Revert to terminalio screen.""" @@ -794,9 +794,9 @@ def loud_sound(self, sound_threshold=200): return self.sound_level > sound_threshold @staticmethod - def display_clue_data(title="CLUE Sensor Data", title_color=(255, 255, 255), title_scale=1, # pylint: disable=too-many-arguments - num_lines=1, clue_data_scale=1, font=None, colors=None): - """Display CLUE data as lines of text. + def simple_text_display(title="CLUE Sensor Data", title_color=(255, 255, 255), title_scale=1, # pylint: disable=too-many-arguments + num_lines=1, text_scale=1, font=None, colors=None): + """Display lines of text on the CLUE display. Setup occurs before the loop. For data to be dynamically updated on the display, you must include the data call in the loop by using ``.text =``. For example, if setup is saved as @@ -808,7 +808,7 @@ def display_clue_data(title="CLUE Sensor Data", title_color=(255, 255, 255), tit :param title_color: The color of the displayed title. Defaults to white 255, 255, 255). :param int title_scale: Scale the size of the title. Defaults to 1. :param int num_lines: The number of lines of data you intend to display. Defaults to 1. - :param int clue_data_scale: Scale the size of the data lines. Scales the title as well. + :param int text_scale: Scale the size of the data lines. Scales the title as well. Defaults to 1. :param str font: The font to use to display the title and data. Defaults to built in ``terminalio.FONT``. @@ -836,9 +836,9 @@ def display_clue_data(title="CLUE Sensor Data", title_color=(255, 255, 255), tit clue_data[1].text = "Gyro: {:.2f} {:.2f} {:.2f}".format(*clue.gyro) clue_data[2].text = "Magnetic: {:.3f} {:.3f} {:.3f}".format(*clue.magnetic) """ - return _DisplayClueData(title=title, title_color=title_color, title_scale=title_scale, - num_lines=num_lines, clue_data_scale=clue_data_scale, font=font, - colors=colors) + return _ClueSimpleTextDisplay(title=title, title_color=title_color, title_scale=title_scale, + num_lines=num_lines, text_scale=text_scale, font=font, + colors=colors) clue = Clue() # pylint: disable=invalid-name diff --git a/examples/clue_display_sensor_data.py b/examples/clue_display_sensor_data.py new file mode 100644 index 0000000..8e25a8d --- /dev/null +++ b/examples/clue_display_sensor_data.py @@ -0,0 +1,23 @@ +from adafruit_clue import clue + +clue.sea_level_pressure = 1020 + +clue_data = clue.simple_text_display(title="CLUE Sensor Data!", title_scale=2, num_lines=15) + +while True: + clue_data[0].text = "Acceleration: {:.2f} {:.2f} {:.2f}".format(*clue.acceleration) + clue_data[1].text = "Gyro: {:.2f} {:.2f} {:.2f}".format(*clue.gyro) + clue_data[2].text = "Magnetic: {:.3f} {:.3f} {:.3f}".format(*clue.magnetic) + clue_data[3].text = "Pressure: {:.3f}hPa".format(clue.pressure) + clue_data[4].text = "Altitude: {:.1f}m".format(clue.altitude) + clue_data[5].text = "Temperature: {:.1f}C".format(clue.temperature) + clue_data[6].text = "Humidity: {:.1f}%".format(clue.humidity) + clue_data[7].text = "Proximity: {}".format(clue.proximity) + clue_data[8].text = "Gesture: {}".format(clue.gesture) + clue_data[9].text = "Color: R: {} G: {} B: {} C: {}".format(*clue.color) + clue_data[10].text = "Button A: {}".format(clue.button_a) + clue_data[11].text = "Button B: {}".format(clue.button_b) + clue_data[12].text = "Touch 0: {}".format(clue.touch_0) + clue_data[13].text = "Touch 1: {}".format(clue.touch_1) + clue_data[14].text = "Touch 2: {}".format(clue.touch_2) + clue_data.show() diff --git a/examples/clue_simpletest.py b/examples/clue_simpletest.py index 90b3831..a7c85aa 100644 --- a/examples/clue_simpletest.py +++ b/examples/clue_simpletest.py @@ -2,22 +2,15 @@ clue.sea_level_pressure = 1020 -clue_data = clue.display_clue_data(title="CLUE Sensor Data!", title_scale=2, num_lines=15) - while True: - clue_data[0].text = "Acceleration: {:.2f} {:.2f} {:.2f}".format(*clue.acceleration) - clue_data[1].text = "Gyro: {:.2f} {:.2f} {:.2f}".format(*clue.gyro) - clue_data[2].text = "Magnetic: {:.3f} {:.3f} {:.3f}".format(*clue.magnetic) - clue_data[3].text = "Pressure: {:.3f}hPa".format(clue.pressure) - clue_data[4].text = "Altitude: {:.1f}m".format(clue.altitude) - clue_data[5].text = "Temperature: {:.1f}C".format(clue.temperature) - clue_data[6].text = "Humidity: {:.1f}%".format(clue.humidity) - clue_data[7].text = "Proximity: {}".format(clue.proximity) - clue_data[8].text = "Gesture: {}".format(clue.gesture) - clue_data[9].text = "Color: R: {} G: {} B: {} C: {}".format(*clue.color) - clue_data[10].text = "Button A: {}".format(clue.button_a) - clue_data[11].text = "Button B: {}".format(clue.button_b) - clue_data[12].text = "Touch 0: {}".format(clue.touch_0) - clue_data[13].text = "Touch 1: {}".format(clue.touch_1) - clue_data[14].text = "Touch 2: {}".format(clue.touch_2) - clue_data.show() + print("Acceleration: {:.2f} {:.2f} {:.2f}".format(*clue.acceleration)) + print("Gyro: {:.2f} {:.2f} {:.2f}".format(*clue.gyro)) + print("Magnetic: {:.3f} {:.3f} {:.3f}".format(*clue.magnetic)) + print("Pressure: {:.3f}hPa".format(clue.pressure)) + print("Altitude: {:.1f}m".format(clue.altitude)) + print("Temperature: {:.1f}C".format(clue.temperature)) + print("Humidity: {:.1f}%".format(clue.humidity)) + print("Proximity: {}".format(clue.proximity)) + print("Gesture: {}".format(clue.gesture)) + print("Color: R: {} G: {} B: {} C: {}".format(*clue.color)) + print("--------------------------------") From f155ac0b16e4730a90107bb534c12d8dfc8701dd Mon Sep 17 00:00:00 2001 From: Kattni Rembor Date: Tue, 4 Feb 2020 15:07:42 -0500 Subject: [PATCH 2/3] Update units in example, requirements fix. --- examples/clue_display_sensor_data.py | 14 +++++++------- examples/clue_simpletest.py | 14 +++++++------- requirements.txt | 2 +- setup.py | 2 +- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/examples/clue_display_sensor_data.py b/examples/clue_display_sensor_data.py index 8e25a8d..535423f 100644 --- a/examples/clue_display_sensor_data.py +++ b/examples/clue_display_sensor_data.py @@ -5,13 +5,13 @@ clue_data = clue.simple_text_display(title="CLUE Sensor Data!", title_scale=2, num_lines=15) while True: - clue_data[0].text = "Acceleration: {:.2f} {:.2f} {:.2f}".format(*clue.acceleration) - clue_data[1].text = "Gyro: {:.2f} {:.2f} {:.2f}".format(*clue.gyro) - clue_data[2].text = "Magnetic: {:.3f} {:.3f} {:.3f}".format(*clue.magnetic) - clue_data[3].text = "Pressure: {:.3f}hPa".format(clue.pressure) - clue_data[4].text = "Altitude: {:.1f}m".format(clue.altitude) - clue_data[5].text = "Temperature: {:.1f}C".format(clue.temperature) - clue_data[6].text = "Humidity: {:.1f}%".format(clue.humidity) + clue_data[0].text = "Acceleration: {:.2f} {:.2f} {:.2f} m/s^2".format(*clue.acceleration) + clue_data[1].text = "Gyro: {:.2f} {:.2f} {:.2f} dps".format(*clue.gyro) + clue_data[2].text = "Magnetic: {:.3f} {:.3f} {:.3f} uTesla".format(*clue.magnetic) + clue_data[3].text = "Pressure: {:.3f} hPa".format(clue.pressure) + clue_data[4].text = "Altitude: {:.1f} m".format(clue.altitude) + clue_data[5].text = "Temperature: {:.1f} C".format(clue.temperature) + clue_data[6].text = "Humidity: {:.1f} %".format(clue.humidity) clue_data[7].text = "Proximity: {}".format(clue.proximity) clue_data[8].text = "Gesture: {}".format(clue.gesture) clue_data[9].text = "Color: R: {} G: {} B: {} C: {}".format(*clue.color) diff --git a/examples/clue_simpletest.py b/examples/clue_simpletest.py index a7c85aa..410ddb0 100644 --- a/examples/clue_simpletest.py +++ b/examples/clue_simpletest.py @@ -3,13 +3,13 @@ clue.sea_level_pressure = 1020 while True: - print("Acceleration: {:.2f} {:.2f} {:.2f}".format(*clue.acceleration)) - print("Gyro: {:.2f} {:.2f} {:.2f}".format(*clue.gyro)) - print("Magnetic: {:.3f} {:.3f} {:.3f}".format(*clue.magnetic)) - print("Pressure: {:.3f}hPa".format(clue.pressure)) - print("Altitude: {:.1f}m".format(clue.altitude)) - print("Temperature: {:.1f}C".format(clue.temperature)) - print("Humidity: {:.1f}%".format(clue.humidity)) + print("Acceleration: {:.2f} {:.2f} {:.2f} m/s^2".format(*clue.acceleration)) + print("Gyro: {:.2f} {:.2f} {:.2f} dps".format(*clue.gyro)) + print("Magnetic: {:.3f} {:.3f} {:.3f} uTesla".format(*clue.magnetic)) + print("Pressure: {:.3f} hPa".format(clue.pressure)) + print("Altitude: {:.1f} m".format(clue.altitude)) + print("Temperature: {:.1f} C".format(clue.temperature)) + print("Humidity: {:.1f} %".format(clue.humidity)) print("Proximity: {}".format(clue.proximity)) print("Gesture: {}".format(clue.gesture)) print("Color: R: {} G: {} B: {} C: {}".format(*clue.color)) diff --git a/requirements.txt b/requirements.txt index 397a144..87c0152 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,5 +6,5 @@ adafruit-circuitpython-sht31d adafruit-circuitpython-lsm6ds adafruit-circuitpython-lis3mdl adafruit-circuitpython-display-text -adafuit-circuitpython-bmp280 +adafruit-circuitpython-bmp280 adafruit-circuitpython-apds9960 diff --git a/setup.py b/setup.py index ff36b6e..b40ba02 100644 --- a/setup.py +++ b/setup.py @@ -42,7 +42,7 @@ 'adafruit-circuitpython-lsm6ds', 'adafruit-circuitpython-lis3mdl', 'adafruit-circuitpython-display-text', - 'adafuit-circuitpython-bmp280', + 'adafruit-circuitpython-bmp280', 'adafruit-circuitpython-apds9960' ], From ead40667ea4fdfe059c10cedb6431ecdf89e6176 Mon Sep 17 00:00:00 2001 From: Kattni Rembor Date: Tue, 4 Feb 2020 15:11:37 -0500 Subject: [PATCH 3/3] Import order. --- adafruit_clue.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/adafruit_clue.py b/adafruit_clue.py index b6c5421..194955d 100644 --- a/adafruit_clue.py +++ b/adafruit_clue.py @@ -61,17 +61,17 @@ import math import board import digitalio -import audiobusio -import audiopwmio -import audiocore -import gamepad -import touchio import neopixel import adafruit_apds9960.apds9960 import adafruit_bmp280 import adafruit_lis3mdl import adafruit_lsm6ds import adafruit_sht31d +import audiobusio +import audiopwmio +import audiocore +import gamepad +import touchio __version__ = "0.0.0-auto.0" __repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_CLUE.git"