# Patent

## Title
Method and apparatus for programming parameters of a power driven wheelchair for a plurality of drive settings

## Abstract

A method of programming parameters of a power driven wheelchair for a plurality of drive modes comprises: displaying a menu image on an interactive display screen, the menu image including settings of a plurality of wheelchair parameters for a plurality of drive modes of the wheelchair; selecting a wheelchair parameter for a drive mode from the displayed menu image; and programming the setting of the selected wheelchair parameter to a desired setting.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of eight U.S. provisional patent applications, including Ser. No. 60/712,987, filed Aug. 31, 2005, Ser. No. 60/727,005, filed Oct. 15, 2005, Ser. No. 60/726,983, filed Oct. 15, 2005, Ser. No. 60/726,666, filed Oct. 15, 2005, Ser. No. 60/726,981, filed Oct. 15, 2005, Ser. No. 60/726,993, filed Oct. 15, 2005, Ser. No. 60/727,249, filed Oct. 15, 2005, and Ser. No. 60/727,250, filed Oct. 15, 2005. This application is also related to seven co-pending U.S. utility patent applications filed the same day as this application, including Ser. No. 11/513,740 entitled “Mode Programmable Actuator Controller for Power Positioning Seat or Leg Support of a Wheelchair,” Ser. No. 11/514,016 entitled “Method and Apparatus for Setting or Modifying Programmable Parameters in Power Driven Wheelchair,” Ser. No. 11/511,606 entitled “Method and Apparatus for Programming Parameters of a Power Driven Wheelchair for a Plurality of Drive Settings,” Ser. No. 11/513,780 entitled “Adjustable Mount for Controller of Power Driven Wheelchair,” Ser. No. 11/513,746 entitled “Method and Apparatus for Automated Positioning of User Support Surfaces in Power Driven Wheelchair,” Ser, No. 11/513,854 entitled “Context-Sensitive Help for Display Device Associated with a Power Driven Wheelchair,” and Ser. No. 11/513,802 entitled “Power Driven Wheelchair.” The contents of all above-identified patent application(s) and patent(s) are fully incorporated herein by reference.


BACKGROUND
The present invention is directed to power driven wheelchairs, in general, and, more particularly, a method and apparatus for programming parameters of a power driven wheelchair for a plurality of drive settings using a common menu image of an interactive display screen.
Power driven wheelchairs, which may be of the type manufactured by Invacare Corporation of Elyria, Ohio, for example, are generally controlled by an electronic control system. An exemplary control system for power or motor driven wheelchairs is disclosed in U.S. Pat. No. 6,819,981, entitled “Method and Apparatus for Setting Speed/Response Performance Parameters of a Power Driven Wheelchair”, issued Nov. 16, 2004, and assigned to the same assignee as the instant application, which patent being incorporated by reference herein in its entirety.
Typically, power driven wheelchairs have a plurality of drive settings for operation of the wheelchair by the user. An exemplary wheelchair may include four drive settings which may be Drive 1 (D1) for indoor operation, Drive 2 (D2) for moderate outdoor operation, Drive 3 (D3) for special operation, and Drive 4 (D4) for ramps and curbs. For each drive setting, there are numerous performance and power seating parameters which are programmed into the control system to satisfy the operational capabilities of the individual user of the wheelchair. The programming task is normally conducted through a hand held programmer unit having an interactive display and coupled to the control system much as described in the above-referenced U.S. Pat. No. 6,819,981, for example. Currently, a set of parameters may be programmed into the control system through the interactive display of the programmer unit for only one drive setting at a time.
SUMMARY OF THE INVENTION
In accordance with one aspect of the present invention, a method of programming parameters of a power driven wheelchair for a plurality of drive modes comprises: displaying a menu image on an interactive display screen, the menu image including settings of a plurality of wheelchair parameters for a plurality of drive modes of the wheelchair; selecting a wheelchair parameter for a drive mode from the displayed menu image; and programming the setting of the selected wheelchair parameter to a desired setting.
In accordance with another aspect of the present invention, apparatus for programming parameters of a power driven wheelchair for a plurality of drive modes comprises: a display; a controller for interacting with the display and operative to display a menu image on a screen of the display, the menu image including settings of a plurality of wheelchair parameters for a plurality of drive modes of the wheelchair; and a programming unit operative to control the controller to select a wheelchair parameter for a drive mode using the displayed menu image, and to program the setting of the selected wheelchair parameter to a desired setting.
In accordance with yet another aspect of the present invention, apparatus for programming parameters of a power driven wheelchair for a plurality of drive modes comprises: a display; a memory for storing a plurality of menu images, each menu image including settings of a plurality of wheelchair parameters for a plurality of drive modes of the wheelchair; a controller for interacting with the memory and display; and a programming unit operative to control the controller to display a menu image from the plurality of stored menu images on the screen of the display according to a predetermined routing, to select a wheelchair parameter for a drive mode using the displayed menu image, and to program the setting of the selected wheelchair parameter to a desired setting.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram schematic of an exemplary embodiment for programming parameter values into a control system of a power driven wheelchair.
FIG. 1A is an exemplary main menu image for display on an interactive display screen.
FIG. 1B is one example of a gauge display window for display on an interactive display screen.
FIG. 1C is another example of a gauge display window for display on an interactive display screen.
FIG. 1D is an example of a display showing a menu window displaying drive parameters for a plurality of drive modes and a drive parameter adjustment window for a single drive mode there below.
FIG. 1E is an example of a display showing a menu window displaying drive parameters for a plurality of drive modes and a drive parameter adjustment window for a all drive modes there below.
FIG. 1F is an example of a display showing a portion of a performance adjust window displaying drive parameters for a plurality of drive modes and drive parameter adjustment window for a single drive mode there below.
FIG. 1G is an example of a display showing a portion of a performance adjust window displaying drive parameters for a plurality of drive modes and drive parameter adjustment window for all drive modes there below.
FIGS. 2 through 6 are flowcharts which exemplify programs for execution by a controller for programming parameter values of different drive modes for the control system of the wheelchair.
FIGS. 7A and 7B compositely depict a flowchart exemplifying menu images for display on an interactive display screen and predetermined navigational routings between menu images. FIGS. 7A and 7B will hereinafter be collectively referred to as FIG. 7.
FIG. 8 is an example flowchart of a procedure for displaying one or more drive parameters for one or more drive modes and for adjusting one or more drive parameters for one or more drive modes.



