Okay, so last night, after just testing one of the laser modules I had, I decided to try to make a transmitter to send audio over laser light to my "solar cell + Radio Shack amplified speaker" receiver that I was experimenting with earlier. I suppose I could have used my linear current LED modulator, but there were reasons to believe that it wouldn't work all that well. Lasers are inherently nonlinear: they are meant to operate under reasonably narrow ranges of drive current, whereas LEDs are fairly linear over a wide range of drive currents. Thus, linear current drive isn't appropriate for lasers. It would be much better to use pulse-width modulation to simulate AM modulation on a higher frequency carrier.
So, that's what I did.
I took the quickest way out: I built one using a 555 timer. I had previously built a simple AM radio transmitter using a 555 timer, and somewhat unsurprisingly, the exact same circuit can be used to drive a laser. You simply hook a current limiting resistor (150 ohms in my case) and the laser diode to the output at pin 3 of the 555 astable multivibrator, aim it at your solar cell receiver, and.. voila! It works!
Well, it sort of works. The sound quality, like the sound quality of the AM transmitter that I liked to above, leaves something to be desired. It's not unintelligible or anything, it's just not particularly high fidelity. So, rather than shoot a video that demonstrates it, I thought I'd spend some time trying to figure out how to design a system that would work better. Here are some of my basic thoughts:
My input biasing and scaling for the prototype was completely adhoc. I merely injected the voltage directly onto pin 5, without any impedance matching, scaling or biasing. That's mostly because I was pretty sure that even without those things, I'd get some modulation that would be detectable. I was right, but I really should go back and figure out what the right answer is to ensure that I have deep modulation with a typical -1v to 1v, low impedance audio signal (which is what I'm feeding into it).
The AM carrier frequency I picked was selected by just using two resistors (I think 1K) from my junkbox, and then selecting caps to get the frequency of oscillation above the audio frequencies people can hear. I think I ended up with a 0.01 uF cap, which results in a frequency of oscillation of around 46Khz). That seems okay, but on the receive side, we could benefit by some bandpass filters centered around that frequency (this would hopefully decrease the 60 hz buzz I get from flourescent lighting).
I got a few more ideas, but they will have to wait until after breakfast. Oh, and baseball. A double header, A's versus Angels.
Addendum: Okay, before I left, I recorded a quick demonstration to show how it works. It's not bad actually: