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)
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)
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) / \
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)
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)