Use Lab11 Revised Code

This commit is contained in:
Edward Bigos 2026-04-16 10:24:28 -04:00
commit cb4844f6fe
18 changed files with 8342 additions and 0 deletions

View file

@ -0,0 +1,32 @@
# Program for CircuitPython on a Pico W
import board
import digitalio
import time
led = digitalio.DigitalInOut(board.LED)
led15 = digitalio.DigitalInOut(board.GP15)
led16 = digitalio.DigitalInOut(board.GP16)
led.direction = digitalio.Direction.OUTPUT
led15.direction = digitalio.Direction.OUTPUT
led16.direction = digitalio.Direction.OUTPUT
print("\nCircuitPython example code")
print("Blink the onboard LED and LED's connected to GP15 & GP16\n")
while True:
print("Start")
led.value = True #turn on the LED
led15.value = False #turn on the LED
led16.value = True #turn on the LED
time.sleep(1) #wait for one second
print("Off")
led.value = False #turn off the LED
led15.value = True #turn off the LED
led16.value = False #turn off the LED
time.sleep(1) #wait for one second

View file

@ -0,0 +1,21 @@
# Program for CircuitPython on a Pico W
import board
import digitalio
import time
led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT
print("Hello, CircuitPython!")
while True:
print("On!")
led.value = True
time.sleep(1)
print("Off!")
led.value = False
time.sleep(1)

View file

@ -0,0 +1,11 @@
-----BEGIN CERTIFICATE-----
MIIBozCCAQwCCQCwlOkfTi8J9zANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDDAtw
aWNvdy5sb2NhbDAeFw0yMzAyMjgwNTQyNTZaFw0yNDAyMjgwNTQyNTZaMBYxFDAS
BgNVBAMMC3BpY293LmxvY2FsMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDq
UQiuhGBzHCLaesEjk6e6Kx7iNAKneaPht0Q6TsvF+IgOpuQFNkvQTU5S7POKDl2c
UGkMT9Q1x4xRdM3u3qT3OmutyAtfL94RkK1qsblJwIH8xop5p7P+gwHTT4UOEicj
MOSYBmkI6YvO/QImGdEoezWBqxKjOzyYLnv4UrwtYQIDAQABMA0GCSqGSIb3DQEB
CwUAA4GBABuzaLw1tcFNYZ0ViWnii1j97otemOFkM31TW8Ohm3zRS6f/aQi+hujN
BYMWIhxlK2cr0zsN+mXCVZN5u2BY0Q/w/7cNMBPNcGG7dJCGoBJRKRbEoBb/AMaO
vjp0giQ8kFOtRcf0Gun5gPdDcmZayZwU1n/V1Q7UjwKXcqe0+eXu
-----END CERTIFICATE-----

View file

@ -0,0 +1,16 @@
-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAOpRCK6EYHMcItp6
wSOTp7orHuI0Aqd5o+G3RDpOy8X4iA6m5AU2S9BNTlLs84oOXZxQaQxP1DXHjFF0
ze7epPc6a63IC18v3hGQrWqxuUnAgfzGinmns/6DAdNPhQ4SJyMw5JgGaQjpi879
AiYZ0Sh7NYGrEqM7PJgue/hSvC1hAgMBAAECgYEAvZ05s0/4ZO493iM8LDgOoP7I
DTEdfL1Yuw19LtoY2GmYYJL5LqaTj0sfuMd7BRs+8YG4oHfxOFv01u34v/Z38vRa
E0tzSMVz29CRF0LUcko7c8Q2TzeTVsk3tEb3Kuf3tfVh5bhhjSakhUIY7D+Gb6LT
GRIUg72tP9wjayTDsCkCQQD6oyJqxUhxuuiL5D+e0ssp582YruEJK4f5CzRsjmVV
COBbqzRkIMCxPMCJCB+DbiMPlu/6CuxGh6i8rczDlkdfAkEA71SAt9PFx3hLW0hu
OBR9w7BF6B2YTR3cG5+SQXOiF1feMUIaAn/dDr1OxqAQ/hQ/QKUk5JDwquy6phYT
9qWDPwJBAPMqGLccBkgI/ZrTbIILov5aHdcXO88ow7f0jf0QPfG9NebZ+G94c1rB
RU7taZ2a2jtCxjqCJG/dJ/E+cZ4Ei+MCQFu3O3i2/FU7wU0jDbIKEEQc2j1gkgwD
hGVFmovgn15ouuqPlV4d1/4dCAJQNxLXeYHxh5jb/o7SF5ksXswnk4sCQA7Jlj5M
8+7qQV9DrOieFGpXMqlc9J6u9L0Tev2P9uE7a7z61NvLIdskGDpiaYOmADob5nHo
Duv3lSMQg6ql7EE=
-----END PRIVATE KEY-----

