<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://socialledge.com/sjsu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Himanshu</id>
		<title>Embedded Systems Learning Academy - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://socialledge.com/sjsu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Himanshu"/>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php/Special:Contributions/Himanshu"/>
		<updated>2026-05-06T12:31:25Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.27.1</generator>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=S14:_FaceTime_Robo&amp;diff=12110</id>
		<title>S14: FaceTime Robo</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=S14:_FaceTime_Robo&amp;diff=12110"/>
				<updated>2014-12-25T08:44:37Z</updated>
		
		<summary type="html">&lt;p&gt;Himanshu: /* Project Video */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Project Title ==&lt;br /&gt;
FaceTime Robo&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
FaceTime Robo (FTB) is a robot which helps in video chat. With the help of FTB, the user can do video chat without holding cell phone in hand. Now user can do multitask, while chatting with their loved ones. FTB works on face detection algorithm.&lt;br /&gt;
&lt;br /&gt;
== Objectives &amp;amp; Introduction ==&lt;br /&gt;
FTB has three different modes.&lt;br /&gt;
The first mode is Normal mode. In normal mode, FTB just tracks user in the room. If user suddenly disappears from FTB range of view, then it would not be able to follow up with user. Therefore, second mode is developed. The second mode is called autonomous search mode. When FTB is set in autonomous search mode, then it keeps searching for user in the room. On finding the user, FTB automatically resumes normal mode. FTB also has voice recognition feature built in. FTB wakes up/sleep on user vocal command. The Third mode is sound localization mode.  In this mode, user just calls FTB name and FTB turns into that direction and starts searching for user. The FTB uses It’s artificial intelligence to determine the direction of sound and turns into that direction.&lt;br /&gt;
&lt;br /&gt;
[[File:Cmpe244_S14_FaceTimeRobo_CompleteSystemFlow.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Team Members &amp;amp; Responsibilities ===&lt;br /&gt;
*  Team Member&lt;br /&gt;
** Himanshu Saini&lt;br /&gt;
*** Hardware Design&lt;br /&gt;
*** Driver Development&lt;br /&gt;
*** Software Design&lt;br /&gt;
*** Integration and Test&lt;br /&gt;
*** Project Documentation&lt;br /&gt;
&lt;br /&gt;
== Schedule ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Week#&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Date&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Task&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Actual&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| 02/27/2014&lt;br /&gt;
| Rough Estimation of parts required in project&lt;br /&gt;
|                Done&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| 03/06/2014&lt;br /&gt;
| Parts Ordered&lt;br /&gt;
|                Done&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| 03/13/2014&lt;br /&gt;
| PWM and ADC Driver&lt;br /&gt;
|                Done&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| 03/20/2014&lt;br /&gt;
| Individual Testing of each parts&lt;br /&gt;
|                Done&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| 04/03/2014&lt;br /&gt;
| Implementation of face recognition algorithm&lt;br /&gt;
|                Done&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| 04/10/2014&lt;br /&gt;
| Windows driver development&lt;br /&gt;
|               Done&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| 04/17/2014&lt;br /&gt;
| Integration of project with RTOS&lt;br /&gt;
|             Done&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| 04/24/2014&lt;br /&gt;
| Sound localization testing&lt;br /&gt;
|               Done&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| 05/01/2014&lt;br /&gt;
| Complete testing of system starts&lt;br /&gt;
|               Done&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Parts List &amp;amp; Cost ==&lt;br /&gt;
The table below summarizes the parts used and the cost for the project.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Ref Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Part Number&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Description&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Qyt&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Cost&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 1&lt;br /&gt;
| SJ one Board&lt;br /&gt;
| SJSU development board, LPC1758&lt;br /&gt;
| 1&lt;br /&gt;
| $75&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 2&lt;br /&gt;
| Servos&lt;br /&gt;
| For Pan/Tilt Mechanism&lt;br /&gt;
| 2&lt;br /&gt;
| $40&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 3&lt;br /&gt;
| Microphones&lt;br /&gt;
| For Sound Localization&lt;br /&gt;
| 2&lt;br /&gt;
| $25&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 4&lt;br /&gt;
| Webcam&lt;br /&gt;
| Microsoft Webcam&lt;br /&gt;
| 1&lt;br /&gt;
| $25&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 5&lt;br /&gt;
| Wires&lt;br /&gt;
| Length: 0.5', 0.3', and 1.00' feet&lt;br /&gt;
| 25&lt;br /&gt;
| $35&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 6&lt;br /&gt;
| Acrylic sheets&lt;br /&gt;
| 1 X 1 feet&lt;br /&gt;
| 1&lt;br /&gt;
| $30&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 7&lt;br /&gt;
| USB to Serial Converter&lt;br /&gt;
| Converter&lt;br /&gt;
| 1&lt;br /&gt;
| $20&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 8&lt;br /&gt;
| Other Miscellaneous Stuffs&lt;br /&gt;
| Stands and Screws&lt;br /&gt;
| 15 Screws and 8 Stands&lt;br /&gt;
| $30&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 9&lt;br /&gt;
| Brackets&lt;br /&gt;
| For Pan/Tilt&lt;br /&gt;
| 2&lt;br /&gt;
| $10&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 10&lt;br /&gt;
| Velcro&lt;br /&gt;
| Size 1 X 1 feet&lt;br /&gt;
| 1&lt;br /&gt;
| $20&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Design &amp;amp; Implementation ==&lt;br /&gt;
&lt;br /&gt;
=== Hardware Design ===&lt;br /&gt;
&lt;br /&gt;
[[File:Cmpe244_S14_FaceTimeRobo_CompleteProject.jpg]]&lt;br /&gt;
&lt;br /&gt;
The hardware design of FTB is consists of three layers. The very top layer of FTB has two servo motors, which are placed in such a way so that pan/tilt mechanism can easily be obtained. Bottom servo rotates from left to right. Top servo rotates up and down. The top servo has a bracket attached which has a Velcro on it. The reason of putting Velcro on bracket is to easily place or remove cell phone from FTB. The top layer of FTB also has a camera attach to the bracket. The camera also has inbuilt microphone.  There are two more separate microphones on the top layer for sound localization.&lt;br /&gt;
&lt;br /&gt;
The second layer of FTB is consists of breadboards, switches, power supply.&lt;br /&gt;
&lt;br /&gt;
The third layer of FTB is consists of SJ One Board.&lt;br /&gt;
&lt;br /&gt;
=== Hardware Interface ===&lt;br /&gt;
The FTB robot uses following interfaces:&lt;br /&gt;
* A/D Converter&lt;br /&gt;
** Analog to Digital converter from sound sensors.&lt;br /&gt;
* Windows USB to Serial Driver:&lt;br /&gt;
** To send the data from PC to SJ One Board.&lt;br /&gt;
* Pulse Width Modulation (PWM)&lt;br /&gt;
** PWM interface to move servos preciously&lt;br /&gt;
* GPIO&lt;br /&gt;
** Switches to enable/disable Autonomous Search Mode and Sound Localization Mode&lt;br /&gt;
&lt;br /&gt;
[[File:CMPE244_SP14_FaceTimeRobo_Hardware_Interface.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Software Design ===&lt;br /&gt;
The software is divided into two parts. The first part of the software is running at the PC end and the second part of the software is running at the SJ One Board.&lt;br /&gt;
&lt;br /&gt;
The first part of the software running at the PC requires the face detection algorithm. The software calculates frame per second and the size of the picture frame. On calculating the X and Y axis of the picture frame, the data is send to the SJ One Board. &lt;br /&gt;
&lt;br /&gt;
[[File:Cmpe244_S14_FaceTimeRobo_SoftwareFlowInPC.jpg]]&lt;br /&gt;
&lt;br /&gt;
The second part of the software running at SJ One Board requires initialization of PWM and ADC driver.  The general flow of software is shown in figure.  The software has four tasks. The first task controls “Normal Mode” of the robo. The second task controls “Autonomous Search Mode” of the robo. The third task controls “Voice recognition” of the robo. The fourth and final task controls “Sound Localization Mode” of the robo.&lt;br /&gt;
&lt;br /&gt;
The first task controls “Normal Mode”. As the task begins executing, it waits for the serial data from the PC. On receiving the data from PC, LPC 1758 calculates the values for servos and updates the servos. &lt;br /&gt;
The second task controls “Autonomous Search mode”. The task two executes when the autonomous search mode switch is turned on.  The task two keeps updating servos with new position until unless it finds out the user. The moment tasks two find the user, it automatically switches to “Normal Mode”.&lt;br /&gt;
&lt;br /&gt;
The third task controls voice recognition feature. Whenever the voice command matches to the pre-stored voice commands, then the PC sends data to third task and it takes corresponding actions.&lt;br /&gt;
&lt;br /&gt;
The fourth and final task controls “Sound Localization Mode”.  The fourth task executes when the sound localization switch is turned on. The microphone starts receiving data and determines the direction of the sound. Once the direction of the sound detected, the LPC 1758 updates the new position of the servos.&lt;br /&gt;
&lt;br /&gt;
[[File:Cmpe244_S14_FaceTimeRobo_SoftwareFlow.jpg]]&lt;br /&gt;
&lt;br /&gt;
=== Implementation ===&lt;br /&gt;
&lt;br /&gt;
'''Microcontroller to Servo'''&lt;br /&gt;
The pulse width modulation driver was written to make the communication between SJ1 board and serovs. When SJ1 board boots up, it initializes PWM driver. Then after, the servo position task keeps updating the position of the servo as instructed by microcontroller.&lt;br /&gt;
&lt;br /&gt;
'''Microcontroller to Sound Sensors'''&lt;br /&gt;
The analog to digital converter driver was written to make the communication between SJ1 board and sound sensors. The sound sensors are analog sensors. When SJ1 boots up, it initializes A/D driver. When “sound localization” mode is selected, then A/D task keeps collecting the data from sound sensors and updates the microcontroller by sensors. Once the sound sensors cross threshold level, then microcontroller compares the reading of all sensors and takes appropriate actions.&lt;br /&gt;
&lt;br /&gt;
'''Computer to Microcontroller'''&lt;br /&gt;
The face detection program running at PC calculates the position of user and sends the data to microcontroller through an interface. The interface is designed using c++. The interface is a windows driver which forwards the data from face detection program to serial COM port. On the other hand, the SJ1 microcontroller receives data through serial communication, UART.&lt;br /&gt;
&lt;br /&gt;
== Testing &amp;amp; Technical Challenges ==&lt;br /&gt;
There were several testing and technical challenges, I faced while building this project. There are some challenges which can be avoided very easily by future students, such as&lt;br /&gt;
* Have a good soldering iron. It is very important to have a good soldering iron. If wires are not soldered properly, then it would be hard to debug the hardware. Good connections between microcontroller and peripheral will save a lot of hardware debugging time.&lt;br /&gt;
* Have a good Oscilloscope. An oscilloscope is very important tool, if you want to build a project like FTB. A good quality of oscilloscope will help you to debug in Pulse Width Modulation. Please do not buy cheap oscilloscope just to save couple hundred dollars. It will help you in a long run.&lt;br /&gt;
* Please join a workshop like a “Techshop” to get the right cutting edge tools. If you are a hobbyist and you want to build project from scratch, do not use “Dremel” and other cutting tools at home until unless you are expert. If you do not know how to use cutting tools, then you will waste lot of time and money. &lt;br /&gt;
&lt;br /&gt;
=== My Issue #1 ===&lt;br /&gt;
The biggest issue was designing the system. It took me approx 7 to 10 days to draw the system on paper. If your design has some loop hole, then it would be hard to implement and it will consume your lot of time. For example, I have three layers in my prototype, such as top layer has servos and camera, middle layer has all connections and last layer has SJ1 board.&lt;br /&gt;
I wanted to design system in such a way that it would be easier to separate layer from each other, if something goes wrong in any layer.&lt;br /&gt;
&lt;br /&gt;
=== My Issue #2 ===&lt;br /&gt;
Another biggest issue was designing interface between computer/laptop to FTB. The interface is responsible to collect the data from laptop and send to SJ1 board. It was a main key of the project. If I would be unable to take out the data from laptop and feed it into SJ1 board, then it would be tough to give life to FTB.&lt;br /&gt;
Fortunately, I learned windows driver programming in the past. It helped me to design an interface between the computer and SJ1 board.&lt;br /&gt;
&lt;br /&gt;
=== My Issue #3 ===&lt;br /&gt;
The another issue was the huge amount of memory consumption by face detection program running on laptop. Face detection program was consuming memory more than 3GB due to some program errors and then it crashes. Therefore, I increased RAM from 4GB to 12GB. However, the problem was same. The consumption of RAM was still 3GB and then crash. Later on, I found out there was some problem in memory allocation in the program. It took a lot of time to figure out the problem.&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
The FaceTImeRobo was fun project to work on. Through this project, I achieved lot of knowledge about face detection technology. I also learned how to develop windows driver, PWM driver, A/D driver, and GPIO. This project also helped me to learn different ways of testing project, so that it will work flawlessly in real time environment. It was a great experience to write C++ code for ARM Cortex-M3 and later on integrate with real time operating system (FreeRTOS)&lt;br /&gt;
&lt;br /&gt;
If there was more time, I would like to implement the following additions:&lt;br /&gt;
&lt;br /&gt;
* Facial recognition technology so that robot can lock itself to a particular user.&lt;br /&gt;
* I wanted to add speaker, so that robot can talk to user.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Project Video ===&lt;br /&gt;
https://www.youtube.com/watch?v=sDsf6LbdYqA&amp;amp;list=UUmTKr2RNmUsWPyTO_T6kgNg&lt;br /&gt;
&lt;br /&gt;
=== Project Source Code ===&lt;br /&gt;
*  [https://sourceforge.net/projects/sjsu/files/CmpE244_SJSU_S2014/ Sourceforge source code link]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
=== Acknowledgement ===&lt;br /&gt;
I am very thankful to Professor Preetpal Kang for&lt;br /&gt;
* Teaching advance micro-processor.&lt;br /&gt;
* Teaching Real Time Operating System (FreeRTOS)&lt;br /&gt;
* Helping me in building FaceTime Robo : Darwin&lt;br /&gt;
&lt;br /&gt;
=== References Used ===&lt;br /&gt;
* [http://www.nxp.com/documents/user_manual/UM10360.pdf LPC1758 User Manual]&lt;br /&gt;
* [http://www.freertos.org/ FreeRTOS]&lt;br /&gt;
* [http://opencv.org/ Opencv ]&lt;/div&gt;</summary>
		<author><name>Himanshu</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=PING)))_Ultrasonic_Sensor&amp;diff=1176</id>
		<title>PING))) Ultrasonic Sensor</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=PING)))_Ultrasonic_Sensor&amp;diff=1176"/>
				<updated>2012-06-30T06:04:35Z</updated>
		
		<summary type="html">&lt;p&gt;Himanshu: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overview ==&lt;br /&gt;
