$lamp Lamp

Copyright Claim

$lamp Lamp

Boost
63
83
7
GIF

Print Profile(1)

All
P1P
P1S
X1
X1 Carbon
X1E
A1

Custom settings per plate
Custom settings per plate
Designer
3.1 h
2 plates
5.0(2)

Open in Bambu Studio
Boost
63
83
7
2
72
31
Released

Description

$lamp Lamp w. touch function

This is a project I had in mind for a while I wanted for my office like a zen garden sort of thing.

The design is meant to be soft on the eyes with different light options.
It is designed to be easy to print and assemble, with no screws or glue required.
The only bit you can't get around is a bit of soldering.
I wrote up a guide to make this possible for every one to make with no special skills required.

The free version comes with 1 color scheme, If you are interested in the commercial license or just want to show support for our work, the 10 color scheme model, buy it here

Happy Printing!

 

Parts:

Tools:

  • Soldering Iron.
  • Drill (3mm/0.12" sorry European :P)
  • Computer to upload code to arduino.
  • Arduino IDE software (can be found in Windows store)

3d printed parts:

  • Frame_body
  • Bottom_body
  • LED_body
  • Clamp_body
  • S Frame

Assembly:

Soldering

Solder a wire going from 5v on the arduino to the 5v on the LED matrix and VCC on the touch sensor.

IMPORTANT! Double check you are using the DIN direction of the Matrix.

Then add a wire going from GND on Arduino to GND on both LED and Touch sensor.

Last you need to add the digital signals.

One going from DIN on LED to PIN D2 on the arduino and another going from the I/O pin on the touch sensor to PIN D3 on the arduino.

And that's it!

 

Picture shows where wires go.

 

 

Lamp Frame

The S Frame will need some drilling to make sure the rods go in perfectly.

After that is done, start inserting the rods into the S frame from the bottom of the frame.

Align the rods in the bottom so you have around 3-4 mm poking out from the S frame.

Then you can attach the LED_body to the bottom of the S frame.

Use a table or any solid plane surface and put the S frame upside down so the acrylic rods are resting on the surface.

Do the last adjustments to the acrylic rods so they are aligned with the bottom of the S frame and then press on the LED_body using the surface.

Now you should have the S frame ready to attach to the frame_body of the lamp.

 

Add the Arduino to the Bottom_body and attach the Clamp_body and use double sticking tape to attach the touch sensor to the front of the frame.

Then put the matrix on top of the Bottom_body.

 

Insert Bottom_body from underneath into the Frame_body.

Take the base of the lamp and attach it to the top, make sure you have the base aligned since is function as support for the LEDs.

 

Programming

Attach the arduino to your computer using a USB and load up the arduino IDE.
Go to tools > port and find the right com port your arduino is connected to (usual it's the first you see) and select it.

Copy and paste the code from underneath into the program and save it.

Press upload.

After code is uploaded the LEDs should start flickering.
Touch button should turn off LEDs.

 

// Code written by Madtrap using fastled lib

// It is written to fit the Slamp Lamp project

// contact: https://makerworld.com/en/u/150513043

#include <FastLED.h>

 

FASTLED_USING_NAMESPACE

 

#define BUTTON_PIN 3

#define DATA_PIN 2

//#define CLK_PIN 4

#define LED_TYPE WS2812B

#define COLOR_ORDER GRB

#define NUM_LEDS 64

CRGB leds[NUM_LEDS];

 

#define BRIGHTNESS 96

#define FRAMES_PER_SECOND 120

 

void setup() {

pinMode(BUTTON_PIN, INPUT);

delay(3000); // 3 second delay for recovery

 

// tell FastLED about the LED strip configuration

FastLED.addLeds<LED_TYPE,DATA_PIN,COLOR_ORDER>(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);

//FastLED.addLeds(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);

 

// set master brightness control

FastLED.setBrightness(BRIGHTNESS);

}

 

// List of patterns to cycle through. Each is defined as a separate function below.

typedef void (*SimplePatternList[])();

SimplePatternList gPatterns = { confetti, off};

 

uint8_t gCurrentPatternNumber = 0; // Index number of which pattern is current

uint8_t gHue = 0; // rotating "base color" used by many of the patterns

 

void loop()

{

// Call the current pattern function once, updating the 'leds' array

gPatterns[gCurrentPatternNumber]();

 

// send the 'leds' array out to the actual LED strip

FastLED.show();

// insert a delay to keep the framerate modest

FastLED.delay(1000/FRAMES_PER_SECOND);

 

// do some periodic updates

EVERY_N_MILLISECONDS( 20 ) { gHue++; } // slowly cycle the "base color" through the rainbow

//EVERY_N_SECONDS( 10 ) { nextPattern(); } // change patterns periodically

 

int buttonState;

buttonState = digitalRead(3);

if (buttonState == HIGH){

nextPattern();

delay(500);

}

 

}

 

#define ARRAY_SIZE(A) (sizeof(A) / sizeof((A)[0]))

 

void nextPattern()

{

{

// add one to the current pattern number, and wrap around at the end

gCurrentPatternNumber = (gCurrentPatternNumber + 1) % ARRAY_SIZE( gPatterns);

}

}

void confetti()

{

// random colored speckles that blink in and fade smoothly

fadeToBlackBy( leds, NUM_LEDS, 10);

int pos = random16(NUM_LEDS);

leds[pos] += CHSV( gHue + random8(64), 200, 255);

}

 

void off()

{

fill_solid( leds, NUM_LEDS, CRGB( 0, 0, 0));

}

Me and my brother spend time on this for our own enjoyment and just want to share our work with the community.

If you like any of our models we would appreciate a comment or upvote on the model you like.
Also, always feel free to contact us if you have any suggestions for new or current models.
If you want to buy us a coffee use our Paypal

Comment & Rating (7)

Please fill in your opinion
(0/5000)

Print Profile
Custom settings per plate
Added negative parts to make cutouts on bottom body arduino holder. This made clearance for the right angle pins I used. Also added part to clamp to hold arduino down tighter. Everything else was printed as supplied. Works great.
(Edited)
The designer has replied
1
Reply
Hi Ben. Thank you for sharing pics. Love seeing our designs being used by other people :) I don't know if it is intentional because of testing you have the touch on the outside of the frame, but you can mount it inside the frame, it will sense your touch through the plastic :) Happy Printing
0
Reply
my Matrix is smaller then the printed body/base. do I have the wrong matrix?
(Edited)
The designer has replied
0
Reply
You are welcome to PM me to help out. first question is, did you get a matrix with 2812b leds with 5050 formfactor?
0
Reply
Replying to @Madtrap :
yes.my Matrix 7.1x7.1 wide
0
Reply
Wow, this looks really cool!
1
Reply
Print Profile
Custom settings per plate
0
Reply
No more

License

This user content is licensed under a Standard Digital File License.

You shall not share, sub-license, sell, rent, host, transfer, or distribute in any way the digital or 3D printed versions of this object, nor any other derivative work of this object in its digital or physical format (including - but not limited to - remixes of this object, and hosting on other digital platforms). The objects may not be used without permission in any way whatsoever in which you charge money, or collect fees.