Rocky 3D Printed Biped Robot
Rocky is more than just a dancing robot toy it is opensource so that others can make it, Arduino compatible, 3D printable and customizable, and therefore,
The perfect opportunity to build your very first robot, learn robotics and have fun!
So what are you waiting for! Let’s have fun and make this cool bot with us
3D.stl files here: http://www.thingiverse.com/thing:1378605 Find a way to 3d print the parts, they are designed for no supports so is very easy to print with 20% infill and 0.2mm resolution.
Since is Tito is completely opensource you can find the design 3d model files made in Autodesk 123D Design here:

All libraries and sketch codes are in this Github repository. Just connect your USB cable to Arduino UNO and upload the codes There are many programmed movements for the robot like walk different directions, ultrasound, raise, tilt and dance.
Parts used for Rocky:
- Arduino Uno x 1
- Servo SG 5010 x 4
- Battery Holder x 1
- Toggle Switch x 1
3D Printed from Flarelab 3D Printing Services
For 3D printing services please visit
https://flarelab.xyz/
https://www.facebook.com/flarelab/
#circuitrocks #flarelab #rocky #3dprinted #bipedrobot #dancingrobot#smoothcriminal
#include <Servo.h> Servo myservo1; // create servo object to control a servo
Servo myservo2; // create servo object to control a servo
Servo myservo3; // create servo object to control a servo
Servo myservo4; // create servo object to control a servo int potpin = 0; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin void setup() { myservo1.attach(2); myservo2.attach(3); myservo3.attach(4); myservo4.attach(7);// attaches the servo on pin 9 to the servo object myservo1.write(90); myservo2.write(90); myservo3.write(90); myservo4.write(90);
} void loop() { myservo1.write(90); myservo2.write(90); myservo3.write(70); myservo4.write(110); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(110); myservo4.write(70); delay(1000);
//
// myservo1.write(90); myservo2.write(90); myservo3.write(70); myservo4.write(110); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(110); myservo4.write(70); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(90); myservo4.write(90); delay(1000);
// myservo1.write(90); myservo2.write(90); myservo3.write(80); myservo4.write(100); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(70); myservo4.write(110); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(60); myservo4.write(120); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(50); myservo4.write(130); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(40); myservo4.write(130); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(30); myservo4.write(140); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(20); myservo4.write(150); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(10); myservo4.write(160); delay(500); myservo1.write(90); myservo2.write(90); myservo3.write(90); myservo4.write(90); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(110); myservo4.write(110); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(70); myservo4.write(70); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(110); myservo4.write(110); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(70); myservo4.write(70); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(110); myservo4.write(110); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(70); myservo4.write(70); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(90); myservo4.write(90); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(100); myservo4.write(90); delay(500); myservo1.write(110); myservo2.write(70); myservo3.write(100); myservo4.write(90); delay(100); myservo1.write(90); myservo2.write(90); myservo3.write(90); myservo4.write(100); delay(500); myservo1.write(70); myservo2.write(110); myservo3.write(90); myservo4.write(100); delay(500); myservo1.write(90); myservo2.write(90); myservo3.write(100); myservo4.write(90); delay(500); myservo1.write(110); myservo2.write(70); myservo3.write(100); myservo4.write(90); delay(500); myservo1.write(90); myservo2.write(90); myservo3.write(90); myservo4.write(100); delay(500); myservo1.write(70); myservo2.write(110); myservo3.write(90); myservo4.write(100); delay(500); myservo1.write(90); myservo2.write(90); myservo3.write(100); myservo4.write(90); delay(500); myservo1.write(110); myservo2.write(70); myservo3.write(100); myservo4.write(90); delay(500); myservo1.write(90); myservo2.write(90); myservo3.write(90); myservo4.write(100); delay(500); myservo1.write(70); myservo2.write(110); myservo3.write(90); myservo4.write(100); delay(500); myservo1.write(90); myservo2.write(90); myservo3.write(90); myservo4.write(90); delay(1000); myservo1.write(90); myservo2.write(90); myservo3.write(90); myservo4.write(100); delay(500); myservo1.write(70); myservo2.write(110); myservo3.write(90); myservo4.write(100); delay(500); myservo1.write(90); myservo2.write(90); myservo3.write(100); myservo4.write(90); delay(500); myservo1.write(110); myservo2.write(70); myservo3.write(100); myservo4.write(90); delay(500); myservo1.write(90); myservo2.write(90); myservo3.write(90); myservo4.write(100); delay(500); myservo1.write(70); myservo2.write(110); myservo3.write(90); myservo4.write(100); delay(500); myservo1.write(90); myservo2.write(90); myservo3.write(100); myservo4.write(90); delay(500); myservo1.write(110); myservo2.write(70); myservo3.write(100); myservo4.write(90); delay(500); myservo1.write(90); myservo2.write(90); myservo3.write(90); myservo4.write(100); delay(500); myservo1.write(70); myservo2.write(110); myservo3.write(90); myservo4.write(100); delay(500); myservo1.write(90); myservo2.write(90); myservo3.write(100); myservo4.write(90); delay(500); myservo1.write(110); myservo2.write(70); myservo3.write(100); myservo4.write(90); delay(500); }
Frequently Asked Questions
What does this Rocky Dancing Biped Robot tutorial cover?
Rocky 3D Printed Biped Robot Rocky is more than just a dancing robot toy it is opensource so that others can make it, Arduino compatible, 3D printable and customizable, and therefore, The perfect opportunity to build your very first robot, learn robotics and have fun! So what are you waiting for! Let’s have fun and make this cool bot with us 3D.
What Arduino library does the Rocky Dancing Biped Robot tutorial use?
The sketch uses standard Wire.h (I2C) or SPI.h plus a part-specific library installable via Arduino IDE → Sketch → Include Library → Manage Libraries. See the Sample Code section.
Why does the Rocky Dancing Biped Robot act differently on USB power vs battery?
Battery voltage sags under load. Add a 100uF cap across the rails, use a 5V/2A regulator-backed pack, and never power motors from the Arduino's onboard regulator.
