#!/usr/bin/env python3 """Simple PyBadge Tone Example.""" import time from adafruit_pybadger import pybadger pybadger.play_tone(300, 0.5) pybadger.play_tone(200, 0.3) pybadger.play_tone(500, 0.2) pybadger.play_tone(300, 0.5) pybadger.play_tone(300, 0.1) pybadger.play_tone(200, 0.3) time.sleep(0.1) pybadger.play_tone(300, 0.5) pybadger.play_tone(200, 0.3) pybadger.play_tone(500, 0.2) pybadger.play_tone(300, 0.5) pybadger.play_tone(300, 0.1) pybadger.play_tone(200, 0.3)
def setup_mode(): # Set alarm threshold and minimum/maximum range values status_label.color = WHITE status_label.text = "-SET-" ave_label.color = BLACK # Turn off average label and value display ave_value.color = BLACK max_value.text = str(MAX_RANGE_F) # Display maximum range value min_value.text = str(MIN_RANGE_F) # Display minimum range value time.sleep(0.8) # Show SET status text before setting parameters status_label.text = "" # Clear status text param_index = 0 # Reset index of parameter to set # Select parameter to set while not panel.button.start: while (not panel.button.a) and (not panel.button.start): up, down = move_buttons(joystick=panel.has_joystick) if up: param_index = param_index - 1 if down: param_index = param_index + 1 param_index = max(0, min(2, param_index)) status_label.text = param_list[param_index][0] image_group[param_index + 66].color = BLACK status_label.color = BLACK time.sleep(0.2) image_group[param_index + 66].color = param_list[param_index][1] status_label.color = WHITE time.sleep(0.2) if panel.button.a: # Button A pressed panel.play_tone(1319, 0.030) # E6 while panel.button.a: # wait for button release pass # Adjust parameter value param_value = int(image_group[param_index + 70].text) while (not panel.button.a) and (not panel.button.start): up, down = move_buttons(joystick=panel.has_joystick) if up: param_value = param_value + 1 if down: param_value = param_value - 1 param_value = max(MIN_SENSOR_F, min(MAX_SENSOR_F, param_value)) image_group[param_index + 70].text = str(param_value) image_group[param_index + 70].color = BLACK status_label.color = BLACK time.sleep(0.05) image_group[param_index + 70].color = param_list[param_index][1] status_label.color = WHITE time.sleep(0.2) if panel.button.a: # Button A pressed panel.play_tone(1319, 0.030) # E6 while panel.button.a: # wait for button release pass # Exit setup process if panel.button.start: # Start button pressed panel.play_tone(784, 0.030) # G5 while panel.button.start: # wait for button release pass status_label.text = "RESUME" time.sleep(0.5) status_label.text = "" # Display average label and value ave_label.color = YELLOW ave_value.color = YELLOW return int(alarm_value.text), int(max_value.text), int(min_value.text)
from adafruit_ble_eddystone import uid, url radio = adafruit_ble.BLERadio() # Reuse the BLE address as our Eddystone instance id. eddystone_uid = uid.EddystoneUID(radio.address_bytes) # List of URLs to broadcast here: ad_url = [("https://circuitpython.org", "CirPy"), ("https://adafru.it/discord","DISCORD"), ("https://forums.adafruit.com", "Forums"), ("https://learn.adafruit.com", "Learn") ] pick = 0 # use to increment url choices pybadger.play_tone(1600, 0.25) pybadger.show_business_card(image_name="cluebeacon.bmp") while True: pybadger.auto_dim_display(delay=3, movement_threshold=4) eddystone_url = url.EddystoneURL(ad_url[pick][0]) if pybadger.button.a and not pybadger.button.b: # Press button A to show QR code pybadger.play_tone(1200, 0.1) pybadger.brightness = 1 pybadger.show_qr_code(data=ad_url[pick][0]) # Tests QR code time.sleep(0.1) # Debounce elif pybadger.button.b and not pybadger.button.a: # iterate through urls to broadcast pybadger.play_tone(1600, 0.2) pick = (pick + 1) % len(ad_url)
# Establish I2C interface for the AMG8833 Thermal Camera i2c = board.I2C() amg8833 = adafruit_amg88xx.AMG88XX(i2c) # Load the text font from the fonts folder font = bitmap_font.load_font("/fonts/OpenSans-9.bdf") # Display spash graphics and play startup tones with open("/thermal_cam_splash.bmp", "rb") as bitmap_file: bitmap = displayio.OnDiskBitmap(bitmap_file) splash = displayio.Group() splash.append( displayio.TileGrid(bitmap, pixel_shader=displayio.ColorConverter())) board.DISPLAY.show(splash) time.sleep(0.1) # Allow the splash to display panel.play_tone(440, 0.1) # A4 panel.play_tone(880, 0.1) # A5 # The image sensor's design-limited temperature range MIN_SENSOR_C = 0 MAX_SENSOR_C = 80 MIN_SENSOR_F = celsius_to_fahrenheit(MIN_SENSOR_C) MAX_SENSOR_F = celsius_to_fahrenheit(MAX_SENSOR_C) # Convert default alarm and min/max range values from config file ALARM_C = fahrenheit_to_celsius(ALARM_F) MIN_RANGE_C = fahrenheit_to_celsius(MIN_RANGE_F) MAX_RANGE_C = fahrenheit_to_celsius(MAX_RANGE_F) # The board's integral display size WIDTH = board.DISPLAY.width # 160 for PyGamer and PyBadge
def play_tone(frequency=440, duration=0.1): """Play Tone on piezo.""" pybadger.play_tone(frequency, duration)