View file

@ -0,0 +1,177 @@
# SPDX-FileCopyrightText: 2021 jedgarpark for Adafruit Industries
# SPDX-License-Identifier: MIT
# Pico servo demo
# Hardware setup:
# Servo on GP0 with external 5V power supply
# Button on GP3 and ground
import time
import board
from digitalio import DigitalInOut, Direction, Pull
import pwmio
from adafruit_motor import servo
import os
import sys
import ssl
import wifi
import socketpool
import microcontroller
import board
import busio
import adafruit_requests
import adafruit_dht
from adafruit_io.adafruit_io import IO_HTTP, AdafruitIO_RequestError
from microcontroller import cpu
print("Servo test")
mode = -1 # track state of button mode
def setupLED():
led = DigitalInOut(board.LED)
led.direction = Direction.OUTPUT
led.value = True
return led
def setupButton():
# Mode button setup
button = DigitalInOut(board.GP3)
button.direction = Direction.INPUT
button.pull = Pull.UP
return button
def blink(led,count):
for _ in range(count):
led.value = False
time.sleep(0.1)
led.value = True
time.sleep(0.1)
def setupServo():
# Servo setup
pwm_servo = pwmio.PWMOut(board.GP0, duty_cycle=2 ** 15, frequency=50)
servo1 = servo.Servo(pwm_servo, min_pulse=500, max_pulse=2200) # tune pulse for specific servo
return servo1
def setServoAngle(servo1,angle):
# Servo setup
print("servo set angle =",angle)
servo1.angle = angle
servoData = angle
data = [servoData]
# send sensor data to respective feeds
# io.send_data(picowServo,servoData)
io.send_data("myservo",angle)
print("sent")
return servo1
# Servo test
def servo_direct_test1():
print("Servo Direct Test 1")
setServoAngle(servo1,90)
time.sleep(2)
setServoAngle(servo1,0)
time.sleep(2)
setServoAngle(servo1,90)
time.sleep(2)
setServoAngle(servo1,180)
time.sleep(2)
# Servo test
def servo_direct_test():
print("Servo Direct Test")
print("servo test: 90")
servo1.angle = 90
time.sleep(2)
print("servo test: 0")
servo1.angle = 0
time.sleep(2)
print("servo test: 90")
servo1.angle = 90
time.sleep(2)
print("servo test: 180")
servo1.angle = 180
time.sleep(2)
# Servo smooth test
def servo_smooth_test():
counter = 1
print("servo smooth test: 180 - 0, -1º steps")
for angle in range(180, 0, -1): # 180 - 0 degrees, -1º at a time.
servo1.angle = angle
if(counter > 10): # This is used to rate limit the data to Adafruit
servoData = angle
data = [servoData]
# send sensor data to respective feeds
# io.send_data(picowServo,servoData)
io.send_data("myservo",angle)
print("sent ", angle)
counter = 1
else:
counter += 1
time.sleep(0.1)
# time.sleep(0.01)
time.sleep(1)
print("servo smooth test: 0 - 180, 1º steps")
for angle in range(0, 180, 1): # 0 - 180 degrees, 1º at a time.
servo1.angle = angle
time.sleep(0.01)
time.sleep(1)
def run_test(testnum):
if testnum is 0:
print("servo direct test")
servo_direct_test1()
elif testnum is 1:
print("servo direct test")
servo_smooth_test()
led = setupLED()
button = setupButton()
servo1 = setupServo()
print("Type of servo = ",type(servo))
wifi.radio.connect(os.getenv('CIRCUITPY_WIFI_SSID'), os.getenv('CIRCUITPY_WIFI_PASSWORD'))
aio_username = os.getenv('ADAFRUIT_IO_USERNAME')
aio_key = os.getenv('ADAFRUIT_IO_KEY')
pool = socketpool.SocketPool(wifi.radio)
requests = adafruit_requests.Session(pool, ssl.create_default_context())
# Initialize an Adafruit IO HTTP API object
io = IO_HTTP(aio_username, aio_key, requests)
print("connected to io")
try:
# get feed
picowServo = io.get_feed("myservo")
except AdafruitIO_RequestError:
# if no feed exists, create one
print("Feed error")
sys.exit(-1)
# pack feed names into an array for the loop
feed_names = [picowServo]
print("Connected to feed.")
while True:
if not button.value:
blink(led,2)
mode = (mode + 1) % 2
print("switch to mode %d" % (mode))
time.sleep(0.8) # big debounce
run_test(mode)

