WO1993021604A1 - Mechanical user interface - Google Patents
Mechanical user interface Download PDFInfo
- Publication number
- WO1993021604A1 WO1993021604A1 PCT/US1993/003219 US9303219W WO9321604A1 WO 1993021604 A1 WO1993021604 A1 WO 1993021604A1 US 9303219 W US9303219 W US 9303219W WO 9321604 A1 WO9321604 A1 WO 9321604A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- slider
- user interface
- mechanical user
- zero
- base
- Prior art date
Links
- 230000033001 locomotion Effects 0.000 claims abstract description 26
- 230000007246 mechanism Effects 0.000 claims description 24
- 230000003287 optical effect Effects 0.000 claims description 6
- 230000004044 response Effects 0.000 claims description 6
- 238000007373 indentation Methods 0.000 claims description 2
- 230000006870 function Effects 0.000 description 12
- 238000000034 method Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000000994 depressogenic effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 229910000831 Steel Inorganic materials 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- 229910052782 aluminium Inorganic materials 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000881 depressing effect Effects 0.000 description 1
- 238000009429 electrical wiring Methods 0.000 description 1
- 210000003811 finger Anatomy 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000011505 plaster Substances 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/02—Input arrangements using manually operated switches, e.g. using keyboards or dials
- G06F3/0202—Constructional details or processes of manufacture of the input device
- G06F3/0219—Special purpose keyboards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0354—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
- G06F3/03548—Sliders, in which the moving part moves in a plane
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0362—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 1D translations or rotations of an operating part of the device, e.g. scroll wheels, sliders, knobs, rollers or belts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
- G11B27/031—Electronic editing of digitised analogue information signals, e.g. audio or video signals
- G11B27/034—Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/34—Indicating arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/84—Television signal recording using optical recording
- H04N5/85—Television signal recording using optical recording on discs or drums
Definitions
- This invention relates to mechanical user interfaces for computers and other data processing systems. More particularly, this invention is related to mechanical user interfaces, for computerized film and video editing systems, which provide both frame positioning and frame rate information.
- position-based devices such as mouse, track-ball or mouse pen devices
- position-based devices only provide relative position information. That is, there is no predetermined initialization or zero-position of the device. As the device is moved only its movement relative to a prior location can be determined.
- Such mechanical user interfaces are typically used to control the position of a cursor on a screen. The initial position of the cursor is predetermined by the computer, so initial position information does not need to be known for the mechanical user interface.
- the Steenbeck controller is an electromechanical device used for manipulating film for editing, and is typically built into the console of a film editing system in a large production facility.
- the Steenbeck controller has a handle which is attached to a fixed rotation point. By rotating the handle in one direction, film may be advanced; by moving the handle in the opposite direction, film may be reversed. Film may also be stopped at any fixed point.
- the Steenbeck controller provides a range of film speeds in both forward and reverse directions: normal speed (sound speed), a range of slow motion, still and fast forward. In response to the actual position of this device, the film is advanced at the desired speed.
- the Steenbeck controller is also problematic for film editors because it requires substantial skill to edit film with it.
- the Steenbeck controller provides fixed zero—, sound speed and fast—forward positions using magnets.
- a film editor must keep the operating hand on the controller to prevent it from moving, unless it is in one of the fixed positions.
- it is difficult to maintain a frame rate which is close to, but not the same as, sound speed, zero-speed or fast-forward.
- the device only affects the rate of the film advancement. Therefore, it is difficult to provide single—frame advancement; an editor must learn the right "feel" of the device and how to tap it to obtain frame positioning control.
- a mechanical user interface which includes a supporting plate and a slider adapted to slide on the supporting plate. Sliding movement of the slider is detected, for example, by a position encoder attached to the supporting plate. An electrical output, indicative of the position of the slider on the supporting plate, is then provided by the encoder. A sensor may also be provided to detect when the slider is at a zero position, thereby allowing absolute rather than relative, position data to be obtained. The movement of the slider may be such that it follows the natural curvature of movement of a hand.
- a device with a known zero-position and which provides absolute position information, in conjunction with a computer, may be used for editing motion pictures, including film, video and digitized video data.
- a range of positions may be defined, e.g. by using a programmable threshold, to indicate film positioning control.
- Other positions may be used to indicate different film rates, e.g. under the control of computer programs operating using the position information.
- Figure 1 is a perspective view of an embodiment of the present invention
- FIGS 2A—2C are perspective views of different configurations of the embodiment of Figure 1;
- Figure 3 is a perspective view of the slider mechanism of this embodiment
- Figure 4 is a cross section of the slider mechanism of Figure 3;
- Figure 5 is a perspective view illustrating the operation of a zero-position photomicrosensor
- Figure 6 is a perspective view of the operation of a position encoder
- Figure 7 is an enlarged plan view of a code strip for use with the position encoder
- Figure 8 is a cross section of the embodiment shown in Figure 1;
- Figure 9 is schematic circuit diagram of the mechanical user interface of the embodiment of Figure 1;
- Figure 10 is a schematic circuit diagram of an interface between the mechanical user interface and a computer
- Figure 11 is a flow chart describing how use of the mechanical user interface is initialized on the computer
- Figure 12 is a flow chart describing how the mechanical user interface is periodically polled
- Figure 13 is a flow chart describing how the mechanical user interface is calibrated.
- Figure 14 is a flow chart describing how data is retrieved from the mechanical user interface and converted to frame speed rates. Detailed Description
- Figure 1 is a perspective view of this embodiment as it may appear to a user.
- This embodiment includes two separate sections 30 and 32.
- the first section 30 includes a sliding mechanism 34.
- the second section 32 is a keyboard, whose keys are similar to those of standard keyboards used with computer systems.
- This embodiment includes ten keys 36 and two "shift" keys 38.
- the two sections 30 and 32 are adapted to engage with each other.
- the bottom 40 of the second section 32 rests on the top 42 of the first section 30.
- the curved shape or arcuate of the two sections aside from its aesthetic appeal, is ergonometric in that a user moves the sliding mechanism 34 along a curve or arc which corresponds to the arc followed during movement of the hand.
- FIGS. 2A-2C show a user to place section 30, housing the sliding mechanism 34, and section 32, housing the keyboard, at locations which are comfortable and convenient. Such positions are shown in Figures 2A-2C.
- Figure 2A the first section 30 is shown separate from the second section 32. This enables a user to place the keyboard and the slider mechanism at any desired location. The user may also wish to operate the mechanical user interface with one hand.
- Figure 2B shows a configuration suitable for use with the left hand
- Figure 2C shows a configuration suitable for use with the right hand. The user could operate the slider mechanism 34 with the thumb and the keyboard with the four fingers.
- FIG 3 is a perspective view of the slider mechanism 34 found within the first section 30 of this embodiment of the mechanical user interface.
- This slider mechanism 34 includes a supporting plate or base 50 which supports a slider 52 via rollers 54 attached to the slider which engage a track 56 on the supporting plate 50.
- the base 50 is preferably made of heavy material, such as steel, to reduce movement of the device when the slider 52 is moved.
- a position encoder 58 detects motion of the slider 52 in the left and right directions, as indicated by arrow 60.
- a suitable position encoder is the linear optical incremental encoder module HEDS-9200, available from Hewlett-Packard, Palo Alto, California. Position encoding may also be performed using other devices, such as potentiometers.
- An optical position encoder such as the HEDS-9200 is used in conjunction with a code strip 62 to detect linear position.
- the code strip 62 has marking lines 64 which are counted by the position encoder 58 as the code strip is moved through the encoder. By counting marking lines, distance may be measured between two points when the slider 52 is moved.
- a suitable code strip for this embodiment will be described in more detail below in connection with Figure 7.
- the encoder 58 shown in Fig. 3 will be described in more detail below in connection with Fig. 6.
- the sliding mechanism 34 also includes a spring—loaded roller mechanism including an arm 66 with a roller 68.
- the arm is pivotally attached to the supporting plate or base 50 at location 70 allowing rotation in the directions indicated by arrow 72.
- a spring 74 is attached to arm 66 and to the base 50 via screw 76.
- the screw 76 may be moved within channel 78 to adjust the force exerted by the spring 74 on the arm 66.
- the roller 68 engages the slider 52 due to the action of spring 74.
- the roller 68 follows the edge 80 of the slider as it is moved in the direction indicated by arrow 60.
- At the edges 82 of the slider 52 there is an indentation and a ramp-shaped cam, called a zero-detent, which roller 68 follows.
- the ramp-shaped cam has an angle of about 45° closest the zero-position. As the slider is moved from the zero-position, the roller follows a steeper angle, about 70°. This shape makes it more difficult for the slider to leave the zero-position accidentally.
- each roller 68 engages its corresponding zero-detent. As the user moves the slider 52, the rollers follow edge 80 until they reach detents 84. The purpose of these detents will be described in more detail below. The slider 52 can be moved until the roller 68 hits the handle 86.
- the slider may also include a photomicrosensor 88 for detecting when the slider 52 is at its zero position.
- a groove 91 extends throughout the range of the slider movement in the supporting plate or base 50 for engagement with a pin (not shown) which is used in conjunction with the photomicrosensor.
- the photomicrosensor 88 will be described in more detail below in connection with Figure 5.
- Figure 4 is a cross section taken at arrows 4 on Figure 3, in which the engagement of rollers 54 with track 56 can be seen more clearly.
- the engagement of the code strip 62 with the position encoder 58 can also be seen.
- the photomicrosensor 88 also has a gap contiguous with the groove 91 through which a pin 90 passes.
- This device is a phototransistor which has a light transmitter 92, such as an LED and a light receiver 94 facing each other opposite a gap.
- the light receiver 94 receives light from the light transmitter 92 and provides a binary output signal indicative that light is being received.
- the output of the device is a voltage of one logical value when the light is received by the receiver, and another logical value when the light path is interrupted.
- pin 90 is passed through the gap between the light transmitter 92 and light receiver 94, the output signal of this device changes.
- this embodiment of the slider mechanism can provide an output indicative of absolute, rather than relative, position.
- FIG. 6 is an enlarged perspective view of the HEDS-9200 encoder which includes a lensed LED source and a detector IC enclosed in a small C-shaped plastic package.
- a highly collimated light source and a unique photodetector array makes such a module tolerant to mounting misalignment.
- Such a device is also TTL compatible and uses a single five volt supply.
- Encoder 58 includes two light transmission devices 100 and 102 each with corresponding light receiving devices, 104 and 106. Two transmitting devices are used in order to provide a two channel quadrature output.
- the code strip 62 includes a number of lines 64 which are detected by the encoder 58 as the code strip is moved between the light detectors 100 and 102 in the direction indicated by arrows 108.
- the output of the encoder 58 changes as the light is interrupted by one of the lines on the code strip 62.
- the output wave form of the two channels is a number of pulses. These pulses can be counted, and the direction of movement can be determined by virtue of the quadrature output, in a manner to be describe below.
- a suitable code strip 62 is shown, enlarged four times, in Figure 7.
- the resolution provided by this code strip is much greater than is needed for film and video editing applications, and is therefore suitable for other more finely detailed applications.
- the radius of curvature of the code strip 32 matches that of the movement of the slider 52.
- This particular code strip has a resolution of 127 lines per inch.
- the code strip 62 is a thin, clear film which may be printed, for example, using a high resolution (i.e., 2400 dots per inch (dpi)) laser printer. It should be understood that, with appropriate modification to the encoder 58, the code strip 62 may be a reflective strip.
- Figure 8 is a cross section of the combined first and second sections 30 and 32 as taken along lines 8 of Figure 1.
- the first section 30 has a base 110, which is preferably has a layer of non-slip material on its bottom surface 112, such as rubber.
- the top section 114 includes a gap 116 for a slider handle (not shown) . It also has a shape along the top edge 118 for engaging with the second section 32.
- the shape of the top surface 118 can vary substantially, and is not limited to the one shown.
- the engaging surfaces may be made to lock with each other, for example, by having a dovetail shape.
- the second section 32 has a bottom portion 120 which engages with the surface 118 of the first section 30 along its bottom surface 122.
- the bottom portion 120 also includes voids 124 to allow a space for electrical connections of the keys 126 to a printed circuit board 128.
- the top section 130 of the second section 32 includes areas 132 for allowing space for the keys 126.
- the second section 32 receives a cord 134 for connecting the interface to the computer.
- the bottom, first section 30 also includes such a cord (not shown) .
- the top and bottom housing sections 30 and 32 are preferably made of a heavy material to reduce movement of the slider when in use. For example, these sections may be made of investment or plaster cast aluminum.
- the slider assembly provides output channels A and B from the position encoder, the binary output signal from the zero-position detector, and may also include a switch.
- the keyboard switches S1-S12 form a matrix, by virtue of the connections to connector 202, whose rows and columns are polled, as is well known in the art, to determine which keys are depressed.
- the outputs for the keys and the slider mechanism 34 can be provided to a computer to be used by computer programs. Because most computers expect input signals to be in a predetermined format, circuitry is often required to convert signals from such mechanical user interfaces to signals corresponding to the expected format for the computer. Such circuitry is well known in the art for typical keyboard and mouse devices for most computer systems.
- Figure 10 illustrates schematically a circuit for converting inputs from the mechanical user interface of this embodiment the present invention to the ADB 205 (Apple Desktop Bus) standard as used in Macintosh Computers, made by Apple Computer Company, Cupertino, California. It should be understood that the invention is not limited to use in conjunction with an ADB bus. Many other busses may be used to connect this device to a computer, such as the RS-232 or IBM Game Port bus.
- ADB 205 Apple Desktop Bus
- the connectors 202 and 204 of Fig. 9 are connected to a microprocessor 209 and a decoder 200. Each pin of each connector is accessed.
- the data is provided as inputs and outputs 206 to the keyboard microprocessor 208.
- the channel A and channel B values from the optical encoder are provided to the quadrature decoder 200 which provides a ones complement 16 bit output, read as two separate bytes, indicative of the direction and the amount of movement of the slider.
- This data is provided to the microprocessor 208 which accessed each byte via the SELECT input 207.
- the microprocessor 208 may be an eight-bit 80C31 processor controlled by a program (firmware) stored in read only memory (ROM) 212 via latch 214.
- ROM read only memory
- a flash memory 216 such as an EEPROM, into which an alternate program (or firmware) may be placed. Either the program in the ROM or the program in the flash memory may be used, as determined by the user, by setting the CHIP SELECT input 211 via the microprocessor 208.
- the ROM may be eliminated to create a purely user-programmable device. Such a circuit provides user programmability of the outputs of the mechanical input device.
- a clock 209 synchronizes the operation of microprocessor 208 and quadrature decoder 200.
- microprocessor 208 for controlling this circuit will now be described in more detail.
- This program has three main components: an interrupt driver, a high level scheduling loop, and routines for manipulating information from the sensor devices.
- the interrupt driver is responsible for sending data over the ADB bus.
- the host computer polls each ADB device by sending an interrupt via line 213 for any data, and the interrupt driver responds to the host request immediately.
- a timer is used to generate a serial data stream to the ADB via the same line 213.
- MSB shifts data
- the hardware timer is checked during the loop to conform with the specified ADB timing.
- the host can ask that data be read from or written into typically four 16-bit registers, which may be extended to 24-bits.
- registers serve as the interface between the routines for manipulating information from the sensor devices, and the interrupt driver from the keyboard matrix, the slider switch, the zero position sensor, the left shift key, the right shift key and the optical encoder.
- the routines for manipulating the sensor device data gather data periodically, such as once every ten milliseconds, and place the information into registers.
- the interrupt driver moves the data to or from these registers from or onto the ADB bus.
- the keyboard is automatically debounced by operation of the main scheduling loop which periodically collects data (e.g., every ten milliseconds). Data is generated for the key matrix input which indicates which key was depressed and whether a logical one is up or down. This data is placed in the R0 interface register which is sent to the host upon request by the interrupt driver. The encoder is periodically read as well and its data is placed into the upper 12 bits of the RI interface register, which again is sent by the interrupt driver upon host request. The lower four bits of RI contains an unused bit set to zero, a signature bit set to one, and the zero—position detector and slider switch values.
- the mechanical user interface also has two input data values: a code which causes the count of the quadrature decoder to be set to zero and an enhanced information mode.
- the first command is sent by the host to register RI (e.g., by setting the MSB of this register to "l") when it has determined where the zero position of the mechanical user interface is. This command sets the count value of quadrature decoder 200 to zero.
- the second command extends the Rl register to 24 bits and allows an indicator of the currently available version of the firmware to be returned in the third byte. Using this command the computer can determine if the user has changed the firmware for the mechanical user interface.
- the main scheduling loop is responsible for monitoring the timer and calling routines to gather data from the keyboard from the sensors and place them into interface registers every ten milliseconds. It is also responsible for handling standard system reset and power up reset functions in response to reset circuitry 215.
- the mechanical user interface as described above, may be attached directly to a computer, such as the Apple Macintosh, for use with application programs such as computerized film editing systems.
- the Apple Macintosh recognizes this embodiment of the invention as a standard input device, using its own input device initialization software. Other programs thus may manipulate information received from this device. Some additional software, however, is used to initialize this embodiment so that it provides absolute, rather than relative, position information.
- Such a program either may instruct the user to place the device at the zero position, or may wait until the zero position is reached. This is readily determined by detecting the output from the photomicrosensor placed at the zero position. Once the zero position is determined, the count of the quadrature decoder 200 may be set to zero. Thus, movement of the slider in a direction may be measured, and the actual position of the slider may be determined on the basis of the number of counts moved from the zero-position.
- the logical address on the computer for the MUI is determined by counting the number of devices attached to the computer (step 220), and for each device, sending a command through the ADB bus to determine if it is the mechanical user interface (step 222).
- the circuit described above in connection with Figure 9 responds to such a command and returns what is known as the signature (the lower 4 bits of the RI register) . If the signature returned by -a device is the same as the predetermined signature for the MUI, the location of the MUI device can be determined.
- a number of values can be set. For example, a frames per second rate can be set to a predetermined function and the current count of the device can be set to a predetermined value. It can also be indicated that the device is not calibrated, and the location of the MUI device (i.e., its logical address) may be stored.
- a Vbl task is a program which is executed whenever a vertical blanking interrupt is generated in the computer.
- the Vbl task can respond to each interrupt or after a fixed number of interrupts, such as every two. Techniques for setting up Vbl tasks are well known in the art.
- the Vbl routine which is established in step 226 of Fig. 11, will now be described in connection with Figure 12.
- the first step 230 of this Vbl routine is saving any stack pointers in the operating system, as is standard for most Vbl tasks.
- the next step 232 is timing out any previous operation performed with a mechanical user interface. That is, if a timer has exceeded a certain threshold, the operation is considered aborted and the timer is reset.
- step 234 it is determined whether the previous operation to the MUI has been completed. If it has not been completed, the timer used for time out purposes is incremented and this Vbl task is completed and the stack pointers are reset in step 238. If the previous operation has been completed, it is determined in step 240 whether the MUI has been calibrated.
- step 242 If the MUI has not been calibrated, it is then calibrated in step 242. Otherwise, the status of the MUI is obtained in step 244. If the operations for retrieving a MUI data or calibrating it were successful as determined in step 246, the Vbl task is complete and the stack pointers are reset in step 238. If the operations were not successful, they are considered as done in step 248 and a record may be made of an error.
- Figure 13 describes how the MUI is calibrated.
- the first step of calibration is obtaining the count and other data from the mechanical user interface in step 250.
- a message counter is then incremented in step 252. If the value of the message counter is greater than some maximum time allowed, as determined in step 254, a message is displayed to the user in step 256 requesting that the MUI be placed at its zero position. The message counter is then reset.
- step 258 it is then determined in step 258 whether the slider is at the zero position by examining the value of the zero position detector status flag from the obtained MUI data. If the slider is not at the zero position, a calibration counter is then set to zero in step 260. This procedure is then complete and is not called again until the next Vbl task. If the slider is at its zero position, its then determined whether the slider has been moved any large amount from the last time data was obtained from the MUI (step 262). In this embodiment, movement of four counts in either direction is acceptable. If it has not been moved, a calibration counter is incremented in step 264 (the same counter reset to zero in step 260). If the slider had been moved, the calibration counter is set to zero in step 266. The purpose of the calibration counter is to require that the slider be at its zero position for a predetermined amount of time before the computer considers the device to be calibrated.
- step 268 determines whether the calibration counter has reached some predetermined minimum calibration count.
- the count position of the MUI is set to zero in step 270. This is performed by sending a command to the mechanical user interface, in response to which the mechanical user interface sets its count register to zero. It may be desirable to determine whether this operation was successful, and, if it is not successful, to decrement the calibration counter in order to allow this command to be executed again.
- the MUI is not considered calibrated until further time has elapsed, for example, half a second.
- step 272 the calibration counter is compared to the minimum calibration time incremented by half a second, or other predetermined value. Once the slider has been in its zero position for this amount of time, the MUI is indicated as calibrated to the computer by setting a "calibrated flag" in the memory of the computer.
- the process of obtaining data from the MUI will now be described in connection with Figure 14.
- the first step 280 is retrieving data from the data register of the mechanical user interface.
- the next step 282 is verifying that the device was in fact the mechanical user interface. This step is performed by looking at the signature, as described above.
- step 284 it is determined whether the count provided from the slider is new. If the count is not new, the slider is not changed and no further steps need to be performed. If the slider count is new, it is next determined whether a valid function exists, known as a callback function.
- a suitable callback function is used to translate the raw data from the MUI into frame advancement information, such as a frame per second (FPS) rate or single frame advancement.
- FPS frame per second
- the frame per second rate is set to zero in step 288. Otherwise, the MUI data is translated to a frame per second rate in step 290. If the callback function is a new function as determined in step 292, an event is posted to the application program requesting the information (step 294). It is determined whether the function is new by comparing the location in the computer memory which stores the function. Next, in step 296, it is determined whether the frames per second rate has been changed. If the rate has changed an event is posted in step 298. If the rate has not changed or if after the MUI event has been posted, the process is complete.
- the mechanical user interface is periodically polled to determine its status.
- Application programs can then access data obtained by these routines.
- the frames per second rate can be obtained by an application program for use in a film or video editing application.
- An application program can also set the pointer for the callback function to a new callback function which can be used to provide different frames per second rates.
- This device is particularly useful in connection with computerized film and video editing systems.
- the provisions of ramp shaped cams 82 for engaging a roller 68 at the zero position enables an editor to simply tap the slider 52 to indicate that only single frame advancement is desired. Due to the ramp shape 82, and the spring loading of the rollers 68, the slider 52 returns back to the zero position.
- the detection of such movement can be performed by a computer program by detecting whether the slider has been moved a number of counts less than a given, programmable threshold. If the number of counts remains less than this threshold for less than a predetermined amount of time, (as determined by a user), the film is advanced only a single frame.
- a corresponding frame per second rate can be determined, according to any linear or non-linear function.
- the detents 84 may be provided at positions to indicate sound speed (the normal speed for video) . Sound speed can be any number of standards, such as 30 frames per second, 24 frames per second, or NTSC (29.97) frames per second. Movement in a direction away from zero beyond the sound speed detents can be used to indicate fast forward viewing of a video.
- the slider mechanism 34 may be made to move linearly, rather than along a radius of curvature. Rotation may be provided by having a fixed point of rotation to which a handle may be attached rather than by attaching a slider to a track via rollers. Further, the attachment of the encoder module to a fixed base, in conjunction with a code strip attached to a moving slider is only one of many possible methods for determining relative lateral movement between a slider and a base.
- the slider mechanism may also be enhanced in functionality by providing a switch as mentioned above.
- a switch may be placed in the handle 34, however, electrical wiring would move with the slider. Therefore, it is preferable to provide a long switch actuation pad, attached to the supporting plate along the length of the movement of the slider. The switch may be activated by depressing or lifting the slider handle.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Position Input By Displaying (AREA)
Abstract
A mechanical user interface includes a supporting plate and a slider adapted to slide on the supporting plate. A position encoder is attached to the supporting plate to monitor movement of the slider. The position encoder provides an electrical output indicative of the position of the slider on the supporting plate. A sensor may also be provided to detect when the slider is at a zero position, thereby allowing absolute rather than relative, position data to be obtained. In a computerized film editing system, when the absolute position is less than a given threshold, the mechanical user interface may be used to advance film by a single frame. Otherwise the position may be translated to a frame per second rate.
Description
MECHANICAL USER INTERFACE
Cross-reference to Related Applications This application is filed copending with, and claims the benefit under 35 U.S.C. §120 of, an application filed August 13, 1992 and titled "Mechanical User Interface," the disclosure of which is hereby- incorporated by reference.
Field of the Invention This invention relates to mechanical user interfaces for computers and other data processing systems. More particularly, this invention is related to mechanical user interfaces, for computerized film and video editing systems, which provide both frame positioning and frame rate information.
Background of the Invention There are many types of mechanical user interfaces presently available for use with typical computer systems, such as a mouse devices, typewriter-style keyboards, adding machine-style keyboards, track balls, mouse pens, light pens, etc. These devices allow a user to provide meaningful input to a computer via mechanical structures and electrical components. In response to the depression of a button which closes a switch, or to movement, an interface provides electrical signals to a computer. The computer examines the state of the device either periodically or as changes occur. A computer may perform predetermined operations, depending on how it is programmed, in response to input from the interface.
Currently-available position-based devices, such as mouse, track-ball or mouse pen devices, only provide relative position information. That is, there is no predetermined initialization or zero-position of the device. As the device is moved only its movement relative to a prior location can be determined.
Such mechanical user interfaces are typically used to control the position of a cursor on a screen. The initial position of the cursor is predetermined by the computer, so initial position information does not need to be known for the mechanical user interface.
As film editing systems have been increasingly developed for use on typical computer systems, it has been found that available mechanical user interfaces are unnatural to professional film editors. Professional film editors, who typically use analog systems for editing final production films, are familiar with what is known in the art as the Steenbeck controller. The Steenbeck controller is an electromechanical device used for manipulating film for editing, and is typically built into the console of a film editing system in a large production facility. The Steenbeck controller has a handle which is attached to a fixed rotation point. By rotating the handle in one direction, film may be advanced; by moving the handle in the opposite direction, film may be reversed. Film may also be stopped at any fixed point. The Steenbeck controller provides a range of film speeds in both forward and reverse directions: normal speed (sound speed), a range of slow motion, still and fast forward. In response to the actual position of this device, the film is advanced at the desired speed.
The Steenbeck controller is also problematic for film editors because it requires substantial skill to edit film with it. The Steenbeck controller provides fixed zero—, sound speed and fast—forward positions using magnets. A film editor must keep the operating hand on the controller to prevent it from moving, unless it is in one of the fixed positions. Thus, it is difficult to maintain a frame rate which is close to, but not the same as, sound speed, zero-speed or fast-forward. Furthermore, the device only affects the rate of the film advancement. Therefore, it is difficult to provide single—frame advancement; an editor
must learn the right "feel" of the device and how to tap it to obtain frame positioning control.
Presently available mechanical user interfaces for computer systems are unnatural because they do not provide actual position information, such as a defined zero-position, and require further means to be useful for computerized film or video editing systems. Moreover, currently available devices for both computer systems and film editing systems do not provide both frame rate control and frame position control (i.e., single frame advancement) of film.
Accordingly, it is an object of the present invention to provide a mechanical user interface for a computer, which feels natural to film editors.
It is another object of the invention to provide a mechanical user interface for a computerized film or video editing system which provides both film rate and film positioning control.
Summary of the Invention
To achieve the foregoing and other objects, there is provided a mechanical user interface which includes a supporting plate and a slider adapted to slide on the supporting plate. Sliding movement of the slider is detected, for example, by a position encoder attached to the supporting plate. An electrical output, indicative of the position of the slider on the supporting plate, is then provided by the encoder. A sensor may also be provided to detect when the slider is at a zero position, thereby allowing absolute rather than relative, position data to be obtained. The movement of the slider may be such that it follows the natural curvature of movement of a hand.
A device with a known zero-position and which provides absolute position information, in conjunction with a computer, may be used for editing motion pictures, including film, video and digitized video data. A range of positions may be defined, e.g. by
using a programmable threshold, to indicate film positioning control. Other positions may be used to indicate different film rates, e.g. under the control of computer programs operating using the position information.
Brief Description of the Drawing
In the drawing,
Figure 1 is a perspective view of an embodiment of the present invention;
Figures 2A—2C are perspective views of different configurations of the embodiment of Figure 1;
Figure 3 is a perspective view of the slider mechanism of this embodiment;
Figure 4 is a cross section of the slider mechanism of Figure 3;
Figure 5 is a perspective view illustrating the operation of a zero-position photomicrosensor;
Figure 6 is a perspective view of the operation of a position encoder;
Figure 7 is an enlarged plan view of a code strip for use with the position encoder;
Figure 8 is a cross section of the embodiment shown in Figure 1;
Figure 9 is schematic circuit diagram of the mechanical user interface of the embodiment of Figure 1;
Figure 10 is a schematic circuit diagram of an interface between the mechanical user interface and a computer;
Figure 11 is a flow chart describing how use of the mechanical user interface is initialized on the computer;
Figure 12 is a flow chart describing how the mechanical user interface is periodically polled;
Figure 13 is a flow chart describing how the mechanical user interface is calibrated; and
Figure 14 is a flow chart describing how data is retrieved from the mechanical user interface and converted to frame speed rates.
Detailed Description
The following is a detailed description of an embodiment of a mechanical user interface in accordance with the present invention. Figure 1 is a perspective view of this embodiment as it may appear to a user. This embodiment includes two separate sections 30 and 32. The first section 30 includes a sliding mechanism 34. The second section 32 is a keyboard, whose keys are similar to those of standard keyboards used with computer systems. This embodiment includes ten keys 36 and two "shift" keys 38.
The two sections 30 and 32 are adapted to engage with each other. The bottom 40 of the second section 32 rests on the top 42 of the first section 30. The curved shape or arcuate of the two sections, aside from its aesthetic appeal, is ergonometric in that a user moves the sliding mechanism 34 along a curve or arc which corresponds to the arc followed during movement of the hand.
The use of two sections 30 and 32 allows a user to place section 30, housing the sliding mechanism 34, and section 32, housing the keyboard, at locations which are comfortable and convenient. Such positions are shown in Figures 2A-2C. In Figure 2A, the first section 30 is shown separate from the second section 32. This enables a user to place the keyboard and the slider mechanism at any desired location. The user may also wish to operate the mechanical user interface with one hand. Figure 2B shows a configuration suitable for use with the left hand, whereas Figure 2C shows a configuration suitable for use with the right hand. The user could operate the slider mechanism 34 with the thumb and the keyboard with the four fingers.
The keyboard will be described in more detail below in connection with Fig. 9. The slider mechanism will now be described in connection with Figures 3-7.
Figure 3 is a perspective view of the slider mechanism 34 found within the first section 30 of this
embodiment of the mechanical user interface. This slider mechanism 34 includes a supporting plate or base 50 which supports a slider 52 via rollers 54 attached to the slider which engage a track 56 on the supporting plate 50. The base 50 is preferably made of heavy material, such as steel, to reduce movement of the device when the slider 52 is moved.
A position encoder 58 detects motion of the slider 52 in the left and right directions, as indicated by arrow 60. A suitable position encoder is the linear optical incremental encoder module HEDS-9200, available from Hewlett-Packard, Palo Alto, California. Position encoding may also be performed using other devices, such as potentiometers. An optical position encoder such as the HEDS-9200 is used in conjunction with a code strip 62 to detect linear position. The code strip 62 has marking lines 64 which are counted by the position encoder 58 as the code strip is moved through the encoder. By counting marking lines, distance may be measured between two points when the slider 52 is moved. A suitable code strip for this embodiment will be described in more detail below in connection with Figure 7. The encoder 58 shown in Fig. 3 will be described in more detail below in connection with Fig. 6.
The sliding mechanism 34 also includes a spring—loaded roller mechanism including an arm 66 with a roller 68. The arm is pivotally attached to the supporting plate or base 50 at location 70 allowing rotation in the directions indicated by arrow 72. A spring 74 is attached to arm 66 and to the base 50 via screw 76. The screw 76 may be moved within channel 78 to adjust the force exerted by the spring 74 on the arm 66. The roller 68 engages the slider 52 due to the action of spring 74. The roller 68 follows the edge 80 of the slider as it is moved in the direction indicated by arrow 60. At the edges 82 of the slider 52, there is an indentation and a ramp-shaped cam, called a zero-detent, which roller 68 follows. The ramp-shaped
cam has an angle of about 45° closest the zero-position. As the slider is moved from the zero-position, the roller follows a steeper angle, about 70°. This shape makes it more difficult for the slider to leave the zero-position accidentally. When the slider 52 is centered, at its zero position, each roller 68 engages its corresponding zero-detent. As the user moves the slider 52, the rollers follow edge 80 until they reach detents 84. The purpose of these detents will be described in more detail below. The slider 52 can be moved until the roller 68 hits the handle 86.
The slider may also include a photomicrosensor 88 for detecting when the slider 52 is at its zero position. A groove 91 extends throughout the range of the slider movement in the supporting plate or base 50 for engagement with a pin (not shown) which is used in conjunction with the photomicrosensor. The photomicrosensor 88 will be described in more detail below in connection with Figure 5.
Figure 4 is a cross section taken at arrows 4 on Figure 3, in which the engagement of rollers 54 with track 56 can be seen more clearly. The engagement of the code strip 62 with the position encoder 58 can also be seen. The photomicrosensor 88 also has a gap contiguous with the groove 91 through which a pin 90 passes.
The operation of the photomicrosensor 88 will now be described in more detail in connection with Figure 5, which is an enlarged perspective view of the photomicrosensor. This device is a phototransistor which has a light transmitter 92, such as an LED and a light receiver 94 facing each other opposite a gap. The light receiver 94 receives light from the light transmitter 92 and provides a binary output signal indicative that light is being received. The output of the device is a voltage of one logical value when the light is received by the receiver, and another logical value when the light path is interrupted. When pin 90
is passed through the gap between the light transmitter 92 and light receiver 94, the output signal of this device changes. By placing a photomicrosensor 88 at a location such that, when the slider is at its zero—position (i.e., when the rollers 68 engage zero-detents 82), detection of the zero-position is possible. Thus, this embodiment of the slider mechanism can provide an output indicative of absolute, rather than relative, position.
Figure 6 is an enlarged perspective view of the HEDS-9200 encoder which includes a lensed LED source and a detector IC enclosed in a small C-shaped plastic package. A highly collimated light source and a unique photodetector array makes such a module tolerant to mounting misalignment. Such a device is also TTL compatible and uses a single five volt supply. Encoder 58 includes two light transmission devices 100 and 102 each with corresponding light receiving devices, 104 and 106. Two transmitting devices are used in order to provide a two channel quadrature output. The code strip 62 includes a number of lines 64 which are detected by the encoder 58 as the code strip is moved between the light detectors 100 and 102 in the direction indicated by arrows 108. The output of the encoder 58 changes as the light is interrupted by one of the lines on the code strip 62. As the code strip 62 is passed through the encoder, therefore, the output wave form of the two channels is a number of pulses. These pulses can be counted, and the direction of movement can be determined by virtue of the quadrature output, in a manner to be describe below.
A suitable code strip 62 is shown, enlarged four times, in Figure 7. The resolution provided by this code strip is much greater than is needed for film and video editing applications, and is therefore suitable for other more finely detailed applications. The radius of curvature of the code strip 32 matches that of the movement of the slider 52. This particular code strip
has a resolution of 127 lines per inch. The code strip 62 is a thin, clear film which may be printed, for example, using a high resolution (i.e., 2400 dots per inch (dpi)) laser printer. It should be understood that, with appropriate modification to the encoder 58, the code strip 62 may be a reflective strip.
The construction of the housing sections 30 and 32 will now be described in more detail in connection with Figure 8. Figure 8 is a cross section of the combined first and second sections 30 and 32 as taken along lines 8 of Figure 1. The first section 30 has a base 110, which is preferably has a layer of non-slip material on its bottom surface 112, such as rubber. The top section 114 includes a gap 116 for a slider handle (not shown) . It also has a shape along the top edge 118 for engaging with the second section 32. The shape of the top surface 118 can vary substantially, and is not limited to the one shown. The engaging surfaces may be made to lock with each other, for example, by having a dovetail shape.
The second section 32 has a bottom portion 120 which engages with the surface 118 of the first section 30 along its bottom surface 122. The bottom portion 120 also includes voids 124 to allow a space for electrical connections of the keys 126 to a printed circuit board 128. The top section 130 of the second section 32 includes areas 132 for allowing space for the keys 126. The second section 32 receives a cord 134 for connecting the interface to the computer. Similarly, the bottom, first section 30 also includes such a cord (not shown) . The top and bottom housing sections 30 and 32 are preferably made of a heavy material to reduce movement of the slider when in use. For example, these sections may be made of investment or plaster cast aluminum.
A schematic circuit diagram of the electrical connections of this embodiment will now be provided in connection with Figures 9-10. All of the keys of the keyboard section 32 are switches. The slider assembly
provides output channels A and B from the position encoder, the binary output signal from the zero-position detector, and may also include a switch. The keyboard switches S1-S12 form a matrix, by virtue of the connections to connector 202, whose rows and columns are polled, as is well known in the art, to determine which keys are depressed.
Given such a device as described above, the outputs for the keys and the slider mechanism 34 can be provided to a computer to be used by computer programs. Because most computers expect input signals to be in a predetermined format, circuitry is often required to convert signals from such mechanical user interfaces to signals corresponding to the expected format for the computer. Such circuitry is well known in the art for typical keyboard and mouse devices for most computer systems.
Figure 10 illustrates schematically a circuit for converting inputs from the mechanical user interface of this embodiment the present invention to the ADB 205 (Apple Desktop Bus) standard as used in Macintosh Computers, made by Apple Computer Company, Cupertino, California. It should be understood that the invention is not limited to use in conjunction with an ADB bus. Many other busses may be used to connect this device to a computer, such as the RS-232 or IBM Game Port bus.
The connectors 202 and 204 of Fig. 9 are connected to a microprocessor 209 and a decoder 200. Each pin of each connector is accessed. The data is provided as inputs and outputs 206 to the keyboard microprocessor 208. The channel A and channel B values from the optical encoder are provided to the quadrature decoder 200 which provides a ones complement 16 bit output, read as two separate bytes, indicative of the direction and the amount of movement of the slider. This data is provided to the microprocessor 208 which accessed each byte via the SELECT input 207.
The microprocessor 208 may be an eight-bit 80C31 processor controlled by a program (firmware) stored in read only memory (ROM) 212 via latch 214. The circuit of Fig. 10 also includes a flash memory 216, such as an EEPROM, into which an alternate program (or firmware) may be placed. Either the program in the ROM or the program in the flash memory may be used, as determined by the user, by setting the CHIP SELECT input 211 via the microprocessor 208. The ROM may be eliminated to create a purely user-programmable device. Such a circuit provides user programmability of the outputs of the mechanical input device. A clock 209 synchronizes the operation of microprocessor 208 and quadrature decoder 200.
The program in microprocessor 208 for controlling this circuit will now be described in more detail. This program has three main components: an interrupt driver, a high level scheduling loop, and routines for manipulating information from the sensor devices.
The interrupt driver is responsible for sending data over the ADB bus. The host computer polls each ADB device by sending an interrupt via line 213 for any data, and the interrupt driver responds to the host request immediately. To maintain accurate bus timing, a timer is used to generate a serial data stream to the ADB via the same line 213. When the host requests data to be transmitted, the interrupt driver enters a software loop which shifts data (MSB first) onto the ADB bus. The hardware timer is checked during the loop to conform with the specified ADB timing. The host can ask that data be read from or written into typically four 16-bit registers, which may be extended to 24-bits. These registers serve as the interface between the routines for manipulating information from the sensor devices, and the interrupt driver from the keyboard matrix, the slider switch, the zero position sensor, the left shift key, the right shift key and the optical encoder.
The routines for manipulating the sensor device data gather data periodically, such as once every ten milliseconds, and place the information into registers. On demand from the host, the interrupt driver moves the data to or from these registers from or onto the ADB bus.
The keyboard is automatically debounced by operation of the main scheduling loop which periodically collects data (e.g., every ten milliseconds). Data is generated for the key matrix input which indicates which key was depressed and whether a logical one is up or down. This data is placed in the R0 interface register which is sent to the host upon request by the interrupt driver. The encoder is periodically read as well and its data is placed into the upper 12 bits of the RI interface register, which again is sent by the interrupt driver upon host request. The lower four bits of RI contains an unused bit set to zero, a signature bit set to one, and the zero—position detector and slider switch values.
The mechanical user interface also has two input data values: a code which causes the count of the quadrature decoder to be set to zero and an enhanced information mode. The first command is sent by the host to register RI (e.g., by setting the MSB of this register to "l") when it has determined where the zero position of the mechanical user interface is. This command sets the count value of quadrature decoder 200 to zero. The second command extends the Rl register to 24 bits and allows an indicator of the currently available version of the firmware to be returned in the third byte. Using this command the computer can determine if the user has changed the firmware for the mechanical user interface.
The main scheduling loop is responsible for monitoring the timer and calling routines to gather data from the keyboard from the sensors and place them into interface registers every ten milliseconds. It is also responsible for handling standard system reset and power up reset functions in response to reset circuitry 215.
The mechanical user interface, as described above, may be attached directly to a computer, such as the Apple Macintosh, for use with application programs such as computerized film editing systems. The Apple Macintosh recognizes this embodiment of the invention as a standard input device, using its own input device initialization software. Other programs thus may manipulate information received from this device. Some additional software, however, is used to initialize this embodiment so that it provides absolute, rather than relative, position information. Such a program either may instruct the user to place the device at the zero position, or may wait until the zero position is reached. This is readily determined by detecting the output from the photomicrosensor placed at the zero position. Once the zero position is determined, the count of the quadrature decoder 200 may be set to zero. Thus, movement of the slider in a direction may be measured, and the actual position of the slider may be determined on the basis of the number of counts moved from the zero-position.
Flow charts for the programs for the mechanical user interface will now be described in connection with Figures 11-14. In order to initialize the mechanical user interface (MUI) the logical address on the computer for the MUI is determined by counting the number of devices attached to the computer (step 220), and for each device, sending a command through the ADB bus to determine if it is the mechanical user interface (step 222). The circuit described above in connection with Figure 9 responds to such a command and returns what is known as the signature (the lower 4 bits of the RI register) . If the signature returned by -a device is the same as the predetermined signature for the MUI, the location of the MUI device can be determined.
Once the location of the MUI device is determined, a number of values can be set. For example, a frames per second rate can be set to a predetermined function and
the current count of the device can be set to a predetermined value. It can also be indicated that the device is not calibrated, and the location of the MUI device (i.e., its logical address) may be stored.
When the MUI is initialized, a Vbl task may be established (step 226) . A Vbl task is a program which is executed whenever a vertical blanking interrupt is generated in the computer. The Vbl task can respond to each interrupt or after a fixed number of interrupts, such as every two. Techniques for setting up Vbl tasks are well known in the art.
The Vbl routine which is established in step 226 of Fig. 11, will now be described in connection with Figure 12. The first step 230 of this Vbl routine is saving any stack pointers in the operating system, as is standard for most Vbl tasks. The next step 232 is timing out any previous operation performed with a mechanical user interface. That is, if a timer has exceeded a certain threshold, the operation is considered aborted and the timer is reset. Next, in step 234, it is determined whether the previous operation to the MUI has been completed. If it has not been completed, the timer used for time out purposes is incremented and this Vbl task is completed and the stack pointers are reset in step 238. If the previous operation has been completed, it is determined in step 240 whether the MUI has been calibrated. If the MUI has not been calibrated, it is then calibrated in step 242. Otherwise, the status of the MUI is obtained in step 244. If the operations for retrieving a MUI data or calibrating it were successful as determined in step 246, the Vbl task is complete and the stack pointers are reset in step 238. If the operations were not successful, they are considered as done in step 248 and a record may be made of an error.
Figure 13 describes how the MUI is calibrated. The first step of calibration is obtaining the count and other data from the mechanical user interface in step
250. A message counter is then incremented in step 252. If the value of the message counter is greater than some maximum time allowed, as determined in step 254, a message is displayed to the user in step 256 requesting that the MUI be placed at its zero position. The message counter is then reset.
If the message counter has not reached its threshold yet, it is then determined in step 258 whether the slider is at the zero position by examining the value of the zero position detector status flag from the obtained MUI data. If the slider is not at the zero position, a calibration counter is then set to zero in step 260. This procedure is then complete and is not called again until the next Vbl task. If the slider is at its zero position, its then determined whether the slider has been moved any large amount from the last time data was obtained from the MUI (step 262). In this embodiment, movement of four counts in either direction is acceptable. If it has not been moved, a calibration counter is incremented in step 264 (the same counter reset to zero in step 260). If the slider had been moved, the calibration counter is set to zero in step 266. The purpose of the calibration counter is to require that the slider be at its zero position for a predetermined amount of time before the computer considers the device to be calibrated.
The timing of calibration is performed through step 268, which determines whether the calibration counter has reached some predetermined minimum calibration count. When the minimum calibration time has been achieved, the count position of the MUI is set to zero in step 270. This is performed by sending a command to the mechanical user interface, in response to which the mechanical user interface sets its count register to zero. It may be desirable to determine whether this operation was successful, and, if it is not successful, to decrement the calibration counter in order to allow this command to be executed again.
In this embodiment, after the MUI has been set to its zero position after the minimum calibration time has elapsed, the MUI is not considered calibrated until further time has elapsed, for example, half a second. This is determined in step 272 where the calibration counter is compared to the minimum calibration time incremented by half a second, or other predetermined value. Once the slider has been in its zero position for this amount of time, the MUI is indicated as calibrated to the computer by setting a "calibrated flag" in the memory of the computer.
The process of obtaining data from the MUI will now be described in connection with Figure 14. The first step 280 is retrieving data from the data register of the mechanical user interface. The next step 282 is verifying that the device was in fact the mechanical user interface. This step is performed by looking at the signature, as described above. Next, in step 284, it is determined whether the count provided from the slider is new. If the count is not new, the slider is not changed and no further steps need to be performed. If the slider count is new, it is next determined whether a valid function exists, known as a callback function. A suitable callback function is used to translate the raw data from the MUI into frame advancement information, such as a frame per second (FPS) rate or single frame advancement. If no valid callback function exists, the frame per second rate is set to zero in step 288. Otherwise, the MUI data is translated to a frame per second rate in step 290. If the callback function is a new function as determined in step 292, an event is posted to the application program requesting the information (step 294). It is determined whether the function is new by comparing the location in the computer memory which stores the function. Next, in step 296, it is determined whether the frames per second rate has been changed. If the rate has changed an event is posted in step 298. If the rate has not changed or
if after the MUI event has been posted, the process is complete.
With the aforementioned procedures, the mechanical user interface is periodically polled to determine its status. Application programs can then access data obtained by these routines. For examples, the frames per second rate can be obtained by an application program for use in a film or video editing application. An application program can also set the pointer for the callback function to a new callback function which can be used to provide different frames per second rates.
This device is particularly useful in connection with computerized film and video editing systems. Referring back to Fig. 3, the provisions of ramp shaped cams 82 for engaging a roller 68 at the zero position enables an editor to simply tap the slider 52 to indicate that only single frame advancement is desired. Due to the ramp shape 82, and the spring loading of the rollers 68, the slider 52 returns back to the zero position. The detection of such movement can be performed by a computer program by detecting whether the slider has been moved a number of counts less than a given, programmable threshold. If the number of counts remains less than this threshold for less than a predetermined amount of time, (as determined by a user), the film is advanced only a single frame. Because the device acts in a more intuitive manner, an editor needs less skill to learn how to make this device advance film frame-by-frame than with the Steenbeck controller. For any number greater than that threshold, a corresponding frame per second rate can be determined, according to any linear or non-linear function. The detents 84 may be provided at positions to indicate sound speed (the normal speed for video) . Sound speed can be any number of standards, such as 30 frames per second, 24 frames per second, or NTSC (29.97) frames per second. Movement in a direction away from zero beyond the sound speed
detents can be used to indicate fast forward viewing of a video.
As a variety of applications may also use this device, it should be understood that the mechanical user interface described is not limited to use with video editing systems, except as may be indicated by the appended claims.
Other modifications could be made to the device described above. For example, the slider mechanism 34 may be made to move linearly, rather than along a radius of curvature. Rotation may be provided by having a fixed point of rotation to which a handle may be attached rather than by attaching a slider to a track via rollers. Further, the attachment of the encoder module to a fixed base, in conjunction with a code strip attached to a moving slider is only one of many possible methods for determining relative lateral movement between a slider and a base.
The slider mechanism may also be enhanced in functionality by providing a switch as mentioned above. For example, a switch may be placed in the handle 34, however, electrical wiring would move with the slider. Therefore, it is preferable to provide a long switch actuation pad, attached to the supporting plate along the length of the movement of the slider. The switch may be activated by depressing or lifting the slider handle.
Having now provided a detailed description of the present invention, it should be apparent to those skilled in this art that the foregoing is illustrative only and not limiting, having been presented by way of example only. Numerous other embodiments and modifications thereof are contemplated as falling within the scope of the present invention and as defined by the appended claims in equivalence thereto.
What is claimed is: -~"~="
Claims
1. A mechanical user interface, comprising: a base; a slider adapted to slide on the base and having a zero-position defined thereon; a position encoder responsive to relative movement between the slider and the base for providing an electrical output indicative of the position of the slider from the zero-position on the supporting plate.
2. The mechanical user interface of claim 1 wherein the slider slides along an arc corresponding to an arc followed during movement of a hand.
3. A mechanical user interface comprising: a keyboard section; a slider section including a slider for providing an output indicative of a position from a predetermined zero-position; and said slider section having means adapted to engage said keyboard section in a plurality of positions.
4. The mechanical user interface of claim 3 wherein the slider section and the keyboard section both have an arcuate shape which corresponds to an arc followed during movement of a hand.
5. A mechanical user interface for editing film defined by a plurality of frames, comprising: a slider mechanism providing an output indicative of position relative to a predetermined zero-position; means responsive to the output of the slider mechanism for advancing the film by a single frame when the indicated position is less than a threshold and for advancing the film by a programmable rate when the indicated position is greater than the programmed threshold.
6. The mechanical user interface of claim 5, wherein the threshold is programmable.
7. A mechanical user interface, comprising: a slider mechanism providing an output indication of position relative to a predetermined zero-position; and a switch adapted to be activated by movement of the slider mechanism when the slider mechanism is in any position.
8. A mechanical user interface of claim l, wherein the base is a supporting plate having a track and the slider includes rollers which engage the track.
9. The mechanical user interface of claim 1, wherein the position encoder is a linear optical incremental encoder, and wherein the slider has a code strip attached thereto for engagement with the linear optical incremental encoder.
10. The mechanical user interface of claim 1, wherein the base has a spring loaded roller mechanism which engages an edge of the slider.
11. The mechanical user interface of claim 10 wherein the spring loaded roller mechanism includes an arm, a roller attached to the arm, and a spring attached to the arm and to the base.
12. The mechanical user interface of claim 11, wherein the slider has an indentation and a ramp shaped cam at the edge engaged by the roller mechanism.
13. A mechanical user interface of claim l, wherein when the slider is at the zero position, a roller, attached to the base, engages a corresponding zero detent formed in the slider.
14. The mechanical user interface of claim 1, wherein the position encoder includes a photomicrosensor attached to the base, and a pin attached to the slider and which engages the photomicrosensor when the slider is at the zero position.
15. A circuit for converting inputs from a mechanical user interface which provides an output indicative of a position of a slider from a zero-position on a supporting plate, to a format suitable for an input bus for a computer, the circuit comprising: a microprocessor; means responsive to an output of the mechanical user interface, for providing an output indicative of the distance of the slider from the zero position; at least one register connected to the bus; and wherein the microprocessor includes a processor controlled by a program stored in a read only memory; and wherein the program causes the microprocessor to operate, in response to a request from the computer for data to be transmitted, for shifting the output indicative of the into the register.
16. The circuit of claim 15, wherein the circuit includes means for providing the output to be set to zero.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/866,829 | 1992-04-10 | ||
US07/866,829 US5355450A (en) | 1992-04-10 | 1992-04-10 | Media composer with adjustable source material compression |
US07/932,703 US5583496A (en) | 1992-08-19 | 1992-08-19 | Mechanical user interface |
US07/932,703 | 1992-08-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1993021604A1 true WO1993021604A1 (en) | 1993-10-28 |
Family
ID=27127974
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1993/003219 WO1993021604A1 (en) | 1992-04-10 | 1993-04-07 | Mechanical user interface |
Country Status (2)
Country | Link |
---|---|
AU (1) | AU3974593A (en) |
WO (1) | WO1993021604A1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998008186A1 (en) * | 1996-08-23 | 1998-02-26 | Wolf Heider Rein | Method and device for the one-handed input of data |
WO2005116912A2 (en) * | 2004-05-27 | 2005-12-08 | Wolf-Heider Rein | Single-hand input device, status indicator, character arrangement, method for the single-handed input of data, keypad |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4100607A (en) * | 1977-02-07 | 1978-07-11 | Convergence Corporation | Computer for video tape editing system |
US4670743A (en) * | 1985-01-31 | 1987-06-02 | General Instrument Corporation | Keyboard cursor controller |
US5050061A (en) * | 1988-04-06 | 1991-09-17 | Sony Corporation | Apparatus for generating predetermined control data corresponding to an operating position of a manually operable control device or lever |
-
1993
- 1993-04-07 WO PCT/US1993/003219 patent/WO1993021604A1/en active Application Filing
- 1993-04-07 AU AU39745/93A patent/AU3974593A/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4100607A (en) * | 1977-02-07 | 1978-07-11 | Convergence Corporation | Computer for video tape editing system |
US4670743A (en) * | 1985-01-31 | 1987-06-02 | General Instrument Corporation | Keyboard cursor controller |
US5050061A (en) * | 1988-04-06 | 1991-09-17 | Sony Corporation | Apparatus for generating predetermined control data corresponding to an operating position of a manually operable control device or lever |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998008186A1 (en) * | 1996-08-23 | 1998-02-26 | Wolf Heider Rein | Method and device for the one-handed input of data |
US6333734B1 (en) | 1996-08-23 | 2001-12-25 | Wolf Heider Rein | Method and device for the one-handed input of data |
WO2005116912A2 (en) * | 2004-05-27 | 2005-12-08 | Wolf-Heider Rein | Single-hand input device, status indicator, character arrangement, method for the single-handed input of data, keypad |
WO2005116912A3 (en) * | 2004-05-27 | 2006-11-02 | Wolf-Heider Rein | Single-hand input device, status indicator, character arrangement, method for the single-handed input of data, keypad |
Also Published As
Publication number | Publication date |
---|---|
AU3974593A (en) | 1993-11-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5760764A (en) | Computer display cursor controller with serial interface | |
US5771037A (en) | Computer display cursor controller | |
US6839049B1 (en) | Physically interacting with a processor-based display | |
EP1440430B1 (en) | Mouse having a rotary dial | |
US5313229A (en) | Mouse and method for concurrent cursor position and scrolling control | |
US5805144A (en) | Mouse pointing device having integrated touchpad | |
US4935728A (en) | Computer control | |
JP5379777B2 (en) | Object position detector | |
GB2142711A (en) | Manually operable x-y signal generator | |
EP0731407A1 (en) | An input device for a computer | |
EP1127332A1 (en) | Input device using scanning sensors | |
US5583496A (en) | Mechanical user interface | |
JPS619719A (en) | Position input device | |
US20060001646A1 (en) | Finger worn and operated input device | |
US6567073B1 (en) | Ambidextrous computer mouse | |
JPH1074127A (en) | Computer input device | |
US6169537B1 (en) | Input device with handle | |
US4670738A (en) | Computer input technique | |
US20040004601A1 (en) | Virtual position movement capturing apparatus | |
WO1993021604A1 (en) | Mechanical user interface | |
US5973622A (en) | Keyboard with a two-dimensional actuator for generating direction signals | |
US8026897B2 (en) | Cursor motion control of a pointing device | |
US6404415B1 (en) | Control mechanism and method for controlling parameter values and for controlling a position of a cursor of a portable computer display | |
EP0580800A1 (en) | Cursor tracking. | |
WO1998043194A2 (en) | Apparatus and methods for moving a cursor on a computer display and specifying parameters |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AU BB BG BR CA CZ FI HU JP KP KR LK MG MN MW NO NZ PL RO RU SD SK UA |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
122 | Ep: pct application non-entry in european phase | ||
NENP | Non-entry into the national phase |
Ref country code: CA |