xylophones are WOOD, this is a METALLOPHONE!!!
This commit is contained in:
parent
f67b733144
commit
643c8bcd39
1 changed files with 70 additions and 0 deletions
70
Crickits/metallobot/code.py
Normal file
70
Crickits/metallobot/code.py
Normal file
|
|
@ -0,0 +1,70 @@
|
|||
# CircuitPython 3.0 CRICKIT demo
|
||||
from digitalio import DigitalInOut, Direction, Pull
|
||||
from adafruit_seesaw.seesaw import Seesaw
|
||||
from adafruit_seesaw.pwmout import PWMOut
|
||||
from adafruit_motor import servo, motor
|
||||
from busio import I2C
|
||||
import board
|
||||
import time
|
||||
import gc
|
||||
|
||||
i2c = I2C(board.SCL, board.SDA)
|
||||
ss = Seesaw(i2c)
|
||||
|
||||
print("Crickit demo!")
|
||||
|
||||
# use the CPX onboard switch to turn on/off (helps calibrate)
|
||||
switch = DigitalInOut(board.SLIDE_SWITCH)
|
||||
switch.direction = Direction.INPUT
|
||||
switch.pull = Pull.UP
|
||||
|
||||
#################### 4 Servos
|
||||
servos = []
|
||||
for ss_pin in (17, 16, 15, 14):
|
||||
pwm = PWMOut(ss, ss_pin)
|
||||
pwm.frequency = 50
|
||||
_servo = servo.Servo(pwm)
|
||||
_servo.angle = 90 # starting angle, middle
|
||||
servos.append(_servo)
|
||||
|
||||
#################### 2 DC motors
|
||||
motors = []
|
||||
for ss_pin in ((22, 23), (18, 19)):
|
||||
pwm0 = PWMOut(ss, ss_pin[0])
|
||||
pwm1 = PWMOut(ss, ss_pin[1])
|
||||
_motor = motor.DCMotor(pwm0, pwm1)
|
||||
motors.append(_motor)
|
||||
|
||||
servos[0].angle = 180
|
||||
|
||||
while True:
|
||||
if switch.value:
|
||||
# Switch is on, activate MUSIC POWER!
|
||||
|
||||
# motor forward slowly
|
||||
motors[0].throttle = 0.2
|
||||
# mote the head forward slowly, over 0.9 seconds
|
||||
for a in range(180, 90, -1):
|
||||
servos[0].angle = a
|
||||
time.sleep(0.01)
|
||||
|
||||
# motor stop
|
||||
motors[0].throttle = 0
|
||||
time.sleep(1)
|
||||
|
||||
# motor backwards slowly
|
||||
motors[0].throttle = -0.2
|
||||
# move the head back slowly too, over 0.9 seconds
|
||||
for a in range(90, 180):
|
||||
servos[0].angle = a
|
||||
time.sleep(0.01)
|
||||
# calibration! its a *tiny* bit slower going back so give it a few ms
|
||||
time.sleep(0.007)
|
||||
|
||||
# motor stop
|
||||
motors[0].throttle = 0
|
||||
time.sleep(1)
|
||||
else:
|
||||
# switch is 'off' so dont do anything!
|
||||
pass
|
||||
|
||||
Loading…
Reference in a new issue