DETAILED DESCRIPTION
The block diagram schematic of FIG. 1 illustrates suitable apparatus for embodying the principles of applicants' general concept. Referring to FIG. 1, a remote, hand held programmer unit 14 may be coupled to a control system 10 of the power driven wheelchair and comprises a display screen 16 which may be a liquid crystal display (LCD), for example, and a plurality of pushbuttons 18 for use in selecting the desired drive and parameter and entering the parameter settings, like Speed and Response values, for example, by interacting with the image on the display screen 16 as will become better understood from the description below. More specifically, the pushbuttons 18 may include a Power I/O (P), Save (Sa), Enter (E), left arrow, right arrow, up arrow and down arrow pushbuttons.
In the present exemplary embodiment, the remote programmer unit 14 communicates with a main controller 20 of the control system 10 via serially coded signals over lines 22. The main controller 20 may include a programmed microcontroller, which may be of the type manufactured by Infineon, bearing model no. SAF-XC-164CS, for example. The serial lines 22 may be coupled to the microcontroller 20 through a serial communication controller (SCC) 24 which may be of the type licensed by Echelon Corporation and manufactured by Toshiba bearing model no. TMPN3150, for example. The tasks of the Echelon controller 24 include setting the protocol, performing serial/parallel translations, checking for errors in transmission, and managing the traffic for the serial communication between the remote programmer unit 14 and microcontroller 20. In the alternative, the tasks of the serial communication controller 24 may be programmed into the main controller 20, in which case, the serial lines 22 may be coupled directly to the main controller 20 and the SCC may be eliminated. Moreover, while the communication link between the programmer unit 14 and controller 20 of the exemplary embodiment is over lines 22, it may just as well be a wireless communication link, like a BLUETOOTH link or a 802.11 link, for example, without deviating from the broad principles of applicants' general concept.
The microcontroller 20 may include an internal memory 28 which may be of the random access (RAM) or scratch pad type, for example, and is coupled to an electrically erasable programmable read only memory (EEPROM) 32 over address (A), data (D) and control (C) lines. While the memory 28 is shown internal to the microcontroller 20, it is understood that a portion or all of the memory 28 may be just as well external to the microcontroller 20. Generally, when powered up, the controller 20 will boot up under program control and may access the preset parameters and relationships stored in the EEPROM 32 and store them temporarily to the scratch pad memory 28 for interaction with the remote programmer unit 14 and operation of the wheelchair. It is understood that when power is removed, the stored data of the RAM 28 will be lost. Only, the EEPROM 32 will retain the data of its memory without power.
As indicated above, the microcontroller 20 of the power wheelchair is programmed to interact with the remote programmer unit 14 via signal lines 22 and communication controller 24, if used, for entry of the parameter values or settings and for the display thereof. The flowcharts of FIGS. 2 through 6 exemplify programs for execution by the microcontroller 20 for performing the aforementioned tasks. In describing the various flowcharts herein below, the term block will be used to refer to a step or steps for performing a function or task by the controller 20.
Referring to FIG. 2, in block 50, the microcontroller 20 responds to the activation (depression) of the P pushbutton of the remote programmer unit 14 by entering the programming task program or parameter setting mode. In the next block 52, the microcontroller 20 initializes the program settings of the parameter setting mode, and then, transmits via lines 22 an initial screen of a main menu image to the programmer unit 14 for display on the LCD screen 16 thereof. The display screen 16 of the programmer unit 14 may be a graphics LCD screen having 160×160 pixels for display, for example.
An exemplary initial or main menu image screen display in a table format is shown in FIG. 1A. In the present embodiment, the main menu screen image is a table with thice rows. The top row of the three includes the parameter word “Speed” in the left most column followed by four columns of the preset parameter values thereof for the drives D1-D4 and the next row down includes the parameter word “Response” in the left most column followed the four columns of the preset parameter values thereof for the drives D1-D4, all of the parameter values being accessed from the EEPROM 32 as described herein above. Note that the Speed and Response parameters may be programmed for all of the drives: D1, D2, D3 and D4 which are displayed in the table format of the main menu screen image. The bottom row of the table may include the text “Advanced Menu” to permit access to a selection menu screen for selection of additional menu screen images for more parameter settings, or, in the alternative, additional rows of the table may be displayed for the direct selection of the additional menu screen images as will become better understood from the description of FIG. 7 infra.
The selection of each row of text may be performed by the movement of a pointer, e.g. an arrow pointer shown to the left of the image (shown to the left of “Speed” in FIG. 1A) or by highlighting the text in some manner or both. Each row position of the pointer is correlated in the microcontroller program with a number. For example, the number 0 may represent the first row or Speed pointer position, the number 1 may represent the second row or Response pointer position, and the number 2 may represent the third row or Advanced Menu pointer position. If the pointer was set to 0 in block 52, for example, a pointer image may appear adjacent to the text “SPEED” in row 1 as shown in FIG. 1A, or the text “SPEED” may be highlighted.
In the present exemplary embodiment, the programmer unit 14 will send a key status signal via lines 22 to the microcontroller 20 every ten (10) milliseconds. Each key status signal will indicate to the program if a pushbutton has been depressed and a code representative of the depressed pushbutton. The program will detect the reception of a key status signal in block 54. If the controller 20 does not receive a key status signal within a preset period of time from the last reception (time out) as determined by block 56, it will presume the programmer has been turned off or has been unplugged from the controller 20 and will end the programming task in block 58.
When the program detects the reception of a key status signal in block 54, it calls for the execution of a menu navigation handler program in block 60. An exemplary menu navigation handler program suitable for use in the present embodiment is shown in the flowchart of FIG. 3. Referring to FIG. 3, the handler program starts at block 70 wherein certain initialization may be performed, Thereafter, the program sequences through a number of decisional blocks 72, 74, 76, 78, 80 and 82 to decode the key status signal to determine which menu navigation action has been requested by the programmer unit 14. If the UP arrow key is activated, program execution will be diverted from block 72 to block 84 wherein the controller 20 will send instruction signals to the programmer unit 14 to move the pointer of the menu display image to the next row up. If the pointer is currently at its upper limit, either no action will take place or the pointer will circulate back to the lowest row. In the example menu image of FIG. 1A, if the UP arrow key is activated, the pointer will either remain pointing to the Speed parameter row or be circulated back to the Advanced Menu row. After the controller 20 transmits the instructions in block 84, it will return program flow back to block 54 of the flowchart of FIG. 2 awaiting the next key status signal.
Likewise, if the DOWN arrow key is activated, program execution will be diverted from block 74 to block 86 wherein the controller 20 will send instruction signals to the programmer unit 14 to move the pointer of the menu display image to the next row down. If the pointer is currently at its lower limit, either no action will take place or the pointer will circulate back to the highest row. In the example menu image of FIG. 1A, if the DOWN arrow key is activated, the pointer will be positioned down to the Response parameter row. After the controller 20 transmits the instructions in block 86, it will return program flow back to block 54 of the flowchart of FIG. 2 awaiting the next key status signal.
Once the desired parameter row is activated, the user may select the drive parameter value by depressing or activating the left or right keys on the programmer unit 14. If the left arrow key is activated, program execution will be diverted from block 76 to block 88 wherein the controller 20 will send instruction signals to the programmer unit 14 to highlight the next drive parameter value to the left of the current highlighted drive parameter value. In the example of FIG. 1A, if the Speed value at D2 is currently highlighted, then, if the left arrow key is activated, the Speed value at D1 will be highlighted and so on. If the Speed value at D1 is highlighted when the left arrow key is activated, then either no action will be taken or the highlighting may be circulated to the right-most Speed value at D4.
Likewise, if the right arrow key is activated, program execution will be diverted from block 78 to block 90 wherein the controller 20 will send instruction signals to the programmer unit 14 to highlight the next drive parameter value to the right of the current highlighted drive parameter value. In the example of FIG. 1A, if the Speed value at D1 is currently highlighted, then, if the right arrow key is activated, the Speed value at D2 will be highlighted. If the Speed value at D4 is highlighted when the right arrow key is activated, then either no action will be taken or the highlighting may be circulated to the left-most Speed value at D1. After the controller 20 transmits the instructions in either block 88 or block 90, it will return program flow back to block 54 of the flowchart of FIG. 2 awaiting the next key status signal.
Once the proper row and/or column drive parameter value is selected, by highlighting or otherwise, the user may adjust the selected drive parameter to a new value or move to another menu screen image by activating the enter (E) key on the programmer unit. When the E key is activated, program execution is diverted from block 80 to block 92 wherein the appropriate handler program is called and executed by the controller 20. An exemplary handler program for performing the tasks of block 92 is shown by the flowchart of FIG. 4. Referring to FIG. 4, the handler program starts at decisional block 94 wherein it is determined if the request is for a new menu image or for parameter value adjustment. Suppose that in the example of FIG. 1A the pointer was pointing to the row “Advanced Menu” when the E key was activated, then program execution will continue through blocks or steps to display a new menu image on the programmer display 16 which will be discussed in greater detail herein below. Otherwise, the program will divert program flow from decisional block 94 to block 96 wherein a gauge display handler program is called and executed for the adjustment of the desired parameter value.
An exemplary gauge display handler program is shown in the flowchart of FIG. 5. Referring to FIG. 5, the program starts at block 100 wherein the controller 20 transmits instructions to the programmer unit 14 via lines 22 to open a gauge display window in the screen 16. Examples of gauge display windows are shown in FIGS. 1B and 1C. Next, in block 102, the program retrieves the drive and current values of the desired item or parameter from memory. In block 104, the program formats the text of the selected drive and parameter and sends instructions and data to the programmer unit 14 to display the formatted text and current drive and parameter values in the gauge display window. In the example of FIG. 1B, the Speed parameter for drive 1 is selected and the current value is 35%, and in the example of FIG. 1C, the Response parameter for drive 3 is selected and the current value is 70%.
Next, in block 106, the program sends instructions and data for a “progress” bar to be displayed on the screen 16, preferably in the lower portion of the gauge display window. Each progress bar display image may include the text “LESS” and “MORE” at the far left and right, respectively, thereof as shown in the examples of FIGS. 1B and 1C. In between the text, there may be displayed a row of blocks with each block representing an incremental percentage of the displayed parameter value. Accordingly, as the parameter value is increased, additional blocks will appear along the row of the progress bar consistent with the increase in value, Likewise, as the parameter value is decreased, blocks will disappear along the row of the progress bar consistent with the decrease in value. So, the progress bar appears as a thermometer for the value of the adjusted parameter.
Once the proper gauge window is fully formatted and displayed on the screen 16, the user is ready to adjust or program the value of the selected parameter. To accomplish this task, program execution is directed to a gauge adjustment handler program in block 108. An exemplary gauge adjust handler program is shown in the flowchart of FIG. 6 and is executed in conjunction with the program of FIG. 2.
Referring to FIGS. 2 and 6, the gauge adjust handler program goes through a number of decisional blocks 110, 112, 114 and 116 to decode the key status signal received at block 54. So long as no keys of the programmer unit 14 are activated by the user, program execution will pass through decisional blocks 110, 112, 114 and 116 and be returned to block 54 for the next key status signal. With each reception of a key status signal, program execution is directed back to the gauge adjust handler program by the block or step 60 which has knowledge that the program is in a parameter adjust mode. When an up or right arrow key is activated, program execution is directed from block 112 to block 120 wherein the parameter value is incremented a predetermined amount, the new value is displayed numerically and the gauge progress bar is updated. Likewise, when a down or left arrow key is activated, program execution is directed from block 114 to block 122 wherein the parameter value is decremented a predetermined amount, the new value is displayed numerically and the gauge progress bar display is updated. This may be visualized by the examples of FIGS. 1B and 1C.
Once the selected drive parameter has been adjusted to the desired value using the interactive gauge window (see FIGS. 1B and 1C), then the user may activate the Save key which causes the program to direct execution from block 116 to 124 wherein the program stores the new value of the selected drive parameter in a designated memory location. Then, the current menu screen may be updated with the new drive parameter value and the gauge display window may be closed. If another drive parameter of the currently displayed menu table is to be adjusted, then the foregoing described process is repeated. The process may be repeated for all drive parameters on the displayed menu table desired to be adjusted. Thus, a plurality of drive parameters displayed in a common menu image may be adjusted to desired values by navigation through the common menu image without having to change from one menu image to another.
After all of the selected drive parameters of the displayed common menu table have been adjusted to the desired values, the user may activate the Enter key, for example, which causes the program to direct execution in the program of FIG. 6 from block 110 to block 126 wherein the program determines the common menu that is displayed on screen 16 for drive parameter adjustment and directs execution to the menu display handler exemplified by the flowchart of FIG. 4.
Referring back to FIG. 4, in block 94 the program determines whether the request is for display of a menu image or a gauge window image. When the routine of FIG. 4 is called by block 126 as noted above, the request is for a menu image display. Therefore, program execution is directed from block 94 to block 130. In the present example, if the current menu image on screen 16 is the main menu exemplified by FIG. 1A, then, in block 130, the program retains display of the main menu. Otherwise, in block 130, the program determines the menu type or image to be displayed according to a predetermined routing which will be explained in more detail herein below. The image data of the desired menu according to the routing is retrieved from memory by block 132 and transmitted to the programmer unit 14 via lines 22 with instructions to display the menu image on screen 16 by block 134. Thereafter, the program directs program execution to the menu navigation flowchart of FIG. 3 by block 136.
It is understood that the main menu is not the only menu image for display on the screen 16 for performing the task of programming. In the present embodiment, there is a multiplicity of menu images of drive parameters which may be displayed on screen 16 according to a predetermined routing or order. The flowchart of FIG. 7 exemplifies a multiplicity of menu image screen displays and the predetermined routings between display images which are designated by arrowed lines. All of the menu image examples of FIG. 7 are depicted in a table format, but it is understood that other formats may be used just as well. In the example of FIG. 7, a main menu image 150 includes Speed and Response rows as noted above in connection with the description of FIG. 1A, but the Advanced Menu row of the menu image of FIG. 1A may be replaced in the main menu 150 with additional rows 152 from which selections may be made for routings to other menus using the menu navigation program as described above in connection with FIG. 3. By keying the enter button (E) as described herein above, program execution is directed to the flowchart of FIG. 4 to display the selected menu image on the screen 16. In the present example, the additional rows 152 include: Performance Adjust, Powered Seating, Standard Program, SD Card, Calibrations, and Advanced Diagnostics.
Once the main menu image 150 is displayed on screen 16, the user may select any row of rows 152 to display another menu image defined by the predetermined routing illustrated by the arrowed lines. For example, if the user selects the Performance Adjust row and hits enter, then a table of performance parameters 156 will be displayed on screen 16 according to the routing 158. The exemplary table 156 may include all of the performance parameter values for al of the drives D1-D4 of the powered wheelchair. It is understood that the display screen 16 may be limited to display only a window of a predetermined number of contiguous rows of table 156, like 6 or 7 rows, for example, at a time. But, the user may scroll the window image up or down using the up or down keys of the programmer unit 14 to view, and thus, select and program or adjust additional drive parameter values as described herein above. Also, in the present embodiment, not all of the performance parameter settings are numerical, rather some may be switched between ON and OFF, and normal (NRM) and special (SP), for example.
In the present embodiment, the user may select any of the additional menu images from the additional rows 152 of the main menu image 150 on screen 16. For example, if the user selects the Standard Programs row, a drive menu image 160 will be displayed on screen 16 according to routing 162 and from the menu image 160, if the user selects the D1 row, then an indoor joystick drive image 164 will be displayed on screen 16 according to routing 166. Further, the user may select row SD Card from the main menu 150 to display menu image 168 according to routing 170. In addition, from menu image 168, the user may select for display additional menu images 172, 173 and 174 for storing selected parameter settings to and reading selected parameter values from an SD Card, for example. From menu images 172, 173 and 174 the user may select for display other possible menu images (not shown).
Further, the user may select the Advanced Diagnostics row of image 150 for display of menu image 184 according to routing 182, for example. Still further, the user may select the Power Seating row for the display of a menu image 188 which includes a table of the drive settings for drive lockouts and control modes. The user may select an actuator selection row from menu image 188 for display of a menu image 190 from which all of the seat position actuators of the wheelchair, like tilt, dual legs, recline, elevate and legs, for example, may be programmed or adjusted for all of the drives D1-D4. Accordingly, when a drive actuator setting is selected from the menu image 188, another menu 190 will appear on screen 16 for the selection of the desired setting. Beyond that everything else will remain substantially as described herein above.
Further yet, the user may select the Calibrations row in menu image 150 for the display of yet another menu image 192 according to routing 194 for setting additional parameters. From the menu image 192, the user may select another menu image 196 from the Attendant Set row thereof to turn “ON” and “OFF” the parameter settings FWD, REV, LEFT and RIGHT for all of the drive modes D1-D4. A further menu image 198 may be displayed from any of the rows Tilt, Recline or Legs on the menu image 192.
Once in a menu image display, a user may return the display 16 to one or more previous menu images through activation of a designated pushbutton on the programmer unit 14 using the menu navigation program of FIG. 3, for example. In the flowchart of FIG. 6 of the present embodiment, if the user activates the Enter pushbutton after programming all of the desired drive parameters of a current menu screen, program execution will divert from block 110 to block 126 wherein the program will execute the handler program of FIG. 4 for the previous menu image or type according to the predetermined routing. For example, if the menu image 156 is being displayed on screen 16, then, if the user activates the Enter key, the display 16 will be returned to the main menu image 150 according to routing 158. Thus, by a manipulation of the keys 18 of the programmer unit 14, the user may navigate forward or backward among the various menu images shown in FIG. 7 for display on the screen 16 according to the designated routing thereof.
In addition, while pushbutton keys are used in the present embodiment for activating programming functions and tasks, it is understood that other implementations may be used just as well. For example, a joystick having forward, backward, right and left movements may be used in place of the pushbutton keys to perform the same or similar functions. Likewise, the programmer unit 14 of the present embodiment is described as being coupled to the controller 20 via a serial communication controller 24, but it may be coupled to the controller 20 over a serial bus structure, like a CAN bus structure, or wirelessly without deviating from the broad principles of applicants' general concept.
Use of the exemplary methods and apparatus should be readily apparent from the discussions above. In the exemplary embodiment, a user connects the programmer unit 14 to the control system 10 of the power wheelchair, and presses the power I/O (P) button. A coded signal indicative of the P button being depressed is transmitted over lines 22 to the controller 20. In response, the controller 20 generates appropriate menu images which are transmitted to unit 14 via lines 22 for display on the display screen thereof. Certain of the menu images include parameter values for all drive modes on a common menu screen. A user may use buttons 18 to select one of these menu images and to access, adjust, and save to memory 28, 32 (i.e. program) parameter values of any of the drive modes from the selected single menu screen. Thereafter, the user may select other menu images via programming unit 14 for programming other drive parameters or disconnect the programming unit form the controller so that the wheelchair may be operated in conjunction with the programmed parameters.
Referring now to FIG. 1D, a display showing a menu window displaying drive parameters for a plurality of drive modes and a drive parameter adjustment window for a single drive mode there below. Display 16 has a main menu window showing the drive parameters of “SPEED” and “RESPONSE” for drive modes D1-D4. Upon selection of the “SPEED” parameter for drive mode D1, a “SPEED DRIVE 1” parameter adjustment window is displayed below the main menu window. Adjustment of the “SPEED DRIVE 1” parameter is accomplished as described above with respect to FIG. 1B. As shown in FIG. 1D, adjustment of a drive parameter of one drive mode can be accomplished while the current settings of the non-selected or non-adjusted drive parameters for the drive modes remains visible.
In FIG. 1E, the “SPEED” parameter for all drive modes has been selected. In this embodiment, a “SPEED ALL DRIVES” parameter adjustment window is displayed below the main menu window. Adjustment of the “SPEED ALL DRIVES” parameter is also accomplished as described above with respect to FIG. 1B. As shown in FIG. 1E, adjustment of the same drive parameter for all drive modes can be accomplished while the current settings of the non-adjusted or non-selected drive parameters for the drive modes remains visible. The “RESPONSE” drive parameter can also adjusted in the same maimer as the above-described “SPEED” drive parameter.
FIG. 1F is similar to FIG. 1D except that the drive parameters displayed for possible adjustment are from the performance adjustment menu 156 of FIG. 7. In this embodiment, upon selection of a performance adjustment parameter such as “TURNING SPEED” for drive D1, a “DRIVE D1 TURNING SPEED” parameter adjustment window is displayed in the lower half of display 16 below the “TURNING SPEED” parameter display. Adjustment of the “DRIVE D1 TURNING SPEED” parameter is accomplished as described above with respect to FIG. 1B. As show in FIG. 1F, adjustment of a performance drive parameter of one drive mode can be accomplished while the current settings of the non-selected or non-adjusted drive parameters for the drive modes remains visible.
In FIG. 1G, the “ ” parameter for all drive modes has been selected. In this embodiment, an “ALL DRIVES TURNING SPEED” parameter adjustment window is displayed below the performance adjustment parameter menu window. Adjustment of the “ALL DRIVES TURNING SPEED” parameter is also accomplished as described above with respect to FIG. 1B. As shown in FIG. 1G, adjustment of the same drive parameter for all drive modes can be accomplished while the current settings of the non-adjusted or non-selected drive parameters for the drive modes remains visible. Any and all of the performance adjustment parameters show in 156 of FIG. 7 can adjusted the same or similar manner as the “TURNING SPEED” drive parameter.
Referring now to FIG. 8, flowchart of one embodiment of a procedure 800 for displaying one or more drive parameters for one or more drive modes and for adjusting one or more drive parameters for one or more drive modes is shown. In block 802, one or more drive parameters for one or more drive modes are displayed as shown, for example, in FIGS. 1D, 1E, 1F, and 1G. Such drive parameters include, for example, “SPEED,” “RESPONSE,” “TURN SPEED,” FWD BRAKING,” etc. Drive modes include “D1,” “D2,” . . . etc. In block 804, a drive parameter and one or more drive modes adjustment selection is read. As described earlier, this can be accomplished, for example, by highlighting on the display which drive parameter and which drive mode or modes are desired to be adjusted. In block 806, a drive parameter adjustment window for the selected drive mode or modes is displayed. Such windows or displays include the “SPEED DRIVE 1” adjustment window of FIG. 1D, “SPEED ALL DRIVES” adjustment window of FIG. 1E, “DRIVE D1 TURNING SPEED” adjustment window of FIG. 1F, and “ALL DRIVES TURNING SPEED” adjustment window of FIG. 1G. In block 808, the drive parameter adjustment is read such as, for example, reading the gauge adjustment value from a drive parameter adjustment window. In block 810, the adjusted drive parameter value is displayed in the drive parameter and drive mode menu. In block 812, the adjusted drive parameter value is stored or saved to a memory such as, for example, memory 28 or EEPROM 32.
Procedure 800 has been shown as an example flow. The rectangular elements denote “processing blocks” and represent computer software instructions or groups of instructions. The diamond shaped elements denote “decision blocks” and represent computer software instructions or groups of instructions that affect the execution of the computer software instructions represented by the processing blocks. Alternatively, the processing and decision blocks represent steps performed by functionally equivalent circuits such as a digital signal processor circuit or an application-specific integrated circuit (ASIC). The flow diagram does not depict syntax of any particular programming language. Rather, the flow diagram illustrates the functional information one skilled in the art may use to fabricate circuits or to generate computer software to perform the processing of the system. It should be noted that many routine program elements, such as initialization of loops and variables and the use of temporary variables are not shown.
In an alternate embodiment, the programming functions of the programmer unit 14 may be integrated into the microcontroller 20 which may be contained in a multi-function joystick unit or display unit of the wheelchair. The joystick unit and the display unit will each include an interactive display screen, which may be similar to the display screen 16, coupled to the microcontroller 20. If a display unit is used, it may include pushbuttons similar to the pushbuttons 18 which will be used in the same manner as described for the programmer unit 14 above to interact with the menu images of the display screen. If a joystick unit is used, the positioning of the joystick may replace the pushbuttons 18 for interacting with the menu images of the display screen. Thus, either a joystick unit or a display unit of the wheelchair may be used in the alternative to perform the programming functions as described supra for programming parameter values for the different drive modes into the control system of the wheelchair.
While one or more exemplary embodiments have been provided herein, it is understood that these embodiments are presented merely for purposes of illustration and are in no way intended to be limiting to the present invention. Modifications may appear to all those skilled in the art. Accordingly, applicants' invention should not be limited in any way by such embodiments, but rather construed in breadth and broad scope in accordance with the recitation of the claims appended hereto.

