Hi everyone!
I am working on a school project where I use Arduino in combination with LabVIEW to create a sensor system. I chose to create a laser synthesizer.
I have come pretty far in the programming part, however I have some questions regarding the synthesizer keyboard. The display of my synthesizer should look like as in the figure.
Basically I am using two laser beams, stretching horizontally from left to right, as the "strings" to my keyboard. Two lasers let me play two notes simultaneously. I am confident in making a note play if a laser beam is broken (using a photodiode etc.). However the hard part for me is to make the note change pitch depending on where I break the beam. (Analogous to a piano, I want higher pitched notes to play if a break the beam more to the right and so on).
I believe I in addition need to implement some intensity measuring, and so to convert to corresponding pitches. I cant think of really smart ways to create this. Another concern of mine is interference between the two sensors for the two lasers.
If you are detecting whether the beam is broken or not then you have a binary output, on or off
How will you measure the intensity of a laser beam that does not reach the photodiode ?
One possibility might be to use a Time of Flight sensor that allows you to detect the time it takes for a laser beam to return to its origin after being reflected
I am not sure. I was thinking of installing an IR-LED and IR sensor on the opposite side of the photodiode, for both lasers. And then get the IR waves to reflect off my hand. But my concern is then interference between.
I was thinking more of the sensor reading the same note for both strings(using the same hand distance for both of them), even though I could be playing two slightly different notes.
This might just be an impossible instrument, idk:/
How could I use a binary output for this? Assuming I use photodiodes to detect beam break, the PDs should be input to Analog to measure intensity drop, no?
A binary output is just that, ie on or off, HIGH or LOW etc. You cannot use a single binary method such as interruption of a laser beam to detect an analogue position
If you had multiple laser beams and detected which of them were interrupted then you could use that as a crude analogue input, but that is not what you are doing
Have you looked at the possibility of using a ToF detector ?
i have talked to my instructor and came to the conclusion that this setup is beyond my level to pull off😅 I have only used Arduino and LabVIEW for couple of weeks.
Instead i am doing normal lasers as keys on the keyboard, but theres no way i can have more than just a couple keys if I am using analog input for those.
I was thinking of setting a treshold for the photiodes to be able to use them digitally. If the intensity of those falls below or remains above a certain level i get High/Low outputs. Do you tkink that would work?