Beispiel #1
0
import board
import simpleio
from analogio import AnalogIn

# servo pin for the M0 boards:
servo = simpleio.Servo(board.A2)
angle = 0

# potentiometer
trimpot = AnalogIn(board.A1)  # pot pin for servo control


def remap_range(value, left_min, left_max, right_min, right_max):
    # this remaps a value from original (left) range to new (right) range
    # Figure out how 'wide' each range is
    left_span = left_max - left_min
    right_span = right_max - right_min

    # Convert the left range into a 0-1 range (int)
    value_scaled = int(value - left_min) / int(left_span)

    # Convert the 0-1 range into a value in the right range.
    return int(right_min + (value_scaled * right_span))


while True:
    angle = remap_range(trimpot.value, 0, 65535, 0, 180)
    servo.angle = angle
    # time.sleep(0.05)
Beispiel #2
0
from analogio import AnalogIn
import simpleio
import time
import board

analogin = AnalogIn(board.A1)
GOAL_DISTANCE = 48000
motor_left = simpleio.Servo(board.A3)
motor_right = simpleio.Servo(board.A2)
motor_left_center = 67
motor_right_center = 58
motor_left_power = -8
motor_right_power = 5

while True:
    distance = analogin.value
    print(distance)
    motor_left_value = 0
    motor_right_value = 0
    if distance - GOAL_DISTANCE > 0:
        # too far away, turn towards the wall
        motor_left_value = 0.5
        motor_right_value = 1.5
    else:
        # too close, turn away from the wall
        motor_left_value = 1.5
        motor_right_value = 0.5
    motor_left.angle = motor_left_center + motor_left_power * motor_left_value
    motor_right.angle = motor_right_center + motor_right_power * motor_right_value
    time.sleep(0.2)
import time
import board
import simpleio

servo = simpleio.Servo(board.D2)

# sweep back and forth!
while True:
    for angle in range(0, 180, 5):  # 0-180 degrees, 5 degrees at a time
        servo.angle = angle
        time.sleep(0.05)
    for angle in range(180, 0, -5):  # 180-0 degrees, 5 degrees at a time
        servo.angle = angle
        time.sleep(0.05)
Beispiel #4
0
import audiobusio
import simpleio
from adafruit_circuitplayground.express import cpx

# Exponential scaling factor.
# Should probably be in range -10 .. 10 to be reasonable.
CURVE = 2
SCALE_EXPONENT = math.pow(10, CURVE * -0.1)

# Number of samples to read at once.
NUM_SAMPLES = 90

# the trigger threshhold
THRESHOLD = 6

left_ear = simpleio.Servo(board.A1)
right_ear = simpleio.Servo(board.A2)

cpx.pixels.fill((0, 0, 0))
left_ear.angle = 0
right_ear.angle = 0

# Restrict value to be between floor and ceiling.


def constrain(value, floor, ceiling):
    return max(floor, min(value, ceiling))


def log_scale(input_value, input_min, input_max, output_min, output_max):
    normalized_input_value = (input_value - input_min) / \
Beispiel #5
0
import simpleio
import time
import board

pwm = simpleio.Servo(board.A2)

while True:
    pwm.angle = 70
    time.sleep(1)
import simpleio
import time
import board

pwm = simpleio.Servo(board.A3)
pwm2 = simpleio.Servo(board.A2)
pwm1_center = 67
pwm2_center = 58
pwm1_power = -8
pwm2_power = 5

while True:
    pwm.angle = pwm1_center + pwm1_power
    pwm2.angle = pwm2_center + pwm2_power
    time.sleep(1)
Beispiel #7
0
import time
import analogio
import board
import simpleio
from digitalio import DigitalInOut, Direction

# setup photocell
photocell = analogio.AnalogIn(board.A1)  # analog #1 same pin as Digital #2
darkness_min = (2**16) * .05  # light level < 5% means darkness

# setup speaker
speaker = DigitalInOut(board.D1)
speaker.direction = Direction.OUTPUT

# setup servo
servo = simpleio.Servo(board.D0)  # servo motor
angle = 0


def chirp():
    for i in range(200, 180, -1):
        play_tone(i, 9)


def play_tone(tone_value, duration):
    microseconds = 10**6  # duration divider, convert to microseconds

    for i in range(0, duration):
        i += tone_value * 2
        speaker.value = True
        time.sleep(tone_value / microseconds)