We've never quite got around to tidying up in here, so it's a bit of a mess. It would, I think, be rather tricky for anyone to replicate the installation just from this repo. As a brief guide:
This is the main visualisation, written in Processing. The code ran on two Pis, each controlling half the LED array via via FadeCandy boards. In principle a single Pi would be up to the job, but in practice we struggled to get FadeCandies to talk to Pis via USB hubs. We needed six FadeCandies, so... two Pis. Drat.
Updates arrive at the simulation Pis via MQTT (crazy, we know, but we had the code lying around...), with a backup/emergency restore by pulling data from the SQL server.
The logging/control stations. The sequence of operations went:
- Participant writes message on tracing paper, and scunches it up into a jar.
- Jar lid has QR code, scanned by Picamera on control station.
- Control station allocates shelf space and temporary colour, broadcasting latter over MQTT.
- Participant's dials in their heart rate at the control station.
- Control station broadcasts change of beat frequency (over MQTT), and logs change in database.
...once the jar is on the shelf, Wemos D1 mini-based controllers are used to clear the colour allocation. The Heartsim code rotates the LED colour to red, and the control stations are cleared to reuse the temporary colour.
I think everything else here is intermediate code, experiments, and so on. There's a partial Python implementation of the FadeCandy control code, for example, which ran far too slowly to be useful for the scale we envisaged.
Tidy the heck up.