Presentation is loading. Please wait.

Presentation is loading. Please wait.

Footswitch controller for Tektronix oscilloscopes Group #13.

Similar presentations


Presentation on theme: "Footswitch controller for Tektronix oscilloscopes Group #13."— Presentation transcript:

1 Footswitch controller for Tektronix oscilloscopes Group #13

2 When an engineer or technician is using a Tektronix oscilloscope, they often have both hands busy probing a circuit board. Sometimes they need a “third hand” to operate the Oscilloscope. This need can cause some users to create Rube Goldberg type machines to manually press buttons, employ another operator to run the Oscilloscope, or find creative ways to tape down probes to free up hands. Without a solution, it can take users much longer to test circuits and collected required data.

3 Our solution to this problem is to implement a footswitch that will act as a third hand to control the Oscilloscope. (This was proposed as a capstone project for 2010)

4 The goal of this project is to design and build a working prototype of a footswitch and a software GUI that successfully integrates the footswitch with various Tektronix Oscilloscope. An ideal design would: Be able to communicate with any Tektronix Oscilloscope. Have multiple user configurable commands. Have a minimum of 2 foot controls. Have USB 2.0 interface. An individual momentary button’s functionality is expand by creating multiple mouse button type interaction. Separate actions include a short click, a long click and a double click. Both buttons may be pressed simultaneously. A 3 rd On/Off type button is included, giving a total of 9 possible user input actions.

5 Design Schedule WBSPredecessors% CompleteDurationStartFinishAssigned team membersTask Name 1100%62 days?Mon 10/3/11Sat 12/3/11All teamProject report 1.1100%8 daysMon 10/3/11Mon 10/10/11All team Project proposal 1.1.1100%4 daysMon 10/3/11Thu 10/6/11All team Choosing project 1.1.23100%4 daysFri 10/7/11Mon 10/10/11All team Writing proposal 1.219100%7 daysThu 10/13/11Wed 10/19/11Jason Project requirements 1.35FS+18 days100%7 daysMon 11/7/11Sun 11/13/11All team System design and modeling 1.3.1100%7 daysMon 11/7/11Sun 11/13/11All team System block diagram 1.3.1.1100%3 daysMon 11/7/11Wed 11/9/11Hung Footswitch block diagram 1.3.1.28100%4 daysThu 11/10/11Sun 11/13/11Chris and Jason Whole system and GUI 1.3.28100%3 daysThu 11/10/11Sat 11/12/11Hung Footswitch UML - State Machine 1.3.38100%3 daysThu 11/10/11Sat 11/12/11Huy Footswitch UML - Activity view 1.440100%5 daysThu 11/24/11Mon 11/28/11All team Test plan 1.4.1100%2 daysThu 11/24/11Fri 11/25/11Huy Write test plan 1.4.213100%3 daysSat 11/26/11Mon 11/28/11All team Write test cases 1.516FS-6 days100%1 dayMon 11/28/11 Chris Register for review time slot 1.652100%1 day?Sat 12/3/11 All team Project presentation 23100%55 daysFri 10/7/11Wed 11/30/11All teamDesign 2.1100%18 daysFri 10/7/11Mon 10/24/11All team Research 2.1.1100%6 daysFri 10/7/11Wed 10/12/11All team Pre-research 2.1.2100%13 daysFri 10/7/11Wed 10/19/11All team Interface research 2.1.319100%7 daysThu 10/13/11Wed 10/19/11Huy and Hung Micro-controller research 2.1.421100%5 daysThu 10/20/11Mon 10/24/11Chris Sampling intervals 2.219100%49 daysThu 10/13/11Wed 11/30/11Chris and Jason PC Software design 2.2.120100%20 daysThu 10/20/11Tue 11/8/11Chris USB interface 2.2.2100%49 daysThu 10/13/11Wed 11/30/11Jason Design GUI 2.321100%13 daysThu 10/20/11Tue 11/1/11All team Build test circuit 2.3.1100%3 daysThu 10/20/11Sat 10/22/11Hung Test schematic 2.3.227100%4 daysSun 10/23/11Wed 10/26/11All team Build test circuit 2.3.327100%10 daysSun 10/23/11Tue 11/1/11Hung ATmega8 program testing 2.427100%14 daysSun 10/23/11Sat 11/5/11Hung Schematic 2.4.1100%3 daysSun 10/23/11Tue 10/25/11Hung Select components 2.4.231100%3 daysWed 10/26/11Fri 10/28/11Hung Finish schematic 2.4.332100%8 daysSat 10/29/11Sat 11/5/11Hung Revew and make changes if needed 2.532100%15 daysSat 10/29/11Sat 11/12/11All team Layout 2.5.1100%2 daysSat 10/29/11Sun 10/30/11Huy First draft layout 2.5.235100%8 daysMon 10/31/11Mon 11/7/11Chris Final layout 2.5.336100%5 daysTue 11/8/11Sat 11/12/11Jason Review layout with TA 2.626100%22 daysWed 11/2/11Wed 11/23/11Hung Device software 2.6.1100%5 daysWed 11/2/11Sun 11/6/11Hung Port test program to real one 2.6.239SS+2 days100%20 daysFri 11/4/11Wed 11/23/11Hung Design ATmega8 program 326100%31 daysWed 11/2/11Fri 12/2/11All teamTest 3.1100%6 daysWed 11/2/11Mon 11/7/11Hung Timing detection on prototype 3.251100%4 daysTue 11/29/11Fri 12/2/11All team Test device with test plan 437100%20 daysSun 11/13/11Fri 12/2/11All teamImplementation 4.1100%4 daysSun 11/13/11Wed 11/16/11Chris Order boards 4.1.1100%1 daySun 11/13/11 Chris Create Gerber files 4.1.246100%1 dayMon 11/14/11 Chris Create Sunstone account 4.1.347100%2 daysTue 11/15/11Wed 11/16/11Chris Order boards on Sunstone 4.245SS+2 days100%4 daysTue 11/15/11Fri 11/18/11All team Order components 4.345FS+6 days100%3 daysWed 11/23/11Fri 11/25/11All team Solder boards 4.450100%3 daysSat 11/26/11Mon 11/28/11Hung Porting the develop program on the device 4.551100%4 daysTue 11/29/11Fri 12/2/11Jason Finish physical parts

