There are about 660 stars (fiber optic cables) of five sizes (0.84mm, 1.5mm, 2mm, 2.5mm and 3mm) spread over four 12mm plywood boards of 2m x 1.22m.
The stars are divided into six groups, for which each board has two 3V 20mA white LEDs.
These six groups are controlled independently by a $2 arduino mini pro which PWM adjusts the output through a ULN2003. The output is constantly changed by a small program, making for a quite realistic variation in intensity. (The PWM itself adds a nice high frequency twinkling to the mix as well.)
This is the program I run on the arduino: stars.cpp
The fibers are bundled together with a led on two locations per board, so 2 x 4 boards x 6 leds = 48 leds in total.
The bundles are made with off-white painters tape, which has the nice added effect of varying the color of the stars from white to yellow according to their place in the bundle. (When they're a bit further from the led, or more to the outside of the bundle, they get some yellow in them because of the nearby tape.)
I was having a hard time either creating the star field manually, or converting a real starscape. So in the end I wrote a small program to create one for me, using a random distribution around a number of gravity wells of different magnitutes. (Since a true random distribution does not look natural at all.) This is the program: generate_starmap.py
Here you can see the stars twinkling away.
The first video is with a fast shutter speed, which shows the stars the way they actually look. Only you don't see all the stars because of the high shutter speed, and the twinkling is less obvious because of the same reason.
The second video was shot with a lower shutter speed, showing more stars and making the twinkling more visible. But here the light from the stars is more exagerated due to more light reaching the sensor, in addition to some movement from me holding the camera.
created: 2015/12/26 last updated: 2017/11/25