# 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:
Beispiel #2
0
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
Beispiel #3
0
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:
Beispiel #5
0
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
Beispiel #6
0
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
Beispiel #7
0
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)
Beispiel #8
0
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