CPX Carousel
by Engineering Carousel in Circuits > Microcontrollers
89 Views, 0 Favorites, 0 Comments
CPX Carousel
This device, powered by a CPX(circuit playground express), is a miniature carousel that spins, lights up, and plays music. The design consists of a CPX, 3D printed parts, a continuous micro servo motor, and a battery. It is a combination of thingiverse designs and custom pieces that have been 3D printed to create a working carousel. The carousel is set on top of a hollow box to conceal most of the wiring and hardware, while the CPX is placed on the outside so the lights can be seen and it is convenient to press the buttons.
Supplies
3D Printing
- Use thingiverse carousel design and print _ parts for the main carousel
- Print base plate that will hold servo motor from TinkerCAD
- Print Base cover from TinkerCAD
- Print CPX holder from thingiverse
Parts that should be printed
- Base plate
- Base cover
- CPX snap-fit holder
- carousel cone
- carousel top with spooks
Coding
- Follow these instructions to install CircuitPython onto your CPX: https://learn.adafruit.com/welcome-to-circuitpython/installing-circuitpython
- Connect your CPX to your computer and save code.py onto it
The provided code will:
- On button A spin fast with bright lights and play a sound
- On button B spin opposite direction with dimmed lights
- When switch is flipped on CPX it will stop all movement and show one color throughout
*code.py file provided below
while True:
if cp.button_a:
"Button A pressed!"
cp.play_file("rise.wav")
cp.play_file("rise.wav")
cp.play_file("rise.wav")
cp.pixels[0] = (255, 0, 0)
cp.pixels[1] = (255, 204, 0)
cp.pixels[2] = (0, 255, 0)
cp.pixels[3] = (0, 0, 255)
cp.pixels[4] = (255, 0, 255)
cp.pixels[5] = (255, 0, 0)
cp.pixels[6] = (255, 204, 0)
cp.pixels[7] = (0, 255, 0)
cp.pixels[8] = (0, 0, 255)
cp.pixels[8] = (0, 0, 255)
print("forward")
my_servo.throttle = 1.0
cp.play_file("rise.wav")
cp.play_file("rise.wav")
cp.play_file("rise.wav")
if cp.button_b:
"Button B pressed!"
cp.play_file("dip.wav")
cp.play_file("dip.wav")
cp.play_file("dip.wav")
cp.pixels[0] = (0, 30, 179)
cp.pixels[1] = (21, 0, 128)
cp.pixels[2] = (10, 12, 0)
cp.pixels[3] = (17, 10, 0)
cp.pixels[4] = (17, 76, 9)
cp.pixels[5] = (0, 26, 13)
cp.pixels[6] = (0, 64, 12)
cp.pixels[7] = (89, 0, 17)
cp.pixels[8] = (85, 0, 10)
cp.pixels[9] = (30, 0, 17)
print("reverse")
my_servo.throttle = -0.5
print("Light:", cp.light)
cp.play_file("dip.wav")
cp.play_file("dip.wav")
if cp.switch:
cp.pixels.fill((128, 0, 128))
print("forward")
my_servo.throttle = 0.0
time.sleep(4.0)
Assembly 3D Prints Connections
- Glue the servo motor to the baseplate with the cord for connection through the given hole
- Attach/glue the CPX holder to the base cover on the corner above the wiring hole
- Glue the carousel cone to the top so that the spooks are facing down
- Glue the servo horn to the bottom of the carousel cone
Assembly: Wiring
The servo is connected to the CPX using three wires that are brown, red and orange that are then connected to alligator clips. Each wire and their respective alligator clip connect to a different port on the CPX. The brown wire goes to the GND port, red goes to VOUT, and orange goes to A1, or A# depending on what your coding requires.
- Brown to GND
- Red to VOUT
- Orange to A#
Then connect the battery to the CPX across from where it would be plugged into a computer.
Final Assembly
- Feed any wires connecting the CPX to the servo and battery through the opening in the base.
- snap the CPX into the snap-fit holder that is on top of the base.
- Turn the battery on and glue two corners of the base lid down to the base
- glue the horn connected to the carousel to the servo motor
- Make sure the code is saved on CPX and start the Carousel
- Have Fun!!