View file

@ -0,0 +1,68 @@
# SPDX-FileCopyrightText: 2022 Liz Clark for Adafruit Industries
# SPDX-License-Identifier: MIT
import os
import sys
import time
import ssl
import wifi
import socketpool
import microcontroller
import board
import busio
import adafruit_requests
import adafruit_dht
from adafruit_io.adafruit_io import IO_HTTP, AdafruitIO_RequestError
from microcontroller import cpu
wifi.radio.connect(os.getenv('CIRCUITPY_WIFI_SSID'), os.getenv('CIRCUITPY_WIFI_PASSWORD'))
aio_username = os.getenv('ADAFRUIT_IO_USERNAME')
aio_key = os.getenv('ADAFRUIT_IO_KEY')
pool = socketpool.SocketPool(wifi.radio)
requests = adafruit_requests.Session(pool, ssl.create_default_context())
# Initialize an Adafruit IO HTTP API object
io = IO_HTTP(aio_username, aio_key, requests)
print("connected to io")
try:
# get feed
picowServo = io.get_feed("myservo")
except AdafruitIO_RequestError:
# if no feed exists, create one
print("Feed error")
sys.exit(-1)
# pack feed names into an array for the loop
feed_names = [picowServo]
print("Connected to feed.")
clock = 11
while True:
# when the clock runs out..
print("") # Prints a blank line after clock print.
# read sensor
servoData = clock
data = [servoData]
# send sensor data to respective feeds
# io.send_data(picowServo,servoData)
io.send_data("myservo",servoData)
print("sent")
time.sleep(15)
# print sensor data to the REPL
print()
#time.sleep(1)
time.sleep(1)
print(clock)
clock = clock + 1
if clock >50:
clock = 11

View file

@ -0,0 +1,88 @@
# SPDX-FileCopyrightText: 2021 jedgarpark for Adafruit Industries
# SPDX-License-Identifier: MIT
# Pico servo demo
# Hardware setup:
# Servo on GP0 with external 5V power supply
# Button on GP3 and ground
import time
import board
from digitalio import DigitalInOut, Direction, Pull
import pwmio
from adafruit_motor import servo
print("Servo test")
led = DigitalInOut(board.LED)
led.direction = Direction.OUTPUT
led.value = True
def blink(times):
for _ in range(times):
led.value = False
time.sleep(0.1)
led.value = True
time.sleep(0.1)
# Mode button setup
button = DigitalInOut(board.GP3)
button.direction = Direction.INPUT
button.pull = Pull.UP
mode = -1 # track state of button mode
# Servo setup
pwm_servo = pwmio.PWMOut(board.GP0, duty_cycle=2 ** 15, frequency=50)
servo1 = servo.Servo(
pwm_servo, min_pulse=500, max_pulse=2200
) # tune pulse for specific servo
# Servo test
def servo_direct_test():
print("servo test: 90")
servo1.angle = 90
time.sleep(2)
print("servo test: 0")
servo1.angle = 0
time.sleep(2)
print("servo test: 90")
servo1.angle = 90
time.sleep(2)
print("servo test: 180")
servo1.angle = 180
time.sleep(2)
# Servo smooth test
def servo_smooth_test():
print("servo smooth test: 180 - 0, -1º steps")
for angle in range(180, 0, -1): # 180 - 0 degrees, -1º at a time.
servo1.angle = angle
time.sleep(0.01)
time.sleep(1)
print("servo smooth test: 0 - 180, 1º steps")
for angle in range(0, 180, 1): # 0 - 180 degrees, 1º at a time.
servo1.angle = angle
time.sleep(0.01)
time.sleep(1)
def run_test(testnum):
if testnum is 0:
print("servo direct test")
servo_direct_test()
elif testnum is 1:
print("servo smooth test")
servo_smooth_test()
while True:
if not button.value:
blink(2)
mode = (mode + 1) % 2
print("switch to mode %d" % (mode))
time.sleep(0.8) # big debounce
run_test(mode)

