Introduction: Laser Communication Device (Arduino Project)

This instructable describes how to make a simple device that transmits text via laser diodes and photo resistors. The attached video describes the process in detail. This is the written version of that.

What you need is:

2x Arduinos, 5x 5 volt 6 mm diameter laser diodes, 5 photo resistors, 5x 1/4 inch diameter 6 inch long acrylic tubing, material for housings (I used two 1x1x6in wax blocks), and computers with supporting software.

Step 1: Housing Construction

To build the housing I used two rectangular blocks of wax, which makes for easy drilling. The material, spacing and sizes are arbitrary. Attached is a PDF of my set up. Note that this is the original design, when I used entire laser pointers instead of laser diodes. The extra 7/16 inch holes drilled in the left block can be ignored if using laser diodes. The acrylic rods are 6 inches long.

If you are using wax like myself, after you drill the 1/4 inch holes you will find that the 1/4 inch diameter rods will have difficulty fitting. To fix this cut an end off an acrylic rod at an angle and make marks for desired depth (roughly 1/2 inch). Then insert with a twist to shave in inside walls of the hole to accommodate the acrylic rods. The tool is shown in the picture above. After doing so the rod should have a snug fit at the end of the shaved length.

Next one block will need to have the laser diodes hot glued in. Make sure that they are pointed in the correct direction, directly out of the holes within the wax block. I did this by pushing an acrylic rod into the hole so that the diode can sit flat on top while the gluing took place.

This last step will then be repeated on the other housing block except using the photo resistors.

Step 2: Wiring

Next the wiring. For the transmitter side each arduino pin will have its own laser diode which will correspond to its own photo resistor. The laser diodes all will share a single ground. Refer to the provided image of the transmitting arduino above. The receiving side is slightly different, where as there is a single power supply rail. After the photo resistors, the wires will be split through a circuit board. Refer to the images provided for details. The only tedious part is making sure that on the wiring is good on the small circuit and that the correct laser pins [8 9 10 11 12] correspond to the receiving arduino pins [A1 A2 A3 A4 A5].

Step 3: Arduino Programing

The programs are provided, but below is how we made it work. Once downloaded onto the arduino boards, open the serial monitor (for both arduinos), type and send your message. The receiving arduino will then write the received message.

Transmitter:

1. Array is declared to serve as a library to reference against later.

2. Waits for user input as a string.

3. Receives input and breaks down the message into each individual character and records them along with the total length.

4. Runs through each individual character until the message length is reached.

1. For each letter, a loop runs through the array until the character entered is equal to the character in the array. 2. The binary values that are associated with the character in the array are saved to a temporary array which is then outputted.

Receiver:

1. Array is declared to serve as a library to reference against later.

2. Waits for laser input.

3.Once laser input is received, a “snapshot” of the active lasers is saved to a temporary array.

4.This temporary array is compared to the reference array created in step 1.

5.Once a match is found, the character associated with that input is displayed

6. This process is repeated until all laser tubes are identified as on. At this point the program acknowledges the end of a transmission and skips a new line.

Step 4: Finished

The device now is complete.

Comments

author
ParthS51 (author)2017-07-03

hi i really like your idea and i am looking forward to build it . can please send the wiring schematic or diagram or a picture of wiring of photo resistors it would help me a bit as I am not able to understand whats the problem with my wiring . thanks

author
MohamedK187 (author)2017-03-14

i really like your job and i'm going to start doing it , it would be so great if you help me by sending me the PDF , i want to subscribe but my country "Algeria" doesn't use master cards or visa cards otherways it's hard to get one -_- , So I'm going to rely only on the video . So thanks alot for the video .

author
MuhanadA (author)2016-12-07

i like it , great job ^^

author
ThomasK19 (author)2016-04-05

This looks awesome - as an art project.

If you really want to make laser communication work, you need work out some resilient error correction along with your transmission. In case you want just one way, you may add some redundancy which can correct single bit flips. But for a really more resilient version you would need a back channel too.

author
AlbertS66 (author)ThomasK192016-12-07

hi sir i was wondering how to add some of the redundancy error correction bits to the device??

author
ThomasK19 (author)AlbertS662016-12-07

The easiest/simplest is to add a parity bit (extra line) that reflects the even/odd number of transferred bits. With 2 extra bits you can calculate a CRC

author

Yes sir, this was purely an eye candy project.

author

This was well done. I love those lasers flashing :-)

author
IsaacPierce (author)2016-04-03

I love it this is really cool!!

About This Instructable

3,944views

25favorites

License:

Bio: I am a University of South Carolina Mechanical Engineering Graduate Student doing ultrasonic wave propagation research in the field of structural heath monitoring. I happen ... More »
More by Mechanical Attraction:Fidget FlyHarvesting Sound Energy From Passing CarsCar anti-sleeping cat lounge device (Arduino project)
Add instructable to: