Frankenturret (Portal 2) With Twitching Legs
by Corroder in Living > Video Games
8053 Views, 104 Favorites, 0 Comments
Frankenturret (Portal 2) With Twitching Legs
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
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
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
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
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
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); }