Skip to content

Commit

Permalink
Merge pull request adafruit#2889 from adafruit/LEGO-carousel-propmaker
Browse files Browse the repository at this point in the history
adding LEGO carousel propmaker project
  • Loading branch information
TheKitty authored Sep 24, 2024
2 parents b59621d + 71cfced commit 4c7517f
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
Binary file added LEGO_Carousel_PropMaker/carousel-loop.wav
Binary file not shown.
43 changes: 43 additions & 0 deletions LEGO_Carousel_PropMaker/code.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# SPDX-FileCopyrightText: 2024 Noe Ruiz for Adafruit Industries
#
# SPDX-License-Identifier: MIT

import board
import audiocore
import audiobusio
import audiomixer
from digitalio import DigitalInOut, Direction
import pwmio
import neopixel
from adafruit_led_animation.animation.rainbow import Rainbow
from adafruit_motor import servo

# enable external power pin
# provides power to the external components
external_power = DigitalInOut(board.EXTERNAL_POWER)
external_power.direction = Direction.OUTPUT
external_power.value = True

# i2s playback
wave_file = open("carousel-loop.wav", "rb")
wave = audiocore.WaveFile(wave_file)
audio = audiobusio.I2SOut(board.I2S_BIT_CLOCK, board.I2S_WORD_SELECT, board.I2S_DATA)
mixer = audiomixer.Mixer(voice_count=1, sample_rate=22050, channel_count=1,
bits_per_sample=16, samples_signed=True)
audio.play(mixer)
mixer.voice[0].play(wave, loop=True)

# servo control
pwm = pwmio.PWMOut(board.EXTERNAL_SERVO, frequency=5)
prop_servo = servo.ContinuousServo(pwm)

# external neopixels
num_pixels = 43
pixels = neopixel.NeoPixel(board.EXTERNAL_NEOPIXELS, num_pixels)
pixels.brightness = 0.3
rainbow = Rainbow(pixels, speed=0.05, period=2)

while True:
prop_servo.throttle = 1
rainbow.animate()
mixer.voice[0].level = 1

0 comments on commit 4c7517f

Please sign in to comment.