## Claims

1. Method of programming parameters of a power driven wheelchair for a plurality of drive modes, said method comprising:
displaying a menu image on an interactive display screen, said menu image including settings of a plurality of wheelchair parameters for a plurality of drive modes of the wheelchair;
selecting a wheelchair parameter for a drive mode from the displayed menu image;
in response to the selecting, opening a window on the interactive display screen to program the selected wheelchair parameter setting while continuing to display settings of at least the selected wheelchair parameter for the plurality of drive modes in the menu image; and
programming the setting of said selected wheelchair parameter to a desired setting.

2. The method of claim 1 wherein the step of programming includes:
adjusting a value of the selected wheelchair parameter to a desired value; and
updating the menu image with the adjusted value of the selected wheelchair parameter.

3. The method of claim 2 including saving the adjusted value of the selected wheelchair parameter in a designated memory location.

4. The method of claim 2 wherein the step of adjusting includes:
opening a window within the interactive display screen for displaying the value of the selected parameter in a predetermined format; and
adjusting the value of the selected parameter to the desired value using said format of the window display.

5. The method of claim 4 wherein the window format is displayed with a numerical value of the selected parameter; and wherein said numerical value of the window display is adjusted to the desired value.

6. The method of claim 4 wherein the window format is displayed with a graphic gauge depiction of the selected parameter value thereof; and wherein said graphic gauge display of parameter value within the window display is adjusted to the desired value.

