Skip to content
/ 3DPOV Public

Arduino code and other files related to my 3D persistence of vision display

Notifications You must be signed in to change notification settings

mbjd/3DPOV

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

61 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3DPOV

This is the github repo for my 3D persistence of vision display. Here you can find the arduino/teensy source code (./code/), eagle schematic and board files (./Eagle/), and the python program I wrote to simplify the creation of images containing simple shapes (./image_creation/).

Videos

one two

Summary

This was my Matura project (the end of (the equivalent of) high school in Switzerland), and I did most of the work in the second half of 2014. You can find various more detailed reports below, but here's a quick summary:

The very basic idea is this: We have a 2D display and rotate it quickly through the third dimension. By controlling each pixel in a precisely timed way, we can light up a set of points in 3D space, but only at specific times (when the corresponding pixel is physically at the right spot). When this rotation is fast enough, persistence of vision will make it seem like an actual 3D image is continuously displayed.

The display itself consists of 10 LED rows mounted in a double-helix arrangement. Each of them contains 16 RGB LEDs driven by three shift registers, for a total of 480 LEDs or 160 Pixels.

The shift registers are controlled by a Teensy 3.1 microcontroller board using an SPI bus (All 30 shift registers are daisy chained together). The controller is mounted on a wooden disc below the ten LED boards.

All of this is mounted on a 4mm steel shaft, supplied with 3.3V DC using two copper slip rings, and spun up to 60 Hz by a brushed DC motor. A hall sensor and a magnet enable the controller to measure the rotational speed and to adjust its timing, so that the image always stays still despite the speed not being quite constant. The image is updated 100 times per revolution, or 6000 times a second.

Currently there's no way to supply images at runtime, the display has to be stopped so that a new program can be uploaded using the Teensy's USB port.

Various versions of the paper

Original in German

English long version, not quite finished

English short version

Other english stuff

Press etc

Hackaday article

ETHZ D-ITET in German or English

Swiss Youth in Science article

EUCYS 2016 link

Links to discussion

one two three

Photos

Photo of it in action

Photo of it standing still

Me at EUCYS 2016 being super happy

About

Arduino code and other files related to my 3D persistence of vision display

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published