This wall module "SonicMoiré" is designed to be compatible with wikihouses, we intend to use it as a part of the facade.
Its prior purpose was to filter certain frequences out of the noise spectrum and therefore reduce noise exposure within the room or lessen the sound that you hear outside of it. The effects would be best if your whole wall is made of such modules (and also your room would look totally fancy :) ).
This project was part of Multimodal Media Madness 2014, hosted by the
chair for Computer Aided Architectural Design (CAAD) and the Media Computing Group of RWTH Aachen University. For more Smart Skins, please check this page: http://hci.rwth-aachen.de/m3_ss14
The module consists of a frame (if you happen to have a wiki house you can build it into that instead) with two perforated plates on the front end of which one can be shifted against the other one. The different formations the holes build when shifted are supposed to filter certain frequences out of the noise spectrum. This is called Moiré effect, the idea is based on Helmholtz absorbers (perforated plate transducers).
We added some backlight for visual effects. The module looks really hypnotic ;)
This is a bit more work than just a weekend project but we are giving you the software we wrote so you save some time. If you like to make this an even bigger project you can still write your own software.
Wood for frame (1.8 cm wide)
Wood for 2 perforated plates & back plate (2mm)
Finnboard (wood pulp board/cardboard to attach the LEDs to, 2mm, material for lasercutters/models. alternative: thin wood)
Rest piece of wood to cut into 7 little dices (2 x 2 x 1.9 cm)
Arduino SpectrumShield-v14 (Sparkfun)
Slim microphone (jack)
Rasberry Pi B
Micro USB <-> USB cable
Cables to connect the electronics
470 Ohm resistor
9 RGB LEDs WS2812 (or other LEDs that support the Adafruit NeoPixel library we used)
Cables & males to solder the LEDs to (in case you do not use a premade LED strip)
Ultrasonic distance sensor HC-SR04
Small screwable hooks & loops
Household rubber bands
Some thin & quite strong string (yarn will do)
2 Servos Hitech HS 311 (or another model depending on the weight of your wood plate, ours is < 400g)
Matt foil or paper (about 50 x 50 cm)
Paint (we choose black for more contrast)
Tape & liquid glue
DC power supply (6-12 V, 2 A)
In case you go with a 12 V power supply you need a voltage converter to 6 V for the LEDs, servos and sensors.
Shaper (or some alternative)
Lasercutter (or some alternative)
Screwdriver & cordless screwdriver
Soldering iron & accessories (not necessary if you have ready-to-use LED strips)
Step 1: The Frame
In case you do not have a (wiki) house to built in the module yet, like us, or want to build it just for fun & looks, use a frame to build the module into.
We use a frame that you can just plug together and take apart again while nothing is attached yet to make it easier to carry it around. Therefore cut parts with the following measures (using a shaper or whatever you have, look at our pictures for more orientation):
2 x Top/Bottom plate: 28 x 52.5 cm with additions of 15.5 x 5 cm in the middle of the sides minus 3 x 3 cm holes in the middle of the additions 2 cm from the end.
2 x Side plate: 28 x 66.5 cm with holes of 1.9 x 15.5 cm at the ends which are 5 cm from the edges.
4 x U parts with one long side of 10 cm and two sides of 8 cm that are 3 cm wide. For simplicity they do not actually be formed like a U but can have corners.
Plug the parts together with the parts with the long holes at the sides, the other parts as bottom & top and the small U parts to keep them together. The U parts can plug together two of these frames in case you want to expand. In case you are totally sure you want only one module you can of course modify them ;)
Everything fits? Continue!
Note: "right" and "left" in the describtion will now refer to the right and left side of the frame as shown in the picture (seen from the backside of the module as the perforated plates are the front end).
Step 2: The Perforated Plates
Shape plates and perforate them with your shaper or whatever you might have available, we use the layout in the picture. If you like you should be able to use a different layout for the holes than ours without altering the effect as long as your holes are not too large and your holes have different sizes. The front plate should be 56 x 56 cm and the distance to the holes should be 5.5 cm at all sides, the movable smaller plate 51 x 51 cm with just 0.5 cm distance.
Take the frame apart and screw the 4 hooks into the frame, always 2 on the top and right side part of the frame. The hooks should be as near as possible to the long edge of the frame pieces. When you put the frame together again the distance to the nearest other plate should be about 5 cm (the pictures might help).
Screw the larger plate to your frame at the corners, mark in what direction to turn your second plate so that the pattern of the plates are identical. You really want to mark this.
Now add the second plate. Therefore pull the rubber bands through two of the holes in your plate, stick the rest of the band through the resulting loop and hang the plate onto the hooks you scewed into the frame.
Note: Which holes in the plate you need to use depends on your rubber bands. The plate is supposed to hang approximately one row of holes above and right of the pattern of the larger plate when the rubber is in a passive state. Just try some holes and improve until the plate is in the right position.
Step 3: Some Paint
Grab some paint! Black (or an other dark colour) forms a nice contrast to the light inside.
We decided to use spray paint to spread the paint more evenly. If you are more creative, feel free.
Therefore remove the plates from your frame again, apply your paint to the front sides of both perforated plates and wait until it has dried.
Step 4: The Foil/Paper
Now you stick the matt foil or paper to back side of the smaller plate. We use transparent paper from an art supplies shop but any material that scatters light will work.
Cut little holes into your paper so the rubber bands and strings go through and tape the paper to back side of the plate (to the side without colour). The strings will be attached in the next step so have a look at where they should be before.
The LEDs should not be visible as individual LEDs later but more as an overall glow, all due to the paper.
Step 5: The Servos
Screw the metal loops into your frame on the bottom and left side. They are supposed to be in the middle of the plates and just as near to the edge as possible without touching the smaller perforated plate.
For the servo use a splice with just one arm and attach another of your metal loops to its outermost hole.
Now attach the servos to your frame. Cut little dices of wood (about 2 x 2 x 1.9 cm), screw two of them to each servo as shown in the picture. We drilled small holes into them first because our dices would split easily and we had to be a bit more careful.
At the left and bottom side, attach a piece of string to a hole in the middle of your smaller plate and direct its other end through the metal loop. If you want to use yarn as we suggest take several layers of it. One layer might be enough but as all tug is on these pieces of string it is ok to be a bit paranoid.
Screw the servos to the bottom and left of the frame using the attached dices (predrill holes again if needed). The arm of the servos should be on the height of the metal loop and the servos are laying sideway. Then attach the string to the loop at the servo splice. The string has to be as tense as possible when the servo is in its default positions.
You can now start testing the servos with the arduino. If you need help how to connect the servos to your arduino refer to the circuit layout in step 8 (Closing the Box).
Step 6: Microphone & Distance Sensor
Drill a hole into the top end of the outermost perforated plate that is large enough to stick your microphone through. Take care to put the microphone as near to the edge as possible so that it does not touch the second plate.
As our microphone was a bit weak we put an amplifier in between the microphone and the arduino.
We thought it would be nice to have the module interact with people a bit, so we also added an ultrasonic distance sensor. When people come near the module can detect it and do a little show and change the colour of light - well, we are a bit vain. It most certainly adds a bit of entertainment.
Step 7: LEDs & Power Supply
To make the whole thing look really cool, we add backlights. Just 9 LEDs make the module look pretty spectacular in a dark room.
Therefore prepare 3 strips with 3 LEDs in them that later will be connected to form a longer strip. For two of the strips, solder cables of about 14-15 cm length between the LEDs and to the ends. For easier use we added males to both ends. The third strip is prepared similar but with cables & males at only one end, the free end will be the end of the overall strip. Take care if you use the WS2812, they have one edge with the label DI (data in) and three edges with DO (data out). You want to connect a DO edge with the DI edge of the next LED. The last LED on your third strip needs to have its DI edge connected with the LED before and no cable at the DO edges.
To attach the LEDs to the frame prepare 3 long rectangles of finnboard (use a lasercutter or cutter & long ruler, 52,5 x 2 cm). They should vertically fit into your frame so measure first, it is ok if they are 2-3 mm too short.
Tape each LED strip to one of the rectangles starting with the middle LED in the middle of the finnboard. Mark on which sides the DI and DO ends of the LED strips are as you cannot see the bottom side of the LEDs any more.
Attach the remaining wood dices to one end of each LED module using a stapler. The end module of the strips needs its dice on the DO end (picture: number 3), one of the others on the DI (2) end and the remaining one on the DO end (1).
Now screw the LED modules to the top of your frame in equal distances, place them near to the back edge (the one without the plates). Module 1 is left, 2 is in the middle and 3 at the right. If your dices split easily remember to drill into them first.
Connect the modules 1 and 2 at the top and modules 2 and 3 at the bottom. module 1 now should have a free DI end at the bottom which you can connect with your arduino for testing. It needs 5 V & no resistor for the power supply. Note that the data input needs an analog pin and should not be connected directly but with a 470 Ohm resistor in between. If you don't put one in between the first LED in the strip is most likely to collapse. Refer to the circuit layout in step 8 (Closing the Box).
If you want to try the LEDs use the Adafruit Neopixel library, it is pretty easy to understand.
Unfortunately the arduino has no power supply yet. So you need the power supply, connect the arduino GND with the power supply ground and the power with the VIN pin. The circuit layout in step 8 will help you.
Step 8: Closing the Box
Make sure the electronics are connected like on the circuit layout. The power supply might vary depending on your input voltage. It is important to remember though that the power, supplying your sensors, servos and the backlight should not be flowing through the arduino, but that they each get there appropiate voltage (arduino 7-12 V, sensors etc. 6-7 V) from the supply and are attached to the common ground. This is due to the arduino not beeing build to handle currents above 1 Ampere.
Check out the git repository, especially on the raspberry pi: https://github.com/lolchrislol/ThinkingSkins.git
Flash the arduino software /ThinkingSkins / Arduino / src / MainProgramm / MainProgramm.ino
You can then calibrate the servos using the commands absMove(number x, number y) (where x and y are integers between 0 and 180) via serial monitor. Use these commands to find the leftmost, rightmost, lowest and highest and middle position for the second plate. Furthermore find a position in which the plates look as closed as possible and as open possible. You'll have to trial and error through this, but hey, it's moving and you build it yourself. This is fun!
Write down the x and y coordinates for these positions and define them at the top of the arduino program as the constants under Servo calibration. The values that are already there, might not be working properly for you.
Save your file and re-flash the arduino with the saved file.
The next step is to build the software on the raspberry. Change to /ThinkingSkins/RaspberryPiTS and type "sudo ant" to build the software. To run the programm you can type "sudo ant Main". Its recommended to write a script which runs the program at startup.
Now your software is ready to run.
When you have made sure everything works and your module looks a lot like in the pictures you can finally cut a 56 x 56 cm back plate with a notch of 15 x 10 cm at the bottom middle so you can still reach the electronics if needed (ours looks a bit crooked - the only part where we used a regular saw, now you know why). Screw it to back of the frame.
This is kind of a prototype, so feel free to improve it :)
We also added a little video of the SonicMoiré reacting to sound & movement.