Set Lego 10351 Christmas Tree Atmosphere

Publié le par illusionrip

Set Lego 10351 Christmas Tree Atmosphere

While waiting for my PCBs to arrive from China, along with some spare parts to repair a few consoles patiently sitting on the shelf, I felt the need to take a break. After several days buried deep in Neo Geo assembly code, my brain was definitely asking for something a bit lighter.

 

So I treated myself to a little moment of relaxation with a LEGO book nook themed around Sherlock Holmes. A nice surprise: the build was enjoyable, the details well thought out, and the whole “Baker Street” vibe really comes through. Definitely more convincing than the Balrog one — which, despite my love for The Lord of the Rings, left me somewhat underwhelmed.

 

On the side, I had also put together a few small PCBs, just enough to solder an LED and a resistor. Nothing too complex, but a great foundation for experimenting with an Arduino Nano. Once everything was assembled, I ended up with a fun little setup, perfect for simple yet visually appealing projects.

 

And here’s the result after assembly:

--------------------------------------------------------------------

En attendant que mes PCB arrivent de Chine, ainsi que quelques pièces de rechange pour réparer des consoles qui patientent sur l’étagère, j’ai ressenti le besoin de faire une pause. Après plusieurs jours plongé dans les méandres de l’assembleur sur Neo Geo, mon cerveau réclamait un peu de légèreté.

 

Je me suis donc offert un petit moment de détente avec un book nook LEGO sur le thème de Sherlock Holmes. Une chouette surprise : le montage est agréable, les détails bien pensés, et l’ambiance “Baker Street” fonctionne à merveille. Bien plus convaincant, en tout cas, que celui du Balrog — qui, malgré mon amour pour Le Seigneur des Anneaux, m’a laissé un peu sur ma faim.

 

À côté de ça, j’avais aussi bricolé quelques petites PCB, juste de quoi souder une LED et une résistance. Rien de bien sorcier, mais une base idéale pour expérimenter avec un Arduino Nano. Une fois le tout assemblé, on obtient un petit montage rigolo, parfait pour des projets simples mais visuellement sympas.

 

Et voilà le résultat après montage :

Set Lego 10351 Christmas Tree Atmosphere

Between the plates that enclose the diorama and the set itself, there’s quite a bit of room inside — just enough to discreetly fit a small Arduino Nano.

 

I used pins 9, 10, and 11, which support PWM signals — perfect for making LEDs flicker realistically. And that’s exactly what I needed to bring Sherlock’s fireplace to life. A warm, flickering red-orange glow, just like a real fire — it completely transforms the atmosphere.

--------------------------------------------------------

 

Entre les plaques qui ferment le diorama et le décor lui-même, il reste pas mal de place à l’intérieur. Juste ce qu’il faut pour y loger discrètement un petit Arduino Nano.

 

J’ai utilisé les sorties 9, 10 et 11, qui permettent de gérer des signaux PWM — parfait pour faire scintiller des LEDs de manière réaliste. Et justement, j’en avais besoin pour animer la cheminée du salon de Sherlock. Une lueur rouge-orangée, vacillante comme un vrai feu de bois, ça change tout à l’ambiance.

Set Lego 10351 Christmas Tree Atmosphere
Set Lego 10351 Christmas Tree Atmosphere
Set Lego 10351 Christmas Tree Atmosphere
Set Lego 10351 Christmas Tree Atmosphere

I also had a lot of fun working on the little lampposts framing the doors. Using my PCBs here was out of the question — they were far too bulky for such delicate elements.

 

So I went with a more intricate solution: soldering 0402-sized LEDs. For those unfamiliar, they’re tiny… really tiny. I added a 270-ohm resistor and soldered the wires directly onto them.

 

Then came the precision work: I had to drill into the LEGO pieces to discreetly route the cables inside, making sure no wires would be visible once everything was in place. It took some effort, but the result was absolutely worth it.

--------------------------------------------------------

Je me suis bien amusé aussi avec les petits lampadaires qui encadrent les portes. Là, impossible d’utiliser mes PCB — trop encombrantes pour ces éléments tout en finesse.

 

J’ai donc opté pour une solution plus délicate : souder des LEDs en format 0402. Pour ceux qui ne connaissent pas, c’est minuscule… vraiment minuscule. J’y ai ajouté une résistance de 270 ohms, puis j’ai soudé directement les fils dessus.

 

