Skip to content

Commit 11934c9

Browse files
authored
Add files via upload
1 parent 2c0a1e9 commit 11934c9

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

Crickits/Motion_Gift_Box/code.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# SPDX-FileCopyrightText: 2018 Anne Barela for Adafruit Industries
2+
#
3+
# SPDX-License-Identifier: MIT
4+
5+
import time
6+
import random
7+
import audioio
8+
import audiocore
9+
import board
10+
import neopixel
11+
from adafruit_crickit import crickit
12+
13+
# NeoPixels on the Circuit Playground Express
14+
pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, brightness=0.3)
15+
pixels.fill(0) # Off to start
16+
17+
# PIR sensor on signal #1
18+
PIR_SENSOR = crickit.SIGNAL1
19+
crickit.seesaw.pin_mode(PIR_SENSOR, crickit.seesaw.INPUT)
20+
21+
# Set audio out on speaker
22+
speaker = audioio.AudioOut(board.A0)
23+
audio_files = ["evillaugh3.wav", "laugh.wav"]
24+
25+
# One motor
26+
motor_1 = crickit.dc_motor_1
27+
motor_1.throttle = 0 # off to start
28+
29+
while True:
30+
pixels.fill(0)
31+
print("Waiting for trigger")
32+
while not crickit.seesaw.digital_read(PIR_SENSOR):
33+
pass
34+
print("PIR triggered")
35+
pixels.fill((100, 0, 0)) # NeoPixels red
36+
37+
# Start playing the file (in the background)
38+
audio_file = open(random.choice(audio_files), "rb") # muahaha
39+
wav = audiocore.WaveFile(audio_file)
40+
speaker.play(wav)
41+
42+
# move motor back and forth for 3 seconds total
43+
timestamp = time.monotonic()
44+
while time.monotonic() - timestamp < 3:
45+
motor_1.throttle = 1 # full speed forward
46+
time.sleep(0.25 + random.random()) # random delay from 0.25 to 1.25 seconds
47+
motor_1.throttle = -1 # full speed backward
48+
time.sleep(0.25 + random.random()) # random delay from 0.25 to 1.25 seconds
49+
motor_1.throttle = 0 # stop!
50+
51+
# wait for audio to stop
52+
while speaker.playing:
53+
pass
54+
# clean up and close file
55+
audio_file.close()

0 commit comments

Comments
 (0)