Humanoid Robot
I have made a robot which is a humanoid robot it is made using Arduino Uno, sensors and motors.
It can walk, move in different directions, it also has a robotic hand that can grip anything.
The biggest quality of this robot is that it is controlled by voice commands.
It has an ultrasonic sensor as an eye.
Gathering the Materials
For this project, we need many things.
Things we need are:-
1. Chasis or robot body
2. 2 gear motors with wheels
3. 1 Arduino Uno+Cable
4. 1 L293D motor driver shield for Arduino Uno
5. 1 HC-05 Bluetooth Module
6. 1 Ultrasonic sensor
7. 1 9v battery
8. Some Battery connector
9. 1 Robotic Hand (optional)
You can buy it from Fly Robo in cheap.
Adding Motors and Wheels to Robot Leg.
In this step, we are going to add wheels to the robot's leg.
For this, we need to add wires to the gear motors and put them in the leg of the robot.
Then fix the motor in the robot leg as shown in picture
Making the Robot Stand Still.
For making the robot standstill we need to add 2 more wheels.
For this cut a PVC pipe and make a hole in a corner as shown in the picture.
Now add the wheels in this PVC pipe.
Making Robot Standstill Part 2.
Fix the wheels as shown in pictures.
Add Robot Hand Gripper.
I have already made a robot hand but if you want to make it then you can easily make it using a dc motor or servo
motor. I already have so I am going to install it.
Making the Circuit.
Make the circuit as shown in the picture.
Upload Codes to Arduino.
The codes are below you only have to just copy it, paste it and upload it.
#include //Adafruit Motor Shield Library.
First you must download and install AFMotor library
#include //Servo library. This is standard library. (Sketch -> Include Library -> Servo)
String voice;
AF_DCMotor motor1 (1, MOTOR12_1KHZ); //create motor #1 using M1 output on Motor Drive Shield, set to 1kHz PWM frequency
AF_DCMotor motor2 (2, MOTOR12_1KHZ); //create motor #2 using M2 output on Motor Drive Shield, set to 1kHz PWM frequency
Servo myServo; //define servo name
int LED1 = A0; //define LED 1 pin
int LED2 = A1; //define LED 2 pin
int buzzerPin = A2; //define buzzer pin
void setup()
{
Serial.begin(9600); //start serial communication
myServo.attach(10); //define our servo pin (the motor shield servo1 input = digital pin 10)
myServo.write(90); //servo position is 90 degrees
pinMode(LED1, OUTPUT); //A0 is output pin
pinMode(LED2, OUTPUT); //A1 is output pin
pinMode(buzzerPin, OUTPUT); //A2 is output pin
}
void loop()
{
while (Serial.available()){ //Check if there is an available byte to read
delay(10); //Delay added to make thing stable
char c = Serial.read(); //Conduct a serial read
if (c == '#') {break;} //Exit the loop when the # is detected after the word
voice += c; //Shorthand for voice = voice + c
}
if (voice.length() > 0){
if(voice == "*go ahead"){
forward_car();
}
else if(voice == "*go back"){
back_car();
}
else if(voice == "*turn right") {
right_car();
}
else if(voice == "*turn left") {
left_car();
}
else if(voice == "*turn on light") {
LED_on();
}
else if(voice == "*turn off light") {
LED_off();
}
else if(voice == "*buzzer") {
buzzer_on();
}
else if(voice == "*stop") {
stop_car();
}
voice=""; //Reset the variable after initiating
}
}
void forward_car()
{
motor1.run(FORWARD);
motor1.setSpeed(170);
motor2.run(FORWARD);
motor2.setSpeed(170);
delay(2000);
motor1.run(RELEASE);
motor2.run(RELEASE);
}
void back_car()
{
motor1.run(BACKWARD);
motor1.setSpeed(170);
motor2.run(BACKWARD);
motor2.setSpeed(170);
delay(2000);
motor1.run(RELEASE);
motor2.run(RELEASE);
}
void right_car()
{
myServo.write(0);
delay(1000);
myServo.write(90);
delay(1000);
motor1.run(FORWARD);
motor1.setSpeed(170);
motor2.run(BACKWARD);
motor2.setSpeed(170);
delay(1000);
motor1.run(RELEASE);
motor2.run(RELEASE);
}
void left_car()
{
myServo.write(180);
delay(1000);
myServo.write(90);
delay(1000);
motor1.run(BACKWARD);
motor1.setSpeed(170);
motor2.run(FORWARD);
motor2.setSpeed(170);
delay(1000);
motor1.run(RELEASE);
motor2.run(RELEASE);
}
void LED_on ()
{
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
}
void LED_off ()
{
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
}
void buzzer_on ()
{
tone(buzzerPin, 100);
delay(800);
noTone(buzzerPin);
}
void stop_car ()
{
motor1.run(RELEASE);
motor2.run(RELEASE);
}
Install a Software to Control the Robot in Your Smart Phone.
To control the robot we need to install the software named "AMR voice" or "Arduino Meets Robot" which you can download from the given link:-
https://amr-voice.en.aptoide.com/
After installing open it and connect it to the robot.
After connecting tap the mic and give commands to Robot.
Robot Is Completed.
I had made this robot you can also make it.
WRITTEN BY:-
SCIENTIST ANSH MISHRA