1 / 32

Multi-Touch Navigation Engine

Multi-Touch Navigation Engine. Presented by Team Extra Touch: Chris Jones Shuopeng Yuan Nathan Wiedeback. Multi-Touch Navigation Engine. Background System Design Accomplishments. Background. AIS offers single-touch Multi-touch is the “cool new thing” iPhone , MacBook MS Surface

beck-weiss
Download Presentation

Multi-Touch Navigation Engine

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Multi-Touch Navigation Engine Presented by Team Extra Touch: Chris Jones Shuopeng Yuan Nathan Wiedeback

  2. Multi-Touch Navigation Engine • Background • System Design • Accomplishments

  3. Background • AIS offers single-touch • Multi-touch is the “cool new thing” • iPhone, MacBook • MS Surface • Mitch Butzer had good ideas…

  4. Project Specifications • Microcontroller-based • Written in C • 2 - 6 independent control channels • Defined at compile time • Recognize defined patterns • e.g., finger but not palm

  5. System Flow

  6. Serial Input

  7. Serial Stream Parser 74 byte “packets” from the screen Processed to get 32 sensor values, etc. Subtract the lowest value from each • (Little-endian) • Average: 0x488B = 18,571 • First sensor: 0x4886 = 18,566

  8. Interpolator

  9. Interpolator Red dots: intersections of sensors (16 x 16) Green dot `P`: interpolated point Set a threshold and discretize at the end Each pixel -> 1 or 0 Image source: Wikipedia

  10. Phantom Filter

  11. Phantom Filter One touch Two touches Phantom touches (unfiltered) • Intersections -> phantom touches • Compare touches to last frame for filtering

  12. Pattern Recognizer

  13. Pattern Recognizer: Flowchart Data In : Frame of Data Resolution: 240 * 180

  14. Blob Classification and Checking Engine Input Example: Resolution 60*20

  15. Blob edge finding algorithm First edge Last edge

  16. Blob Classification and Checking Engine Input Example: Resolution 60*20 -- two blobs found

  17. Voronoi Skeleton Algorithm Ideal case Actual case

  18. Voronoi Skeleton with Test Data

  19. Slope Algorithm Linear skeleton should have the same angle at each point. (a1 = a2 = a3 = a4) Linear -> accept and find center Nonlinear -> reject

  20. Channel Assignment

  21. Channel Frames – Overall Look Current Form Potential Form

  22. Current SetupChannel Frames Channel 1 Frame Channel 2 Frame

  23. Channel Assignment – How it Works Channel 1 Frame Channel 2 Frame Input: Coordinate Data (3,3) touched Channel 3 Frame Output to One Touch per Channel Limiter: Coordinates 3,3 Channel 3 We have a match at Channel 3!

  24. One Touch per Channel Limiting Channel A -Phase 1 Reduction Channel A – 3 touches Channel A - Phase 2 Reduction

  25. Output Data Altered Coordinate Array Channel Array

  26. Accomplishments • Translate sensor wires into 16x16 matrix • Interpolate • Recognize finger touches, reject other shapes • Assign to either of two channels

  27. Challenges Challenge Solution Compare to previous frame Low resolution (240 x 180 ?) for proof-of-concept Make each stage’s data available at the output • Phantom touches • “[40K] ought to be enough for anybody!” • Need “tap points” for intermediate data

  28. Future • Serial interrupt issues • Phantom filtering implementation • Would also enable more shapes • Different touchscreen technology?

  29. Questions?

  30. Data In: Center coordinates (X,Y) Processing: Data gets transformed into a 2d array, and the compared against each channel frame to determine its channel. Channel frames are defined before compile. Data Out: (X,Y) coordinates with channel data attached. Details: Aiming for 2 channels initially Should be simple to add channels in the final iteration. Channel Assignment – Text Overview

  31. Channel Assignment: Flow Chart

  32. Summary • Major design: “Proof-of-concept” • 240 x 180 x 1-bit “color” • Simple phantom filtering • Accept a single finger per channel, reject other cases • Two channels

More Related