🎯 Project Overview

The Otto Humanoid Robot is a fun, open-source project where students build a walking, dancing, and talking humanoid using Arduino, servo motors, and a Bluetooth module.

Otto can:

Walk and dance

Move arms and head

Be controlled by Bluetooth from a mobile app

This is an excellent beginner robotics project that combines mechanical assembly, coding, and electronics.
 

🛠️ Components Required

Arduino Nano (or Uno)

2–4 Servo Motors (for legs)

Ultrasonic Distance Sensor (HC-SR04)

9V Battery + Switch

Jumper Wires

3D Printed or DIY Robot Body (cardboard, wood, or plastic)

 

🛠️ Parts Needed

Arduino Uno (or Nano)

L298N motor driver (1 or 2 depending on current)

4 × DC motors with wheels

HC-05 Bluetooth module

HC-SR04 ultrasonic sensor

Battery pack (7.4–12 V Li-ion recommended)

Jumper wires + switch

Pin Connections

ComponentArduino PinNotes
Left Leg ServoD2PWM
Right Leg ServoD3PWM
Left Foot ServoD4PWM
Right Foot ServoD5PWM
Left Arm ServoD6Optional
Right Arm ServoD7Optional
 

Circuit Diagram

Arduino Code

#include <Servo.h>
#include <SoftwareSerial.h>

// ———- Bluetooth ———-
SoftwareSerial BT(11, 12); // D11 = RX, D12 = TX

// ———- Servo Motors ———-
Servo leftLeg, rightLeg, leftFoot, rightFoot;

// ———- Setup ———-
void setup() {
BT.begin(9600);
Serial.begin(9600);

// Attach servos to pins
leftLeg.attach(2);
rightLeg.attach(3);
leftFoot.attach(4);
rightFoot.attach(5);

// Start at neutral position
centerPosition();
Serial.println(“Quadruped Robot Ready!“);
}

// ———- Main Loop ———-
void loop() {
if (BT.available()) {
char cmd = BT.read();
Serial.print(“Command: “);
Serial.println(cmd);

switch (cmd) {
caseF‘: walkForward(); break;
caseB‘: walkBackward(); break;
case ‘L’: turnLeft(); break;
caseR‘: turnRight(); break;
caseD‘: dance(); break;
caseS‘: centerPosition();break;
}
}
}

// ———- Servo Control Functions ———-
void centerPosition() {
leftLeg.write(90);
rightLeg.write(90);
leftFoot.write(90);
rightFoot.write(90);
}

void walkForward() {
leftLeg.write(120); rightLeg.write(60);
delay(300);
leftLeg.write(90); rightLeg.write(90);
delay(300);
}

void walkBackward() {
leftLeg.write(60); rightLeg.write(120);
delay(300);
leftLeg.write(90); rightLeg.write(90);
delay(300);
}

void turnLeft() {
leftFoot.write(60); rightFoot.write(120);
delay(500);
centerPosition();
}

void turnRight() {
leftFoot.write(120); rightFoot.write(60);
delay(500);
centerPosition();
}

void dance() {
for (int i = 0; i < 3; i++) {
leftLeg.write(60); rightLeg.write(120);
delay(300);
leftLeg.write(120); rightLeg.write(60);
delay(300);
}
centerPosition();
}

Video

Bluetooth Commands

Send these from a Bluetooth controller app (e.g., “Arduino Bluetooth Controller”):

CommandAction
FWalk Forward
BWalk Backward
LTurn Left
RTurn Right
DDance
SStop / Reset

Teamwork Idea

Team A: Assemble the 3D-printed body and mount servos

Team B: Wire electronics (Arduino, servos, Bluetooth, ultrasonic)

Team C: Upload code and test Bluetooth app

Conclusion

Congratulations 🎊! You have built your own Otto DIY Humanoid Robot 🤖.
This project teaches servo control, Bluetooth communication, and humanoid movement basics, making it a perfect beginner-to-intermediate robotics build.