Professional Documents
Culture Documents
Project Name
Project Name
2) Servomotor
4) Connecting Wires
5) VR Module
6) LED’S
7) Arduino’s Uno
8) Battery
YASHWEEN NIXON 1
1. Learn about Infrared Proximity Sensor !
2. Servomotor
+
A servomotor is a rotary actuator or linear actuator that allows
for precise control of angular or linear position, velocity and
acceleration.[1] It consists of a suitable motor coupled to a sensor
for position feedback. It also requires a relatively sophisticated
controller, often a dedicated module designed specifically for use
with servomotors.
YASHWEEN NIXON 2
Servomotors are not a specific class of motor although the
term servomotor is often used to refer to a motor suitable for use
in a closed-loop control system.
Servomotors are used in applications such as robotics, CNC
machinery or automated manufacturing.
4. VR Module
YASHWEEN NIXON 3
This Voice Recognition Module is a compact and easy-control
speaking recognition board.This product is a speaker-dependent
voice recognition module. It supports up to 80 voice commands in
all.Max 7 voice commands could work at the same time. Any sound
could be trained as command. Users need to train the module first
before let it recognizing any voice command. This board has 2
controlling ways: Serial Port (full function), General Input Pins
(part of function). General Output Pins on the board could
generate several kinds of waves while corresponding voice
command was recognized.
Parameters
Voltage: 4.5-5.5V
Current: <40mA
Digital Interface: 5V TTL level UART interface
Analog Interface: 3.5mm mono-channel microphone connector
+ microphone pin interface
Size: 30mm x 47.5mm
5. LEDS’
YASHWEEN NIXON 4
Early LEDs were often used as indicator lamps, replacing small
incandescent bulbs, and in . Recent developments have produced
white-light LEDs suitable for room lighting. LEDs have led to new
displays and sensors, while their high switching rates are useful in
advanced communications technology.
LEDs have many advantages over incandescent light sources, including
lower energy consumption, longer lifetime, improved physical
robustness, smaller size, and faster switching. Light-emitting diodes
are used in applications as diverse as aviation lighting, automotive
headlamps, advertising, general lighting, traffic signals , camera
flashes, lighted wallpaper and medical devices.[9]
Unlike a laser , the color of light emitted from an LED is neither
coherent nor monochromatic, but the spectrum is narrow with respect
to human vision, and functionally monochromatic.
3. Arduino Uno
YASHWEEN NIXON 5
(Atmega8U2 up to version R2) programmed as a USB-to-serial
converter.
Control: This is the brain or the nervous system which gives the
power or the energy to move the body structure.
Body
BODY diagram
YASHWEEN NIXON 6
It is shaped like a cube. We made it from aluminum bars and
connected through pins. Note: We used aluminum bars because it
is easier to shape than steel; although the steel is harder, inside
WALL-E, aluminum bars will be lighter on the motors and this
make movement easier. For covering, we used foam board,
printed the design of the body, and then stuck the design into the
foam board.
Head
1) Materials:
There are many materials you can use in making the head. We
are going to mention them and the advantages and disadvantages
for each.
YASHWEEN NIXON 7
Compressed foam board Advantages: very cheap compared to
acrylic and MDF, very light, you can easily shape
it. Disadvantages: It can be eroded by any spray.
2) Design:
We used two servo motors to move the head: one for left and
right, and the other for up and down.
YASHWEEN NIXON 8
HEAD FINAL VIEW
Neck
YASHWEEN NIXON 9
the final view of the nick
1) Material:
2) Design:
1
YASHWEEN NIXON
0
Final view
Motors
Rubber belt
Rubber covers
Aluminium body
1
YASHWEEN NIXON
1
worm gear motor
The horizontal axis: You have to allow one side of the bar to
open to fix motors and make holes in the other side to fix the
free wheels (pulleys).
The inclined axis: You need to make four holes to fix the free
wheels.
1
YASHWEEN NIXON
2
4. Put the rubber cover around the wheels to increase the friction
between the wheels and the belt. This will also increase the
friction between the belt and the ground.
after connecting
1
YASHWEEN NIXON
3
the mechanism
Hand mechanism
1
YASHWEEN NIXON
4
hand bar
linear movement
There are many kinds of motors such as Servo, Stepper, and DC.
1
YASHWEEN NIXON
5
Connection between nut power screw and the arm. We
overcame this by adding a cylindrical part and weld in it the nut
of the power screw on one side, and in the other side, we put
the motor inside it to allow the motor rotation.
Control Parts
Here we go.
batteries
Arduino
1 Shield
wires
motors
1
YASHWEEN NIXON
6
too many things in wall-e :D
1shield app
1
YASHWEEN NIXON
7
motors controlling circuit
HAND
circuit
Wall-E's hands are much like human hands and its movement
will be up and down. We could have used servo motors for this
but there was a problem. The torque on the axes of the motors
was very big. Therefore, there were three options:
1
YASHWEEN NIXON
8
Use a DC motor.
After connecting the circuit, you just need to download the app
on your smart phone and start controlling the arms.
1
YASHWEEN NIXON
9
circuit diagram
We did not use the 1Shield to control the arms as there were not
enough buttons on the gamepad. Therefore, we had to make the
hand controls separate from the movement.
Voice
There are many techniques you can use to talk to WALL-E and
making WALL-E reply to you.
You can put a microphone inside the body to talk with Wall-E,
but does not work well because the surrounding environment
must be very quiet for receiving the voices and you should be but
so close to it. That was not working so, we tried to find another
way to solve this issue. We decided to use the phone microphone
and connect it with the Bluetooth module to the Arduino.
There was a voice recognizer shield and a voice shield. The first
one is used to understand the voices and the other is used for
replying. But that was not effective for many reasons; the most
important reasons were that the voice shield had limited voices
to save in it and we will need to connect two shields with the
Arduino, which would be a waste of power.
2
YASHWEEN NIXON
0
There was a shield that enabled us to use all sensors in the phone
including a voice recognizer. Its called 1Shield and we mentioned
it in movement section so you can back to it. That was an easier
way. To make WALL-E reply to you, you will need an SD card
module to play the sounds you want. The advantages are you can
play any number of sounds you like and you can make your own
voices. If you connect the SD module directly to the speaker, its
voice will be very low so we searched for a solution.
SD card module
2
YASHWEEN NIXON
1
The second circuit uses an op amp LM386, but there was noise
in the output voice too.
There are some issues in the voice signal itself. You must change
its frequency and the amplitude to a proper number in order to
remove the noise and to make the volume is higher. You can use
this site to change the frequency and the amplitude
(http://audio.onlineconvert.com/convert-to-wav).
If you are going to buy speakers, the smaller your ohms, the
clearer the output voice will be.
2
YASHWEEN NIXON
2
Heart Sensor
pulse circuit
Simply clip the Pulse Sensor to your earlobe or finger tip and
plug it into your 3 or 5 Volt Arduino, and you are ready to read
heart rate! The 24" cable on the Pulse Sensor ends with standard
male headers so there is no soldering needed.
2
YASHWEEN NIXON
3
Pulse Sensor Amped responds to relative changes in light
intensity. If the amount of light incident on the sensor remains
constant, the signal value will remain at (or close to) 512
(midpoint of ADC range). More light and the signal goes up. Less
light, the opposite. Light from the green LED that is reflected to
the sensor changes during each pulse.
For this you need a LCD to show the sensor readings. All you
need to do is attach the Arduino to the LCD and make them
appear on LCD screen.
Finishing
We took the dimensions of WALL-E's body and printed the design
of WALL-E on paper. Then we put on foam and fixed it to WALL-
E’s body by using double-sided tape.
2
YASHWEEN NIXON
4
Custom parts and enclosures
Mechanical components
estimated prices in EGP
Schematics
1shield and motors
a simple diagram on how to control motors using 1shield
2
YASHWEEN NIXON
5
bluetooth and motors
in this diagram showing the circuit of hc05 bluetooth module and motors
connection
Code
Legs
Hand
2
YASHWEEN NIXON
6
Legs
Arduino
movements:
we used gamepad shield from 1shield shields for movements control, it's like
joy-stick except that it is on your phone.
Created on 22/02/2017
by Makers team in pixels.
*/
//first you need to include 1Shield library and define the shields you are going
to use, you can know more about this from 1shield examples.
#define CUSTOM_SETTINGS
#define INCLUDE_GAMEPAD_SHIELD
#define INCLUDE_VOICE_RECOGNIZER_SHIELD
#define INCLUDE_TERMINAL_SHIELD
#include <OneSheeld.h>
/*for voice recognizer shield you need to define the word or the sentence that you
want Wall-E to understand it.*/
//wall-e sentence (you can put any sentence or word you want).
const char NameOne[] = "name";
const char NameTwo[] = "what's your name";
const char NameThree[]= "tell me your name";
//eva sentence.
const char EvaOne[] = "what's her name";
const char EvaTwo[] = "eva";
const char EvaThree[] = "do you have a friend";
2
YASHWEEN NIXON
7
//song sentence.
const char SongCommand[] = "song";
//movement function.
//Stop moving.
void Stop() {
digitalWrite( MOTOR1_RELAY1, HIGH);
digitalWrite( MOTOR1_RELAY2, HIGH);
digitalWrite( MOTOR2_RELAY1, HIGH);
digitalWrite( MOTOR2_RELAY2, HIGH);}
// Move forward.
void forward () {
digitalWrite( MOTOR1_RELAY1, HIGH);
digitalWrite( MOTOR1_RELAY2, LOW);
digitalWrite( MOTOR2_RELAY1, HIGH);
digitalWrite( MOTOR2_RELAY2, LOW);}
//Move backward.
void backward() {
digitalWrite( MOTOR1_RELAY1, LOW);
digitalWrite( MOTOR1_RELAY2, HIGH);
digitalWrite( MOTOR2_RELAY1, LOW);
digitalWrite( MOTOR2_RELAY2, HIGH);}
//Move right.
void moveRight() {
digitalWrite( MOTOR1_RELAY1,HIGH);
digitalWrite( MOTOR1_RELAY2,LOW);
digitalWrite( MOTOR2_RELAY1,LOW);
digitalWrite( MOTOR2_RELAY2,HIGH);}
//Move left
void moveLeft() {
digitalWrite( MOTOR1_RELAY1, LOW);
digitalWrite( MOTOR1_RELAY2, HIGH);
digitalWrite( MOTOR2_RELAY1, HIGH);
digitalWrite( MOTOR2_RELAY2, LOW);}
void setup() {
2
YASHWEEN NIXON
8
//begine 1Shield.
OneSheeld.begin();
VoiceRecognition.start();
//define the Relays pin as output pin by for loop for reducing the code.
for (int i = 4 ; i < 8 ; i++) {
pinMode(i, OUTPUT);
digitalWrite(i,LOW);}
//define the speaker pin you should put it on pwm pin.
tmrpcm.speakerPin = 9;
//the next steps are just for making sure that the SD card is ready and
initialized.
Serial.begin(115200);
Serial.print("\nInitializing SD card...");
if (!SD.begin(chipSelect)) {
Serial.println("initialization failed. Things to check:");
Serial.println("* is a card is inserted?");
Serial.println("* Is your wiring correct?");
Serial.println("* did you change the chipSelect pin to match your shield or
module?");}
else {
Serial.println("card initialized.");}
tmrpcm.play("s.wav");
Serial.print("f");}
void loop() {
//starting the voice recognizer shield to receive commands.
if(VoiceRecognition.isNewCommandReceived())
//making comparing between the sentence you saved and the commands Arduino will
receive from 1Shield.
{if(!strcmp(NameOne,VoiceRecognition.getLastCommand())||
!strcmp(NameTwo,VoiceRecognition.getLastCommand())||
!strcmp(NameThree,VoiceRecognition.getLastCommand())){
tmrpcm.play("Wall16.wav");}
else if
(!strcmp(EvaOne,VoiceRecognition.getLastCommand())||!strcmp(EvaTwo,VoiceRecognitio
n.getLastCommand())||!strcmp(EvaThree,VoiceRecognition.getLastCommand()))
{tmrpcm.play("eva1.wav");}
else if (!strcmp(SongCommand,VoiceRecognition.getLastCommand())){
tmrpcm.play("s.wav");}}
2
YASHWEEN NIXON
9
3
YASHWEEN NIXON
0