View on GitHub

Oculus aethereum

One day I stepped foot into a strange land.. a strange time..

download .ZIPdownload .TGZ

At last my time trans-location side arm was complete! I quickly moved to my bedroom and moved the giant chest of drawers and fired at the large wall it once was previously obstructing... and lept in. I ended up at the 1964 worlds fair--a curious affair filled with technology that seemed like magic to my mind. And that's when a man dressed in a slim black suit, of the finest fabric I had ever laid eyes on handed me a pair of goggles. The ominous glow was unlike anything from my time, or the present one. The man held them firmly in his grasp for a brief moment and uttered, "You must find her," and slowly faded from existence.

preview

Oculus Aethereum

Preview them in action here http://www.youtube.com/watch?v=w8Tyc3dmfSE

Instructions

Annotated Source

http://zeroeth.github.io/oculus_aethereum/docs/oculus_aethereum.ino.html

Nerdy Notes for the Curious

The style of this code is based on a Model/View pattern: The models (another name for classes that deal with data only) take care updating their information, in this case, the wobble or position of rotation of a light segment. The model's don't need to know about how many leds there are in a circle. The Views gather their respective Models and render them to the NeoPixel strands.

This code is object oriented uses Pointers to objects. Read more about the C++ constructors at http://www.learncpp.com/cpp-tutorial/101-constructor-initialization-lists/.

The Spot class has virtual in front of its update() method, this makes sure the proper method is called on its subclasses instead of the original method.

The #IFNDEF SOMETHING_HERE lines you see in the header files solve an annoying situation in C/C++ where including a header in multiple places gives a warning that whatever is in it has been defined twice.