Illumination of Museu da Vila de Cascais
In July of this year, the Museu da Vila de Cascais opened it’s doors. Artica was responsible for the design and implementation of the entire illumination system.
We wanted to create something unique for the museum, something that could really engage the visitors. The interaction was based in smooth color changes while visitors approach the showcases.
After ordering a heap load of Arduinos and addressable LED strips, our next step was to coordinate with the responsible architects to select lamp models for the ceiling and volumetric levels for the text light projectors.
We had to plan out the entire electrical and network layout of each component based on the restructured blueprints and coordinate with the electrical installation team on site to prepare the building for the required cables.
The Mains power distribution used was the following:
Every night, the museum lights (Lights + Differential Switch) can be turned off, keeping the router always on, only by toggling the specific switches on the Main Switchboard.
The Network scheme implemented was the following:
As you can see all the systems are ethernet based, and the control is centralized on the server. Nevertheless on each showcase the firmware has a fail system operation mode. If for some reason the Ethernet communication fails it will try to reconnect, but it will work autonomously with a predefined configuration, keeping the sensing capability and changing the environment lights.
There are three different Arduino-based setups in the museum. In each one we had to take some precautions on the initial development for the specific application. This issues will be detailed next.
Ceiling environment and text lights
These control the lights for the environment and the wall text inscriptions. The lights chosen were Megaman™ ref ER1708d coolwhite. These were the best lights we could find from several tests performed and the Museum Architect loved it. The light feels like a true halogen lamp and had a beautiful design and brightness.
The scheme we decided to implement was to have an Arduino Ethernet serving as a master broadcasting thru a digital pin to three Motoruinos boards. Each one is coupled directly to the power shield from Sparkfun controlling 6 PWM Lines at 12V. Having that way 18 independent controlled lines for the ceiling lights for each DIMM Control.
All power supplies were PC ATX type. Plugged directly to the PowerShield, the power shield has a diode to the Vin, supplying the Arduino with the necessary voltage. The first hacking made was, on the ATX PSU, cutting the 5V wires and connecting them to the 12V bus so that we had 6 PWM 12V channels on the Power Shield. The Power Shield by default has 3 PWM at 5V and 3 PWM at 12V.
We also had to add a flyback 30V 1Amp Schottky diode on each output (you can use any fast recovery diode as long as it supports the double of the voltage). Sparkfun should supply them on the board, but, unfortunately, they don’t.
The major issue, or the more delicate we had to deal with was one we had during tests, we detected some “cross talk” on the Power Shield itself. In some situations, the PWM of one channel was noticed on adjacent channels. It was solved changing the PWM frequency so that it was not possible to notice the interference on the different channels, since they work at totally different frequencies.
Initially we also thought using I2C/TWI protocol between the three Motoruinos and the Ethernet master, but, after the crosstalk problem we decided not to take any risks and change to digital output pin broadcasting with SoftwareSerial. The drive of a digital pin is much stronger than an open collector scheme with two 10k pull-up resistors.
We tested at full charge 90% Duty Cycle (Situation where the MOSFET heats the most, because it still has to pass the resistive zone). We tested during full work day and all the Mosfet were only warm. Still we chose to add some heatsink just to be sure, but only on the ones we felt a little warmer.
The final question has to do with the PWM minimum value. On the datasheet of the lamp we have a minimum dimming value of 10%. We’ve noticed that at this level of dimming it was a little more tricky to have the same light intensity with different PWM. This was adjusted by software.
Technical Showcase Area
The setup used here is very similar to the one used above. We also changed the ATC PSU for the 12V supply, applied the Schottky diodes on the output and changed the PWM frequencies to reduce the Power Shield crosstalk effect. The major difference is that we used the Power shield directly coupled into the Arduino Ethernet Shield. This option brings a problem. The last 2 PWM channels cannot be used since the Arduino Ethernet use them as SPI bus with the Ethernet Chip. The hacking was easy, we cut the shield pins on the last two PWM pins (IO10 and IO11), that way it will not interfere with anything.
In the showcase, we only need 4 PWM outputs: 3PWM for RGB 12V LED stripe and 1PWM for the spotlight projectors.
An adjustable box was developed to accomodate and adjust the PIR sensor a 100uF cap. The box was placed on the footer and directly connected using a CAT5e cable to the Arduino digital input.
Crown Molding Area
All the electronics would be placed as close as possible from the 2m Addressable LED Stripes. This had to be supplied each 1m. We used an industrial 5V power supply for each 4m. This power supply also feeds the Arduino Mega, with the ethernet shield thru the Led strip. The Arduino Mega had to be used since the maximum crown molding length was about 10m, it means that the led stripe have 144 LEDs per meter with 24bits resolution, so if you have 10m you will need ~4k of RAM minimum to address all the stripe. It was impossible with the Arduino Ethernet, and Mega have 8k of SRAM. The Mega with the ethernet option was the best solution.
The electric setup implemented was to add a Power Supply each 4m and bypass the 5V supply each 1m using an external cable. The Arduino Mega is connected on one end of the stripe on the Data Out, 5V and GND. An important issue is a 470ohm 1/4W resistor between the Arduino and the Led Stripe must be added to protect the Ledstripe. All the stripe length is then daisy chained with Datalink, 5V and GND until the end.
We were quite impressed with the resolution and speed of update of the stripe. It is quite amazing to see it working and the effect was brilliant.
The only cables we had to pass into the Crown Molding, was a Power Mains Cable (220V) and a CAT5e Ethernet Cable. The Power Supply plus the Arduino Mega with the ethernet shield would be placed inside the Crown Molding.
By the way, a mention must be made to the Wago Lever Nuts, since these little guys speed up the work and are very easy to work with.
Other things worth noting include the design and CNC milling of the protection boxes for the proximity sensors. Whenever a person approaches the showcase, a signal is sent to an Arduino.
We also had to prepare all the small projector that light up the contents of the showcases, secure them to metal structures, weld their electric connections and encase them in custom protective casings that narrow their focus points. We used our 3D printers for those casings.
We prepared a rack cabinet holding the control units, server, debug VGA monitor and router that powers the entire system and later transported it to the backstage of the museum.
The control system contains different components working together to create an interactive environment which is consistent through the whole museum.
Each showcase with objects being displayed has custom lighting (RGB colors) and they all react to visitors approaching by changing into custom colors. They also have light beams aimed at the objects on display, pulling the viewer’s attention to those areas.
All of the ceiling lights can change the power dynamically, dimming each section up or down to highlight the desired areas.
The environment color of each room is also customizable (RGB colors). Making subtle adjustments to the room and showcase colors together we create a “breathing” effect, making it look as if the room is alive.
Even though all the modules can work independently, they are also be controlled by a central server. This server makes sure all the elements are in sync so the environment is consistent throughout the whole space. It can also be used to communicate with other parts of the installation, making the system even more dynamic.
There is also a web interface that can be used to control all of the elements directly, overriding the normally programmed behavior.
To provide usage statistics of space we installed 4 Axis IP cameras, each one covering a room of the museum. Using the inputs of these cameras, computer vision algorithms and custom nodes for the Bonsai open source tool we created a software to render real-time heat maps of the entire museum, keep track of the number of blobs in each area and count entrances and exits.