The PING))) Ultrasonic works by sending sound waves and then the sensor signal emits a PWM that needs to be timed to detect the distance.  The PWM width depends on the time it takes for the sound waves to bounce back from an object.&lt;br /&gt;
&lt;br /&gt;
== Interface Details ==&lt;br /&gt;
The interface of this sensor is simple, just Power, Ground, and PWM Signal, but this signal wire is multiplexed between input and output.  Here are the steps needed:&lt;br /&gt;
&lt;br /&gt;
*  Connect to your CPU Pin, such as P0.X&lt;br /&gt;
*  Configure P0.X as output, and give a 20uS Pulse of HIGH then LOW&lt;br /&gt;
*  Immediately configure P0.X as input&lt;br /&gt;
*  Take a snapshot of a hardware timer or start a hardware timer&lt;br /&gt;
*  Enable P0.X as falling edge interrupt&lt;br /&gt;
*  --&amp;gt; After some time &amp;lt;--&lt;br /&gt;
*  P0.X will go HIGH, and then LOW and the width of this HIGH wave corresponds to the object distance&lt;br /&gt;
*  Interrupt on falling edge will now trigger, so compute the delta of the hardware timer&lt;br /&gt;
*  Disable falling edge interrupt otherwise when you trigger this sensor again (bullet 2 above), the interrupt will fire unintentionally.&lt;br /&gt;
&lt;br /&gt;
== LPC2148 FreeRTOS Hints ==&lt;br /&gt;
*  Since FreeRTOS uses Timer0, simply use Timer1&lt;br /&gt;
*  The FreeRTOS sample code provided already starts TIMER1, so:&lt;br /&gt;
* When you want to compute the delta, save the timer value when you trigger the PING))) Sensor by:&lt;br /&gt;
*: &amp;lt;code&amp;gt;unsigned int timerValueAtTrigger = portGET_RUN_TIME_COUNTER_VALUE();&amp;lt;/code&amp;gt;&lt;br /&gt;
* When the ISR occurs, compute the delta:&lt;br /&gt;
*: &amp;lt;code&amp;gt;unsigned int timerValueAtIsr = portGET_RUN_TIME_COUNTER_VALUE();&amp;lt;/code&amp;gt;&lt;br /&gt;
*: &amp;lt;code&amp;gt;unsigned int timerDelta = (timerValueAtIsr - timerValueAtTrigger);&amp;lt;/code&amp;gt;&lt;br /&gt;
* At TIMER1_PC=32 (default), each tick = 1/(48Mhz/32) = 666ns, so:&lt;br /&gt;
*: &amp;lt;code&amp;gt;unsigned int deltaInMicroSec = timerDelta * 0.666;&lt;br /&gt;
* Now use the PING))) datasheet to convert Micro-seconds to inches.&lt;br /&gt;
&lt;br /&gt;
== '''Timer/Capture Based PING sensor:''' ==&lt;br /&gt;
&lt;br /&gt;
=== '''Things need to be done before start interfacing PING sensor with LPC2148:''' ===&lt;br /&gt;
: 1. Read chapter 15, Timer/Counter, from the datasheet of LPC2148.&lt;br /&gt;
: 2. Make sure the PING sensor is digital one.&lt;br /&gt;
: 3. Make sure do not use TIMER0 because it is used by FreeRTOS.&lt;br /&gt;
: 4. Select pin of LPC2148 that can be set for Capture 1, for example Pin 10.&lt;br /&gt;
=== '''Pin description of PING sensor''' === &lt;br /&gt;
	There are three pins in digital PING sensor.&lt;br /&gt;
	a) 5v pin	b) Signal Pin	c) Ground&lt;br /&gt;
