Difference between revisions of "F16: Piano Glove"

From Embedded Systems Learning Academy
Jump to: navigation, search
(Objectives & Introduction)
(Parts List & Cost)
Line 152: Line 152:
 
|-
 
|-
 
! scope="row"| 5
 
! scope="row"| 5
| Gloves
+
| MCP6242-E/P OPAMP
| [http://www.footlocker.com/product/model:225828/sku:NRGD3020/nike-dri-fit-tailwind-run-gloves-mens/black/anthracite/&SID=9114&inceptor=1&cm_mmc=SEM-_-PLA-_-Google-_-nrgd3020&gclid=CjwKEAiA0pDBBRCFtoPyguTh8AUSJADNWeux3F03nyo6UUXhSNe5IRN2ZZubmhZxg7kLGlJAcuYqNRoCIefw_wcB Nike]
+
| [http://www.mouser.com/search/ProductDetail.aspx?r=579-MCP6242-E%2fP Mouser]
 +
| 10
 +
| $0.36
 +
|-
 +
! scope="row"| 6
 +
| Intel Compute Stick
 +
| [http://www.intel.com/buy/us/en/catalog/desktop/computesticks Intel]
 
| 1
 
| 1
| $12.99
+
| N/A
 
|-
 
|-
! scope="row"| 6
+
! scope="row"| 7
 
| Misc Parts (Wires, Resistors, etc)  
 
| Misc Parts (Wires, Resistors, etc)  
 
| Personal
 
| Personal

Revision as of 08:58, 20 November 2016

Grading Criteria

  • How well is Software & Hardware Design described?
  • How well can this report be used to reproduce this project?
  • Code Quality
  • Overall Report Quality:
    • Software Block Diagrams
    • Hardware Block Diagrams
      Schematic Quality
    • Quality of technical challenges and solutions adopted.

Project Title

OVS: Piano Glove

Abstract

Music is in our everyday lives. Unfortunately, it is expensive to learn how to play an instrument. Therefore, we have decided to create Piano Gloves which can stand as a cheaper alternative to purchasing a Piano. This is a device that generates a realistic piano-key note based on which finger is flexed.

Objectives & Introduction

The objective of this project is to create a glove which can produce a specific piano-key note based which finger is flexed. To accomplish this task, we had to do the following:

  • Purchase all necessary parts (as seen in the next section below)
  • Simulate piano-key notes in MATLAB using the Karplus Strong Algorithm
  • Port MATLAB Code to C using RTOS
  • Sew Flex Sensors onto Gloves
  • Create our own ADC circuit using OP-AMPS to handle 10 Analog inputs (1 per each finger)
  • Set up Bluetooth Communication between the SJSUOne board and the Intel Compute Stick
  • Create a Real Time visualization based on which finger is flexed
  • Perform a full system integration for a finalized product

Team Members & Responsibilities

Melissa Ortiz

  • Full System & PCB Design
  • Digital Signal Processing in MATLAB
  • Device Driver Implementation
  • System Integration, Verification, and Validation Testing

Benjamin Vuong

  • Algorithm Development
  • Device Driver Implementation
  • System Integration, Verification, and Validation Testing

Schedule Overview

Show a simple table or figures that show your scheduled as planned before you started working on the project. Then in another table column, write down the actual schedule so that readers can see the planned vs. actual goals. The point of the schedule is for readers to assess how to pace themselves if they are doing a similar project.

Week # Start Date End Date Team Task Description Status Actual End Date
1 10/14/16 10/21/16 Research Design Approach and Assign Tasks Complete 10/21/16
2 10/21/16 10/28/16 Set up Version Control and Research Parts Complete 10/28/16
3 10/28/16 11/4/16 Discuss MCU Responsibilities and Communication Complete 11/4/16
4 11/4/16 11/11/16 Purchase Parts and Begin Prototyping In Progress 11/11/16
5 11/11/16 11/18/16 Status Update: Demo First Round of Prototyping N/A
6 11/18/16 11/25/16 Interface Modules and Perform System Design Verification/Validation Testing N/A
7 11/25/16 12/02/16 Continue Validation and Optimize System N/A
8 12/02/16 12/20/16 Finalize Design and Prepare for Demo N/A


Parts List & Cost

Give a simple list of the cost of your project broken down by components. Do not write long stories here.

Item # Part Description Vendor QTY Cost (USD)
1 SJSUOne Board Preet 1 $80
2 Flex Sensor Mouser 10 $6.45
3 MCP4822-E/P DAC Mouser 10 $3.06
4 MCP6242-E/P OPAMP Mouser 10 $0.36
5 MCP6242-E/P OPAMP Mouser 10 $0.36
6 Intel Compute Stick Intel 1 N/A
7 Misc Parts (Wires, Resistors, etc) Personal N/A Free

Software Used

Hardware Design & Interface

The design section can go over your hardware and software design. Organize this section using sub-sections that go over your design and implementation.

Hardware Schedule

Discuss your hardware design here. Show detailed schematics, and the interface here.

Week # Start Date End Date Description Status Actual End Date Comments
1 10/21/16 11/4/16 Research Design Implementation and Brainstorm PCB Schematic Layout
Determine and Purchase Parts
Completed 11/4/16
2 11/4/16 11/11/16 Design and Interface Schmitt Trigger Circutry w/SJSUOne Board
Create PCB Schematic
Completed 11/11/16 PCB design is not complete, we are not sure that it is necessary.
3 11/11/16 11/18/16 Sew Flex Sensors onto Gloves and Interface w/Development Board
Send PCB out for fabrication
Status Update: Demo First Round of Prototyping
In Progress Sewing the sensors onto the gloves was tedious. The sensors are very fragile, so they had to be handled with caution.
4 11/18/16 11/25/16 Interface Modules and Perform System Design Verification/Validation Testing N/A
5 11/25/16 12/02/16 Continue Validation and Optimize System N/A
6 12/02/16 12/20/16 Finalize Design and Prepare for Demo N/A

Hardware Development

System Block Diagram

The following diagram is a high-level overview of our system. It is depicts the general structure of our design. In addition to that, it also demonstrates a generalization of the major system components that were used as well as their relationship among each other.


File:SystemBlockDiagram.jpg


Flex Sensors

Schmitt and Trigger

The Schmitt and Trigger circuit is used to convert the Analog Output of the Flex Sensors into a Digital Signal. This Analog to Digital Conversion (ADC) is done so that the SJSUOne MCU can interpret the input signal using a GPIO port.

  • Design Choice: We decided to create our own ADC circuit because of the limited availability on the SJSUOne board. There are simply not enough ADC pins to perform our task, as we would need 10 ADC pins.

SJSUOne Board

General Purpose Input/Output (GPIO)
Digital to Analog Converter (DAC)
  • Design Choice Trade-Off: Due to time constraints and limited funding, we used the on-board 10-Bit DAC instead of purchasing a 12-Bit module. Since the on-board DAC is 10-Bits, we were only able to get 1K distinct values, as opposed to 4K with a 12-Bit. Therefore the Analog Signal that was output to the Audio Speaker was not as precise as we hoped for.

Intel Compute Stick

PCB Design & Schematic

Datasheets

System Interface

In this section, you can describe how your hardware communicates, such as which BUSes used. You can discuss your driver implementation here, such that the Software Design section is isolated to talk about high level workings rather than inner working of your project.

Software Design & Implementation

Software Schedule

Show your software design. For example, if you are designing an MP3 Player, show the tasks that you are using, and what they are doing at a high level. Do not show the details of the code. For example, do not show exact code, but you may show psuedocode and fragments of code. Keep in mind that you are showing DESIGN of your software, not the inner workings of it.


Week # Start Date End Date Description Status Actual End Date
1 10/21/16 10/28/16 Research the following:
Algorithm Design/Implementation and Digital Signal Processing in MATLAB
Complete 10/28/16
2 10/28/16 11/11/16 Develop Algorithm and Device Drivers as well as Incorporating RTOS In Progress
3 11/11/16 11/18/16 Status Update: Demo First Round of Prototyping In Progress
4 11/18/16 11/25/16 Implement Code w/Integrated Unit and Begin Debugging As Necessary N/A
5 11/25/16 12/02/16 Continue System Integration Testing for Validation and Optimization N/A
6 12/02/16 12/20/16 Finalize Design and Prepare for Demo N/A



Audio Algorithm Development

Algorithm Flowchart

Karplus Strong

Visualization Development

Communication Protocols & Device Drivers

GPIO

Bluetooth

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.

Integration Testing, Results, & 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:

Hardware

My Issue #1
  • Initially we had ordered the wrong parts. Due to time constraints, we rushed selecting parts and were not careful on selecting the components that had the right packaging. Therefore, we ended up purchasing MSOPs (Mini-Small-Outlined-Package) instead of PDIPs (Plastic Dual Inlined Package). Using MSOPs would not work for us because the IC was simply too small to work with. It would not be able to fit on our breadboard for prototyping purposes.


For more information on IC Packaging and Dimensions, please refer to this link: IC Package Dimensions

Validation

Oscilloscope Readings

My Issue #1
My Issue #2

Discuss the issue and resolution.

Software

Digital Signal Processing in MATLAB

DSP Simulations

My Issue #1
My Issue #2

Discuss the issue and resolution.


Full System Integration

My Issue #1

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

Any acknowledgement that you may wish to provide can be included here.

References Used

List any references used in project.

Appendix

You can list the references you used.