7. The method of claim 4 including closing the window display after the parameter value has been adjusted to the desired value.

8. The method of claim 1 including programming the setting of said selected wheelchair parameter to the desired setting using the displayed menu image.

9. The method of claim 1 including:
storing a plurality of menu images in a memory, each menu image including settings of a plurality of wheelchair parameters for a plurality of drive modes of the wheelchair; and
displaying menu images from said plurality of stored menu images on the interactive display screen according to a predetermined routing.

10. The method of claim 1 wherein the menu image is displayed in a table format with rows of wheelchair parameters and columns of drive modes.

11. Apparatus for programming parameters of a power driven wheelchair for a plurality of drive modes, said apparatus comprising:
a display;
a controller for interacting with said display and operative to display a menu image on a screen of said display, said menu image including settings of a plurality of wheelchair parameters for a plurality of drive modes of the wheelchair; and
one or more input devices operative to interact with said controller and said display to select a wheelchair parameter for a drive mode from the displayed menu image and to program the setting of said selected wheelchair parameter to a desired setting;
wherein the controller is operative to open a window on the display for programming the selected wheelchair parameter setting in response to selection of said wheelchair parameter such that settings of at least the selected wheelchair parameter for the plurality of drive modes continue to be displayed in the menu image.

12. The apparatus of claim 11 wherein the one or more input devices is operative to control the controller to adjust a value of the selected wheelchair parameter to a desired value, and to update the displayed menu image with the adjusted value of the selected wheelchair parameter.

