The JoyMouse Network — A NeatTools Application



Note: The information below pertains to earlier versions of the JoyMouse. The current version is jm2ka.ntl ("JoyMouse 2000" rev. a). Preliminary documentation (joymouse.doc) is available within the NeatTools Manual (a zip file that is also accessible from the NeatTools download page). 

The new version is substantially different from those below. The most obvious difference is that now only the essential controls and displays are visible in user mode. To see the entire program, open it in "developer" (editing) mode; normally, you will then want to close the file without saving changes.


Key Images

profiles linear/quadratic/cubic relationships between mouse cursor speed and joystick deflection
version i 
(joymouse123i.ntl) 
not shown (see description below in Downloads table)
version h 
(joymouse123h.ntl)  extra display window 
(jm123sh.ntl) 
Version h allows the user to toggle the left-mouse-button action between two states: click (on demand) and drag (maintained until user toggles out of this mode). The toggling is effected by simultaneously activating channels 1 and 2 for a sufficient time interval, which is adjustable. As with version g, the main JoyMouse window can be mimimized after configuration, and the essential state information is displayed in the extra small window (provided that the respective sockets are enabled).See details below in download table entry. Click here to see image of the tutorial (both.ntl) mentioned below in the corresponding section of the download table 
optional upgrade version 
(joymouse123g.ntl)  extra display window 
(jm123s.ntl) 
This is the first version to use sockets to enable two NeatTools windows to exchange data. In general, sockets could connect two such windows on different computers via the Internet. Here, though, the two windows are on the same machine. Because the main JoyMouse network window can be minimized after configuration, it is useful to have a second small window to display any essential information, here the status of the Enter/BSpc/RBtn selector (defined below). More generally, the second window could contain controls to change settings in the main window (and could thus serve as the user interface, without all the complexities of the main network). 
Click here for an example of a bidrectional control and display configuration suitable for such applications (see next table for downloads). By specifying a server IP address on the client socket module (instead of "localhost"), this demo application could run between two computers on the Internet. 
For a definition of sockets (and other technical computer terms), go to www.whatis.com (opens in new browser window).
current version 
(joymouse123f.ntl) 
See description below. 
Note: developer mode image shows "offscreen" areas not visible in user mode image. Downloads of the *.ntl files are always in user mode. Note: user mode allows access to switches and sliders, but not to editing.  To switch between modes, use ctrl-F7 
early version (...123a)  See description below. 

Downloads

NeatTools program and representative data files — as well as tutorial
joymouse123i.ntl Either the TNG-2 or TNG-3 interface boxes can be selected with this version, by pressing the Interface pushbutton located to the right of the XY Cal and Sample buttons. Note the red-on-black warning sign reminding the user to set the baud rate appropriately (9600 for TNG-2 and 19200 for TNG-3). This is set by right clicking on the appropriate COM object (under XY Cal button), while in developer mode (see below about ctrl-F7), and then setting the speed property to the proper baud rate. If you use TNG-2 and TNG-3 interchangeably, make sure to check the baud rate when making changes, particularly if the system fails to operate. 
When using TNG-2, which has 4 analog inputs and no digital inputs (TNG-3 has 8 analog and 8 digital), you must ensure that the Button/Key Source switch (described below under Operation) is not depressed and that, accordingly, the Analog LED is illuminated. In that connection, see also the usage notes below in this table for joymouse123f.ntl concerning the analog inverter switches labeled -X, -Y, -1, and -2. Because TNG-2 can only accommodate 4 analog inputs, there is no fifth input, as in TNG-3, to allow the user to directly modify the Enter/BSpc/RBtn selector (see joymouse123g.ntl below). However a user who is unable to directly access the F12 function key (which effects the same selective action) can access that indirectly by use, for example, of the representation of the F12 key on the Fitaly (www.twsolutions.com) on-screen keyboard which is recommended for use with the JoyMouse Network
Note that the optional satellite application jm123sh.ntl can be used with this version (i), just as with version h in order to display the state of the Enter/BSpc/RBtn selector as well as the Click/Drag selector (see immediately below). 
joymouse123h.ntl
jm123sh.ntl
For painting programs and other applications, this version allows the user to toggle the left-mouse-button mode between click and drag. The toggle action is achieved by activating both channels 1 & 2 (e.g left and right cheek switches: a "smile" gesture) for an adequate time interval, set by a slider (1-8 times 100 ms). In click mode, the user must activate channel 1, as before, whenever a left mouse click is needed. In drag mode, no further action is needed for drag action, except eventually to toggle out of drag mode. See the new module cluster below and to the right of the center of the network. The mode is indicated as "click" (red) or "drag" (green). A yellow (black when off) LED indicator shows when the delay interval has been reached; only then, will the mode change its state. A red switch allows this entire option to be enabled or disabled. If the sockets are enabled, the second window (see version g write-up, immediately following) now displays the click/drag mode, so the user can see (and toggle) this while the main JoyMouse window is minimized. Most of the modules for this feature (in the JoyMouse network) are offscreen at the bottom. For clarity, a separate tutorial on how this was done is included as both.ntl (incl. use of a) DelaySustainObj; b) ClockDivObj as flip-flop; and c) multiplexers to change both color and text of LabelObj). 
Note that this overall functionality works with digitial or analog versions of channels 1 and 2, and also with a computer joystick (buttons 1 and 2). 
Usage recommendations: a) before activating channels 1 & 2 together, make sure that the Enter/BSpc/RBtn selector is not in RBtn mode (or you will likely get a properties pop-up menu that you can eliminate only by going back to click mode) and b) in certain circumstances, it may be appropriate to start activating channel 1 slightly before channel 2 (to avoid getting a spurious Enter or Bspc action); and c) use this drag feature judiciously to avoid undesired side effects (e.g. inadvertently moving files and directories around in Windows Explorer). 
joymouse123g.ntl
jm123s.ntl
This optional upgrade includes a second window solely to display the status of the Enter/BSpc/RBtn selector (see two rows below). Both files should be opened and the "socket" switches should be turned on. In the main network, the switch is located under the Enter/BSpc/RBtn selector at top center. After setup, the main window can be minimized and the second window can be placed in a corner of the screen (e.g. bottom left or right; note that the lower part—below the column of three LED indicators and their black&white labels—can be dragged out of view). 
To try out the (more general) bidrectional control and display demo referred to in the image table above, download these two files: socket1.ntl and socket2.ntl. After opening the two files, move the slider in either window and see the corresponding indicator (1DViewer) move in the other window. 
joymouse123f.ntl
The following two changes allow setup of TNG-3 port and analog devices to be done entirely in user mode for essentially all circumstances. Now nontechnical users need not enter edit mode to change properties of COM and TNG3 modules to change between ports 1 and 2 or to invert joystick (X to -X; or Y to -Y) or analog sensor inputs. 
  • added COM port (COM1 or COM2) selector button at lower left 
  • added inverters at bottom center for TNG-3 analog channels 1–4 (X; Y; "1"; and "2"; where "1"=left-click and "2"=selectable; note that, as before, analog channels 3 & 4 ("1" & "2") are unused if TNG-3 digital channels 1 & 2 are used instead) 
