Ahaar Bhool – Light Therapy Glasses

Ahaar Bhool – Inside While Outside, Springtime, Forgettingful Blossomness

The use of closed-eye meditation and light-color therapy have been known to allow people to access alternate realities generated by our imaginative subconscious. Ahaar Bhool allows user to engage in guided or self-led meditations in a manner that is seamless with the rest of their lives.

Ahaar Bhool contains two neopixels, softly diffused and resting above each eye. The LEDs flash to a user-set tempo, initiating a dreamlike state in the brain. The complex environments generated within the mind’s eye are important to explore if any for of creation is intended. One can visualize and enter chambers of the self, working towards improvement or deeper understanding. Everyone deserves to take a moment to experience, explore, and grow with their eyes closed.

Materials

  • Old Sunglasses
  • Furniture Cushioning Foam
  • Arduinio Micro board
  • Two Neopixel LEDs
  • Three Analog Knob Potentiometers
  • One Container for Arduino Board
    • Altoids box works well
  • Micro USB Cable
  • Portable phone charger

 

Process of Construction

 

  1. Cut and glue thin pieces of foam to cover the inside of your old sunglasses.
  2. To keep the visor and LEDs at a distance from the face cut along this printable stencil on a block of cushioning foam that is typically used for furniture. (link to cushion stencil)
    1. Use a long blade or hotknife to carve out the contours of the face, specifically two semicircular negative spaces for the eyes and LEDs and one conical negative space for the nose. (need pictures)
    2. Poke a hole in the foam space above the each eye for the wires of the Neopixel to escape
  3. Solder individual connection wires to two Neopixel LEDs.
  4. Place the Neopixel LEDs deep in the negative space above each eye and thread the wires out the back of the foam.
  5. Adhere the foam to the visor with the wires routed out the side.
  6. Slip a sleeve over these wires to protect them as they exit the visor and enter the box containing the circuitry.
  7. Find or fabricate a container for your Arduino boards and controls.
  8. Mount the potentiometers and buttons to the top of your container.
    1. Thread your wires into the box containing your Arduino board.
  9. Connect the Neopixels to your Arduino board.
  10. Connect two knob-based potentiometers and one button input to your Arduino board.
  11. Close and seal your container.
  12. Upload this code:

// you need FastLED LIBRARY downloaded!!!

#include <FastLED.h>

 

#define LED1_PIN 6 // pin for LED over left eye
#define LED2_PIN 8 // pin for LED over right eye
#define NUM_LEDS 2
#define COLOR_ORDER RGB
#define LED_TYPE WS2812

#define MAX_BRIGHTNESS 164 // full power, can be gnarly
#define MIN_BRIGHTNESS 5 // set to a minimum

const int tempoInPin = A0; // analog pin for tempo controlling pot
const int brightnessInPin = A1; // analog pin for brightnessssssssss
const int colorInPin = A3; // analog pin for color controlling pot, on A3 cuz soldering is not always chill

struct CRGB leds[NUM_LEDS];

void setup() {
delay(3000); // delaying the signal helps with bug testing and reposniveness

LEDS.addLeds<LED_TYPE, LED1_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
FastLED.setBrightness(MAX_BRIGHTNESS);
LEDS.addLeds<LED_TYPE, LED2_PIN, COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);
FastLED.setBrightness(MAX_BRIGHTNESS);
}

void loop() {

int mappedValue = map(analogRead(brightnessInPin), 0, 1023, 0, 255); //read brightness from pot and write to
FastLED.setBrightness(constrain(mappedValue, MIN_BRIGHTNESS, MAX_BRIGHTNESS));

// read the analog speed value:
// map it to a value used in delay();
int delayValue = map(analogRead(tempoInPin), 0, 1023, 30, 500);

int colorValue;

// LED variable effects
for(int i = 0; i < NUM_LEDS; i++) {
colorValue = map(analogRead(colorInPin), 0, 1023, 0, 255);
// set the i’th led to the chosen colour
leds[i] = CHSV(colorValue, 255, 255);
// show leds
FastLED.show();
// now that leds have been shown, reset the i’th led to black
leds[i] = CRGB::Black;
// wait before we loop around
delay(delayValue);
}
delay(delayValue); // basically the tempo of the whole loop
}

Leave a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s