13. The apparatus of claim 12 wherein the one or more input devices is operative to control the controller to save the adjusted value of the selected wheelchair parameter in a designated memory location.

14. The apparatus of claim 12 wherein the one or more input devices is operative to control the controller to open a window within the screen of the display for displaying the value of the selected parameter in a predetermined format, and to adjust the value of the selected parameter to the desired value using said format of the window display.

15. The apparatus of claim 14 wherein the one or more input devices is operative to control the controller to display the selected parameter in the window format with a numerical value, and to adjust said numerical value of the window display to the desired value.

16. The apparatus of claim 14 wherein the one or more input devices is operative to control the controller to display the selected parameter in the window format with a graphic gauge depiction, and to adjust said graphic gauge depiction of the window display to the desired value.

17. The apparatus of claim 14 wherein the one or more input devices is operative to control the controller to close the window display after the parameter value has been adjusted to the desired value.

18. The apparatus of claim 1 including: a memory for storing a plurality of menu images in a memory, each menu image including settings of a plurality of wheelchair parameters for a plurality of drive modes of the wheelchair; and wherein the one or more input devices is operative to control the controller to display menu images from said plurality of stored menu images on the screen of the display according to a predetermined routing.

19. The apparatus of claim 18 wherein the one or more input devices is operative to control the controller to display a main menu image on the screen of the display, and to select for display other menu images of the stored plurality from the main menu image.

