### it is always 0-10 rather than -5 to 5 INTERVAL_TICKS = (33, 37, 41, 43, 47) ### Do not use 32 here due to fp issues INTERVAL_TICK_MS = 0.625 MAX_JITTER_DELAY_S = 0.009 ##scan_and_ad_time = 30 ##scan_response_request = True scan_and_ad_time = 10 scan_response_request = False ble = BLERadio() my_addr_text = addr_to_text(ble.address_bytes) ca_ad = AdafruitColor() ca_ad.color = 0x112233 interval = MIN_AD_INTERVAL ##interval = INTERVAL_TICKS[random.randrange(len(INTERVAL_TICKS))] * INTERVAL_TICK_MS / 1e3 ### Turn off updates to stop any delays from screen updates on CLUE if display is not None: display.auto_refresh = False def tx_rx_test(round_no, debug=debug, manual_jitter=False, duration=scan_and_ad_time): d_print(2, "TXing", ca_ad, "interval", interval)
switch.direction = digitalio.Direction.INPUT switch.pull = digitalio.Pull.UP # Setup BLE connection ble = BLERadio() # The color pickers will cycle through this list color_options = [ 0x110000, 0x111100, 0x001100, 0x001111, 0x000011, 0x110011, 0x111111 ] i = 0 # Trick to force a first color "change" last_i = -1 advertisement = AdafruitColor() # a simple SG90 micro servo is used as meter pwm = pulseio.PWMOut(board.D5, duty_cycle=2**15, frequency=50) servo1 = servo.Servo(pwm, min_pulse=500, max_pulse=2100) servo1.angle = 180 # Uncomment if you use a real 3.3V meter # meter = pulseio.PWMOut(board.A0, frequency=5000, duty_cycle=0) # Piezo buzzer buzzer = pulseio.PWMOut(board.A2, variable_frequency=True) buzzer.duty_cycle = 0 # 6 LEDs are used in the receiver. The order is important led_pins = [board.A3, board.D12, board.D11, board.D10, board.D9, board.D6]
ble = BLERadio() slide_switch = digitalio.DigitalInOut(board.SLIDE_SWITCH) slide_switch.pull = digitalio.Pull.UP button_a = digitalio.DigitalInOut(board.BUTTON_A) button_a.pull = digitalio.Pull.DOWN button_b = digitalio.DigitalInOut(board.BUTTON_B) button_b.pull = digitalio.Pull.DOWN led = digitalio.DigitalInOut(board.D13) led.switch_to_output() neopixels = neopixel.NeoPixel(board.NEOPIXEL, 10, auto_write=False) i = 0 advertisement = AdafruitColor() advertisement.color = color_options[i] neopixels.fill(color_options[i]) while True: # The first mode is the color selector which broadcasts it's current color to other devices. if slide_switch.value: print("Broadcasting color") ble.start_advertising(advertisement) while slide_switch.value: last_i = i if button_a.value: i += 1 if button_b.value: i -= 1 i %= len(color_options) if last_i != i:
switch.direction = Direction.INPUT switch.pull = Pull.UP ### Configure the DotStar available on the ItsyBitsy nRF52840 import adafruit_dotstar as dotstar # On-board DotStar for boards including Gemma, Trinket, and ItsyBitsy rgb = dotstar.DotStar(board.APA102_SCK, board.APA102_MOSI, 1) rgb.brightness = 0.3 rgb[0] = (0, 0, 0) from adafruit_ble import BLERadio from adafruit_ble.advertising.adafruit import AdafruitColor ble = BLERadio() advertisement = AdafruitColor() # The color pickers will cycle through this list with buttons A and B. color_options = [ 0x110000, 0x111100, 0x001100, 0x001111, 0x000011, 0x110011, 0x111111, 0x221111, 0x112211, 0x111122 ] i = 0 ### Trick to force a first color "change" last_i = -1 print("Broadcasting color") ### The original code has two mode, the Feather nRF52840 version is broadcasts only. while True: