S.E.R.G.E.Y (V.3)
Welcome!
Today we will be upgrading SERGEY the robotic soldier. If you don't know who SERGEY is you can take a look at the V.1 tutorial here. The V.1 worked, but not as well as I wanted it to. So today I am going to show how to build the new and improved SERGEY, along with a routine to bring him to life.
This V.3 version of SERGEY consist of a stable base, an upgraded torso mechanism, a removable torso, a moving jaw, upgraded arms with more degrees of freedom, and a better routine with cool LED explosion effects.
Please note that you do not need to have V.1 SERGEY or any of his parts mentioned in that tutorial for this version (V.3) (Although you may need to reference step 13 for creating the legs, but the materials need are listed below). However you will need to print and assemble the armor files by Moe Sizzlac which can be found here on Thingiverse and the humanoid arm files from Ryan Gross which can be found here.
(The reason why there is no V.2 tutorial is because the SERGEY V.2 lasted for a short while before I re-upgraded him to V.3).
To get this project started you will need:
To download the Sergey_V.3.zip file from my Thingiverse page. (This contains everything you need to build/upgrade Sergey, including the code and audio file).
(x1) of my custom torso mechanism (Tutorial can be found here)
(x1) 6V 50-60A Power Supply (I went with the 60A)
(x3) 60kg Servo (I recommend using the 270 degree angle. It gives you more freedom. Also you can probably find these 60Kg servos cheaper on Aliexpress).
(x1) 35kg Servo
(x2) MG996R Servo
(x1) Linkage
(x1) Self-powered speaker
(x1) Ardunio Uno
(x1) Arduino Compatible MP3 Module
(x1) Micro SD Card
(x1) 12 Channel Pololu Mini Maestro Servo Control Board
(x1) (10ft or longer) 2" Diameter Vacuum Pipe
(x1) 1-1/4" PVC pipe (the length of the pipe will determine how long the torso is. Mine is about 60cm long)
(x3) 2" Vacuum pipe Coupling (non-threaded) (Like so: Example Image).
(x6) 2" Vacuum Pipe T-Coupling/fitting (non-threaded) (Like so: Example Image).
(x4) Vacuum Pipe 90 Degree Connector/Coupling (non-threaded) (Like so: Example Image).
(x1) PVC Glue
(x1) GT2 Timing Belt (Something like this but just the belt. The pulley's will be 3D printed)
(Some) 5V LEDs (I mainly used yellow, but you can use what ever color you want. Keep in mind that these LEDs will be used for explosion effects)
(Some) 150 Ohm Resistors (These are for the LEDs so we don't burn them out. I used 100 Ohms but you can use whatever you think is reasonable).
(Some) Plumbers Strap
(Some 6-32 and 8-32) Wood Screws
(Optional )(A Few) Fiber Optic Lamps/Lights . (These are used for a flying spark effect for the LED effects).
(Optional) Some 5V L.E.D lights or 5V Blinking RGB Led diodes (These are used to light up the eyes or shoulders. Refer to SERGEY V.1 Tutorial).
(Optional) Spray Paint
The Base
First, you must create your base. For my base, I used an old wood wire spool.
I disassembled the spool and kept one large circle and I cut the other in half. I used two small pieces of 2x4 to create a "sandwich". I had the first semi-circle on the ground and bolted the two pieces of 2x4 equidistant on both sides of that semi-circle, and then I bolted the second semi-circle on top. This is where we will be storing the power supply and all the electronics (It's basically a cubby hole).
I then took 2 of the pieces used to make the center of the spool and used 1 piece to act as a stopper on the big circular base (This allows me to slide the semi-circle part of the base off the flat circular part, making it easier for disassembly and transportation). I also used the other piece of wood to join the 2x4 pieces together and act as backplate for the "sandwich cubby hole". you should notice that those 2 pieces make an "L" or a 90 degree angle when the semi-circle base comes flush with the circular part of the base (everything is aligned).
(Refer to the images above)
Creating the Legs
To create the legs please refer to step 13 of the V.1 tutorial or the image above. You will notice that there is a T-fitting in the center and it branches off to two 90 degree brackets. Those two 90 degree brackets are then connected to the vacuum pipe (Which are the legs). I joined all the pieces together with PVC glue.
You should notice a piece of vacuum pipe coming out of the T-fitting. This is important for a sturdy and removable torso. Keep in mind that the longer the piece is, the more stability you will have. But that also means you will have to lift higher in order to remove the torso. (The torso works by sliding the 1-1/4" PVC pipe (that is what the upper half of your robot connects to) into that vacuum pipe).
Also, you may notice that there are 2 couplers attached to the vacuum pipe legs. You do not need these. I added those because my legs were too short and I needed to add another piece of vacuum pipe to make them longer. That being said, you will need 2 couplers to insert into the 2 PVC Base Mount to ensure that the legs fit snuggly inside with minimal wiggle room. I also added some silicon caulk to help fortify the vacuum pipe legs to the PVC Base Mount. And don't forget to bolt down the PVC Base Mount to the semi-circular wood base.
Important! You may need to do this: For stability, I attached some aircraft cable to the lower torso area (basically the butt) and bolted the end to the center of the back of the semi-circular base. I did this because the completed robot is top heavy, which causes him to lean forward when ever he moves. This poses a serious problem because he goes further and further every time, which may result in him falling down. The aircraft cable prevents SERGEY from leaning forward and keeps everything balanced, in place and adds extra stability.
(Refer to image above)
Covering the Base
To make the base look nice, I cut an old shirt and applied it over the base. I then added some glow in the dark rocks to jazz it up and give it scenery.
Creating the Animatronic Jaw
Once you printed the head, you may start working on the animatronic jaw.
First, you must make clearance for the jaw. You will need to do this by trimming the side and making room for the mouth to move back and open (refer to the image above with the blue circle. The circle indicates that, that is what I cut to give the jaw clearance).
Then you will need to make hinges for your jaw so it has something to pivot on when it opens and closes. I did this with a paper clip. I melted a small hole through the end of the jaw and the side of the of the head. I then feed the paper clip through the hole, bent both sides and I had a hinge. I then did the same to the other side. (Refer to the image above with the green circle. You should see the two ends of the paper clip). Also, You could try making the hinge with a small screw instead of a paper clip (I haven't tried it on this head, but if you do it properly it will work).
To make the jaw move using the servo, you must attach an MG996R servo to the inside of the head. Then set your servo to 0 degrees and attach the servo horn. Attach the linkage (using a small screw. I used a servo screw) from the servo the the jaw and make sure the mouth opens and closes. This will take some playing around with but use the video above to gain a better idea.
Creating the Torso Mechanism
3D print or find a 2inch 4-way PVC cross. Mine was 3D printed so I added two 2" couplers to the sides of the cross so I could securely attach a small piece of vacuum pipe and a 90 degrees coupler to it.
Take a 1-1/4" PVC pipe (mine is about 60cm long), this will be your torso rod. Insert the torso rod into the vacuum tube that stick out of the T-fitting (as mentioned in step 2). I wedged some foam between the vacuum tube and the 1-1/4" PVC tube (torso rod) so the 1-1/4" PVC tube (torso rod) wouldn't move side to side. I also drilled a hole through the center of the vacuum tube (going straight through the torso rod as well) and added a pin.
To create the torso bearing mechanism, I took a 2" coupler and bolted it to the 1-1/4" PVC pipe, using yellow foam to offset it from the PVC pipe. This coupler is used to stop the 4-way cross from sliding down. Do not glue the coupler to the 4-way cross! If you glue it, the 4-way cross won't be able to spin. The coupler also acts as a bearing and allows the 4-way cross to spin around it.
(You may notice a gray 1/4" coupler at the top of the torso rod. This is the same 1/4" coupler from the PVC Torso Mechanism. This 1/4" coupler will get glued to the 1" coupler which is attached to my PVC Torso Mechanism).
Now, slide the 4-way cross onto the torso rod making sure it sits level (or as level as possible) on the coupler. Make sure the 4-way cross is able to spin freely as shown in this video.
Once you have done that, slide your PVC Torso Mechanism on to the 1/4" coupler and once again, ensure that the 4-way cross can still spin freely. If not, you may need to move the 2" coupler down.
Now that you ensured everything fits properly you can attach the 90 degree coupler and T-fitting to both sides of the 4-way cross. I used PVC glue to secure them together, and added silicon caulk for extra strength.
Attaching the Armor to the Torso and Making It Move
First, slide the PVC Torso Mechanism out and set the servo to 90 degrees (if you have not already done so). Then, take some PVC glue and glue the PVC Torso Mechanism back to the Torso rod. Make sure the T-fitting with the servo can move freely along with the 4-way cross.
Now, in order to have the servo and the 4-way cross move together, you must attach them together. I attached the PVC Torso Mechanism T-fitting to the T-fitting attached to the 4-way cross (we'll call this the shoulder fitting, since the shoulder servo will be attached to it as well). And make sure to attach both shoulder fittings to the PVC Torso Mechanism T-fitting.
To hold up the chest armor I attached a plastic U-bracket (from an old plastic shelf) to the T-fitting and let the armor rest on that. Then I added some hot glue to secure the armor in place.
Creating the Arms
To begin, you must have the arm parts (which can be found here) and the timing pulleys printed.
First assemble the arm.
For the right arm (the arm that holds the gun) you will only need the elbow to move so the gun can move up and down. If you want, you can utilize all the axis of movements the arm provides by adding more servos. (I only used one servo (the 60kg servo) which drives the elbow up and down).
For the left arm (the arm that holds the shield) you will need 3 servo motors on the arm (one MG996R servo to rotate the wrist/forearm, one 35kg servo to move the elbow up and down, and one 60kg servo to rotate the arm left and right). Of course you will need another 60kg servo to move the whole arm up and down, but we'll worry about that later.
Creating the Arm (Part 2)
To get the elbow joint servo actuated, you must first cut the center out of the large pulley. Once the center of the pulley has been removed, place the centerless pulley overtop of the elbow joint (which looks like a pulley without teeth). Once you have done that, weld the GT2 Pulley (the centerless pulley) to the elbow joint.
(Refer to the images above)
Creating the Arms (Part 3)
Now, secure the 60kg servo to its slot in the lower bicep. Then take the smaller GT2 pulley and bolt the servo horn to it and then attach it to the servo. For the right side, set the servo to 0 degrees and add the GT2 belt. Make sure the belt is as tight as possible and keep it together/clamp it with a stapler (and some zip ties for good measure). Now add some bearing to make the belt even tighter. I did this by taking 6 small bearings and secured them to a long 6x32 screw using a nut. I then made a hole in the arm (close to the belt) where I screwed in the 6x32 bolt. This allows the belt to remain tight and still move smoothly.
After I did this, I found that the big gun was heavy and the belt was slipping. I then created a tensioner by adding a zip tip to the belt.
(Refer to images above)
Side Note: This worked for a while, but the gun, the hand, and the forearm amour proved to be to heavy, so the servo wasn't able to bring the arm all the way back up. To solve this problem, I went back to the old gun (from the V.1 Version) which was a small cap gun from the dollar store. Since this gun was significantly smaller and lightweight the servo was able to move everything smoothly all the way up and all the way down. So watch the size and weight of the weapon you give your robot. The lighter it is the better.
Creating the Arms (Part 4)
Now that you have finished the right arm, it's time to secure it to the robot.
Since my right arm was heavier than expected I decided not to have it bolted to a shoulder servo because the servo would not have been able to lift the entire arm up and down. Instead, I decided to bolt it in place.
To do this, take a T-fitting and a small piece of vacuum tube. Glue the vacuum tube to the T-fitting and then glue the other end of the tube to the shoulder T-fitting hole. Then place the right arm on the T-fitting (It should be able to sit on the fitting and not fall off) and mark the center hole of the arm on the T-fitting (This way you know where to drill the hole). Drill the hole and take an appropriate sized nut and bolt, and attach the arm to the T-fitting.
(Refer to the images above)
Creating the Arms (Part 5)
Now it's time for the left arm.
Assemble the arm with all the servos in their respected slots. Use an MG996R Servo for the forearm/wrist rotate (set servo to 0 degrees), a 60KG Servo for the elbow (set servo to 180 degrees), bicep rotate (rotates arm left and right. Set servo to 90 degrees), and shoulder rotate (rotates arm up and down set servo to 180 degrees).
For the elbow, do the same as the right arm.
LED Effects - the Gun
Now the moment we've all been waiting for...the LED practical effects!
To make SERGEY's routine look even better, I added a multitude of LED explosion effects which look awesome in a dimly lit or dark area.
For the gun, I shoved a 5V yellow led (with a 150 ohm resistor) into the barrel and ran the long I wires I added to the LED through the gun and out the back. Since this was a cap gun, most of it was hollowed out already, so I didn't have to do much work. To get the flame/blast effect I added a small piece of cotton inside the barrel in front of the LED (I secured it with a small dab of crazy glue) and shaped the cotton to get the desired effect (This may take some trail and error, but luckily you only need a small amount of cotton to achieve this effect, and you can easily pick up a bag of full cotton balls at your local dollar store). When shaping the cotton you want to remember that the lighter the cotton is (the less cotton there is on the cotton piece) the easier the light travels through and the more cotton there is the harder it is for the light to pass thorough. Also keep in mind that the effect looks way better in a dimly lit area and on camera.
LED Effects - the Explosion
Print the part called "Smaller Explosion" and make sure your print setting are set to print this part in poor quality. (I used 10% infill (Cubic Subdivision), enabled support (touching build plate), and printed at a 0.2mm layer height (on Cura 4.8 it is called Draft)). The reason why we must print it in poor quality is because it makes it easier for the light to pass through. This aspect is important for a realistic looking explosion.
Once you have the explosion printed, you may choose to drill a hole through it so you can insert the Fiber Optic light strings to achieve a "sparks flying" effect on your explosion.
Using the explosion as a template, glue the fiber optic lights to the ends of the explosion (or wherever else you want them). Once you have done that, cut the fiber optic lights to an appropriate length, and remove the excess fiber optic lights that you don't need.
Once you have done that you may start gluing the cotton balls onto the explosion. Use the Explosion as a template and place light/thin pieces of cotton onto it. If you place to much cotton, you can make it thinner by lightly grabbing the cotton and pulling it apart (Almost like you're pulling out your hair, but a lot more gentle).
LED Effects - the Explosion (Part 2)
Once the 3D printed explosion is covered in cotton, you can add an LED (color of your choice) at the bottom and see how it looks. If you like the way it looks, leave it alone. If not, modify the Explosion until you are satisfied.
Keep in mind the explosion looks way better in a dark or dimly lit area. The explosion also looks a lot better on camera. If you want the explosion to look good in the photos, just look at it through your phone camera and make adjustments to it until you're happy with the results.
LED Effects - the Explosion (Part 3)
For my explosion, I went with a 5v yellow LED (connected to a 150 ohm resistor on the positive lead) and placed it on my shield. This will be part of the routine where SERGEY blocks an incoming shot with his shield and it explodes. (But before I attached the explosion to the shield I had to make it look like my robot blew a fuse :)
As you can see the effect looks pretty realistic in a dimly lit area (and on camera). If you're looking at your explosion right now and you're wondering why it doesn't look like this, try looking at it through your camera and play around with your room lighting. Trust me when I say the LED explosion effect looks way better on camera than it does in person.
Hiding the Internals - Torso
Take an old shirt and cut it to make a cover for the torso. Glue the shirt to the top part of the torso and let it drape down to the lower torso. Do not glue the other end of the shirt to the lower torso because this will prevent the robot from rotating it's torso.
Hiding the Internals - Bicep and Forearm
Take the bicep armor and use a couple of short 8x32 wood screws to bolt it in place. Before you bolt the armor to the arm, make sure to clear the elbow mechanism and make sure you don't bolt the armor to the top part of the arm where the servo (that rotates the arm left and right) horn is connected too. The armor must also rotate with the arm.
when securing the forearm armor, make sure the forearm/wrist of the arm can rotate (the armor should rotate with the wrist/forearm).
Hiding the Internals - Shoulder
Cut an old shirt to cover the shoulder parts. Glue the shirt to the side of the chest armor but don't glue it to the bicep amour.
Hiding the Internals - Thigh
Take an old shirt and glue it to the COD armor leaving the other end of the shirt to drape down and land inside the thigh armor where you can secure it using thumbtacks and/or Velcro (or you can glue it to the thigh if you want).
Hiding the Internals - Complete
Once you have hid all the internals, your robot should look like this.
More LED Effects! (Mid-Air Explosion)
I added another explosion to SERGEY, but this time I placed it on a black rod that sticks out of his shoulders. This makes it look like a mid-air explosion. If you don't have a rod, you can hang the explosion from your celling or put it on a tall stand/rod.
Keep in mind that your rod/stand should be black so it becomes hidden in the dark, thus making your effect more realistic.
The Code and Wiring
The Arduino Code for SERGEY is ready to go and explains where all the wires go and what pins they are connected to (refer to the comments in the code).
Note: When you put the audio file onto the microSD card be sure to rename the audio file to 1 or else it won't play.
Upload your code to your Arduino (I used an UNO) and enjoy. The code is programed to have the LED's turn on/off to match the sound effects of Story V.5, and to activate the Maestro board to play the movement routine you've created.
In order to have your robot move, you must create a movement routine in the Maestro software.
To setup/get started with the Maestro board, refer to Pololu's website. Once you have all your servos plugged in and your power supply hooked up to the Maestro board you may begin playing around with it. In the images above you should see a screenshot of my servo positions in the Maestro software. Those are there current home positions (Torso is set to 90 degrees, L-Elbow is at 180 degrees, L-wrist is at 180 degrees, L-Rotate is at 90 degrees, L-Shoulder is at 180 degrees (the max it can go up to is to 135 degrees (45 degrees, because 180-135 = 45), because the arm is heavy and the servo has a hard time lifting it any higher), R-Elbow is at 0 degrees, and the Eye Led is set to on).
Once you have created your movement routine in the Maestro software, copy all sequences to script and apply settings.
Be sure to change repeat to quit at the end of your subroutine code, so your code ends when it's done instead of repeating forever.
Then, to have the Arduino call the Maestro routine you must have this piece of code in the beginning of your Maestro script (refer to the images above):
# Maestro script for Script.ino Arduino library example.
# Copy into the Script tab of the Maestro Control Center and
# click Apply Settings.
# Don't do anything by default.
begin
repeat
# Subroutine 0
sub alternate_mid_to_high
begin
6000 0 servo
1000 delay
7000 0 servo
1000 delay
repeat
# Subroutine 1
# Expects the delay time to be on the top of the stack
sub alternate_mid_to_low
begin
6000 0 servo
dup delay
5000 0 servo
dup delay
repeat
I have not yet created a movement routine for my robot but I will get around to it. When it is completed, I will post it here.
Lighting Test
This is the lighting routine for the gun, shield, and ground explosion. The light flashing in the background is a bright 120v LED strobe light that has a built in microphone, so it can flash with music/sounds.