=== '''Points to be noted:''' ===&lt;br /&gt;
: 1. FreeRTOS starts TIMER1 and TIMER0 by itself.&lt;br /&gt;
: 2. OR you can also initiate TIMER1 by yourself.&lt;br /&gt;
: 3. OR you can set only T1CCR register (Atleast).&lt;br /&gt;
=== '''How to Write TIMER1 driver?''' ===&lt;br /&gt;
: 1. First enable the timer reset by setting bit 1 as ‘1’ in TITCR.&lt;br /&gt;
: 2. Then set the Prescale Register (T1PR) according to number of PCLK you want to count before incrementing Timer Counter      (T1TC). Once TITC increments T1PC (Prescale Counter Register) is reset. You can set T1PR to zero so that T1TC will increment on every     PCLK.&lt;br /&gt;
: 3. The third register need to set is Capture Control Register (T1CCR). This register can be set for one of the following functions:   &lt;br /&gt;
           a. Capture on Rising edge	       b. Capture on Falling edge	   c. Interrupt on Capture pin CAPn.0&lt;br /&gt;
: 4. Finally, enable the TIMER by enabling bit 0 in T1TCR&lt;br /&gt;
=== '''Working of PING sensor''' ===&lt;br /&gt;
	In order to activate the sensor, the host microcontroller (LPC2148) will send a short pulse of duration 20 microseconds on   signal pin. Just after the pulse will end, set the signal pin as input. Then, at that moment take the snapshot of the PCLK through T1TC register. Snapshot means note down the time at point X. Initialize the register T1CCR so that when falling edge will come then T1CCR register store the time in T1TC register, which will be at point Y. Now, subtract point X from Y.&lt;br /&gt;
