The Parts - Acsu Buffalo by jianglifang


									Single Switch Computer
           Input System
                             Design Phase
             Zachary Gogel
        Christopher Kordal
           Thomas Smith
                Guy Tuori


                TEAM VENTURE
The System
The Parts
At the highest level, the system is divided into two main parts: the hardware and the software. The
hardware consists of an X-Keys USB Switch Interface and a switch device that plugs into the X-Keys USB
Switch Interface. The software takes the input from the hardware and allows the user to replicate the
functions of more complicated input devices (a mouse and keyboard).

The GUI has two important modes. The first mode allows the user to select a click-type or other options.
That is to say, the menu gives the user the option between single click, double click, click and hold, click
and drag, on-screen keyboard, applications browser, and the options menu. The options are scrolled
through automatically, and an option is selected when the switch is pressed.

                         This is a screenshot of the auto scrolling selection menu.

If a click mode is selected, the GUI moves into crosshair mode. In this mode, first a line moves across the
screen horizontally. When the line is over the area where the user wants to click, he or she pressed the
switch. At this point, another line begins to move across the screen vertically. When the user presses the
switch this second time, the proper click type is performed at the point where the two lines intersect.
                           A click event is sent to where the two lines intersect.

The Typical User Experience
There are two main types of user experiences we are expecting: assisted and unassisted.

In the assisted user experience, the system may be installed in a place accessed by many different users,
like a doctor’s office or a therapy center. The session begins when the assistant adjusts the settings for
the specific user. In one case, if the user has used the system before, the assistant may simply load up
the previously saved profile for the user. In the case that the user has never used the system before, the
assistant works with the user to find appropriate settings, then saves the settings to a profile for future
use. The assistant then aids the user in using the system to navigate the computer and internet.

In the unassisted user experience, the system is used mostly by a single user. In this case, a default
profile is automatically loaded as the system starts. The user continues to use the system to browse the
internet, watch media files, etc. When the user finishes, the computer can either be shut down, in which
case the system will reload itself once the computer is turned back on at a later time, or kept running, in
which case the system remains on indefinitely.
High Level Diagram
Detailed Diagram
The user is the person with the motor disability who is the primary user of the system. It is assumed that
the user is quadriplegic and unable to operate traditional input devices, specifically a mouse and
keyboard. The user is at a computer with a single-switch input device, a monitor, and (optionally but
preferably) speakers.

Single-Switch Input Device
This input device may be any one of a variety of devices, including a large "jelly bean" switch, a head
switch, a muscle twitch switch, or a blow switch. It is, in whatever form, a binary switch that can only
signal "on" and "off". The user will use this switch as the sole input device for their interactions with the

The monitor is a standard computer monitor. It must be fully connected to the computer, including any
installation of drivers that may be necessary for its full operation. Such installation is outside the scope
of the system. The system will require a monitor with a certain minimum resolution that will not exceed
1024x768 pixels.

The speakers may be any general-purpose audio output device, including speakers or headphones. The
speakers, like the monitor, must be pre-installed and configured for use with the system. If speakers are
not present, the user experience will be degraded (in that audio and speech feedback will be
impossible), but fundamentally functional.

The listed driver is for the single-switch input device. As with monitor and speaker drivers, it must be
pre-installed and -configured, but the single-switch input driver has the additional constraint that it
must be preconfigured to emit, upon activation of the switch, any click or key press. This will be used as
the input to the system software.

The controller is the component of the system that captures the input from the single switch input
device (via the driver and any intervening OS layers) and redirects it to the current interface as a
selection event. The controller will keep track of which interface is selected.

An interface is a module that is given a selection event from the controller and translates that event in
some way into input to the currently running application. This translation will be different for each
particular interface, and it may additionally require input from the system's configuration file, from the
OS's clock functionality, or other sources.

Many interfaces will allow the user to select options from a list, where each item on the list is
automatically highlighted in turn at set time intervals, and whichever is highlighted when the user
triggers the single-switch input will be selected or activated. Generally, when an option is highlighted,
the interface will use the OS's speech service to speak the option aloud.

Some specific examples of interfaces are:

Mouse ("Cross-Hair") Interface
This interface is meant to simulate the use of a mouse. The interface will scan through a list of click
types, including left-click, right-click, double-click, click-and-hold, and click-and-drag. Once one type has
been selected, the interface will display a thin vertical line spanning the height of the screen that moves
back and forth at a slowly decreasing rate. Upon receiving user input, the line will freeze and a
horizontal line spanning the width of the screen will begin moving up and down. Upon receiving another
input, the interface will send the current application a click event at the coordinates of the intersection
of the lines.

In addition to the various click modes, the scanning list of commands will include options to switch to
different interfaces.

Keyboard Interface
This interface is meant to simulate use of a keyboard. The interface will display an onscreen
representation of a keyboard. Each row on the keyboard will be highlighted in turn; when the user
selects one, each key in that row will be highlighted until the user selects one. The interface will then
send the current application a key press event with the selected key. If a modifier key (Shift, for
example) is selected, then rather than sending a key event, interface will highlight the on-screen key
until a key event is sent, whereupon the modifier will be applied to the event.

Meta Interface
The meta interface displays a list of options to scan through, including options to use other interfaces,
configure system settings, and launch frequently-used applications. The meta interface will write
configuration changes to the configuration file.

Application Interface
An application interface is one designed to enable efficient use of a particular application. Each
application interface will have different capabilities and features designed to suit the particular
application. These interfaces may rely on plug-ins written for the applications in question. The system
will include at least an interface designed for Mozilla Firefox that will allow web navigation to be done
much faster than the generic mouse and keyboard interfaces.

The assistant is an able-bodied person capable of using a mouse and keyboard and who is basically
proficient with computer use. Prior to the regular use of the system, the assistant may be called upon to
install and initially configure it. Should the system require adjustment or configuration beyond the
ability of the user (for example, if the user were to accidentally turn the system's scroll speed up to an
unmanageable level), the assistant would reconfigure it to rectify the problem. The assistant's
interaction with the system will require a standard keyboard and mouse as well as a monitor.
Parts List
Name             Price        Quantity        Link
PI Engineering   $119.95      1     
X-Keys USB
Jelly Bean       $55.00       1     
Computer w/       Price        1                N/A
Windows 7         Varies
If the user already has a computer capable of running the system, then the only hardware that needs to
be purchased is the USB Switch Interface and the Jelly Bean Switch. In the case, the minimum price of
setting of the system on one computer is about $175.
Hardware Diagram

                    3.5mm plug                                     USB

The hardware consists of a Jelly Bean Switch plugged into the X-Keys USB Switch Interface, which itself is
plugged into a USB port on the PC.
Software Diagram

    Program                                ModeManager                            InputMode

                                MenuSwitchMod                                       CustomApplicati
    Driver                                                 ScrollMode
                                e                                                   on




                                              BaseMode                  KeyboardMode

                                              CrossHairs                OnscreenKeyboa


X             Y = X has an instance of Y

X             Y = X implements Y

X             Y = X calls functions from Static Class Y
This starts the driver.

Takes in user input and sends it to the current mode.

Holds all of the global variables and saved settings.

This stores the hotkey.

Manages the various input modes.

This interface is implemented by classes that render things on the menu.

Contains default actions, including left click, right click, double click, and more.

This menu contains lesser used options, including web browser, media browser, options menu, and

This is an interface implemented classes which are modes designed to launch various aspects of the

This mode switches between standard and special menus.

This mode handles scrolling up or down

This mode handles launching the media player as well as the custom applications.

This launches the custom program.

This mode handles launching the options menu.
This displays the options menu.

This mode launches the cross hairs.

The cross hairs are used to display where clicks will be sent.

This mode launches the onscreen keyboard.

This is the onscreen keyboard.

This mode launches the web browser.

This handles the launching of the browser.
Running the System: A Walkthrough

The program starts automatically when Windows loads. It begins in the base mode, in which click, the keyboard, an applications
                  list, or the options menu can be selected. The cursor automatically scans over the options.

                            After a click mode is selected, the first line begins moving.
After the switch is pressed while the line is over the target, the second line begins. Here, you can see the
                                 two lines meet over the 453 folder icon.

When the switch is pressed while the second line is on screen, a click is made where the two lines meet.
Here, the folder “453” has been selected using the single-click. The click selection mode begins again.
Here, the double click mode has been selected and My Computer has been opened after selecting the
                                      icon with the crosshairs.

        Here, the right click has been selected and the user has right-clicked on the desktop.
           Click-and-drag is being demonstrated here. The click-down is selected first.

After the first location is selected, another set of cross hairs is launched. When the second point is
               selected, the mouse is dragged from the first point to the second point.
This is the onscreen keyboard, allowing the user to type individual letters as well as any user-defined
                                           quick phrases.

                    To access the special menu, the user selects the Special icon.
    Here, the special menu is displayed.

The internet icon brings up the web browser.
 The click-and-hold option has been selected. Here, the cross hairs are over the bottom scroll arrow.

Left-click is held on the selected point for an amount of time specified by the user in the options menu.
                 When the Media icon is selected, Windows Media Player is launched.

The user can select their own shortcuts to be placed on the menu. Here, Solitaire is on the menu and has
                                              been selected.
The Options Menu is displayed here. The user can adjust any of the settings, including the speed of the
                        auto-scrolling and the custom keys on the keyboard.

To top