Input device, input method, and input program
The input device adjusts operation angles based on distance to enable high-precision and high-speed angle inputs for individuals with mobility limitations or low sensor accuracy, enhancing operability in electronic sports and other applications.
Patent Information
- Application Number
- PCT/JP2024/013669
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-04-02
- Publication Date
- 2025-10-09
AI Technical Summary
Individuals with limited mobility or low sensor measurement accuracy face challenges in performing precise and high-speed angle inputs required for electronic sports and other operations, such as eSports, due to physical limitations and muscle strength constraints.
An input device and method that adjusts the calculated operation angle based on the distance of the movement, allowing for precise angle input by decreasing the angle as the distance increases, using a calculation unit and determination unit to output adjusted angle values.
Enables high-precision and high-speed angle input operations even for individuals with mobility limitations or low sensor accuracy, by adjusting angles based on distance, facilitating improved operability of information terminals.
Smart Images

Figure JP2024013669_09102025_PF_FP_ABST
Abstract
Description
Input device, input method and input program
[0001] One aspect of the present invention relates to an input device, an input method, and an input program.
[0002] Graphical user interfaces (GUIs) that use angle input are used in electronic sports, such as eSports. For example, a game application is known in which a player pulls a teammate's character and hits it into a target like marbles or pinball to knock it down. This game application uses a GUI that determines the direction in which the character flies based on the angle between the point where the user touches the touch panel with their finger (reference point) and the point where the finger moves (movement point).
[0003] On the other hand, people who have lost the ability to precisely move their limbs have difficulty inputting angles at high speed and with high precision. For example, people who are partially paralyzed from the waist down due to cervical spine injuries are unable to move their fingers precisely and instead operate information terminals using rough movements of their shoulders. Furthermore, people suffering from diseases that cause muscle wasting, such as ALS (amyotrophic lateral sclerosis) and SMA (spinal muscular atrophy), have limited muscle strength output from their limbs, making it difficult to adjust the position of their movements even if their fingers or jaw move.
[0004] If an operating interface can be developed that allows people who have difficulty performing such precise movements to input angles with high precision and speed, it is expected that the operability of information terminals will improve, leading to greater participation in society.
[0005] Patent No. 5427940
[0006] It is possible to achieve precise positioning adjustments, such as the angle input required for eSports, by making small movements after large movements. However, similar operation methods are difficult due to limitations on the number of body parts that can be used and muscle strength, depending on the degree of disability.
[0007] Furthermore, for operation interfaces using angle inputs used for menu selection, character input, etc., there are few inputs, so there are techniques such as providing gaps between menus (see, for example, Patent Document 1) or adjusting the range of menu selections to suit an individual based on their own angle input habits in advance. However, such techniques are insufficient for the angle precision required for eSports operation.
[0008] Furthermore, even if the measurement accuracy of the sensor is low, rather than for physical reasons as described above, it may not be possible to perform angle input operations with high precision and speed.
[0009] This invention has been made with the above-mentioned circumstances in mind, and aims to provide a technology that enables even people who have difficulty performing precise movements or those with low sensor measurement accuracy to perform angle input operations with high precision and speed.
[0010] In order to solve the above problems, an input device according to one aspect of the present invention includes an operation reception unit, a calculation unit, and a determination unit. The operation reception unit receives a movement operation by a user from a starting point on a screen that displays information. The calculation unit calculates, while the user is performing the movement operation, an operation distance, which is the distance between the starting point and an operation point resulting from the movement operation, and an operation angle, which is the angle of the operation point relative to the starting point. The determination unit adjusts the calculated operation angle so that the angle decreases as the calculated operation distance increases, and determines and outputs the adjusted angle as an input angle output value.
[0011] According to one aspect of the present invention, even when the same angle is operated, a different angle is input depending on the distance between the two points that form the angle (the starting point and the operation point). This provides a technology that enables angle input operations to be performed with high precision and speed, even by people who have difficulty performing precise movements or even by people with low sensor measurement accuracy.
[0012] FIG. 1 is a block diagram showing an example of the hardware configuration of an information processing apparatus to which an input device according to a first embodiment of the present invention is applied. FIG. 2 is a block diagram showing an example of the software configuration of the information processing apparatus. FIG. 3 is a diagram showing an example of the stored contents of a parameter storage unit of the information processing apparatus. FIG. 4 is a diagram for explaining input values stored in the parameter storage unit. FIG. 5 is a flowchart showing an example of the processing procedure and processing content of input processing executed by a control unit of the information processing apparatus. FIG. 6 is a schematic diagram showing the relationship between user operations and display in chronological order. FIG. 7 is a block diagram showing an example of the hardware configuration of an information processing apparatus to which an input device according to a second embodiment of the present invention is applied. FIG. 8 is a block diagram showing an example of the software configuration of the information processing apparatus according to the second embodiment. FIG. 9 is a diagram showing an example of the stored contents of a parameter storage unit of the information processing apparatus according to the second embodiment. FIG. 10 is a flowchart showing an example of the processing procedure and processing content of input processing executed by a control unit of the information processing apparatus according to the second embodiment.
[0013] Hereinafter, an embodiment of the present invention will be described with reference to the drawings.
[0014] 1 and 2 are block diagrams showing an example of the hardware and software configurations of an information processing device 1 to which an input device according to a first embodiment of the present invention is applied. The information processing device 1 is, for example, a smartphone carried by a user.
[0015] The information processing device 1 includes a control unit 11, to which a storage unit having a program storage unit 12 and a data storage unit 13, a communication interface unit 14, an external input / output interface unit 15, and an input / output interface unit 16 are connected via a bus 17. In the drawings, the interface is abbreviated as IF.
[0016] The control unit 11 is a hardware processor such as a CPU (Central Processing Unit). For example, the CPU can execute multiple information processes simultaneously by using a multi-core and multi-threaded CPU. The control unit 11 may include multiple hardware processors.
[0017] The program storage unit 12 is configured, for example, by combining a nonvolatile memory such as an EEPROM (registered trademark) (Electric Erasable Programmable Read-Only Memory) (which can be written to and read from as needed) as a storage medium with a nonvolatile memory such as a ROM (Read Only Memory). The program storage unit 12 stores middleware such as an OS (Operating System), as well as various application programs including game applications and input processing programs required to execute the input processing according to the first embodiment of the present invention.
[0018] The data storage unit 13 is, for example, a combination of a nonvolatile memory such as an EEPROM or a memory card that can be written to and read from as needed as a storage medium, and a volatile memory such as a RAM (Random Access Memory). The data storage unit 13 includes a parameter storage unit 131 in its storage area that stores various parameters as a storage unit necessary for implementing the first embodiment. Details of the parameters stored in the parameter storage unit 131 will be described later.
[0019] The communication interface unit 14 includes, for example, one or more wireless communication interface units, and enables transmission and reception of various information to and from devices on the network in accordance with the communication protocol used on the network. Examples of wireless interfaces that can be used include interfaces that adopt a mobile phone communication system such as 4G or 5G, Wi-Fi (registered trademark), Bluetooth (registered trademark), or other low-power wireless data communication standards.
[0020] The external input / output interface unit 15 includes, for example, one or more wired communication interface units, and enables transmission and reception of various information to and from devices on a network in accordance with the communication protocol used on the network. Examples of wired interfaces that can be used include a wired LAN (Local Area Network) interface and a USB (Universal Serial Bus) interface.
[0021] The input / output interface unit 16 is connected to a display device 181, an input device 182, a camera 183, a speaker 184, a microphone 185, a position sensor 186, and the like. The display device 181 includes, for example, a liquid crystal display or an organic EL (Electro Luminescence) display, and displays various information to a user who is an operator of the information processing device 1. The input device 182 includes a touch sensor, such as a transparent touch key matrix, arranged on the display screen of the display device 181, and detects the position of a touch on the display screen by a user's finger, a touch pen, or the like, and outputs a sensor value indicating the touch position. The display device 181 and the input device 182 form a touch panel. The camera 183 captures images. The speaker 184 plays and outputs audio and music. The microphone 185 acquires audio uttered by the user. The position sensor 186 includes, for example, a GPS (Global Positioning System) sensor that detects the current location of the information processing device 1. The control unit 11 is also capable of detecting the current location based on the positional relationship with a plurality of base stations in a mobile phone network (not shown).
[0022] 2, the control unit 11 includes a calibration unit 111, a measurement unit 112, a calculation unit 113, a determination unit 114, and a judgment unit 115 as processing function units required to implement the first embodiment. The calibration unit 111, the measurement unit 112, the calculation unit 113, the determination unit 114, and the judgment unit 115 are all realized by causing a hardware processor of the control unit 11 to execute an input program according to the first embodiment of the present invention, which is stored in the program storage unit 12. Furthermore, the control unit 11 includes an application execution unit 116 that executes an application program stored in the program storage unit 12.
[0023] In addition to storing the above-mentioned input programs and application programs in advance in the program storage unit 12, they may also be downloaded when necessary from another input device, such as an information terminal (not shown) used by the operator of the information processing device 1, or from a program server (not shown), and stored in the program storage unit 12.
[0024] Furthermore, at least a part of the processing functions of at least one of the calibration unit 111, the measurement unit 112, the calculation unit 113, the determination unit 114, and the judgment unit 115 may be realized by an integrated circuit such as an ASIC (Application Specific Integrated Circuit), a DSP (Digital Signal Processor), an FPGA (Field-programmable gate array), or a GPU (Graphics Processing Unit), instead of being realized by an input program and a hardware processor of the control unit 11.
[0025] The calibration unit 111 sets the initial values of the parameters stored in the parameter storage unit 131 .
[0026] The measurement unit 112 acquires the sensor value output from the input device 182 via the input / output interface unit 16. The measurement unit 112 updates the corresponding parameter stored in the parameter storage unit 131 based on the acquired sensor value and the parameter stored in the parameter storage unit 131.
[0027] The calculation unit 113 calculates an operation distance, which is the distance between a starting point on the display screen of the display device 181 in a movement operation by the user and an operation point due to the movement operation, and an operation angle, which is the angle of the operation point relative to the starting point, based on the parameters stored in the parameter storage unit 131. The calculation unit 113 updates the corresponding parameters stored in the parameter storage unit 131 using the calculated operation distance and operation angle.
[0028] The determination unit 114 adjusts the calculated operation angle based on the parameters stored in the parameter storage unit 131 so that the angle decreases as the calculated operation distance increases, and determines the adjusted angle as an input angle output value that is the final output value of the angle input by the input device. The determination unit 114 also determines the operation distance indicated by the parameters stored in the parameter storage unit 131 as an input distance output value that is the final output value of the distance input by the input device. The determination unit 114 inputs the determined input angle output value and input distance output value to the application execution unit 116. The determination unit 114 also updates the corresponding parameters stored in the parameter storage unit 131 based on the determined input angle and input distance.
[0029] The determination unit 115 determines whether or not the user's movement operation has ended based on the parameters stored in the parameter storage unit 131. If the determination unit 115 determines that the movement operation has ended, the determination unit 115 inputs a determination result indicating the end of the movement operation to the application execution unit 116. Furthermore, the determination unit 115 requests the calibration unit 111 to initialize the parameters.
[0030] The application execution unit 116 executes processing based on the input angle output value and the input distance output value transmitted from the determination unit 114 and the judgment unit 115. For example, suppose that the application execution unit 116 is executing, as an application program, a game application in which a player pulls a teammate character and hits it into a target like marbles or pinball to knock it down. The application execution unit 116 executing this game application represents the direction and strength of the teammate character's flight by the direction and length of an arrow displayed on the display screen of the display device 181. Therefore, the application execution unit 116 creates a screen displaying an arrow with a direction and length based on the input angle output value and input distance output value input from the determination unit 114, and displays the screen on the display device 181 via the input / output interface unit 16. When a determination result indicating the end of the movement operation is input from the judgment unit 115, the application execution unit 116 determines the input angle output value and input distance output value input at that time, i.e., the last time input from the determination unit 114, as the input angle and input distance finally determined by the user. Then, the application executing section 116 creates an animation screen in which the ally character is thrown in a direction indicated by the determined input angle with a strength indicated by the determined input distance to hit and knock down the target, and displays it on the display screen of the display device 181 via the input / output interface section 16.
[0031] 3 is a diagram showing an example of the contents stored in the parameter storage unit 131. As shown in FIG. 3, the parameter storage unit 131 stores, as parameters, a sensor event determination flag: s_flag, initial values of sensor values: (s_init_x, s_init_y), sensor values of reference points: (s_base_x, s_base_y), sensor values of movement points: (s_move_x, s_move_y), input value A: (s_cur_pox_x, s_cur_pox_y), and s_cur_pos_y), input angle P (angle of input value): s_cur_angle, input distance D (distance of input value): s_cur_dis, current judgment area according to input distance: s_cur_area, past judgment area according to input distance: s_past_area, input angle used as base when changing to area X: s_base_angle(X), angle of GUI arrow used as base when changing to area X: a_base_angle(X), display angle of GUI arrow: a_output_angle, display distance of GUI arrow: a_output_dis, rate of angle change of area X: s_area_rate(X), judgment threshold for area X: Th(X), etc. are stored.
[0032] The sensor event determination flag: s_flag indicates the status of the user's operation on the input device 182. The sensor event determination flag: s_flag has four values: No_Touch, Touch, Move, and Release. s_flag = No_Touch indicates a situation in which the user is not touching the input device 182. When an event occurs in which "a finger has touched the input device 182," the sensor event determination flag: s_flag is set to Touch. In other words, s_flag = Touch indicates a situation in which the user is touching the input device 182. When an event occurs in which "a finger has moved on the input device 182," the sensor event determination flag: s_flag is set to Move. In other words, s_flag = Move indicates a situation in which the input device 182 is being moved while being touched, that is, a drag operation is being performed. When an event occurs in which "a finger has been removed from the input device 182," the sensor event determination flag: s_flag is set to Release. That is, s_flag=Release indicates that the touch on the input device 182 has ended, that is, the user's finger has been released from the input device 182 .
[0033] The initial sensor value (s_init_x, s_init_y) is the sensor value when the user is not touching the input device 182. The sensor value indicates the x and y coordinates on the input device 182 that the user's finger is touching.
[0034] The sensor value of the reference point: (s_base_x, s_base_y) indicates the x and y coordinates of the reference point, which is the point where the user touched the input device 182 with his / her finger. The reference point is an example of the starting point of the user's drag operation. The sensor value of the reference point: (s_base_x, s_base_y) is an example of a parameter corresponding to the detection value acquired by the measurement unit 112.
[0035] The sensor value of the moving point: (s_move_x, s_move_y) indicates the x and y coordinates of the moving point, which is the touch position during the drag operation. The moving point is an example of an operation point caused by a move operation. The sensor value of the moving point: (s_move_x, s_move_y) is an example of a parameter corresponding to the detection value acquired by the measurement unit 112.
[0036] Input value A: (s_cur_pox_x, s_cur_pos_y) indicates the relative position of the moved point with respect to the reference point. FIG. 4 is a diagram for explaining this input value. Origin O is the position of the finger touching the input device 182, and its x and y coordinates are set as the sensor value of the reference point: (s_base_x, s_base_y). Point A is the moved point when the finger is moved on the input device 182 while still touching the device, and its x and y coordinates are set as the sensor value of the moved point: (s_move_x, s_move_y). The difference in the x and y coordinates between these two points is input value A: (s_cur_pox_x, s_cur_pos_y). That is, (s_cur_pox_x = s_move_x - s_base_x, s_cur_pos_y = s_move_y - s_base_y). The input value A: (s_cur_pox_x, s_cur_pos_y) is an example of a parameter corresponding to the operation distance and operation angle calculated by the calculation unit 113 .
[0037] The input angle P (angle of the input value): s_cur_angle indicates the angle that the vector OA forms with respect to the x-axis of the input device 182. The input angle P: s_cur_angle is an example of a parameter corresponding to the operation distance and operation angle calculated by the calculation unit 113.
[0038] The input distance D (distance of the input value): s_cur_dis indicates the magnitude of the vector OA. The input distance D: s_cur_dis is an example of a parameter corresponding to the operation distance and operation angle calculated by the calculation unit 113.
[0039] The current judgment area according to the input distance: s_cur_area indicates the judgment area X in which the input value A exists. As shown in FIG. 4, the judgment area X is a plurality of areas defined by a distance range centered on the origin O, which is the reference point. Note that X is a natural number. Although FIG. 4 shows the value of X up to 3, it goes without saying that the value of X can be 4 or more.
[0040] Past determination area according to input distance: s_past_area indicates the determination area at the previous processing timing, and a natural number is set.
[0041] The input angle s_base_angle(X) that serves as the base when changing to area X indicates the angle used as the base when the value of the current judgment area according to the input distance s_cur_area differs from the value of the past judgment area according to the input distance s_past_area, in other words, when the judgment area changes. When the judgment area changes, the angle of the GUI arrow a_base_angle(X) that serves as the base when changing to area X is set as the input angle s_base_angle(X) that will serve as the base when changing to area X the next time the judgment area is changed.
[0042] The angle of the GUI arrow that serves as the base when changing to area X: a_base_angle(X) indicates the angle used as the base for the arrow displayed on the screen of the display device 181 when the judgment area is changed. When the judgment area is changed, the input angle P: s_cur_angle is set as the angle of the GUI arrow that serves as the base when changing to area X the next time the judgment area is changed: a_base_angle(X).
[0043] The GUI arrow display angle: a_output_angle indicates the angle of the arrow displayed on the display screen of the input device 182 in response to a movement operation on the input device 182. The GUI arrow display angle: a_output_angle is an example of a parameter corresponding to the input angle output value determined by the determination unit 114.
[0044] The GUI arrow display distance: a_output_dis indicates the length of the arrow displayed on the display screen of the input device 182 in response to a movement operation on the input device 182. The GUI arrow display distance: a_output_dis is an example of a parameter corresponding to the input distance output value determined by the determination unit 114.
[0045] The rate of change in angle of area X: s_area_rate(X) indicates a coefficient by which the amount of change in angle due to a movement operation on the input device 182 is multiplied when determining the display angle of the arrow on the GUI: a_output_angle. A different value is set for this rate of change in angle of area X: s_area_rate(X) for each determination area X. When X = 1, s_area_rate(X) = 1.00, and for X ≥ 2, the decimal value less than 1 is set to decrease as X increases.
[0046] The judgment threshold for area X: Th(X), as shown in Figure 4, indicates the distance threshold that defines the range of each judgment area. In Figure 4, Th(X) = 0. This judgment threshold for area X: Th(X) is set as a predetermined value in advance and is not updated in the input processing in the operational example described below.
[0047] (Example of Operation) Next, an example of operation of the device configured as above will be described.
[0048] 5 is a flowchart showing an example of the processing procedure and processing content of input processing executed by the hardware processor of the control unit 11 of the information processing device 1. This input processing is controlled by the hardware processor of the control unit 11 that executes an input program stored in the program storage unit 12, and is started, for example, when the hardware processor of the control unit 11 executes a game application.
[0049] 5, the control unit 11 of the information processing device 1 first operates as the calibration unit 111 and performs calibration to initialize the parameters stored in the parameter storage unit 131 (step S11). Specifically, the parameters are set as follows. Sensor event determination flag: s_flag = No_Touch Initial sensor value: (s_init_x, s_init_y) = (0, 0) Sensor value of reference point: (s_base_x, s_base_y) = (0, 0) Sensor value of moving point: (s_move_x, s_move_y) = (0, 0) Input value A: (s_cur_pox_x, s_cur_pos_y) = (0, 0) Input angle P: s_cur_angle = 0 Input distance D: s_cur_dis = 0 Current determination area according to input distance: s_cur_area = 1 Past determination area according to input distance: s_past_area = 1 Input angle used as the reference when changing to area X: s_base_angle(X) = 0 for all Xs The angle of the GUI arrow that is the base when changing to area X: a_base_angle(X) is set as a_base_angle(X) = 0 for all Xs. The display angle of the GUI arrow: a_output_angle = 0. The display distance of the GUI arrow: a_output_dis = 0.
[0050] Then, the control unit 11 operates as the measurement unit 112, acquires sensor values from the input device 182, and updates the parameters stored in the parameter memory unit 131 based on the acquired sensor values and the parameters stored in the parameter memory unit 131 (step S12).
[0051] Specifically, when the value of the sensor event determination flag: s_flag is Np_Touch, if the control unit 11 detects an event (Touch) of "a finger touching the touch panel" based on the time-series change in the acquired sensor value, the control unit 11 updates the value of the sensor event determination flag: s_flag to Touch. Then, the control unit 11 updates the sensor value of the reference point: (s_base_x, s_base_y), which has been initialized to (0, 0), with the sensor value at the time of detecting this Touch event.
[0052] Furthermore, when the value of the sensor event determination flag: s_flag is Touch, if the control unit 11 detects an event (Move) indicating that "a finger has moved on the touch panel" based on time-series changes in the acquired sensor values, the control unit 11 updates the value of the sensor event determination flag: s_flag to Move. Then, the control unit 11 updates the sensor values (s_move_x, s_move_y) of the movement point based on the sensor values at the time of detecting this Move event.
[0053] Furthermore, when the value of the sensor event determination flag: s_flag is Move, if the control unit 11 detects an event (Release) indicating that "the finger has been removed from the touch panel" based on the time-series change in the acquired sensor value, the control unit 11 updates the value of the sensor event determination flag: s_flag to Release. Then, the control unit 11 updates the sensor values (s_move_x, s_move_y) of the movement point based on the sensor values at the time of detecting this Release event.
[0054] Next, the control unit 11 operates as the calculation unit 113 to calculate the input value A, and updates the input value A (s_cur_pos_x, s_cur_pos_y), which is a parameter stored in the parameter storage unit 131, with the calculated input value A (step S13). Specifically, the control unit 11 calculates the input value A (s_cur_pox_x = s_move_x - s_base_x, s_cur_pos_y = s_move_y - s_base_y) using the sensor values of the reference point (s_base_x, s_base_y): (s_move_x, s_move_y) of the movement point.
[0055] In addition, the control unit 11 operating as the calculation unit 113 calculates the input angle P and updates the input angle P: s_cur_angle, which is a parameter stored in the parameter memory unit 131, with the calculated input angle P (step S14).
[0056] Furthermore, the control unit 11 operating as the calculation unit 113 calculates the input distance D and updates the input distance D: s_cur_dis, which is a parameter stored in the parameter storage unit 131, with the calculated input distance D (step S15).
[0057] The control unit 11 also operates as the determination unit 114 and determines the angle and distance of the arrow on the GUI based on the parameters stored in the parameter storage unit 131. To do this, the control unit 11 first executes an area update determination process according to the input distance D (step S16). Specifically, the control unit 11 determines the determination area based on whether the value of the input distance D (s_cur_dis) stored in the parameter storage unit 131 falls between any of the determination thresholds Th(X) for multiple areas X pre-stored in the parameter storage unit 131. That is, if Th(X) ≦ s_cur_dis < Th(X+1), the control unit 11 determines that the determination area in which the moving point exists is the determination area X. The control unit 11 then updates the value of the current determination area s_cur_area according to the input distance, which is a parameter stored in the parameter storage unit 131, to s_cur_area = X.
[0058] Then, the control unit 11 operating as the determination unit 114 determines the display angle and display distance of the arrow corresponding to the area change based on the parameters stored in the parameter storage unit 131, and updates the corresponding parameters stored in the parameter storage unit 131 with the determined values (step S17). Specifically, the control unit 11 calculates the display angle of the GUI arrow: a_output_angle as follows: a_output_angle = a_base_angle(X) + (s_cur_angle - s_base_angle(X)) * s_area_rate(X) using the value of the GUI arrow angle a_base_angle(X) that serves as the reference when changing to area X, the value of the input angle P: s_cur_angle, the value of the input angle s_base_angle(X) that serves as the reference when changing to area X, and the value of the rate of angle change in area X: s_area_rate(X). Furthermore, the control unit 11 sets the display distance of the GUI arrow: a_output_dis to the value of the input distance D: s_cur_dis. That is, the display distance of the GUI arrow: a_output_dis is a_output_dis = s_cur_dis. Then, the control unit 11 updates the values of the display angle of the GUI arrow: a_output_angle and the display distance of the GUI arrow: a_output_dis in the parameter storage unit 131 with the calculated values.
[0059] However, the control unit 11 selects the value of the area X to be used in this calculation as follows, depending on the relationship between the current determination area and the past determination area.
[0060] First, a case will be described in which the value of the past determination area corresponding to the input distance, s_past_area, stored in the parameter storage unit 131, is the same as the value of the current determination area corresponding to the input distance, s_cur_area. In this case, the control unit 11 selects the value of the current determination area corresponding to the input distance, s_cur_area, as the value of X to be used. Therefore, the control unit 11 calculates the display angle of the GUI arrow, a_output_angle, by the following formula: a_output_angle = a_base_angle(s_cur_area) + (s_cur_angle - s_base_angle(s_cur_area)) * s_area_rate(s_cur_area).
[0061] Furthermore, if the value of the current determination area corresponding to the input distance: s_cur_area is greater than the value of the past determination area corresponding to the input distance: s_past_area, the control unit 11 selects the value of the past determination area corresponding to the input distance: s_past_area as the value of X to be used. Therefore, the control unit 11 calculates the display angle of the GUI arrow: a_output_angle by: a_output_angle = a_base_angle(s_past_area) + (s_cur_angle - s_base_angle(s_past_area)) * s_area_rate(s_past_area). After calculating the display angle of the GUI arrow: a_output_angle, the control unit 11 updates the values of the angle of the GUI arrow serving as the reference when changing to area X: a_base_angle(X) and the input angle serving as the reference when changing to area X: s_base_angle(X) as follows, and stores them in the parameter storage unit 131. a_base_angle(s_cur_area) = a_output_angle s_base_angle(s_cur_area) = s_cur_angle If the difference between the value of the current judgment area according to the input distance: s_cur_area and the value of the past judgment area according to the input distance: s_past_area is 2 or more, the control unit 11 will also update the area X between them as follows: a_base_angle(X) = a_output_angle s_base_angle(X) = s_cur_angle.
[0062] Furthermore, if the value of the past determination area according to the input distance: s_past_area is greater than the value of the current determination area according to the input distance: s_cur_area, and the value of the current determination area according to the input distance: s_cur_area is not 1, the control unit 11 calculates the values of the display angle of the GUI arrow: a_output_angle and the display distance of the GUI arrow: a_output_dis in the same manner as when the values of the past determination area according to the input distance: s_past_area and the current determination area according to the input distance: s_cur_area are the same, and updates the parameter storage unit 131. On the other hand, if the value of the current determination area according to the input distance: s_cur_area is 1, the control unit 11 resets each parameter stored in the parameter storage unit 131 to its initial value.
[0063] The control unit 11 operating as the determination unit 114 notifies the application execution unit 116 of the values of the GUI arrow display angle: a_output_angle and the GUI arrow display distance: a_output_dis, which are the calculation results of the arrow display angle and display distance according to the area change and have been updated and stored in the parameter storage unit 131, as the input angle output value and the input distance output value (step S18). That is, the input device according to the first embodiment of the present invention outputs the input angle and the input distance.
[0064] Then, the control unit 11 operates as the determination unit 115 and determines whether the user's finger has been removed from the touch panel, i.e., whether the user's movement operation has ended, based on the parameters stored in the parameter storage unit 131 (step S19). Specifically, the control unit 11 determines whether the value of the sensor event determination flag: s_flag is Release. If the control unit 11 determines that the finger has not been removed, i.e., that the user's movement operation is continuing, the process repeats from step S12. As a result, the application execution unit 116 is notified of the updated input angle output value and input distance output value in accordance with the user's movement operation.
[0065] The application executing unit 116, to which the input angle output value and the input distance output value have been input, updates the content displayed on the display device 181 based on these values. Figure 6 is a schematic diagram illustrating the relationship between user operations and display in chronological order. As shown on the left side of Figure 6 , at time t1, when it is detected that the operation point, which is the touch position of the user performing the drag operation, is at the position of input value A within the determination area 1, the calculation unit 113 calculates the input value A, input angle P, and input distance D from the relationship between the reference point, which is the starting point of the drag operation, and the moving point, which is the operation point. The determination unit 114 then determines the input angle obtained by adjusting the input angle P based on the angle change rate s_area_rat(X) of the determination area X, and the input distance equivalent to the input distance D, and inputs these to the application executing unit 116. In this case, since the determination area X is X = 1, the input angle serving as the reference when changing to area X: s_base_angle(s_cur_area) = 0, the angle of the GUI arrow serving as the reference when changing to area X: a_base_angle(s_cur_area) = 0, and the rate of change in the angle of determination area X: s_area_rat(s_cur_area) = 1.00. Therefore, the value of the GUI arrow display angle: a_output_angle becomes the input angle output value, and the arrow displayed on the display screen 181S of the display device 181 directly represents the user operation.
[0066] Time t2, which is the time α elapsed from time t1 shown in the center of FIG. 6 , is the moment when the judgment area changes from X = 1 to X = 2. At this time t2, the judgment area X becomes X = 2, but the past judgment area corresponding to the input distance: s_past_area is the initial value s_past_area = 1. Therefore, the input angle serving as the base when changing to area X: s_base_angle(s_past_area) = 0, the angle of the GUI arrow serving as the base when changing to area X: a_base_angle(s_past_area) = 0, and the rate of change in the angle of the judgment area X: s_area_rat(s_past_area) = 1.00. Therefore, the value of the display angle of the GUI arrow: a_output_angle becomes the input angle output value, and the arrow displayed on the display screen 181S of the display device 181 continues to directly represent the user operation. However, at this time, the value of the GUI arrow angle that serves as the reference when changing to area X: a_base_angle(X) is updated to a_base_angle(s_cur_area) = a_output_angle, and the value of the input angle that serves as the reference when changing to area X: s_base_angle(X) is updated to s_base_angle(s_cur_area) = s_cur_angle.
[0067] At time t3, a time β after time t2 shown in the center of Figure 6, the judgment area remains unchanged at X = 2, as it was at time t2. Here, the input value A and input angle P calculated at time t2 are shown as input value B and input angle Q. That is, the input angle s_base_angle(X), which serves as the base angle when changing to area X, is s_base_angle(s_cur_area) = Q, and the input angle P is s_cur_angle = P. When the input value changes from B to A within the same judgment area X = 2, the display angle a_output_angle of the GUI arrow, which serves as the input angle output value, is calculated as a_output_angle = Q + (P - Q) * s_area_rate(s_cur_area). In this case, the angle change rate s_area_rat(X) of the judgment area X is s_area_rat(s_cur_area) < 1.00, so the input angle output value is smaller than the input angle P. Therefore, when time changes from t2 to t3, the change in angle of the arrow displayed on the display screen 181S of the display device 181 becomes slower in response to the input change in angle operated by the user.
[0068] If it is determined in step S19 that the finger has been released, i.e., that the user's movement operation has ended, the control unit 11, operating as the determination unit 115, notifies the application execution unit 116 of the determination result of the end of the operation (step S20).
[0069] When the determination result indicating the end of the movement operation is input from the determination unit 115, the application execution unit 116 determines the input angle output value and input distance output value input at that time, that is, last time, from the determination unit 114, as the input angle and input distance finally determined by the user. Then, the application execution unit 116 calculates an operation result according to the determined input angle and input distance, and displays the operation result on the display screen 181S of the display device 181 via the input / output interface unit 16. For example, the application execution unit 116 creates an animation screen in which an ally character is thrown, hit, and knocked down a target in the direction of the arrow that was displayed at the moment the user's finger was released, with the size of the arrow that was displayed. The application execution unit 116 displays this animation screen on the display screen 181S.
[0070] Thereafter, the control unit 11 returns to the processing of step S11, that is, initializes each parameter stored in the parameter memory unit 131, including the sensor value of the reference point serving as the starting point: (s_base_x, s_base_y), and repeats the processing procedure described above.
[0071] (Operations and Effects) As described above, the information processing device 1 to which the input device according to the first embodiment is applied includes a hardware processor and outputs an angle input by a user operation. The measurement unit 112 acquires sensor values from the input device 182 via the input / output interface unit 16 and accepts a user movement operation from a starting point on the display screen 181S. In this manner, the input / output interface unit 16 and the measurement unit 112 are an example of an operation acceptance unit. Then, while the user is performing a movement operation, the information processing device 1 calculates, using the calculation unit 113, an operation distance, which is the distance between the starting point and the operation point resulting from the movement operation, and an operation angle, which is the angle of the operation point relative to the starting point. In this manner, the calculation unit 113 is an example of a calculation unit. Then, the determination unit 114 of the information processing device 1 adjusts the calculated operation angle so that the angle decreases as the calculated operation distance increases, and determines and outputs the adjusted angle as an input angle output value. In this manner, the input device according to the first embodiment does not output the input angle input by the user operation as an input angle output value as is, but adjusts it according to the input distance and outputs it. That is, with the input device according to the first embodiment, the greater the distance, the slower the change in angle output in response to a change in the angle operated, so that by performing a large angle input operation over a large distance, it becomes possible to input a smaller angle. Therefore, with the input device according to the first embodiment, even people who have difficulty with precise movements or those with low measurement accuracy of the sensor can perform angle input operations with high precision and high speed.
[0072] Furthermore, in the information processing device 1 to which the input device according to the first embodiment is applied, the determination unit 114 sets multiple determination areas based on the distance from the starting point, and determines the adjustment amount of the calculated operation angle depending on which of the multiple determination areas the operation point is located in. If the adjustment amount were to change linearly according to the distance, even a small change in distance would change the amount of angle change, making it difficult to input the angle. However, with the input device according to the first embodiment, this problem does not occur because the adjustment amount is changed in stages.
[0073] Furthermore, the information processing device 1 to which the input device according to the first embodiment is applied accepts an end operation indicating the end of a movement operation by the user, and when this end operation is performed by the user, a determination result of the operation end is output by the determination unit 115. Thus, according to the input device according to the first embodiment, when the input angle output value is output by the determination unit 114, it is possible to make the input device, such as the application execution unit 116, which receives the input angle output value and the determination result of the operation end from the determination unit 115, determine the final input angle output value at the timing when it receives the determination result of the operation end.
[0074] Furthermore, in the information processing device 1 to which the input device according to the first embodiment is applied, when the determination unit 115 outputs a determination result indicating the end of the operation, the calibration unit 111 updates the starting point to an initial value. In this manner, the calibration unit 111 is an example of a starting point updating unit. Therefore, the input device according to the first embodiment can accept the next new movement operation by the user and obtain an input angle output value.
[0075] Furthermore, in the information processing device 1 to which the input device according to the first embodiment is applied, a sensor value is input to the measurement unit 112 via the input / output interface unit 16 from a touch sensor that detects a touch position and is arranged on the screen of the display screen 181S of the display device 181 as the input device 182. In this way, the input / output interface unit 16 is an example of an input unit. Therefore, the input device according to the first embodiment enables input according to an operation on a touch panel provided in the information processing device 1.
[0076] Furthermore, in the information processing device 1 to which the input device according to the first embodiment is applied, the determination unit 114 further determines and outputs the calculated operation distance as an input distance output value. Therefore, according to the input device according to the first embodiment, it is possible to input not only an angle but also a distance.
[0077] Second Embodiment In the first embodiment, the input device 182 constituting the touch panel of the information processing device 1 is used as an input member. However, depending on the degree of disability and the location of the disability, it may be difficult to operate the touch panel. The second embodiment of the present invention addresses such cases. Hereinafter, the same components and operations as those in the first embodiment will be denoted by the same reference numerals as those in the first embodiment, and their description will be omitted.
[0078] 7 and 8 are block diagrams showing an example of the hardware and software configurations of an information processing device 1 to which an input device according to a second embodiment of the present invention is applied. In this second embodiment, a sensor device 2 including a six-axis pressure sensor 21 and a button sensor 22 is connected to an external input / output interface unit 15. The six-axis pressure sensor 21 is a pressure sensor that measures moment force acting on the sensor. The button sensor 22 is a touch sensor that detects on / off regardless of position. This button sensor 22 functions as a button that is provided separately from the six-axis pressure sensor 21 and that determines that an input has been confirmed.
[0079] In the second embodiment, the measurement unit 112 of the control unit 11 acquires the sensor values from the six-axis pressure sensor 21 and the button sensor 22 of the sensor device 2 via the external input / output interface unit 15. Then, the measurement unit 112 updates the corresponding parameters stored in the parameter storage unit 131 based on the acquired sensor values and the parameters stored in the parameter storage unit 131.
[0080] 9 is a diagram showing an example of the contents stored in the parameter storage unit 131 of the information processing device 1 in the second embodiment. In the second embodiment, the parameter storage unit 131 stores a button sensor event determination flag: sb_flag as a parameter in addition to the parameters described in the first embodiment. This button sensor event determination flag: sb_flag indicates the status of the user's operation on the button sensor 22. The button sensor event determination flag: sb_flag can have values No_Push and Push. sb_flag = No_Push indicates a situation in which the user has not touched the button sensor 22. sb_flag = Push indicates a situation in which an event of "the user has touched the button sensor 22" has occurred, that is, a situation in which the user has pressed a button.
[0081] In the second embodiment, the sensor event determination flag: s_flag indicates the status of the user's operation on the six-axis pressure sensor 21, rather than the status of the user's operation on the input device 182. The sensor event determination flag: s_flag has two values: No_Calibration and Fin_Calibration. s_flag = No_Calibration indicates that the six-axis pressure sensor 21 has not been initialized. s_flag = Fin_Calibration indicates that the six-axis pressure sensor 21 has been initialized.
[0082] (Example of Operation) Next, an example of operation of the device configured as above will be described. Fig. 10 is a flowchart showing an example of the processing procedure and processing content of input processing executed by the hardware processor of the control unit 11 of the information processing device 1 in the second embodiment.
[0083] 10, the second embodiment is different from the first embodiment in that the process of step S19 is changed to the process of step S21 and step S21 is added after step S20. In addition, the process contents of steps S11 and S12 are changed from the first embodiment in the following points.
[0084] That is, in step S11, the control unit 11 operating as the calibration unit 111 performs the following initialization as parameter settings different from those in the first embodiment: Button sensor event determination flag: sb_flag = No_Push Sensor event determination flag: s_flag = No_Calibration Initial values of sensor values: (s_init_x, s_init_y) are the numerical values of the 6-axis pressure sensor 21 when not touched by the user.
[0085] In step S12, the control unit 11, operating as the measurement unit 112, acquires sensor values from the 6-axis pressure sensor 21 and the button sensor 22 via the external input / output interface unit 15 and updates the parameters stored in the parameter storage unit 131 as follows: That is, the control unit 11 sets the value of the sensor event determination flag: s_flag to s_flag = Fin_Calibartion. Then, the control unit 11 detects a sensor acquisition event according to the sampling frequency (e.g., 100 Hz). The control unit 11 updates the sensor values at the time of this event detection as the sensor values of the movement point: (s_move_x, s_move_y), and updates the sensor values of the base point: (s_base_x, s_base_y) with the initial sensor values (s_init_x, s_init_y). Additionally, the control unit 11 checks whether the button sensor 22 is touched, and if it is touched, updates the value of the button sensor event determination flag: sb_flag to sb_flag = Push.
[0086] After notifying the application executing unit 116 of the input angle output value and the input distance output value in step S18, in the second embodiment, the control unit 11 operates as the determination unit 115 and determines whether a button for determining that an input has been confirmed, which is provided separately from the six-axis pressure sensor 21, has been pressed, based on the parameters stored in the parameter storage unit 131 (step S21). Specifically, the control unit 11 determines whether the value of the button sensor event determination flag: sb_flag is sb_flag = Push. If it is determined that the button has not been pressed, that is, that the user's movement operation is continuing, the process repeats from step S12. As a result, the application executing unit 116 is notified of updated input angle output value and input distance output value in response to the user's movement operation.
[0087] On the other hand, if it is determined that the button has been pressed, the control unit 11 operating as the determination unit 115 notifies the application execution unit 116 of the determination result of the operation termination in step S20. Then, in the second embodiment, the control unit 11 operating as the determination unit 115 determines whether the six-axis pressure sensor 21 is in a no-contact state, that is, not being touched by the user, based on the parameters stored in the parameter storage unit 131 (step S22). Specifically, it determines whether the sensor values (s_move_x, s_move_y) of the movement point have reached the initial sensor values (s_init_x, s_init_y), which are the numerical values of the six-axis pressure sensor 21 when not being touched by the user. Here, it is not necessary for the two values to be completely the same. That is, the sensor values of the movement point: (s_move_x, s_move_y) and the initial values of the sensor values (s_init_x, s_init_y) are allowed to be (s_move_x, s_move_y) ≈ (s_init_x, s_init_y). If the 6-axis pressure sensor 21 is not in a non-contact state, the process of step S22 is executed again to wait for the 6-axis pressure sensor 21 to be in a non-contact state.
[0088] If the control unit 11 determines that the six-axis pressure sensor 21 has entered a non-contact state, it returns to the processing of step S11, initializes each parameter stored in the parameter memory unit 131, and repeats the processing procedure described above.
[0089] (Actions and Effects) As described above, in the information processing device 1 to which the input device of the second embodiment is applied, it is possible to achieve actions and effects similar to those of the first embodiment by using an externally arranged sensor device 2.
[0090] Furthermore, in the information processing device 1 to which the input device according to the second embodiment is applied, a sensor value is input to the measurement unit 112 from the six-axis pressure sensor 21 of the sensor device 2 arranged outside the input device via the external input / output interface unit 15. In this way, the external input / output interface unit 15 is an example of an input unit. Therefore, the input device according to the second embodiment makes it possible to use a sensor device 2 that the information processing device 1 does not have, so that even people who have difficulty operating a touch panel can perform input operations.
[0091] [Other Embodiments] The present invention is not limited to the above-described embodiments.
[0092] For example, in the first embodiment, an example has been described in which the information processing device 1 to which the input device according to the first embodiment is applied is a smartphone, and a touch panel in which the display screen 181S of the display device 181 and the input device 182 are integrated is used as an input member. However, even if the information processing device 1 is a notebook personal computer or the like, and the input device 182 is arranged on the keyboard as a touchpad, it will operate in the same way, and the same actions and effects can be obtained.
[0093] Also, a touch pad may be connected via the external input / output interface unit 15 as in the second embodiment. Furthermore, a display device having a larger display screen may be connected via the external input / output interface unit 15.
[0094] In the second embodiment, the sensor device 2 including the six-axis pressure sensor 21 and the button sensor 22 is described as being connected to the information processing device 1, which is, for example, a smartphone, via the external input / output interface unit 15. However, it goes without saying that the information processing device 1, such as a smartphone or a notebook personal computer, may incorporate an input device 182 including a six-axis pressure sensor 21, a pressure element such as the button sensor 22, and a button element.
[0095] Furthermore, the flow of each process described with reference to the flowchart is not limited to the procedure described. For example, the order of the processes of steps S13 to S15 in FIG. 5 may be changed, or they may be performed simultaneously in parallel. Furthermore, the processes of steps S12, S13 to S15, S16 to S18, and S19 to S20, i.e., the operations of the measurement unit 112, calculation unit 113, determination unit 114, and judgment unit 115, may be performed simultaneously in parallel. In this way, the order of some steps may be changed, or some steps may be performed simultaneously in parallel. Furthermore, the processing content of some steps may be modified.
[0096] The program may be transferred in a state where it is stored in an electronic device, or in a state where it is not stored in an electronic device. In the latter case, the program may be transferred via a network, or in a state where it is recorded on a recording medium. The recording medium is a non-transitory tangible medium. The recording medium is a computer-readable medium. The form of the recording medium is not important as long as it is a medium that can store the program and is computer-readable, such as a CD-ROM or a memory card.
[0097] Although the embodiments of the present invention have been described in detail above, the above description is merely an example of the present invention in every respect. It goes without saying that various improvements and modifications can be made without departing from the scope of the present invention. In other words, when implementing the present invention, specific configurations according to the embodiments may be appropriately adopted.
[0098] In short, this invention is not limited to the above-described embodiments, and the components can be modified and embodied in practice without departing from the spirit of the invention. Furthermore, various inventions can be created by appropriately combining multiple components disclosed in the above-described embodiments. For example, some components may be omitted from all the components shown in the embodiments. Furthermore, components from different embodiments may be appropriately combined.
[0099] REFERENCE SIGNS LIST 1... Information processing device 2... Sensor device 11... Control unit 12... Program storage unit 13... Data storage unit 14... Communication interface unit 15... External input / output interface unit 16... Input / output interface unit 17... Bus 21... 6-axis pressure sensor 22... Button sensor 111... Calibration unit 112... Measurement unit 113... Calculation unit 114... Determination unit 115... Determination unit 116... Application execution unit 181... Display device 181S... Display screen 182... Input device 183... Camera 184... Speaker 185... Microphone 186... Position sensor
Claims
1. An input device comprising: an operation receiving unit that receives a user's movement operation from a starting point on a screen that displays information; a calculation unit that calculates an operation distance, which is the distance between the starting point and an operation point caused by the movement operation, and an operation angle, which is the angle of the operation point relative to the starting point, while the user is performing the movement operation; and a determination unit that adjusts the calculated operation angle so that the angle becomes smaller as the calculated operation distance increases, and determines and outputs the adjusted angle as an input angle output value.
2. An input device as described in claim 1, wherein the determination unit sets multiple judgment areas based on the distance from the starting point, and determines the amount of adjustment to the calculated operation angle depending on which of the multiple judgment areas the operation point is located in.
3. The input device according to claim 2, wherein the operation receiving unit further receives an end operation indicating the end of the movement operation by the user, and further comprises a determination unit that outputs a determination result of the operation end when the end operation is performed by the user.
4. The input device according to claim 3, further comprising a starting point updating unit that updates the starting point when the determining unit outputs a determination result that the operation has ended.
5. An input device according to any one of claims 1 to 4, wherein the operation reception unit includes an input unit to which the sensor value of a touch sensor arranged on the screen to detect a touch position, or the sensor value of a six-axis pressure sensor arranged outside the input device to measure the moment force acting on the sensor, is input.
6. The input device according to any one of claims 1 to 4, wherein the determination unit further determines and outputs the calculated operation distance as an input distance output value.
7. An input method executed by an input device having a hardware processor and outputting an angle input by a user operation, the input method comprising: the hardware processor, while the user is performing a movement operation from an origin on a screen displaying information, calculating an operation distance, which is the distance between the origin and an operation point caused by the movement operation, and an operation angle, which is the angle of the operation point relative to the origin; and the hardware processor adjusting the calculated operation angle so that the angle becomes smaller as the calculated operation distance increases, and determining and outputting the adjusted angle as an input angle output value.
8. An input program that causes a hardware processor provided in the input device to execute the processes performed by the operation acceptance unit, the calculation unit, and the determination unit of the input device according to claim 1.
Citation Information
Patent Citations
Program, information input device and control method therefor
JP2011237838A
Input device, angle input device, and program
JP2014086018A
Control method and device for touch panel, and mobile devices using the same
KR1020110010933A
Image forming device and numerical value counting method
WO2020095876A1