Laura: Emotional Compass Lamp

by tittiamo68 in Circuits > Microcontrollers

2514 Views, 37 Favorites, 0 Comments

Laura: Emotional Compass Lamp

20170512_162233 - Copia.jpg

Laura is a "counseling" who is helping me to find myself and to understand where I want to go.

For his great help, I wanted to give him a present that represents the work we are doing. The inspiration came from the need to find my street, and not get lost in the various paths that life presents you. From this, I have devised a "compass / lamp" that, in addition to helping you keep the "direction", illuminates the path.

Components

The Compass

rosa.jpg
giphy.gif
P5120009.jpg
P5120010.jpg
P5120011.jpg
P5120012.jpg
P5120013.jpg
P5120001.jpg
P5120002.jpg
P5120003.jpg
P5120005.jpg
P5120006.jpg

The "compass" does not have cardinal points, because the "right" direction, you have to decide for yourself! She tells you only if you're following the path that you have chosen.

By turning the lamp, you change color by giving different emotions each time, and if for some reason you stop, you can activate the "rainbow" cycle, a continuous series of color shades of red, blue, and green.

The Electronic Construction

Laura Schema.jpg
Laura_bb.jpg
pcb.jpg
Matrix.jpg

The electronic construction is very simple, Arduino, Led Neopixel matrix, magnetometer and a switch.

The magnetometer (HMC5883), connected to the Arduino pin A4 and A5 (Protocol I2c), through the "Adafruit_HMC5883_U.h" library, provides the magnetic intensity of the xy axes, and with the formula headingyx = atan2 (event.magnetic.x, event .magnetic.y) provides the angle of declination. The Neopixel Led, connected to pin 9, light up in a different color, depending on the angle of declination. The switch, connected to pin 8, using the internal pull-up, allows the lamp to change program type (Compass - Rainbow). Lamp construction

Lamp Construction

P5020008.jpg
P5020010.jpg
P5020011.jpg
P5020012.jpg
P5020013.jpg
P5020015.jpg
P5290014.jpg
P5290018.jpg
P5290020.jpg

The hardest part for me was to build the lamp box, the base is a box made of plywood, while the shell is made of opal plexiglass square, glued with cyanoacrylate, to have more portability, I Also added a "Power Bank" battery for mobile phones.

Arduino Code

Code:https://create.arduino.cc/editor/Tittiamo/13e47f00...

Arduino Libraries:

Most of the code was taken from the examples of the libraries, while the heart of the color change of the compass is:

int headingDegreesyx = headingyx * 180/M_PI;  
if (headingDegreesyx >= 0 && headingDegreesyx<90) { ResultR = map(headingDegreesyx,0,90,0,255); ResultG = map(headingDegreesyx,0,90,255,0); ResultB = 0; } else if (headingDegreesyx >= 90 && headingDegreesyx<180) { ResultR = map(headingDegreesyx, 90, 180, 255, 0); ResultG = 0; ResultB = map(headingDegreesyx,90,180,0,255); } else if (headingDegreesyx >= 180 && headingDegreesyx< 270) { ResultR = map(headingDegreesyx,180,270,0,255); ResultG = 0; ResultB = map(headingDegreesyx,180,270,255,0); } else if (headingDegreesyx >= 270 && headingDegreesyx<=360) { ResultR = map(headingDegreesyx,270,360,255,0); ResultG = map(headingDegreesyx,270,360,0,255); ResultB = 0; }

Every 90 degrees, the 3 colors, red, green, and blue, behave differently, in proportion to the magnetic declination, the first passes from 0 to the highest brightness map(headingDegreesyx, 0,90,0,255); , the second, from maximum brightness to 0 map(headingDegreesyx,0,90,255,0); while the third is off.
The next 90 degrees, the one that was off, ranges from 0 to 255, the one at 255 goes to 0 and the other is off, etc. The rainbow cycle was taken from: https://www.tweaking4all.com/hardware/arduino/adr... which I also used in the "Bright Ball IoT"