Programmable MIMO synchronization device: software and hardware design
- Active Triggers (source): Reads TTL signal rising edge (5V) from the TriggerBox system. Intended to coordinate with a manually conducted push-trigger.
- Passive Triggers (sink): Reads TTL signal rising edge (5V) from other systems, current rated to 20mA (e.g., a trigger signal from a motion controller or high-speed camera).
- Flash: A driving pulse to a standard LED diode
- Beep: Drives a buzzer with a specific tone
- Trigger Signal: Sends a TTL signal to other systems, 5V 20mA or amplified with an LM386 amplifier
- Gate: Stays high when the system is armed, low when disarmed
- The system reads a trigger input signal, either manual or motion pulse
- The system gets armed
- Flashes and beeps with a programmed pattern
- Trigger output is sent simultaneously; gate remains high
- Another trigger input disarms the system with a flash, beep, and trigger output
- Takes inputs from the safety curtain and PTUX to control the gate of the DM laser
- Armed by push trigger
- Opens the laser gate only if the system is armed and LaVision is ready (PTU output HIGH)
- The system is disarmed by pressing the manual trigger again or if an object falls through the safety curtain
- TriggerBox: Arduino code to drive the box
- TriggerFinder:
{rising, falling} = TriggerFinder(High, Low, State)
- MATLAB function for post-processing the trigger signal
- Digitizes: sets any value below Low to 0 and any value above High to 5
- Derivative used to find peaks at rising and falling edges
- BeepFinder
- Detects beep tones collected by a microphone in post-processing
- Uses Short-Time Fourier Transform (STFT) to visualize time history of the spectrum
- Uses cross-correlation to find beep patterns on the STFT
- InlineTrigger
- Generates a burst of pulses upon receiving one TTL pulse
The listed hardware has been verified to be compatible. Alternatives may also be used since these are standard components.
- Arduino (Nano, Uno for legacy versions)
- Shield board: see PCB design
- 3–24V buzzer, for example — loud enough :)
- LED diode — very bright...
- LM386 Amplifiers
- LED driver
- The shield board is customized for hardware interface
- The design files are provided in the PCB design
.zip
archive - We chose JLCPCB as our manufacturer