Difference between revisions of "S15: Hand Gesture Recognition using IR Sensors"
Proj user9 (talk | contribs) (→Hardware Design) |
Proj user9 (talk | contribs) (→Software Design) |
||
Line 255: | Line 255: | ||
</td> | </td> | ||
<td valign="top" align="justify" width=400px> | <td valign="top" align="justify" width=400px> | ||
− | <b>Filter Algorithm</b> | + | <b><font size="2.5">Filter Algorithm</font></b> |
</tr> | </tr> | ||
</table> | </table> | ||
Line 262: | Line 262: | ||
<tr> | <tr> | ||
<td valign="top" align="justify" width=700px> | <td valign="top" align="justify" width=700px> | ||
− | <b> | + | <b><font size="2.5">Gesture Recognition Algorithm</font></b> |
Line 275: | Line 275: | ||
<tr> | <tr> | ||
<td valign="top" align="justify" width=850px> | <td valign="top" align="justify" width=850px> | ||
− | <b>Application Development</b><br> | + | <b><font size="2.5">Application Development</font></b><br> |
− | <i>QT Software</i><br> | + | <i><font size="2">QT Software</font></i><br> |
QT is a cross-platform application framework that is widely used in developing application software that can be run on various software and hardware platforms with little or no change in the underlying codebase while having the speed and the power of native application. [1] | QT is a cross-platform application framework that is widely used in developing application software that can be run on various software and hardware platforms with little or no change in the underlying codebase while having the speed and the power of native application. [1] | ||
It is mainly used to make GUI based applications but there can be applications such as consoles or command-line applications developed in QT. QT is preferred by many application programmers as it helps in developing GUI applications in C++ as it uses the standard C++ libraries for backend. | It is mainly used to make GUI based applications but there can be applications such as consoles or command-line applications developed in QT. QT is preferred by many application programmers as it helps in developing GUI applications in C++ as it uses the standard C++ libraries for backend. | ||
Line 295: | Line 295: | ||
</td> | </td> | ||
<td width=300px align="center"> | <td width=300px align="center"> | ||
− | [[File:S15 244 Grp10 Ges qtdevices.png|300px]]<br><br> | + | [[File:S15 244 Grp10 Ges qtdevices.png|300px]]<br> |
− | [[File:S15 244 Grp10 Ges qt-sdk.png|300px]] | + | <center>Figure : Devices supporting QT</center><br> |
+ | [[File:S15 244 Grp10 Ges qt-sdk.png|300px]]<br> | ||
+ | <center>Figure : QT-SDK</center><br> | ||
</td> | </td> | ||
</tr> | </tr> | ||
Line 304: | Line 306: | ||
<tr> | <tr> | ||
<td valign="top" align="justify" width=1150px> | <td valign="top" align="justify" width=1150px> | ||
− | <i>Gesture Recognition application on QT</i><br> | + | <i><font size="2">Gesture Recognition application on QT</font></i><br> |
Once the gesture is recognized on the SJONE board, a message is sent over UART2 stating which gesture was sensed. The Qt application gets this message from the COMM port and scrolls the images left and right based on the left/right gesture and it moves a vertical slider up and down which in turn changes the value on a LCD screen display. | Once the gesture is recognized on the SJONE board, a message is sent over UART2 stating which gesture was sensed. The Qt application gets this message from the COMM port and scrolls the images left and right based on the left/right gesture and it moves a vertical slider up and down which in turn changes the value on a LCD screen display. | ||
The application opens up in a window that has 2 tabs, config and App. The config tab includes the fields required to open the COMM port and test the COMM port using a loopback connection.<br> | The application opens up in a window that has 2 tabs, config and App. The config tab includes the fields required to open the COMM port and test the COMM port using a loopback connection.<br> | ||
[[File:S15 244 Grp10 Ges qt tab1.JPG|center|650px|x434px]]<br> | [[File:S15 244 Grp10 Ges qt tab1.JPG|center|650px|x434px]]<br> | ||
+ | <center>Figure : Configuration Tab</center><br> | ||
This tab has the following QObjects<br> | This tab has the following QObjects<br> | ||
[[File:S15 244 Grp10 Ges table1.png|center|650px|x480px]]<br> | [[File:S15 244 Grp10 Ges table1.png|center|650px|x480px]]<br> | ||
+ | <center>Table 1: QObjects used for Configuration Tab</center><br> | ||
The App tab includes the objects required to change images and change the value in the vertical slider and lcd number display.<br> | The App tab includes the objects required to change images and change the value in the vertical slider and lcd number display.<br> | ||
[[File:S15 244 Grp10 Ges qt tab2.JPG|center|650px|x434px|]]<br> | [[File:S15 244 Grp10 Ges qt tab2.JPG|center|650px|x434px|]]<br> | ||
+ | <center>Figure : Application Tab</center><br> | ||
This tab has the following Qobjects<br> | This tab has the following Qobjects<br> | ||
[[File:S15 244 Grp10 Ges table2.png|center|650px|x420px]]<br> | [[File:S15 244 Grp10 Ges table2.png|center|650px|x420px]]<br> | ||
+ | <center>Table 2: QObjects used for Application Tab</center><br> | ||
Revision as of 06:47, 24 May 2015
Contents
Abstract
The aim of the project is to develop hand gesture recognition system using grid of IR proximity sensors. Various hand gestures like swipe, pan etc. can be recognized. These gestures can be used to control different devices or can be used in various applications. The system will recognize different hand gestures based on the values received from IR proximity sensors. We have used QT to develop the application to demonstrate the working of the project.
Objectives & Introduction
We use various hand gestures in our day-to-day life to communicate while trying to explain someone something, direct them somewhere etc. It would be so cool if we could communicate with various applications running on the computers or different devices around us understand the hand gestures and give the expected output. In order to achieve this, we are using a 3-by-3 grid of analog IR proximity sensors and connecting these sensors via multiplexers to the ADC pins on SJOne Board. As a hand is moved in front of the sensors, the sensor values would in a particular pattern enabling us to detect the gesture and instruct the application to perform the corresponding action.
Team Members & Responsibilities
- Harita Parekh
- Implementing algorithm for gesture recognition
- Implementation of sensor data filters
- Shruti Rao
- Implementing algorithm for gesture recognition
- Interfacing of sensors, multiplexers and controller
- Sushant Potdar
- Implementation of final sensor grid
- Development of the application module
Schedule
Week# | Start Date | End Date | Task | Status | Actual Completion Date |
---|---|---|---|---|---|
1 | 3/22/2015 | 3/28/2015 | Research on the sensors, order sensors and multiplexers | Completed | 3/28/2015 |
2 | 3/29/2015 | 4/4/2015 | Read the data sheet for sensors and understand its working. Test multiplexers | Completed | 4/04/2015 |
3 | 4/05/2015 | 4/11/2015 | Interfacing of sensors, multiplexers and controller | Completed | 4/15/2015 |
4 | 4/12/2015 | 4/18/2015 |
|
Completed | 4/25/2015 |
5 | 4/19/2015 | 4/25/2015 |
|
Completed | 5/02/2015 |
6 | 4/26/2015 | 5/02/2015 |
|
Completed | 5/09/2015 |
7 | 5/03/2015 | 5/09/2015 | Testing and bug fixes | Completed | 5/15/2015 |
8 | 5/10/2015 | 5/16/2015 | Testing and final touches | Completed | 5/22/2015 |
9 | 5/21/2015 | 5/24/2015 | Report Completion | Completed | 5/24/2015 |
10 | 5/25/2015 | 5/25/2015 | Final demo | Scheduled | 5/25/2015 |
Parts List & Cost
SR# | Component Name | Quantity | Price per component | Total Price |
---|---|---|---|---|
1 | Sharp Distance Measuring Sensor Unit (GP2Y0A21YK0F) | 9 | $14.95 | $134.55 |
2 | STMicroelectronics Dual 4-Channel Analog Multiplexer/Demultiplexer (M74HC4052) | 3 | $ | $ |
3 | SJ-One Board | 1 | $80 | $80 |
4 | USB-to-UART converter | 1 | $7 | $7 |
Total | $ |
Design & Implementation
Hardware Design
The image shows the setup of the project.
Proximity Sensor:
|
|
Multiplexer:
|
|
USB-to-UART converter:
|
|
Hardware Interface
Software Design
Filter Algorithm |
Gesture Recognition Algorithm
|
Application Development
QT applications are highly portable from one platform to other as QT first runs a Qmake function before compiling the source code. It is very similar to ‘cmake’ which is used for cross platform compilation of any source code. The qmake auto generates a makefile depending on the operating system and the compiler used for the project. So if a project is to be ported from windows to linux based system then the qmake auto generated a new makefile with arguments and parameters that the g++ compiler expects. |
|
Gesture Recognition application on QT The application opens up in a window that has 2 tabs, config and App. The config tab includes the fields required to open the COMM port and test the COMM port using a loopback connection. This tab has the following QObjects The App tab includes the objects required to change images and change the value in the vertical slider and lcd number display. This tab has the following Qobjects
|
Implementation
This section includes implementation, but again, not the details, just the high level. For example, you can list the steps it takes to communicate over a sensor, or the steps needed to write a page of memory onto SPI Flash. You can include sub-sections for each of your component implementation.
Testing & Technical Challenges
Describe the challenges of your project. What advise would you give yourself or someone else if your project can be started from scratch again? Make a smooth transition to testing section and described what it took to test your project.
Include sub-sections that list out a problem and solution, such as:
My Issue #1
Discuss the issue and resolution.
Conclusion
Conclude your project here. You can recap your testing and problems. You should address the "so what" part here to indicate what you ultimately learnt from this project. How has this project increased your knowledge?
Project Video
Upload a video of your project and post the link here.
Project Source Code
References
Acknowledgement
All the components where procurred from Amazon, Adafruit and digikey. We are thankful to Preet for his continuous guidance during the project.
References Used
IR Sensor Data Sheet
LPC_USER_MANUAL
Multiplexer Data Sheet
QT Software
Filter code refered from Spring'14 project Virtual Dog