def init_apds(): global _state i2c = busio.I2C(board.SCL, board.SDA) apds = APDS9960(i2c) apds.enable_color = True apds.enable_proximity = True _state.apds = apds logger.info("motion sensor initialized")
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries # SPDX-License-Identifier: MIT import time import board import busio from adafruit_apds9960.apds9960 import APDS9960 from adafruit_apds9960 import colorutility i2c = busio.I2C(board.SCL, board.SDA) apds = APDS9960(i2c) apds.enable_color = True while True: # create some variables to store the color data in # wait for color data to be ready while not apds.color_data_ready: time.sleep(0.005) # get the data and print the different channels r, g, b, c = apds.color_data print("red: ", r) print("green: ", g) print("blue: ", b) print("clear: ", c) print("color temp {}".format( colorutility.calculate_color_temperature(r, g, b))) print("light lux {}".format(colorutility.calculate_lux(r, g, b))) time.sleep(0.5)
# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries # SPDX-License-Identifier: MIT import board import busio import digitalio from adafruit_apds9960.apds9960 import APDS9960 i2c = busio.I2C(board.SCL, board.SDA) int_pin = digitalio.DigitalInOut(board.D5) apds = APDS9960(i2c, interrupt_pin=int_pin) apds.enable_proximity = True apds.proximity_interrupt_threshold = (0, 175) apds.enable_proximity_interrupt = True while True: # print the proximity reading when the interrupt pin goes low if not int_pin.value: print(apds.proximity) # clear the interrupt apds.clear_interrupt()
Gesture and proximity using 2 APDS9960 breakouts with custom lib/adafruit_apds9960/apds9960.py file """ import board import time import digitalio import busio from adafruit_apds9960.apds9960 import APDS9960 killswitch = digitalio.DigitalInOut(board.SLIDE_SWITCH) killswitch.direction = digitalio.Direction.INPUT killswitch.pull = digitalio.Pull.UP i2cA = busio.I2C(board.A1, board.A2) apdsG = APDS9960(i2cA) apdsG.enable_gesture = True apdsG.enable_proximity = True # default gesture_proximity_threshold = 50 (range 0-255)""" apdsG.gesture_proximity_threshold = 0 # default gesture_gain = 2 (range 0-3)""" apdsG.gesture_gain = 3 # default gesture_fifo_threshold = 1 (range 0-3)""" apdsG.gesture_fifo_threshold = 3 # default gesture_dimensions = 1 (range 0-3)""" apdsG.gesture_dimensions = 3 # default rotation = 0 (possible, 0, 90, 180, 270) apdsG.rotation = 90 i2cB = busio.I2C(board.A3, board.A4)
Proximity Trinkey MIDI Touch pads switch between CC and Pitch Bend modes Blue LED for CC, Red LED for pitchbend Brightness of LEDs for proximity """ import board import neopixel import touchio import usb_midi import adafruit_midi from adafruit_midi.control_change import ControlChange from adafruit_midi.pitch_bend import PitchBend from adafruit_apds9960.apds9960 import APDS9960 apds = APDS9960(board.I2C()) apds.enable_proximity = True touch1 = touchio.TouchIn(board.TOUCH1) touch2 = touchio.TouchIn(board.TOUCH2) pixels = neopixel.NeoPixel(board.NEOPIXEL, 2) midi = adafruit_midi.MIDI(midi_in=usb_midi.ports[0], in_channel=0, midi_out=usb_midi.ports[1], out_channel=0) CC_NUM = 46 # pick your midi cc number here
from adafruit_led_animation.group import AnimationGroup from adafruit_led_animation.color import GOLD from adafruit_led_animation.animation.pulse import Pulse from adafruit_led_animation.animation.sparkle import Sparkle from adafruit_led_animation.animation.chase import Chase import time import busio import digitalio from adafruit_apds9960.apds9960 import APDS9960 # proximity sensor setup i2c = busio.I2C(board.SCL, board.SDA) apds = APDS9960(i2c, gain=0x02) apds.enable_proximity = True white_leds = digitalio.DigitalInOut(board.WHITE_LEDS) white_leds.switch_to_output() # Display setup display = board.DISPLAY # Moon shapes arc1 = anisha.Aarc(200, 2, 200,