Portal was my favorite video game growing up – and arguably still is. In particular, I have fond memories of Portal 2 since it introduced a Co-Op mode and I could finally play with my older brother (instead of just watching him). Recently, over winter break, I replayed Portal 2 on my own and fell in love all over again with the storyline, witty jokes, and interactive puzzles. Ultimately, I wanted to bring the iconic Portal 2 character, Wheatly, to life.
Interestingly, I came up with the idea to integrate an Amazon Alexa into a Wheatley Body back in 2017. You can take this questionable plan as proof. However, now armed with 3 years of college and work experience, I felt compelled to revisit this project in a more sophisticated way. Inspired by his expressive blue eye, and Amazon Alexa was the only way to go.
All 3D modeling was done using Fusion 360. The body was mainly comprised of 2 halves which snap together to form an entire sphere. However, due to 3D printing capabilities each half had to be split into 4 parts, making a total of 8 parts for the body casing. Additionally, each eyelid is a separate piece and each one of his antenna are comprised of 6 bodies.
The complete size of the model was calculated backwards and based on the size of the Amazon Alexa. Since the Alexa acted as the eye, all other measurements and dimensions were planned off the eye of the model needing to be of certain dimensions. The final product ended up being 8 inches in diameter, which is pleasingly close to Wheatley’s supposed 9 inch diameter – close enough that it’s practically a life size model!
Behind the “eye compartment,” where the Alexa is placed, is an empty space with multiple holes leading in. This compartment was specially designed and placed to act as servo mounting space and electronic/wire storage. There are two rectangular holes on the side of this compartment, that are used to mount servos and the rest of the access points were used to funnel wires between the arduino and the Alexa.
All hardware parts for this project were 3D printed. As mentioned before, each part was designed with the constraint of fitting within a 5″ x 5″ x 5″ volume due to the capabilities of my home 3D printer. This required splitting most bodies into multiple parts and reconnecting them after they had been printed. Each half of the Wheatley body was comprised of 4 parts that were attached using gorilla glue. Each half was then connected using magnets to allow access for electronic integration. After everything was assembled with proper attachments, The whole body was sanded and painted over. I worked off of Wheatley reference photos to try and achieve an aged and battered look that was true to game aesthetics.
If I were to do this project again, I would take more care to sand and fill holes in the 3D prints before painting to ensure a smooth surface and visible seams only where I intended them to show
The motion of this product was fairly simple, in that it was a simple open and closing mechanism using two servos. The tricky part was ideating ways for the servos to move based off of Alexa’s activity.
My first idea was to tap into the LED circuit within the Alexa itself and use the change in voltage across one of the LED’s to trigger the servo. Unfortunately, after opening the Alexa itself, I found that it was completely made of integrated circuit and therefore difficult to solder onto or modify. Plan 2 was to use a 2K ohm resistor and photo-resistor to sense when the LED lit up.
The first thing I did was play with a bread board and arduino jumpers to test out circuits with the code I wrote and uploaded to the arduino nano. After finding a circuit that worked consistently with the Alexa LED, I stripped all the wires, labeled them, and soldered them in place.
Lastly, I integrated the power cord for the arduino and Alexa into one cable and fed it out the back of the body.