A friend of mine is a Harry Potter fan. So when her birthday approached I've decided I'll gift her something special. I took a Raspberry Pi 3 B+, a Skywriter HAT for gesture control, an old 17” LCD monitor and some cables and set to work. There's a Linux software called "MagicMirror 2" that does all of the work so I only had to deal with the hardware for now. The screen had an 1280x1024px resolution and it came from my father's old office PC that he discarded when he retired. Since it was gathering dust I thought this project might make good use of this screen.
The Raspberry Pi 3 B+ had a 16GB MicroSD cart and I've installed Raspbian on it with a standard desktop booting with autologin. Installing MagicMirror2 was simple. I've bought some wood to create a frame. Several types of screws, glue, hinges and a foam-like sheet of white matte plastic, about 3mm thin, that was easy to cut. Two meters tall. The two-way acrylic mirror I've bought from eBay from a Chinese seller.
I've stripped the screen of all the plastic parts, unscrewed the stand and cleaned the remaining parts with medicinal alcohol. Next I drew up some plans on my Sony DPT-RP1 eReader to better guide me in what I was doing and to make sure that all the parts would fit perfectly when assembled. I had to know where and how to cut the wood and how to superimpose a case in such a way that it would both look nice but also be study enough to sustain the weight of the monitor.
Below are the preliminary schematics I've made. The initial plan was to ad a Touch PHAT for her to be able to switch between screens and/or start playing music; or browse through RSS feed and e-mails. Then I've decided that I can use a Sckywriter HAT that is a gesture-based controller. You swipe in front of it and it performs actins. You make a spiral in the air in front of it and it does something. You touch the enclosure it's sealed into and it registers the tap or double-tap. It was perfect because this could be hidden behind the plastic cover practically anywhere, as long as there were at most 5 milmeteres thickness between the outer surface of the enclosure and the surface of the Surface HAT.
The wood-cutting part was the hardest. Although the wood was pine and therefore soft, cutting it and assembling a frame took up most of my time. After fixing everything withscrews and mounting the screen inside the frame I've reinforced the wood with glue and hinges and sealed the outer edges of the screen inside it with the silicon glue gun. I've dug a place for the Skywriter HAT in the wood, below the lower part of the screen; just enough so it could fit in there and let a GPIO cable go through. I've actually decided to build a second frame because I was afraid the first one was not sturdy enough. The second frame was there more to hold the lower part of the first frame and support most of the weight of the monitor. Cutting and glueing and fixing everything together took me almost two days but in the end the screen was firmly fixed in the wooden frame and the frame was solid enough to hold it.
Since I've abandoned the idea of adding a Touch PHAT and a Vu-Meter I had a more simplistic design in the end.
After fixing and glueing in the Skywriter HAT I've had to make sure that no light gets in the case from the outside. If light gets in the two-way mirror won't diplay clear text. I'be painted all iner LEDs with black acrylic paint, glued every small opening in the frame, took a roll of paper adhesive tape and applied it carefully over it. The I've painted that tape black with a magic marker and acrylic paint.
After measuring the screen width and height I've cut a rectangle just 3mm smaller than those measurements into the white plastic that was to be the cover. Polished the inner edges of the rectangle with sand paper until they fit perfectly.
I've used the glue gun again to fix the screen into this frame. The rest of the white plastic was to be cut and folded around the back of the monitor. Luckily this foam-like plastic was easy to cut and shape. I've used a leather tool to make grooves into it so it could easily be folded at the edges.
I got a plastic Raspberry Pi case for the 3 B+ and installed the SBC inside. Then glued that case to the inside of the frame at the back of the monitor. A GPIO cable inserted in the frame made the connection between the Skywriter HAT and the GPIO pins of the Raspberry Pi. An USB extender cable was connected to one of the four USB ports and I cut a hole in the frame and white plastic case so that she would have the option to attach external storage devices or USB keyboards.
Using the glue gun and a lot of glue I've fixed any loose cables and made a groove in the wooden frame for the power cables going outside.
I've searched the web for Harry Potter fonts so i could use them in the CSS files of the MagicMirror2 software then started working on the front and back sides of the white enclosure. Glued everything together using the glue gun. Right where the Skywriter HAT for gesture controle was I've put a triangle in a circle sticker, some Harry Potter refference to I-don't-know-what but a good marker for the zone that accepted taps and gestures made at a 10cm distance.
The protective plastic on the mirror came off last. Further sealed the grooves between this and the plastic frame with white duct tape.
Software installation was easy as most of the functions I needed were already activated in MagicMirror2: e-mail display, weather display, date, clock. Added a few Harry Potter RSS forum feeds, a couple of local RSS news feeds. These were to be displayed at the bottom. Also added some funny messages to be randomply displayed in the lower half of the screen: "Hi there muggles", "A muggle on the streets, a wizard in the sheets" and so on.
After testing everything I've added two LED strips on the sides of the Magic Mirror, pointing 45 degrees towards the wall it would be hanged onto. This was so it woud look nice and bright at night. The LED strips were powered by the Raspberry's USB ports. Initially I wanted to add four such white LED strips but the Pi only uses 5 volts and four powerful LED strips were draining too much power. Two were just right.
I've used some of the TTF fonts of the Harry Potter-themed variety to change how the text looked on the screen.
Configured the gesture HAT to react to some types of gestures and display YouTube movie trailers on request, change the RSS feeds, scroll e-mail messages or show Facebook and Twitter notifications.
The final build looked something like this:
Here are some videos of it in action: