# if encoder value increases at least this much # then brightness goes up INCREASE_CHANGE_THRESHOLD = 95 # timestamp of last time an action occurred LAST_ACTION_TIME = 0 # encoder value variable CUR_VALUE = 0 # pause state PAUSED = False cc = ConsumerControl(usb_hid.devices) encoder = rotaryio.IncrementalEncoder(board.ROTA, board.ROTB) switch = digitalio.DigitalInOut(board.SWITCH) switch.switch_to_input(pull=digitalio.Pull.DOWN) switch_state = None # previous encoder position variable last_position = encoder.position # previous switch variable prev_switch_value = False while True: now = time.monotonic() if switch.value and not prev_switch_value:
THE SOFTWARE. """ # pylint: disable=global-statement import time from math import ceil import board import rotaryio import neopixel from adafruit_debouncer import Debouncer import digitalio import pulseio # Setup the hardware encoder = rotaryio.IncrementalEncoder(board.D9, board.D7) button_io = digitalio.DigitalInOut(board.D10) button_io.direction = digitalio.Direction.INPUT button_io.pull = digitalio.Pull.UP button = Debouncer(button_io) strip = neopixel.NeoPixel(board.D11, 16, brightness=1, auto_write=False) last_position = 0 def check_encoder(): """Check if the encoder has been rotated. returns the direction (-1 or +1) if it has, 0 if not. """ global last_position
import busio import digitalio import rotaryio import pwmio import adafruit_ssd1306 from adafruit_motor import servo from adafruit_debouncer import Debouncer #-------------------------------------------------------------------------------- # Initialize Rotary encoder button_io = digitalio.DigitalInOut(board.D12) button_io.direction = digitalio.Direction.INPUT button_io.pull = digitalio.Pull.UP button = Debouncer(button_io) rotary_encoder = rotaryio.IncrementalEncoder(board.D10, board.D11) #-------------------------------------------------------------------------------- # Initialize I2C and OLED i2c = busio.I2C(board.SCL, board.SDA) oled = adafruit_ssd1306.SSD1306_I2C(128, 32, i2c) oled.fill(0) oled.show() min_pulses = [500, 550, 600, 650, 700, 750, 800, 850, 900, 950, 1000] max_pulses = [2000, 2050, 2100, 2150, 2200, 2250, 2300, 2350, 2400, 2450, 2500] min_pulse_index = 10 max_pulse_index = 0
ring.fill(DISCONNECTED_COLOR) ring.show() dot_location = 0 # what dot is currently lit # CPB button for Play/Pause button_A = digitalio.DigitalInOut(board.BUTTON_A) button_A.switch_to_input(pull=digitalio.Pull.DOWN) button_a_pressed = False # for debounce state # Encoder button is a digital input with pullup on A1 # so button.value == False means pressed. button = digitalio.DigitalInOut(board.A1) button.pull = digitalio.Pull.UP encoder = rotaryio.IncrementalEncoder(board.A2, board.A3) last_pos = encoder.position muted = False command = None # Disconnect if already connected, so that we pair properly. if ble.connected: for connection in ble.connections: connection.disconnect() def draw(): if not muted: ring.fill(FILL_COLOR) ring[dot_location] = UNMUTED_COLOR else:
from analogio import AnalogIn import board import busio import ASUS.GPIO as GPIO import time import rotaryio #previous encoder position last_position = None # each Sabertooth controls 2 motors l_saber = Sabertooth('/dev/ttyS1', baudrate=9600, address=128, timeout=1000) r_saber = Sabertooth('/dev/ttyS1', baudrate=9600, address=129, timeout=1000) TD_saber = Sabertooth('/dev/ttyS1', baudrate=9600, address=130, timeout=1000) potentiometer = AnalogIn(7) enc = rotaryio.IncrementalEncoder(7, 5) # Chassis motors class DriveTrain: motor_speeds = [0, 0, 0, 0] ## Motor Numbers: (subject to change) # 0 - Front-Left # 1 - Back-Left # 2 - Front-Right # 3 - Back-Right # set speed for individual wheel [-100%,+100%] @staticmethod
import rotaryio import board encoder = rotaryio.IncrementalEncoder(board.D18, board.D17) last_position = None while True: position = encoder.position if last_position is None or position != last_position: print(position) last_position = position
from digitalio import DigitalInOut, Direction, DriveMode, Pull import gc import sys # keyboard imports import usb_hid from adafruit_hid.keyboard import Keyboard from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS from adafruit_hid.keycode import Keycode as KC from adafruit_hid.consumer_control_code import ConsumerControlCode from adafruit_hid.consumer_control import ConsumerControl # rotary encoder import rotaryio encoder = rotaryio.IncrementalEncoder(board.P1_11, board.P0_29) encoder_last_position = encoder.position encoder_switch_pin = DigitalInOut(board.P0_31) encoder_switch_pin.direction = Direction.INPUT encoder_switch_pin.pull = Pull.UP encoder_switch_last_position = True def encoder_update(): global encoder_last_position global encoder_switch_last_position if encoder_last_position > encoder.position: encoder_last_position = encoder.position keyboard_consumer_control.send(ConsumerControlCode.VOLUME_INCREMENT)
import neopixel from analogio import AnalogIn from digitalio import DigitalInOut, Direction, Pull import rotaryio # //// SETUP THE BOARD # external analog potentiometer analogin = AnalogIn(board.A1) # switch on the external potentiometer switch = DigitalInOut(board.A2) switch.direction = Direction.INPUT switch.pull = Pull.UP # external rotary encoder encoder = rotaryio.IncrementalEncoder(board.A6, board.A7) # on board button button = DigitalInOut(board.BUTTON_B) button.direction = Direction.INPUT button.pull = Pull.DOWN # on board LED led = DigitalInOut(board.D13) led.direction = Direction.OUTPUT # on board neopixels # neopixel.NeoPixel(pin, number, brightness, display) pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, brightness=0) # //// DECLARE CONSTANTS