6 Long vs. Short vs. Double To determine pulse width times, we collected 30+ samples of each type of action each, for 4 different users. This data was collected on an Oscilloscope using a data logging program. Next a python script analyzed each set of waveforms to find the pulse widths and spacing for each interaction. Using Matlab to plot standard distributions of the results, the optimal values for pulse width duration for a short vs. a long click is and pulse space for a double click vs. two single click was derived. A short pulse is defined as less than 365mS pulse width. For double clicks, 275 spacing or less between two clicks is defined as a double. Because a action will be tied to a scope control command that may take several seconds to complete, it is less likely that the input action will be separate repeat clicks for the same command.

7 System Model Level 1

8 GUI Software Model Level 1

9 Footswitch Model Level 1

10

11 Footswitch Controller – Hardware System View – Level 0

12 Footswitch Controller – Hardware System View – Level 1

13 Footswitch Controller – Hardware USB 2 Block 5V Power Supply D+, D- for data lines

14 Footswitch Controller – Hardware MCP2200 – USB Controller Block GPIO [3..7] for transferring data Tx, Rx for UART status Use 12MHz crystal osc.

15 Footswitch Controller – Hardware Buttons and Programmer Ports D2, D3 for momentary buttons Ports D4 for on/off status button Port B3 for MOSI pin Port B4 for MISO pin Port B5 for SCK pin

16 Footswitch Controller – Hardware Microcontroller – ATmega 8 Use 12MHz crystal osc. Use TQFN package

17 2.02 inch Footswitch Controller – Hardware Board layout 2.80 inch ~$20/Board ~$10 for components

18 Footswitch Controller – Hardware Test Plan for hardware  Unit Tests USB Port, Power Supply MCP2200 USB Controller Atmega 8 Button and Programmer  Integration Tests Connection between USB Port and MCP2200 Connection between MCP2200 and Atmega 8 Connection from button and programmer to ATmega8

19

20 ATmega8 - Functionality Detect button states Determine short/long/double pushed Communicate with PC GUI through MCP2200 – Send commands to GUI – Handle MCP2200 status and commands from GUI

21 ATmega8 - Method Using 1ms timer interrupt to poll button states Using counter to count interval time Determine press type by compare detected interval with preset intervals in EEPROM Using command queue and ACK signal to send command to MCP2200

22 ATmega8 – State diagram

23 ATmega8 - Behavior

24

25 ATmega8 – Source code C language 5.59KB (69.9% Flash of ATmega8) Pre-defined header for easily configure system later Using AVRStudio 5 develop environment with Atmel libraries (io, delay, string, interrupt)

26 ATmega8 – Test plan Engineer requirement: “The device must measure the timing interval accurately with error less than 1%”. => Acceptance test: inject pulse with pulse width varies from 100ms to 900ms and record detected time.

27

28

29 Foot switch project GUI software design

30 Oscilloscope Communication Uses VISA protocol for scope communication. – Common on Tektronix Oscilloscope platforms. – Commands are published by Tektronix in the form of Programmers manual for each oscilloscope family. – Test and Measurement Industry standard.

31 VISA

32 PC / USB communication For communication to the PC, USB interface was used. – Made easy in the form of a dedicated USB bridge and dll libraries for the device “SimpleIO-UM.dll” device in conjunction with MCP2200 python module, developed in house. – Unnecessary to deal with USB Stack.

33 GUI behavior Python 2.7.2 used for GUI development. – PyVisa 1.3 Scope communication – Wxpython GUI development – Numpy 1.6.1 Curve data calculation – ScopeControl Use PyVisa to send interpreted commands – MCP2200 Communicate with PC over USB. “SimpleIO-UM.dll”

34 Polling

35 Interface layout Tabs for each function – Tab dedicated to each button – Double Click – Scope connection / file placement – Script entry

36 Results / Lessons learned What worked well – Engineers at Tektronix have been impressed. What didn’t work – We were unable to get USB ports configured as COM port, - Adjustment routine dropped as a result. – Should have made silk screen larger / readable. – Post size was same as.632, same size as screws.


Download ppt "Footswitch controller for Tektronix oscilloscopes Group #13."

Similar presentations


Ads by Google