joymouse123e.ntl
  • includes cyclical selector—located at top center—that allows three choices (Enter, BSpc, or RBtn) for what should result from actuation of digital channel 2 of TNG-3 (or computer joystick button 2) 
  • selection is established at any time in one of four ways: a) momentary closure of switch on digital channel 3 of TNG-3, b) joystick button 3 (if available), c) F12 on keyboard (incl. onscreen keyboard, such as "Fitaly"), or d) "Select" pushbutton switch in the NeatTools window 
  • Example of usage: quadriplegic user employs forehead switch (digital channel 3) to select one of the three choices, and then actuates that as needed by right cheek switch (digital channel 2), while left-cheek switch (channel 1) remains reserved for effecting left-mouse-button click 
joymouse123d.ntl
  • newer version that compensates for joysticks that do not center themselves well 
  • (see 2DViewer, and note new 1DViewers at right and top) 
  • the "new math" is offscreen to the left (to see that, enable programmer mode by ctrl-F7) 
joymouse123c.ntl
  • similar to original version (incl. some minor modifications from rev. a to rev. c

Introduction

The NeatTools Joy-Mouse data flow network shown in user-mode and developer-mode allows precise positioning of the mouse cursor under control of a joystick. This can be either a standard computer joystick, or a custom one (e.g. small chin joystick for a quadriplegic) that delivers XY signals to analog inputs of an computer interface module such as TNG-3. The network manages two subsidiary inputs for control of the left mouse click and a keypress (e.g. backspace). This can be edited easily to accommodate another key or else right mouse click. Additional controls can be added as needed. The current network uses only 4 of the 16 available inputs (8 analog and 8 digital) of TNG-3. .

The mouse cursor can still be controlled by the computer mouse and related pointing devices (trackball, touchpad, etc.). This complex network exploits many of the sophisticated features of NeatTools (e.g. Multiplexers, Demultiplexers, Decoder, ClockDivider). In the linear mode (proportional-control), the mouse cursor speed increases in direct proportion to joystick deflection (once beyond a free-play zone that can be set by the user). The adjustable nonlinear profiles in the quadratic and cubic modes provide precise control of the cursor for small joystick deflections, while allowing rapid movement for large deflections. After calibration and/or adjustment, the joy-mouse network can be in the background or minimized when in operation. If the user needs to return to it, the <alt><tab> key sequence can be used to restore the joy-mouse NeatTools window in focus; this will disable cursor motion by the joy-mouse and allow the user to turn Enable off (see below).

Operation

The controls are as follows:
This page is maintained by Edward Lipson

 

 
 
 
 
 
 
 
 
 

Last modified