my first foray into controlling an electromechanical actuator with a microcontroller, i built this with 2 specific applications in mind; first, as a potential laser harp system, and second as a primitive object detection system for an autonomous robot i'm building. it is currently programmed to move the servo to 7 different angles, each 8 degrees from the next, pausing each time for 150 milliseconds to give the servo adequate time to find the new position. with these long pauses, it takes a little over 1 second to perform a complete scan. it appears as though 150 milliseconds is more than adequate time for the servo to move 8 degrees (based on the stability of the laser impact points), but that a little more time may be warranted for the retrace sweep (the first laser point exhibits a little motion blur immediately following the retrace). thus, with some experimentation to determine optimal values, the scanning speed might be significantly increased without any loss of precision. i may also experiment with DC motors, spinning mirrors, etc. in the near future, which may be necessary if a larger laser is to be employed.
the microcontroller is an Arduino Nano 3.0 with an ATMega 328 microprocessor. the mini-USB cable is for power, firmware programming and USB MIDI output. the new version of the Light Harp OS (LHOS v2.82) supports scanning laser systems in addition to all previous sensor profiles.
How do you recieve the laser light?
1dieu 1 year ago
@1dieu a single CdS photoresistor is embedded within a tubular light shield (i.e. pen cap) next to the laser diode. i don't have the means to accomplished phase-based detection, so it's all amplitude-based. i've since discovered numerous advantages to ultrasonic sonar over optical proximity detection, so that's what i've been focusing on lately. cheers! -- Peter
lightharp 1 year ago