A smart table lamp based on the Death Stranding Odradek device, the lamp consists of a combination of five individual light-emitting blades, each with three degrees of freedom, so you can adjust the angle you need at any time; the internal integration of XIAO nRF52840 Sense Bluetooth master control board and WS2812 phantom light strip, which means you can control it through the cell phone APP to display different colors and brightness.
A monotonous and cluttered desktop always makes it impossible to stay in a good mood, especially after getting a losing match in a game. I would always blame it on my mouse, keyboard, cats or light. In an effort to make the desktop look less monotonous, I decided to do something about it anyway and happened to come across the Death Stranding Desk Lamp shared by Nils Kal, a great model with a mechanical feel and a perfect reproduction of the Odradek device from the Death Stranding games. There's little reason to say no to making such a cool desk lamp. After looking closely at Nils' description and photos, I found that he simply connected a normal monochrome strip and controlled it with a toggle switch, which seemed too monotonous for me. So I decided to replicate the Death Stranding Desk Lamp and improve it by adding more functions and effects so that it can be used in different scenes and atmospheres.
First I will choose aprogrammable color strip to achieve the role of different colors and display effects, WS2812 is a good choice, because the project is less difficult, no need to draw their own PCB files, so you only need to buy theWS2812 strip. For the main controller, I choose Seeed Studio XIAO nRF52840 Sense development board, which is a Bluetooth and on-board IMU and MIC development board, small in size, and powerful.
I was able to train my voice model with TinyML to recognize specific keywords so that I could control the light on/off and the different displays by voice. The light strip and the main control board are the core electronics, and of course, the main body of the lamp cannot be built without 3D printing, I used PLA material to print the whole structure, if you don't have a printer you can also seek help from the Work Shop nearby.
First, we print out all the 3D parts according to the drawing, if you use the same programmable color lights as me, then each blade will have 3 wires (VCC, GND, SIG), andthe original author's parts only reserved 2 wires for the connection hole, at this time you need to download my optimized parts, so as to ensure that all 3 wires can pass through the connection hole smoothly. Of course, you can also choose not to programmable monochrome strips, only need the power to drive.
Once you have all the parts ready, let's take a look at the entire work of working logic and hardware connections, which can help you with debugging and maintenance later.
Hardware PrinciplesFirst of all, the power Pin of the light strip is connected in parallel to the power Pin of the main control board, and the signal Pin is connected to D0-D4 respectively, because XIAO nRF52840 Sense with multiple pin multiplexing function, so we can define D0-D4 for PWM use, and then the TTP223 is connected to the D5 pin, and then read the analog value of the change pin can determine whether the touch input is pressed.
The TTP223 chip needs a 100nF capacitor connected between GND and VCC for adjusting the sensitivity. I used 0.1mm enameled wire for soldering and then used hot melt adhesive for protection and fixing so that the occupied volume can be very small.
Then, according to the size of the 3D printed parts, re-cut and weld the strips to meet the maximum display area, respectively, after welding 5 strips, test all the strips to ensure that all the lights are normal. Note that at this point the strip should have more than 20cm of reserved wire.
Then put them together in picture order
At this point the hardest part of the hardware is done, next, you can play with your kitty, after all, it is so cute.
After the 5 blades are soldered and put together, we will connect the positive and negative terminals together according to the hardware wiring diagram, and then connect the signal lines to the different pins.
Here I will TTP223 touch module input pins through a 0.2mm brass wire connected to the front, and then the output pins connected to the main control board D5 pins, so that you can touch the "pistil" to input touch signals to complete the different functions of the switch.
Once the hardware line is connected, we need to start writing software to inject its soul into it, otherwise, it won't perform any function.
Let's start with the easy part, we use the EDGE IMPUSE platform to train our own TinyML speech recognition model, please register an EDGE IMPUSE account and refer to Marcelo Rovai's excellent tutorial to train your own recognition keywords, I use "Bling Bling I used "Bling Bling" and 2 consecutive ringing finger sounds and normal room background sounds as keywords recognition to train my own AI model, the first training result is not very good, only 60% recognition success rate, this is because I only input 10 data for each tag, Also, the audio data was recorded late at night, so my voice was very small, which caused the model to be very poor. I will spend some time recording more data next, as well as changing the appropriate scenes to improve the accuracy of speech recognition. (I think this part will be updated later, I hope so)
After training a satisfactory model, we can export the model to the Arduino library and use the default classification code in the library to perform the actual accuracy verification and then extract the key functions of the classification output to be used as interrupt input for the main program.
Then we go to the main program, which consists of 3 parts.
● Power on animation
● Touch switch to show different light effects
● Mobile APP remote control
I have finished writing the code (like a crumbling house of cards) You can find the relevant files at the bottom of the article.
Note that in this project, I use 19+19+17+17+17+14=86 lamp beads, each lamp bead normally consumes 20mA, so please prepare at least a 5v 2A power adapter, otherwise, the lamp may not display properly after uploading the program. After uploading the code, please do further testing to make sure the function is available properly.
The function of the program is: when the power is turned on, the lamp will change the rainbow color once, and then keep the cold white always on; when the touch switch is touched, the lamp will continue to display the rainbow color (ideal for bouncing and dancing),.
For Bluetooth remote control function, you can download Bluefruit Connect mobile software for Bluetooth pairing and connection.
Then select neopixel to control the color of individual LEDs, in nodepad you can control the color of all LEDs.
Color picker in the controller option
When everything is verified to be functional, we can put them together, using m3*20mm screws and nuts to fix the base, please refer to the pdf file provided later in the article for detailed assembly documentation.
Then the lamp post is fixed to the body of the lamp and the DC socket is properly soldered.
After completing the above steps, you can fix the lamp on your desktop and start playing with it!
Comments