Ensuite, il a fallu jouer du foret : j’ai percé les pièces LEGO pour faire passer discrètement les câbles à l’intérieur, de manière à ce qu’aucun fil ne soit visible une fois tout en place. Le résultat en valait largement la peine.

Set Lego 10351 Christmas Tree Atmosphere
Set Lego 10351 Christmas Tree Atmosphere
Set Lego 10351 Christmas Tree Atmosphere

Once the code was done (I’ll share it below in case it’s useful to anyone) and everything was properly soldered, it was time for the most satisfying step: testing.

 

That moment when you plug in the power, hold your breath just a little… and then, one by one, the LEDs light up, the fireplace starts to flicker, and the lampposts glow with a soft, warm light. Pure magic.

-----------------------------------------------

Une fois le code terminé (je vous le partage ci-dessous, si jamais ça peut vous être utile), et tout bien soudé, il ne restait plus qu’à passer à l’étape la plus satisfaisante : le test.

 

Ce moment où tu branches l’alimentation, où tu retiens un peu ton souffle… et où, petit à petit, les LEDs s’illuminent, la cheminée commence à scintiller, et les lampadaires diffusent leur douce lumière tamisée. Magique.

 

// Déclaration des broches PWM
const int led1Pin = 9; // appartement
const int led2Pin = 10; // lampadaire porte
const int led3Pin = 11; // cheminée
 
// Variables de brightness et de fade pour chaque LED
int brightness1 = 220; // luminosité initiale LED1
int fadeAmount1 = 5; // pas de variation pour LED1
int brightness2 = 10; // luminosité initiale LED2
int fadeAmount2 = 5; // pas de variation pour LED2
int brightness3 = 10; // luminosité initiale LED3
int fadeAmount3 = 5; // pas de variation pour LED3
 
// Intervalles (ms) pour chaque LED
const unsigned long interval1 = 30; // rythme LED1 (appartement)
const unsigned long interval2 = 15; // rythme LED2 (lampadaire porte)
const unsigned long interval3 = 1; // rythme LED3 (cheminée)
 
// Plage de fade auto-définie (min/max) pour chaque LED
const int min1 = 0;
const int max1 = 30;
const int min2 = 50;
const int max2 = 150;
const int min3 = 0;
const int max3 = 150;
 
// Variables pour mémoriser la dernière mise à jour
unsigned long previousMillis1 = 0;
unsigned long previousMillis2 = 0;
unsigned long previousMillis3 = 0;
 
void setup() {
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
}
 
void loop() {
unsigned long currentMillis = millis();
 
// ┌────────── LED 1 (appartement) ──────────┐
if (currentMillis - previousMillis1 >= interval1) {
previousMillis1 = currentMillis;
// on écrit la luminosité actuelle
analogWrite(led1Pin, brightness1);
// on augmente ou diminue la luminosité
brightness1 += fadeAmount1;
// si on atteint les bornes, on inverse le sens du fade
if (brightness1 <= min1 || brightness1 >= max1) {
fadeAmount1 = -fadeAmount1;
}
}
// └─────────────────────────────────────────┘
 
// ┌────────── LED 2 (lampadaire porte) ──────────┐
if (currentMillis - previousMillis2 >= interval2) {
previousMillis2 = currentMillis;
analogWrite(led2Pin, brightness2);
brightness2 += fadeAmount2;
if (brightness2 <= min2 || brightness2 >= max2) {
fadeAmount2 = -fadeAmount2;
}
}
// └───────────────────────────────────────────────┘
 
// ┌────────── LED 3 (cheminée) ──────────┐
if (currentMillis - previousMillis3 >= interval3) {
previousMillis3 = currentMillis;
analogWrite(led3Pin, brightness3);
brightness3 += fadeAmount3;
if (brightness3 <= min3 || brightness3 >= max3) {
fadeAmount3 = -fadeAmount3;
}
}
// └──────────────────────────────────────┘
 
}
Set Lego 10351 Christmas Tree Atmosphere
Set Lego 10351 Christmas Tree Atmosphere
Set Lego 10351 Christmas Tree Atmosphere
Pour être informé des derniers articles, inscrivez vous :
Commenter cet article