Find out the HOLDOFF time from the datasheet of PING sensor. Mostly, it is around 750us. HOLDOFF is the time between the PING sensor receives activation signal from host microcontroller and PING sensor emits ultrasonic wave to detect object. Suppose, you get Z by subtracting X from Y. Then, subtract 750us from Z.&lt;br /&gt;
                                             Z = Y – X&lt;br /&gt;
                                            A = Z – 750us&lt;br /&gt;
                   A’ is the time taken by wave to go and come back; therefore the one side distance will be ‘A’/2 .&lt;br /&gt;
                                               B = A/2&lt;br /&gt;
Now, divide ‘B’ by 73.746 to get the distance in inches. The value 73.746 is taken according to the Parallax digital PING sensor. It could vary for another PING sensor; therefore, please check the datasheet of your PING sensor.&lt;br /&gt;
[[File:Timer_Based_PING_Sensor1.JPG|700px|thumb|center|alt=Figure 1: Working of Ping Sensor |Figure 1: Working of Ping Sensor]]&lt;/div&gt;</summary>
		<author><name>Himanshu</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=File:Timer_Based_PING_Sensor1.JPG&amp;diff=1174</id>
		<title>File:Timer Based PING Sensor1.JPG</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=File:Timer_Based_PING_Sensor1.JPG&amp;diff=1174"/>
				<updated>2012-06-30T06:00:25Z</updated>
		
		<summary type="html">&lt;p&gt;Himanshu: Working of PING Sensor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Working of PING Sensor&lt;/div&gt;</summary>
		<author><name>Himanshu</name></author>	</entry>

	<entry>
		<id>http://socialledge.com/sjsu/index.php?title=File:Timer_Based_PING_Sensor.JPG&amp;diff=1171</id>
		<title>File:Timer Based PING Sensor.JPG</title>
		<link rel="alternate" type="text/html" href="http://socialledge.com/sjsu/index.php?title=File:Timer_Based_PING_Sensor.JPG&amp;diff=1171"/>
				<updated>2012-06-30T05:55:38Z</updated>
		
		<summary type="html">&lt;p&gt;Himanshu: Working of PING Sensor&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Working of PING Sensor&lt;/div&gt;</summary>
		<author><name>Himanshu</name></author>	</entry>

	</feed>