Frankenturret (Portal 2) With Twitching Legs

by Corroder in Living > Video Games

8053 Views, 104 Favorites, 0 Comments

Frankenturret (Portal 2) With Twitching Legs

7158857.jpg

When I played Portal 2 I was so thrilled how cute and evil
(and simply awesome) everything is that I decited to build something from that game.

my favorite thing in the game:
The Frankenturret

it´s a mix of a cube and two sentry turret.

here is a video of the finished product where you can see the legs twitch

my original idea was to make a smaller version of this cute things and to make it walk by itselfe like they do in the game. but I had to cancel that idea becuase I needed too powerfull servos and the servos are pretty much in the middle of the cube. the angle is the problem. a push from the servos would push the turret not forward/ahead but upwards and than it falls backwards.

so I decided to make the legs twitch like they do when they lay on there backs

Sketch

6839995.jpg
6840019.jpg

for the sketch I used the Portal 2 Authoring Tools (you can download that on steam)

with this tool you can view the 3D models from the game and make them move the way you want.

thsi is very helpfull for making a sketch.

I scrolled the frankenturrent on the screen as big as I wantedt it to be for my model (the measures of my frankenturrent are about 25x23x16 cm). after that I put a piece of paper on the screen and traced the whole thing.

this is the only sketch I needed

The Maincube

6866051.jpg

the maincube is made from cut out PVC foam boards that I glued together with hotglue.

I also used the PVC boards to make the back of the turrets heads

this stuff is pretty easy to handl. you can cut it with a saw or a knief and if you heat it up it becomes flexible.

All the White Parts

6918210.jpg
6868058.jpg
6877584.jpg
6902628.jpg
P1180693.JPG
6902642.jpg

I modeled the turret heads, the edges and the legs with wax. I made a mold from silicon and casted the heads, edges and legs with smooth cast 65D.

castign with this is pretty simple. you just have to mix the equal amounts of part A and B of the smooth cast together and pour this in the mold and slew it. the smooth cast will slowly become sticky and the layers of this stuff become thicker and thicker if you keep slewing. in the curing process the smooth cast will become white. (sorry, it is very hard for me to discribe in english. I hope I described it understandable) you can see how I cast things with smooth cast 65D in this video (the casting starts at 4:46)

everything is polished to make it look nice.

the edges where pretty hard to put on the cube. because they are handmade they aren´t symmetrically perfect and I needed alot of work to make them fit right to the cube.

this was pretty much the hardes part of the making of the frankenturret. if someone has a printable 3d model of those edges and is so kind to share, please contact me. this would make a rebuild ( a friend want´s to have one too) way easier

a simple LED circuit lights the eyes up

Textures

wheatley3 9x13 .jpg
7018332.jpg
7121761.jpg

the textures are all screenshots from the portal 2 authoring tools I mentioned before. I printed them on photo paper and glued them to the franken turret

Make the Legs Move

7156527.jpg
DSC00032.JPG

the legs move with an Arduino and 2 servos.

a friend helped me write a simple code for the servos and he soldered something he calls a shield. I thing it was for the powering of the servos. because I didn´t want some cable come out of the frankenturret. I wanted it to be powered by a batterie I can hide in the frankenturret

here is a testvideo showing the servos move servo test

they actually move like in the game, it´s not random

the code:


#include
Servo ServoLinks; Servo ServoRechts;

int AusgangPosition = 10; int EndPosition = 70;

void setup() { ServoLinks.attach(6); // Linker Servo an Pin 9 GelbesKabel ServoRechts.attach(7); // Rechter Servo an Pin 10 GelbesKabel

ServoLinks.write(AusgangPosition); ServoRechts.write(AusgangPosition); }

void loop() { ServoLinks.write(EndPosition); delay(75); ServoLinks.write(AusgangPosition); delay(300); ServoRechts.write(AusgangPosition); delay(75); ServoRechts.write(EndPosition); delay(500); ServoLinks.write(EndPosition); ServoRechts.write(AusgangPosition); delay(75); ServoLinks.write(AusgangPosition); ServoRechts.write(EndPosition); delay(500); ServoLinks.write(EndPosition); ServoRechts.write(AusgangPosition); delay(75); ServoLinks.write(AusgangPosition); ServoRechts.write(EndPosition); delay(1000); ServoRechts.write(AusgangPosition); delay(75); ServoRechts.write(EndPosition); delay(300); ServoLinks.write(EndPosition); delay(75); ServoLinks.write(AusgangPosition); delay(300); ServoRechts.write(AusgangPosition); delay(75); ServoRechts.write(EndPosition); delay(2000); ServoLinks.write(EndPosition); delay(75); ServoLinks.write(AusgangPosition); delay(100); ServoRechts.write(AusgangPosition); delay(75); ServoRechts.write(EndPosition); delay(100); ServoLinks.write(EndPosition); delay(75); ServoLinks.write(AusgangPosition); delay(100); ServoRechts.write(AusgangPosition); delay(75); ServoRechts.write(EndPosition); delay(100); ServoLinks.write(EndPosition); delay(75); ServoLinks.write(AusgangPosition); delay(100); ServoRechts.write(AusgangPosition); delay(75); ServoRechts.write(EndPosition); delay(100); ServoLinks.write(EndPosition); delay(75); ServoLinks.write(AusgangPosition); delay(100); ServoRechts.write(AusgangPosition); delay(75); ServoRechts.write(EndPosition); delay(1000); }