This project is a kinetic sculpture with 55 spinning discs. Each disc has individual speed and direction control. They move in a repeated sequence, cascading left to right by color group, speed up, come to a stop, and then move in the opposite direction.
Top Level Architecture
This project had far too many IO neeeds to be driven off of one controller.
One of my priorities with this project was to give the most granular control
possible to the array without making the control logic unmanagably compelx.
I settled on making two types of controllers that ran entirely different firmware.
The primary controller was responsible for containing the organizaitonal structure
of the array, and carrying out the animation sequence. The secondary controller
was responsible for powering the motors, and doing all of the motion control
processing.
Primary Controllers
The primary controllers were built on the Raspberry Pi Pico. There were 3
additional pieces of hardware on that board, a buck converter to allow it
to operate on the 6v supply for the motors, an RS485 Comms circuit, and
an external hardware watchdog to guard against any long-running memory
related crashes
Mechanical Elements
Being fairly light, these discs were driven by 130 size DC motors at 6v.
This wound up providing ample torque, and we only needed about 15% of the
power they could deliver. These were mounted to the wall with L brackets
and vibration dampening material. JST cables were terminated onto the
motor, and soldered to the secondary controllers to allow for quick connect-disconnect.
Motion Control
The primary motion control loop resembles a rendering engine, tracking
the current speed of all the motors, and moving those speeds to new targets
set by the primary controller over given intervals of time. There is a fair
amount of conditional control for situations where motors were spinning up
from a standstill and needed extra power to break a stall, as well as decelerating
faster than the natural decay rate from simply cutting power. Without encoders
to deliver me positional data, a lot of these algorithms were made from trial and
error, and were specific to the mechanical properties of the discs.
Secondary Controllers
The secondary controllers were much more complicated than the primaries. These
featured 7 dual-channel motor drivers, allowing them to drive 14 motors at a time
with individual speed and direction control. These boards were built with the Teensy
4.1 as the processor. These boards also featured an RS485 Rx circuit for receiving
controls from the primary controller, and an external hardware watchdog that would
reboot the device if the firmware ever crashed. These boards also featured rotary
address switches, and inverse polarity protection.
Visual Design: Petra Bachmaier and Sean Gallero
Technical Design: Andy Kauff
Photography: Kate Joyce
Supported by:
Cheekwood Estate and Gardens