## Introduction: Burn-E PaperCraft Robot

I am a software developer. I have read a lot about the field of robotics then I decided to enter into this interesting world.

Appeared in my mind a question Why did not make a robot to do some cool staff? then I have already started to learn programming of electrical circuits, and annexd to the talent in making paper craft models.

First step (The IDEA):

I used this paper craft model form paper-replika : Download the paper model from here

And I saw that, when I place the electronics parts inside the model and Make the MAQUETTE Alive, I think it will be cool Idea.

* I fold the Model Head then I put Ultrasonic sensor Inside, Instead of the robot's eyes.

## Step 2: Testing the Sensors

Testing the sensors after placing it inside the head.

I used an Arduino Uno and an ultrasonic sensor to make the robot measure the distance.

For example, if the object is 10 cm away from the sensor, and the speed of the sound is 340 m/s or 0.034 cm/µs the sound wave will need to travel about 294 u seconds. But what you will get from the Echo pin will be double that number because the sound wave needs to travel forward and bounce backward. So in order to get the distance in cm we need to multiply the received travel time value from the echo pin by 0.034 and divide it by 2.

Here is full tutorial how to use ultrasonic sensors : https://www.arduino.cc/en/Tutorial/Ping

## Step 3: Body Mechanism

To make the robot more realistic, I put three servo motors inside the body to control the movement of the head and arms.

Have a look what is servo motor and what its able to do :

https://www.arduino.cc/en/Reference/Servo

## Step 4: Robot Arms

The Robot still miss two arms :) So I installed the structure of the Arm paper model as shown then I placed the servo gear inside it, so as to easily control them.

## Step 5: Circuit

The Circuit is very simple and its contents of:

1 Arduino Uno R3

1 Red LED 3 Micro Servo

1 Piezo

1 Ultrasonic Distance Sensor

1 150 ohm Resistor

1 Green LED

1 Slideswitch

1 Temperature Sensor [TMP36]

## Step 6: Testing & Code

update:

I've created multi moods for this robot, in this video I will show you how it works..

In this video the robot must be connected to PC via USB cable and I've build a graphical radar screen to show the objects that placed in the range of head sensors.

```#include Servo.hServo Hservo,Rservo,Lservo;  // create servo object to control a servo// defines pins numbers
const int trigPin = 6;
const int echoPin = 7;
int piezoPin = 11;
int led = 13;
const int temperaturePin = 0;// defines variables
long duration;
int distance,val;
void setup() {pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
pinMode(led, OUTPUT);Serial.begin(9600); // Starts the serial communication  Rservo.attach(8); // right arm servo
Lservo.attach(10);  // left arm servo
}
void loop() {   float voltage, degreesC;
voltage = getVoltage(temperaturePin);
degreesC = (voltage - 0.5) * 100.0;

// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance= duration*0.034/2;

delay(50);    if (distance < 10) //
{
// Prints the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.println(distance); // print the currnet distance on serial port
tone(piezoPin, 1000, 500);  // this will alarm the sound every time distance
digitalWrite(led, HIGH);
delay(1000); // wait 1 1second
}
else
{
noTone(piezoPin);
digitalWrite(led, LOW);
delay(50);
}   if(Serial.available())
{
Serial.println(value);
if(value == "left")
{
Hservo.write(80);   // moving the head little left
delay(15);
Lservo.write(60);   // left arm up
delay(15);
Rservo.write(20);   // right arm down
delay(15);
}
else if(value == "right")
{
Hservo.write(40);   // moving the head little right
delay(15);
Lservo.write(20);   // left arm down
delay(15);
Rservo.write(60);  // right arm up
delay(15);
}
else if(value == "temp")
{
Serial.print("voltage: "); // print temperature
Serial.print(voltage);
Serial.print("  deg C: ");
}
}
}float getVoltage(int pin)
{
// point value, which is the true voltage on that pin (0 to 5V).