Optical Data Transfer Project At Local School’s Family Science Night


[Dave] wanted to show off a project at his 4th-grade son’s school during their family science night. We haven’t heard of an event like this before but it sounds like a fabulous idea! He had a new laser he wanted to include in the project, and noticed that his son was learning about how ASCII maps letters to binary number when the idea struck. He ended up building an optical data transfer system that demonstrates binary code.

This presents a fantastic learning opportunity as the project invited the school kids to select encoded strips like the ones seen above to form a secret message. The laser is pointed at a photosensor which is being read by a Raspberry Pi board. The Python code looks for a baseline and then records increases and decreases in intensity. Since the translucent tokens have either holes or black lines for 0 and 1 the baseline approach does away with the need to clock in the data. [Dave] reports that everyone who tried out the experiment was fully engaged at the prospect of pushing pieces of tape through the sensor and watching their secret message appear on a monitor.

He was motivated to write about this project after reading about data transfer using an LCD screen and photosensor.

9 thoughts on “Optical Data Transfer Project At Local School’s Family Science Night

  1. Yeah – I’m impressed by this project too. And the kids get to see hands on how encoding works. That’s got to be worth first place. It’s why I say we should be teaching kids how to code. The ability to code brings together disciplines – in mathematics, physics, chemistry, and a whole bunch of other subjects.

  2. I remember programming CNC machines that received their programs by ascii encoded punched tape.

    There were 8 holes in a row for the data bits and a 9th smaller hole which was used to indicate that a byte could be read.

    I think that is the standard way of arranging most flexwriter and other types of punched tape as well.

    It functions in in place of the “baseline” stuff here.

    I remember hooking 9 receiver/transmitter pairs to the parallel port on a Commodore 128 and reading in the ascii letter of a cnc program, years ago.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.