View file

@ -0,0 +1,117 @@
# SPDX-FileCopyrightText: 2021 jedgarpark for Adafruit Industries
# SPDX-License-Identifier: MIT
# Pico servo demo
# Hardware setup:
# Servo on GP0 with external 5V power supply
# Button on GP3 and ground
import time
import board
from digitalio import DigitalInOut, Direction, Pull
import pwmio
from adafruit_motor import servo
print("Servo test")
mode = -1 # track state of button mode
def setupLED():
led = DigitalInOut(board.LED)
led.direction = Direction.OUTPUT
led.value = True
return led
def setupButton():
# Mode button setup
button = DigitalInOut(board.GP3)
button.direction = Direction.INPUT
button.pull = Pull.UP
return button
def blink(led,count):
for _ in range(count):
led.value = False
time.sleep(0.1)
led.value = True
time.sleep(0.1)
def setupServo():
# Servo setup
pwm_servo = pwmio.PWMOut(board.GP0, duty_cycle=2 ** 15, frequency=50)
servo1 = servo.Servo(pwm_servo, min_pulse=500, max_pulse=2200) # tune pulse for specific servo
return servo1
def setServoAngle(servo1,angle):
# Servo setup
print("servo set angle =",angle)
servo1.angle = angle
return servo1
# Servo test
def servo_direct_test1():
print("Servo Direct Test 1")
setServoAngle(servo1,90)
time.sleep(2)
setServoAngle(servo1,0)
time.sleep(2)
setServoAngle(servo1,90)
time.sleep(2)
setServoAngle(servo1,180)
time.sleep(2)
# Servo test
def servo_direct_test():
print("Servo Direct Test")
print("servo test: 90")
servo1.angle = 90
time.sleep(2)
print("servo test: 0")
servo1.angle = 0
time.sleep(2)
print("servo test: 90")
servo1.angle = 90
time.sleep(2)
print("servo test: 180")
servo1.angle = 180
time.sleep(2)
# Servo smooth test
def servo_smooth_test():
print("servo smooth test: 180 - 0, -1º steps")
for angle in range(180, 0, -1): # 180 - 0 degrees, -1º at a time.
servo1.angle = angle
time.sleep(0.01)
time.sleep(1)
print("servo smooth test: 0 - 180, 1º steps")
for angle in range(0, 180, 1): # 0 - 180 degrees, 1º at a time.
servo1.angle = angle
time.sleep(0.01)
time.sleep(1)
def run_test(testnum):
if testnum is 0:
print("servo direct test")
servo_direct_test1()
elif testnum is 1:
print("servo smooth test")
servo_smooth_test()
led = setupLED()
button = setupButton()
servo1 = setupServo()
print("Type of servo = ",type(servo))
while True:
if not button.value:
blink(led,2)
mode = (mode + 1) % 2
print("switch to mode %d" % (mode))
time.sleep(0.8) # big debounce
run_test(mode)

View file

@ -0,0 +1,7 @@
CIRCUITPY_WIFI_SSID = "cset@stcc"
CIRCUITPY_WIFI_PASSWORD = "c1s2e3t4"
# Replace the next two lines with your Adafruit username and key.
ADAFRUIT_IO_USERNAME = "csetuser"
ADAFRUIT_IO_KEY = "aio_whil751ZM389iWH4GR20r90cTb0R"