Professional Documents
Culture Documents
On
Design and Fabrication of “CAR CONTROL USING VR”
Submitted to the
Degree of
Bachelor of Technology
In
1
Govt. Engineering College Ajmer
CERTIFICATE
This is to certify that following students of VIII Semester, B. Tech. (Electronics &
titled “CAR CONTROL USING VR” in partial fulfillment for the award of the degree
Date: 26/10/18
(Head, ECE)
2
CANDIDATE’S DECLARATION
We hereby declare that the project stage-I work entitled, “CAR CONTROL USING
VR” submitted in partial fulfillment of the requirement for the award of degree of
“Bachelor of Technology” in Electronics and Communication Engineering, Rajasthan
Technical University, Kota, is an authentic record of our own work carried out during
VIII semester under the Guidance of Dr. U.S. Modani (H.O.D.), Govt. Engineering
College Ajmer.
3
ACKNOWLEDGEMENT
The project stage-I report on “CAR CONTROL USING VR” is outcome of guidance,
moral support and devotion bestowed on us throughout our work. For this, we
acknowledge and express our profound sense of gratitude and thanks to everybody who
have been a source of inspiration during the project preparation.
We offer our sincere phrases of thanks with to our Project Guide, Dr. U.S.
Modani(H.O.D.),without whose support and guidance it would not have been possible
for this Project to have materialized and taken a concrete shape.
I would also like to express our gratitude to our Project Coordinator (Mr. Harish
Sharma), to provide us a better facility to enhance our practical knowledge.
We are thankful to Dr. Uma Shankar Modani (HOD, ECE), Govt. Engineering College,
Ajmer.
At last but not the least, I am thankful to all our colleagues and other staff members, who
helped us directly or indirectly in the Project work.
4
INDEX
CERTIFICATE 2
CANDIDATE’S DECLARATION 3
ACKNOWLEDGEMENT 4
LIST OF FIGURES 7
ABSTRACT 8
CHAPTER 1 INTRODUCTION 9
Virtual reality
1.1 9
CHAPTER 3 DESIGNING/Algorithm 12
3.2 Algorithm 12
4.2 Overview 23
4.3 Applications 21
4.4 Working
22
5
4.5 Resistor choice
23
4.6 Grounding and other known issues 23
CHAPTER 6 RESULTS 25
CHAPTER 7 CONCLUSION 26
REFERENCES 28
APPENDIX 29
II Programming Code 29
6
LIST OF FIGURES
7
Abstract
This paper presents a measurement system with capacitive sensor connected to an open-
source electronic platform Arduino nano. A simple code was modified in the project,
which ensures that the platform works as interface for the sensor. The code can be
modified and upgraded at any time to fulfill other specific applications. The simulations
were carried out in the platform's own environment and the collected data are represented
in graphical form. Accuracy of developed measurement platform is 0.1 pF.
8
CHAPTER-1
INTRODUCTION
We are working on a project ‘ CAR CONTROL USING VR ‘ which is essential for the
physically disable person.
1.1VIRTUAL REALITY
Virtual reality (VR), also known as virtual environment, is a computer simulation system
that can create and simulate virtual worlds. It provides an immersive experience to the
users by generating various types of interactive activities related to visual, auditory, and
tactile perceptions. The virtual environment can be a scenery conceived by a designer or
a reproduction of the live scene. Professional equipment such as VR headsets and data
gloves allow users to sense and control various virtual objects in real time, creating an
experience that users cannot obtain in the real world and generating real response or
feedback.
VR has three distinct characteristics: interaction, immersion, and imagination. Interaction
refers to the natural interaction between the user and the virtual scene. It provides the
users with the same feeling as the real world through feedback. Immersion means that the
users feel that they are part of the virtual world in the VR scene, as if they are immersed;
Imagination refers to the use of multi-dimensional perception information provided by
VR scenes to acquire the same feelings as the real world while acquiring the feelings that
are not available in the real world.
This project is based on Capacitive Sensor. The capacitive Sensor library turns two or
more Arduino pins into a capacitive sensor, which can sense the electrical capacitance of
the human body. All the sensor setup requires is a medium to high value resistor and a
piece of wire and a small (to large) piece of aluminum foil on the end. At its most
sensitive, the sensor will start to sense a hand or body inches away from the sensor.
9
1.3 WIRELESS TECHNOLOGY
With the help of these two equipment and other components we made the whole process
wireless , as the wireless technology is the need of modern world . Wireless technology
uses radio waves to transmit information without cables or wiring. Although wireless
communications have been used since 1876, the technology is now being widely used to
create wireless computer networks. There are many standards for wireless
communications, including Bluetooth, DECT and WiMax, RF sensor.
RF sensor is an easy to use , designed for transparent wireless serial connection setup.
10
CHAPTER-2
SURVEY
2.1 LITERATURE SURVEY:- Firstly we have studied system operation. For this
project we taken the reference of many standard paper such as following
I] Björn Blissing, Fredrik Bruzelius, and Johan Ölvander. “Augmented and Mixed
Reality as a tool for evaluation of Vehicle Active Safety Systems”. In: Proceedings of the
4th International Conference on Road Safety and Simulation. October. Rome, Italy:
Aracne, 2013.
[II] Björn Blissing and Fredrik Bruzelius. “A Technical Platform Using Augmented
Reality For Active Safety Testing”. In: Proceedings of the 5th International Conference
on Road Safety and Simulation. Orlando, FL, USA: University of Central Florida, 2015,
pp. 793–803.
[III] Björn Blissing, Fredrik Bruzelius, and Olle Eriksson. “Effects of Visual Latency on
Vehicle Driving Behavior”. In: ACM Transactions on Applied Perception 14.1 (Aug.
2016), pp. 5.1– 5.12. doi: 10.1145/2971320.
[IV] Björn Blissing, Fredrik Bruzelius, and Olle Eriksson. “Driver behavior in mixed and
virtual reality – a comparative study”. In: Proceedings of the Driving Simulation
Conference 2016 VR. Paris, France: Driving Simulation Association, 2016, pp. 179– 186.
vii The following papers are not included in the thesis but constitute an important part of
the background.
[V] Jonas Andersson Hultgren, Björn Blissing, and Jonas Jansson. “Effects of motion
parallax in driving simulators”. In: Proceedings of the Driving Simulation Conference
Europe 2012. Paris, France, 2012.
[VI] Lars Eriksson, Anne Bolling, Torbjörn Alm, Anders Andersson, Christer Ahlström,
Björn Blissing, and Göran Nilsson. “LDW or rumble strips in unintentional lane
departures: Driver acceptance and performance”. In: Advances in Human Aspects of
Road and Rail Transportation. CRC Press, 2013, pp. 77–86.
[VII] Jonas Jansson, Jesper Sandin, Bruno Augusto, Martin Fischer, Björn Blissing, and
Laban Källgren. “Design and performance of the VTI Sim IV”. In: Proceedings of the
Driving Simulation Conference Europe 2014. Paris, France, 2014, pp. 4.1–4.7.
[VIII] Lars Eriksson, Lisa Palmqvist, Jonas Andersson Hultgren, Björn Blissing, and
Steven Nordin. “Performance and presence with head-movement produced motion
11
parallax in simulated driving”. In: Transportation Research Part F: Traffic Psychology
and Behaviour 34 (Oct. 2015), pp. 54–64. doi: 10 . 1016 / j . trf . 2015.07.013.
MARKET SURVEY
12
CHAPTER-3
DESIGNING / ALGORITHM
3.1CIRCUIT DESIGNING:-
13
Fig 3.1
3.2ALGORITHM:-
We have used the principle of Capacitive Sensing in our project through the variation of
body resistance between the field created by the aluminum foil. Here is the algorithm for
the coding we have done to make our program run –
LIBRARY METHODS:-
The library contains three main methods and some utility methods-
Capacitive Sensor creates an instance of the library (please note the capital letters,
this is not the same method as below)
14
The returned value is not averaged over the number of samples, and the total
value is reported.
5. Void reset_CS_AutoCal()-
15
SCROLL WHEELS:-
Experiments with a slide pot type linear sensor have been successful with just two pins
and a resistance ladder.
The code uses this type of arrangement:-
Where the pins switch their send and receive positions. With a linear resistance ladder, a
finger closer to the send pin will report lower values because resistance downstream from
the capacitance is basically out of the circuit.
So in this manner when a finger is moved from one pin to the other the two calls to
Capacitive Sensor Raw will report complementary values that have an approximately
constant value to them. The complication comes in when trying to deal with how much
contact (capacitance) is present, which raises (or lowers) both values, but not necessarily
in a linear manner.
ERROR MESSAGES:-
16
3.3COMPONENTS DESCRIPTION:-
1) AURDINO NANO:-
Fig 3.2
The Arduino board is designed in such a way that it is very easy for beginners to get
started with microcontrollers. This board especially is breadboard friendly is very easy to
handle the connections. Let’s start with powering the Board.
Powering you Arduino Nano:
There are totally three ways by which you can power your Nano.
USB Jack: Connect the mini USB jack to a phone charger or computer through a cable
and it will draw power required for the board to function
Vin Pin: The Vin pin can be supplied with a unregulated 6-12V to power the board. The
on-board voltage regulator regulates it to +5V
17
+5V Pin: If you have a regulated +5V supply then you can directly provide this o the
+5V pin of the Arduino.
Input/output:
There are totally 14 digital Pins and 8 Analog pins on your Nano board. The digital pins
can be used to interface sensors by using them as input pins or drive loads by using them
as output pins. A simple function like pinMode() and digitalWrite() can be used to
control their operation. The operating voltage is 0V and 5V for digital pins. The analog
pins can measure analog voltage from 0V to 5V using any of the 8 Analog pins using a
simple function liken analogRead()
2) RF MODULE:-
18
The RF module, as the name suggests, operates at Radio Frequency. The corresponding
frequency range varies between 30 kHz & 300 GHz. In this RF system, the digital data is
represented as variations in the amplitude of carrier wave. This kind of modulation is
known as Amplitude Shift Keying (ASK).
The RF module is often used alongwith a pair of encoder/decoder. The encoder is used
for encoding parallel data for transmission feed while reception is decoded by a
decoder. HT12E-HT12D, HT640-HT648, etc. are some commonly used encoder/decoder
pair ICs.
Transmitter modules[edit]
An RF transmitter module is a small PCB sub-assembly capable of transmitting a radio
wave and modulating that wave to carry data. Transmitter modules are usually
implemented alongside a micro controller which will provide data to the module which
can be transmitted. RF transmitters are usually subject to regulatory requirements which
dictate the maximum allowable transmitter power output, harmonics, and band edge
requirements.
Receiver modules[edit]
An RF receiver module receives the modulated RF signal, and demodulates it. There are
two types of RF receiver modules: superheterodyne receivers and super-regenerative
receivers. Super-regenerative modules are usually low cost and low power designs using
19
a series of amplifiers to extract modulated data from a carrier wave. Super-regenerative
modules are generally imprecise as their frequency of operation varies considerably with
temperature and power supply voltage.[citation needed] Superheterodyne receivers have a
performance advantage over super-regenerative; they offer increased accuracy and
stability over a large voltage and temperature range. This stability comes from a fixed
crystal design which in the past tended to mean a comparatively more expensive product.
However, advances in receiver chip design now mean that currently there is little price
difference between superheterodyne and super-regenerative receiver modules.
3)DECODER:-
20
HT12D is capable of decoding 12 bits, of which 8 are address bits and 4 are data bits. The
data on 4 bit latch type output pins remain unchanged until new is received.
4)ENCODER:-
HT12E is an encoder integrated circuit of 212 series of encoders. They are paired with
212 series of decoders for use in remote control system applications. It is mainly used in
interfacing RF and infrared circuits. The chosen pair of encoder/decoder should have
same number of addresses and data format.
Simply put, HT12E converts the parallel inputs into serial output. It encodes the 12 bit
parallel data into serial for transmission through an RF transmitter. These 12 bits are
divided into 8 address bits and 4 data bits.
HT12E has a transmission enable pin which is active low. When a trigger signal is
received on TE pin, the programmed addresses/data are transmitted together with the
header bits via an RF or an infrared transmission medium. HT12E begins a 4-word
transmission cycle upon receipt of a transmission enable. This cycle is repeated as long as
TE is kept low. As soon as TE returns to high, the encoder output completes its final
cycle and then stops.
21
5) STEPPER MOTOR:-
An excellent quality range of 100 rpm bo-1 series motors. Low cost high performance
dc geared motor with wide operating voltage range of 3~12 volts dc and good output
torque capability.
Technical specifications
Fig 3.4
6) BATTERY
22
brand Sunca
model_number 4 Volts 1 Ah Piece 2
Type Lithium-ion
capacity 1000 mAh
Suitable Device Digital Camera & Video Camera
Brand Color Black
Weight 184 g
7) TYRE
A rubber covering, typically inflated or surrounding an inflated inner tube, placed round
a wheel to form a soft contact with the road.
Fig 3.6
23
8) JUMBO WIRE:-
Fig 3.7
9) ALUMINIUM FOIL-
Fig 3.8
Aluminium foil (or aluminum foil), often referred to with the misnomer tin foil,
is aluminium prepared in thin metal leaves with a thickness less than 0.2 mm (7.9 mils);
thinner gauges down to 6 micrometres (0.24 mils) are also commonly used.
24
8)Resistor:-
Fig 3.9
Fig 3.10
25
L293D is a dual H-bridge motor driver integrated circuit (IC). Motor drivers act as
current amplifiers since they take a low-current control signal and provide a higher-
current signal. This higher current signal is used to drive the motors.
26
CHAPTER-4
WORKING PRINCIPLE:-
PRINCIPLE:-
Our project “CAR CONTROL USING VR” is based upon the principle of capacitive
sensing through arduino uno by varying the body resistance in between the field created
by the aluminium foil (conductor).
Fig 4.1
OVERVIEW:-
The Capacitive Sensor library turns two or more Arduino pins into a capacitive sensor,
which can sense the electrical capacitance of the human body. All the sensor setup
requires is a medium to high value resistor and a piece of wire and a small (to large) piece
of aluminum foil on the end. At its most sensitive, the sensor will start to sense a hand or
body inches away from the sensor.
APPLICATIONS:-
Capacitive sensing may be used in any place where low to no force human touch sensing
is desirable. An Arduino and the library may be used to sense human touch through more
than a quarter of an inch of plastic, wood, ceramic or other insulating material (not any
kind of metal though), enabling the sensor to be completely visually concealed.
27
A capacitive sensor covered with paper or other insulator also acts as fairly good (human
touch) pressure sensor with an approximately logarithmic response. In this regard it may
surpass force sensing resistors in some applications.
WORKING:-
Fig 4.2
The Capacitive Sensor method toggles a microcontroller send pin to a new state and then
waits for the receive pin to change to the same state as the send pin. A variable is
incremented inside a while loop to time the receive pin's state change. The method then
reports the variable's value, which is in arbitrary units.
The physical setup includes a medium to high value (100 kilo-ohm - 50 mega-ohm)
resistor between the send pin and the receive (sensor) pin. The receive pin is the sensor
terminal. A wire connected to this pin with a piece of foil at the end makes a good sensor.
For many applications, a more useful range of values is obtained if the sensor is covered
with paper, plastic, or another insulating material, so that users do not actually touch the
metal foil. Research has shown that a small capacitor (100 pF) or so from sensor pin to
ground improves stability and repeatability.
28
When the send pin changes state, it will eventually change the state of the receive pin.
The delay between the send pin changing and the receive pin changing is determined by
an RC time constant, defined by R * C, where R is the value of the resistor and C is the
capacitance at the receive pin, plus any other capacitance (e.g. human body interaction)
present at the sensor (receive) pin. Adding small capacitor (20 - 400 pF) in parallel with
the body capacitance, is highly desirable too, as it stabilizes the sensed readings.
RESISTOR CHOICE:-
Here are some guidelines for resistors we considered in our experiment for a desired
response.
Use a 1 megohm resistor (or less maybe) for absolute touch to activate.
With a 10 megohm resistor the sensor will start to respond 4-6 inches away.
With a 40 megohm resistor the sensor will start to respond 12-24 inches away (dependent
on the foil size). Common resistor sizes usually end at 10 megohm so you may have to
solder four 10 megohm resistors end to end.
One tradeoff with larger resistors is that the sensor's increased sensitivity means that it is
slower. Also if the sensor is exposed metal, it is possible that the send pin will never be
able to force a change in the receive (sensor) pin, and the sensor will timeout.
Also experiment with small capacitors (100 pF - .01 uF) to ground, on the sense pin.
They improve stability of the sensor.
There is point to note that the hardware can be set up with one sPin and several resistors
and rPin's for calls to various capacitive sensors.
The grounding of the Arduino board is very important in capacitive sensing. The board
needs to have some connection to ground, even if this is not a low-impedance path such
as a wire attached to a water pipe.
Capacitive sensing has some quirks with laptops unconnected to mains power. The laptop
itself tends to become sensitive and bringing a hand near the laptop will change the
returned values.
Connecting the charging cord to the laptop will usually be enough to get things working
correctly. Connecting the Arduino ground to an earth ground (for example, a water pipe)
could be another solution.
Another solution that seems to have worked well on at least one installation, is to run a
foil ground plane under the sensor foil (insulated by plastic, paper, etc.), and connected
by a wire to ground. This worked really well to us to stabilize sensor values and also
seemed to dramatically increase sensor sensitivity.
29
CHAPTER-5
OPERATING PROCEDURE:-
We performed our experiment (till now) in two parts-
PART I:-
PART II:-
The second part is to set up a wireless communication for signals transfer and reception.
30
CHAPTER-6
RESULT:-
To develop our project “Car Control Using VR”, we have developed a well defined
algorithm for efficient coding and accordingly done the coding for the project to work.
Till this stage, we have even performed the task of error correction by trying to run the
coding and checking the readings of resistance variation through capacitance setup and
wireless data transfer.
We are now working on the motor setup to run the model car and hence are looking
forward on completing our project by considering various factors.
31
CHAPTER-7
CONCLUSION:-
Our project has hence great benefits and industrial applications and we have considered
all the factors that came in our mind to make it useful for the large number of fields, both
industrial and economical. Hence, we can conclude that our project has great economical
value and has great future scope for the development of the economy.
We have been, hence, successful in developing our model till this stage and have
presented the results till now in front of our Faculty Guide and Project Head In charge.
32
CHAPTER-8
FUTURE SCOPE:-
Our project “CAR CONTROL USING VR” has great future scope as, it is modern
equipment and uses modern technology of WIRELESS COMMUNICATION.
It has various beneficial uses and is mainly developed for the help of physically unable
persons, as, right now; there are not many good ways for them to drive any motor
vehicle. This project can be very useful for them as to control the motor vehicle by using
this project, they need only one body part, that also only to vary the field resistance and
accordingly to guide the motor vehicle in desired way.
We have developed a small model of a very useful bigger models to be created in future,
as, the motor companies can also make in use the idea of the project to develop even
better motor cars for the use of a large number of different type of people, whether
physically able or unable. Hence, this project can also help in the development of future
and nation’s value in the whole world.
Our model or even idea can be of great value to many other fields also if thought even
deeper about its uses.
Hence, we can eventually say that our project is of great value and has great future scopes
in different fields of life.
33
3 REFERENCES:-
1 https://playground.arduino.cc/Main/CapacitiveSensor?from=Main.CapSense
2 https://www.semiconductorstore.com/blog/2014/Arduino-Development-Kits-
Advantages-and-Features/811/
3 https://www.theengineeringprojects.com/2018/06/introduction-to-arduino-nano.html
4 https://www.engineersgarage.com/electronic-components/rf-module-transmitter-receiver
5 https://www.diva-portal.org/smash/get/diva2:974947/FULLTEXT01.pdf
34
APPENDIX
1 PROGRAMMING CODE:-
#include <EEPROM.h>
#define resolution 8
#define mains 50
int Time1;
int Time2;
int Time3;
int TimeCal1;
int TimeCal2;
int TimeCal3;
int MotorA1 = 2;
int MotorA2 = 4;
int MotorB1 = 3;
int MotorB2 = 5;
int flag;
void setup() {
Serial.begin(115200);
startTimer();
pinMode(Switch, INPUT_PULLUP);
35
pinMode(MotorA1,OUTPUT);
pinMode(MotorA2,OUTPUT);
pinMode(MotorB1,OUTPUT);
pinMode(MotorB1,OUTPUT);
flag = 0;
}
void loop() {
Time1 = time(8, B00000001);
Time2 = time(9, B00000010);
Time3 = time(10,B00000100);
if (digitalRead(Switch) == LOW ) {
//delay(1000);
flag = 1;
TimeCal1 = Time1;
TimeCal2 = Time2;
TimeCal3 = Time3;
//delay(1000);
}
Serial.print(T1);
Serial.print(" ");
Serial.print(T2);
Serial.print(" ");
Serial.println(T3);
/*if (flag == 1){
if (T1 > 50){
if (T2 > 50 && T3 > 50 )
{digitalWrite(MotorA1,HIGH);digitalWrite(MotorA2,LOW);digitalWrite(MotorB1,HIG
H);digitalWrite(MotorB2,LOW);}
else if (T2 > 50 )
{digitalWrite(MotorA1,HIGH);digitalWrite(MotorA2,LOW);digitalWrite(MotorB1,LO
W);digitalWrite(MotorB2,LOW);}
else if (T3 > 50 )
{digitalWrite(MotorA1,LOW);digitalWrite(MotorA2,LOW);digitalWrite(MotorB1,HIG
H);digitalWrite(MotorB2,LOW);}
36
else
{digitalWrite(MotorA1,LOW);digitalWrite(MotorA2,LOW);digitalWrite(MotorB1,LOW
);digitalWrite(MotorB2,LOW);}
}
else {
digitalWrite(MotorA1,LOW);digitalWrite(MotorA2,LOW);digitalWrite(MotorB1,LOW)
;digitalWrite(MotorB2,LOW);
}
}*/
if (flag == 1){
if (T2 > 50 && T3 > 50 ){digitalWrite(MotorA1,LOW);
digitalWrite(MotorA2,HIGH); digitalWrite(MotorB1,LOW);
digitalWrite(MotorB2,HIGH);}
else if (T1 > 50) {digitalWrite(MotorA1,HIGH); digitalWrite(MotorA2,LOW);
digitalWrite(MotorB1,HIGH); digitalWrite(MotorB2,LOW);}
else if (T2 > 50) {digitalWrite(MotorA1,HIGH); digitalWrite(MotorA2,LOW);
digitalWrite(MotorB1,LOW); digitalWrite(MotorB2,LOW);}
else if (T3 > 50) {digitalWrite(MotorA1,LOW); digitalWrite(MotorA2,LOW);
digitalWrite(MotorB1,HIGH); digitalWrite(MotorB2,LOW);}
else {digitalWrite(MotorA1,LOW); digitalWrite(MotorA2,LOW);
digitalWrite(MotorB1,LOW); digitalWrite(MotorB2,LOW);}
}}
void startTimer() {
timer0_overflow_count = 0;
TCNT0 = 0;
37
}
1. Forward
38
2. Backward
3. Right
39
4. Left
40
41