Wendy is composed of the following hardware elements :
- A near UV laser with focusing lens (405nm), and its driver. It could be drived by PWM, but for now it only light-up or shut-down when needed.
- A pair of galvanometer mirrors, and their driver. These are commanded by a tension oscillating around zero.
- An Power supply unit.
- A Raspberry Pi Zero W.
- A pHAT DAC, whose job is to generate the variable tension the galvos need.
- Two buttons to shut down or reboot the Pi cleanly.
- A switch for the laser, for obvious safety reasons !
On software side, Pure Data has been extensively used. The patches has been divided into "elementary tiles", like :
- Open an image.
- Send the image to the laser.
- Display a rectangle (very usefull to place your sheet of paper)
- Set an offset.
- Set angles and distance (so we can manipulate millimeters on the program side).
- And so on.
Pure data has tools for elementary math and sound processing, as well as a lot of user defined libraries (they are called externals). So it can handle images (which great for this project ! ), but also data streaming over a network. The user simply connect to the laser over wifi with the laser IP, and two connections are used, one over TCP for basic settings (like turning DSP on/off, turning laser on/auto/off, etc.), and one UDP for audio streaming. Pure Data can also connect via serial and read some protocols (midi, OSC), so one can imagine ways to live-control the laser with something else than an image...