3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.

MAKE a VOLUMETRIC PROJECTOR from JUNK

Step 3PROGRAMMING

I realize that I skipped the part of building the machinery.
It's junk, so why would you do it the same way?

This is a short description of the program in english pseudocode:
1.RESET
Is there any useable data in the RAM?
If not, copy the demo animation from the ROM into the RAM.
2.Read the animation frame list and display the next frame.
(Copy the RAM into the LEDs)
exceptions: Frame 00 means go to the last frame, FF means to go the first frame.
3.Wait for sync, then Go to step 2

SYNC interrupt: as above, go to step 2

SERIAL INPUT INTERRUPT:
Just Stores the data in a buffer and continue as before unless it's a RETURN, then obey it.
Data format: 0 thru 9 and A thru F are hex. Usually to be stored in the RAM.
lower case letters are commands...

r -cold restart... copy the demo from ROM into RAM (testing)
a - followed by hex data from 01 to 3F representing frame animate sequence, plus 00 for retain last image and FF for loop
d - followed by one hex byte, frame to be displayed
f - followed by one hex byte, frame to write data to
i - identify active device on RS-232C port, responds with "Q" which arbitrarily means "CUBE" (testing)
HEX DATA - usually represents a new frame of 3D bitmap, conveniently ending each line with a RETURN,
because it contains one 2D level of the 3D bitmap frame. Some commands select frames by the following hex byte.

Many animations, especailly rotating symmetrical objects, can animate in as few as 3 frames, and after the frames are
uploaded, the command "a 01 02 03 00" starts the animation.

The resolution of the Volumetric projector is currently 16x16x16=4096 bits= half a kilobyte,
so about 62 frames of 3D image animation fit in 32K.
Frame zero is divided into the animation sequence storage and the serial data buffer, and a command to
display Frame Zero will be interpreted as "Pause Animation, show current image until further notice"

It's all really as simple as steps 1,2,3 and the software in the ROM is less than 1K, and the remaining ROM space contains
a demo image so that the thing should always work even without being connected to a computer.

A long "3D TV show" could be streamed into it, since it can download one thing and play another at the same time.

All of the animations for this volumetric projector were quickly generated using a program written in BASIC in less than an hour.

Any questions?

« Previous StepDownload PDFView All StepsNext Step »

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
59
Followers
12
Author:VIRON
I'm a figment of my own imagination. ---- To Win the war on Terra Means to END the WORLD. How about a nice game of Chess? ---- I'm chilling, but forgive me for sometimes believing I invented everythi...
more »