20. Apparatus for programming parameters of a power driven wheelchair for a plurality of drive modes, said apparatus comprising:
a display;
a memory for storing a plurality of menu images, each menu image including settings of a plurality of wheelchair parameters for a plurality of drive modes of the wheelchair;
a controller for interacting with said memory and display; and
a programming unit operative to control said controller to display a menu image from said plurality of stored menu images on the screen of the display according to a predetermined routing, to select a wheelchair parameter for a drive mode using the displayed menu image, and to program the setting of said selected wheelchair parameter to a desired setting;
wherein to program the setting of said selected wheelchair parameter the controller opens a window on the display for programming the selected wheelchair parameter setting while still displaying the menu image.

21. A method for adjusting the drive parameters of a power wheelchair comprising:
displaying one or more drive parameters for a plurality of drive modes;
reading at least one drive parameter adjustment selection for at least one drive mode;
displaying at least one drive parameter adjustment display while still displaying one or more drive parameters for the plurality of drive modes;
reading an adjustment of the at least one selected drive parameter; and
saving the adjusted at least one drive parameter to memory.

22. The method of claim 21 wherein the step of displaying one or more drive parameters for a plurality of drive modes including displaying a speed drive parameter.

23. The method of claim 21 wherein the step of displaying one or more drive parameters for a plurality of drive modes including displaying a response drive parameter.

24. The method of claim 21 wherein the step of displaying one or more drive parameters for a plurality of drive modes including displaying a turning speed drive parameter.

25. The method of claim 21 wherein the step of displaying at least one drive parameter adjustment display while still displaying one or more drive parameters for the plurality of drive modes comprises displaying a speed parameter adjustment display while still displaying at least one other drive parameter for the plurality of drive modes.

26. The method of claim 21 further comprising reading at least one drive mode selection.

27. The method of claim 21 further comprising reading a plurality of drive mode selections.

28. The method of claim 21 wherein the step of reading an adjustment of the at least one selected drive parameter comprises reading an adjustment of the at least one selected drive parameter for a single drive mode.

29. The method of claim 21 wherein the step of reading an adjustment of the at least one selected drive parameter comprises reading an adjustment of the at least one selected drive parameter for a plurality of drive modes.

30. The method of claim 21 wherein the step of reading an adjustment of the at least one selected drive parameter comprises reading an adjustment of the at least one selected drive parameter for all drive modes.