This is the adventure of the United Space Ship CircuitPlayground. Assigned a five year galaxy patrol, the bold crew of the giant starship explores the excitement of strange new worlds, uncharted civilizations, and exotic code. These are its voyages and its adventures.
Explore exciting new modes of propulsion by creating a really big vibrating motor. This Crickit project attaches a bunch of CD's to an up-cycled CD-ROM motor for a cool looking warp drive. Some popsicle sticks, NeoPixels and sound effects complete the space craft and it's now ready for your command, captain!



CircuitPython Code
This project is pretty simple, it plays some audio clips, and then lights up the built in NeoPixels and powers up the motor in time with the effects.
# SPDX-FileCopyrightText: 2018 Limor Fried for Adafruit Industries # # SPDX-License-Identifier: MIT import time from busio import I2C from adafruit_seesaw.seesaw import Seesaw from adafruit_seesaw.pwmout import PWMOut from adafruit_motor import motor import neopixel import audioio import audiocore import board print("The voyages of the CPX-1701!") # Create seesaw object i2c = I2C(board.SCL, board.SDA) seesaw = Seesaw(i2c) # Create one motor on seesaw PWM pins 22 & 23 motor_a = motor.DCMotor(PWMOut(seesaw, 22), PWMOut(seesaw, 23)) # audio output cpx_audio = audioio.AudioOut(board.A0) # neopixels! pixels = neopixel.NeoPixel(board.NEOPIXEL, 10, brightness=1) pixels.fill((0, 0, 0)) # give me a second before starting time.sleep(1) motor_a.throttle = 0 # warp drive off f = open("01space.wav", "rb") wav = audiocore.WaveFile(f) cpx_audio.play(wav) t = time.monotonic() # take a timestamp # slowly power up the dilithium crystals for i in range(50): pixels.fill((0, 0, i)) time.sleep(0.05) # 6 seconds after audio started... while time.monotonic() - t < 6: pass motor_a.throttle = 1 # full warp drive on! # wait for music to end while cpx_audio.playing: pass f.close() # play the warp drive and theme music! f = open("02warp.wav", "rb") wav = audiocore.WaveFile(f) cpx_audio.play(wav) time.sleep(1) # blast off! pixels.fill((255, 0, 0)) # pulse the warp core while True: for i in range(255, 0, -5): pixels.fill((i, 0, 0)) for i in range(0, 255, 5): pixels.fill((i, 0, 0)) # wait for music to end while cpx_audio.playing: pass f.close()
Page last edited January 22, 2025
Text editor powered by tinymce.