Patent Description:
From the document <CIT>, a trigger mechanism is known that allows the user to selectively adjust the pull force vs. displacement profile of the trigger by changing the static magnetic field in the mechanism of the projectile propulsion device - a firearm. In a magnetic closed loop configuration, the trigger mechanism comprises a fixed yoke and a pivotally movable trigger part. The trigger part includes a trigger portion and an operating portion operatively connected to a firing mechanism of the firearm in order to fire the firearm. Triggering occurs as a result of the activation of the switch or detection of the proximity of the trigger by a magnetic sensor.

From the document <CIT>, an electric projectile propulsion device is known, which is a toy AEG or ASG (Air Soft Electric Gun), equipped with a battery-driven motor, switched on and off with a single trigger switch. The document discloses a motor controller and a method for controlling the motor using a microcontroller and an electronic trigger switch. The motor controller is provided with a variety of fault protection measures, including a MOSFET transistor-based switch, overcurrent protection measures, high and low voltage protection measures, high and low temperature protection measures, and a MOSFET-based half-bridge to provide control and braking. In addition, the possibility of providing the controller with a number of sensors for monitoring the state of the device, including its temperature, failure, position, etc., has been disclosed.

From the document <CIT>, a trigger mechanism is known, wherein a magnet is associated with the trigger such that it moves between a first Hall effect sensor and a second Hall effect sensor to detect the trigger's position.

The use of electronic trigger switches in ASG toys has many advantages. These include: increased reliability, decreased power loss, controllability by a microcontroller, easy shot counting as well as design flexibility to provide numerous additional features with a microcontroller.

There are also some issues with the use of electronic trigger switches. One of them is the adjustment and setting of the trigger sensitivity - practically impossible with the use of microswitches. More advanced sensors, e.g. magnetic ones, are more suitable in this respect, but they are also susceptible to interference. Interference may result in no shot being fired with the trigger pulled, firing with no trigger pulled, unintentional interruption of continuous fire, or changes in trigger sensitivity. This is very unfavorable, especially during competition when a failure of the switch prevents the competitor from continuing to compete. An unintentional change in trigger sensitivity is also very unfavorable, as it results in a lack of full control and lack of precision.

A method of controlling a motor of an electric projectile propulsion device performed by a controller comprising a microcontroller and a trigger sensor connected thereto, adapted to start the motor in response to a displacement of a trigger, according to the invention is distinguishable by that it comprises a magnetic element coupled to the trigger, and the trigger sensor is a magnetic field sensor having at least two non-parallel measurement axes configured to sense the position of the magnetic element along the at least two axes. The position of the trigger is determined on the basis of a measurement carried out along these at least two axes and a comparison of the readout with reference data stored in memory of the microcontroller. The memory contains vectors of reference values for at least two axes, unique for the admissible trigger positions. A shot is fired when a predefined condition is met. Such a configuration reduces the risk of accidental firing in case of interference or impact. The second and possibly subsequent measurement axes ensure the uniqueness of the measurement readout. At the same time, the lack of mechanical contact with the sensor makes the device insensitive to mechanical wear of the trigger sensor. At the same time, precision and speed of operation as well as insensitivity to interference from radio signal sources located in the immediate vicinity or even on the same printed circuit board are ensured.

Advantageously, the magnetic field sensor is a triaxial Hall sensor and the position of the magnetic element is determined on the basis of a measurement carried out along three axes and a comparison with reference data containing vectors of reference values for three axes. The risk of an occurrence of a given combination of three values in the measurement is lower than in the case of two values, thus reducing the risk of accidental firing.

Advantageously, initially, a calibration is performed to obtain reference data, the calibration consisting in creating a map of vectors of reference measurement values for individual axes for the whole useful trigger position range. During the calibration, the steps of measuring the magnetic field along at least two axes for the two extreme positions of the trigger are first performed, and then the step of sampling of the readouts of the magnetic field sensor with slowly moving trigger is performed. Such calibration allows the reference data to be adapted to the characteristics of a given projectile propulsion device. In addition, it has surprisingly been found that such a procedure performed by the shooter results in a higher density of measurement data in the phase of the trigger movement in which the shooter wishes to set a threshold value, the exceeding of which triggers the shot. While factory-set reference data works great, adjusting it to requirements of a given shooter can result in increased performance and increased density of the reference vectors at individual, crucial phases of trigger movement.

Advantageously, the predefined condition is to obtain readouts from at least two axes of the magnetic field sensor corresponding, within predetermined tolerance, to the vector of measurement values along those axes that is contained in the reference data and corresponds to the trigger pull beyond the predefined value.

Advantageously, the predefined condition is to obtain a sequence of readouts from at least two axes of the magnetic field sensor corresponding, within predetermined tolerance, to the vectors of measurement values along those axes that are contained in the reference data and correspond to the trigger pull positions, at least one of which exceeds a predefined value, the magnetic field sensor being sampled at a rate of <NUM> or higher. This condition additionally reduces the risk of accidental firing, and the high sampling rate ensures that the user will not experience any delay.

A controller of a motor of an electric projectile propulsion device comprising a microcontroller provided with memory and a trigger position sensor connected to the microcontroller, according to the invention is distinguished by that the trigger position sensor is a multi-axial magnetic sensor having at least two non-parallel axes, and the microcontroller is adapted to perform the method according to the invention.

Advantageously, the controller comprises a user interface connected to the microcontroller.

Advantageously, the user interface is a communication module connected to the microcontroller.

Advantageously, the communication module is a transceiver operating in the Bluetooth Low Energy standard.

Advantageously, the magnetic field sensor is connected to the microcontroller via a digital bus adapted to transfer the samples with frequency of <NUM> or higher.

Advantageously, the magnetic field sensor is connected to the microcontroller via a dedicated analog-to-digital converter built into the sensor. Such a solution allows one to use sampling rates higher than those available with standard built-in sensor converters, and consequently to use more complex signal processing techniques including filtering and smoothing.

An electric projectile propulsion device provided with a motor, a trigger for starting the motor and a controller for the motor comprising a magnetic field sensor adapted to start the motor when a predefined trigger displacement condition is met, according to the invention is distinguished by that the controller for the motor is a controller according to the invention and the device further comprises a magnetic element coupled to the trigger.

Advantageously, the controller is made on a printed circuit board arranged substantially in parallel to a plane of the trigger movement. This allows the magnetic element and the sensor to be configured so that the trajectories produce unique value vectors over the entire range of positions.

Advantageously, the trigger is rotatably mounted on an axle, whereas the magnetic element and the magnetic field sensor are arranged so that the trajectory of the magnetic element during pulling the trigger includes, in its initial phase, a segment running along an arc centered at the magnetic field sensor. Such a configuration makes it possible to make the position measurement independent of the field measurement readouts along individual axes, or to correlate it with the direction determined on the basis of the ratio of readouts along at least one pair of axes. This ensures insensitivity to temperature drift. The arc section should preferably cover the range from the first <NUM>% to the first <NUM>% of the trajectory of the magnetic element, where the highest measurement accuracy is required.

A computer program product according to the invention comprises instructions for the microcontroller of the motor controller of the projectile propulsion device, which, when executed by the microcontroller of the motor controller, cause the method according to the invention to be performed.

The subject of the invention is explained in the embodiments shown in the drawings, in which.

The electric device according to the invention is equipped with a motor for tensioning a spring (not shown in the drawings) responsible for ejecting the projectile. In the case of single fire, in the first phase of the shot the spring is coupled to the motor and is tensioned by a set of gears driven by the spinning motor (not shown in the drawings), while in the second phase the motor is decoupled and the released spring ejects the projectile. In the case of continuous fire, coupling, spring tensioning and decoupling repeat automatically, causing a series of shots until the trigger is released or the projectiles are run out.

The shot is triggered by the trigger, as with conventional handguns or rifles. In the present invention, the trigger is coupled to a motor controller that senses the position of the trigger and turns on the motor. A fragment of the projectile propulsion device according to the invention is shown in <FIG> shows a fragment of the device in which the trigger <NUM> is in the released position, and <FIG> shows a fragment of the device in which the trigger <NUM> is pulled. The trigger rotates around an axle <NUM>. The controller <NUM> is integrated on a printed circuit board with a trigger position sensor <NUM>, the board additionally containing a Bluetooth Low Energy communication transceiver. In alternative embodiments, other radio modules may be used, in particular using other communication standards such as WiFi, LoRa, Wmbus, or UWB.

The motor is supplied with direct current via connecting cables <NUM>, <NUM>. Due to the fact that the trigger position sensor is insensitive to interference caused by wireless transmission of the radio module, the controller can be made on a single printed circuit board. A magnetic element <NUM> is mounted on the trigger <NUM>, and the trigger position sensor <NUM> is a magnetic field sensor detecting the field along at least two non-parallel axes. In the present embodiment, a triaxial Hall sensor TLV493 from Infineon, detecting the magnetic field along the x, y, z axes was used. The trigger movement causes rotation of the magnetic element <NUM> around the axle <NUM>, and in consequence a change in the magnetic field sensed by the sensor along at least two non-parallel axes. Based on the measured values of the magnetic field, the position of the magnetic element <NUM> is determined. When the trigger is being pulled, the readout of the trigger position sensor <NUM> along a given axis follows a repeatable curve resulting from a trajectory of the magnetic element <NUM>. In consequence, it is possible to adapt the controller by configuring the microcontroller <NUM> so that a shot was fired at a convenient time instance selected by the user. In the case of users using the projectile propulsion device for sports purposes, indicated trigger position is usually close to the initial position of the trigger because the "sensitive" trigger improves the chances during ASG competitions.

A simplified block diagram of a control system for the projectile propulsion device according to an embodiment of the present invention is shown in <FIG>. Power is supplied to the motor <NUM> from a power source <NUM> via a transistor key <NUM> controlled by a microcontroller <NUM>. The controller <NUM> includes the microcontroller <NUM> controlling the transistor key <NUM> and receiving readouts from the triaxial Hall sensor acting as the trigger position sensor <NUM>. It should be noted that a sensor having two non-parallel axes is sufficient to implement the invention.

The TLV493 sensor has a built-in analog-to-digital converter that transmits data using redundancy correction codes via an I2C bus using correction codes. This is a good and safe solution, although the clock speed of the I2C bus does not allow the use of the most advanced signal processing techniques. On the other hand, the integrated converter ensures reliability and avoids hard-to-find intermittent compatibility issues.

The microcontroller <NUM> is provided with memory <NUM> in which reference data is stored, and a communication module <NUM> which preferably transmits to a remote device a configuration regarding, for example, the trigger position at which a shot is to be fired, or collects statistical information about the number of shots fired, their rate, the condition of the battery being the power source, etc. In addition, through the communication module, the motor controller obtains, among others, instructions for the procedure of collecting the reference value vector map. Thus, the communication module acts as a user interface.

The device can be equipped with both a user interface, e.g. in the form of LEDs and/or a display and physical buttons, as well as only with the communication module through which the user communicates with the device using an application running on a remote device, e.g. a smartphone connected to the microcontroller via the communication module <NUM>.

The microcontroller <NUM> is adapted to implement the method according to the invention, which can be loaded as a program into the memory <NUM>.

The microcontroller <NUM> tracks the movement of the trigger via the trigger position sensor <NUM>, which senses the changes in the magnetic field along the x, y, z axes caused by the movement of the magnetic element <NUM>. A vector of the sensor readouts pcx, pcy, pcz corresponding to the x, y, z axes, respectively, is compared with the reference value vectors stored in the memory <NUM>. Exemplary shapes of p along particular axes as a function of the trigger pull degree which determines the change in the position r of the magnetic element <NUM> is shown in <FIG>. The dotted line px(r) represents the readout of the magnetic field value along the x-axis, the solid line py(r) represents the vector of readouts of the magnetic field value along the y-axis, and the dashed line pz(r) represents the readouts of the magnetic field value along the z-axis.

The microcontroller <NUM>, in response to the movement of the trigger <NUM> that displaces the magnetic element <NUM> beyond the predefined position, activates the transistor key <NUM>, thus powering the motor <NUM>, which causes the spring being tensioned and released, resulting in a shot being fired.

Since the trigger sensor <NUM> is a magnetic field sensor having at least two non-parallel measurement axes, random sensor readouts due to interference do not cause a shot. Similarly, the shot will not be fired due to mechanical failure of the trigger or the entire device when one of the mechanical elements of the trigger or the entire housing is damaged due to an impact, fall or other event. Such events may occur during a competition and may lead to very dangerous uncontrolled firing situations. The position r of the trigger <NUM> is determined by taking measurements along at least two axes (in the present embodiment along three axes) and comparing the readout, i.e. the vector of the read magnetic field values pcx, pcy, pcz with the reference data stored in the memory <NUM> of the microcontroller <NUM>. The reference data includes reference readout value vectors for different trigger positions. The combinations of the coordinates of the reference vectors pcx(r), pcy(r), pcz(r) are unique for the admissible, i.e. realizable in practice, positions r of the magnetic element <NUM>, resulting from the trigger pull degree causing the rotation of the trigger around the rotation axle <NUM>.

A triaxial measurement is even more reliable than a biaxial measurement, not only because the combination of the three values makes it easier to ensure that the combination is unique for each position of the magnetic element <NUM> in the entire trigger pull range, but also because, in case of interference, the probability that the interference will result in an readout matching the reference is significantly lower. Interference occurs for a variety of reasons. The source of interference is the radio communication module <NUM>. Interference is also caused by the power cables of the motor during its operation due to the generated magnetic field associated with the current flow. When starting the motor, the operating current can significantly exceed <NUM> Amperes. Magnetic sensors are also affected by permanent magnets and electromagnets commonly used in computers, door and gate locks, book covers, telephones, e-readers, or notebooks.

Lack of consistent readouts for all axes is considered an invalid measurement that does not start the motor. Thus, the solution prevents accidental firing in case of internal or external interference or the application of an external magnetic field e.g. of a magnet or, for example, caused by the proximity of a high-power walkie-talkie.

The controller <NUM> made on a printed circuit board is preferably placed in the device in such a way that the movement of the magnetic element <NUM> takes place in a plane substantially parallel to the plane in which the PCB is mounted. In such a case the sensor operating range can be fully utilized and, in the crucial phase of motion, the analog-to-digital converters that convert the signals from the Hall sensor to digital signals analyzed by the microcontroller work on signals well matched to their dynamic range. Such arrangement of the elements of the motor controller <NUM>, especially the trigger position sensor <NUM>, gives a high dynamics of changes in the value of the read magnetic field during the movement of the magnetic element <NUM>, which results in an increased measurement resolution.

Preferably, the magnetic element <NUM>, the trigger <NUM>, the rotation axle <NUM> and the trigger sensor <NUM> are arranged such that the trajectory of the magnetic element <NUM> during pulling of the trigger includes, in its initial phase, a segment running along an arc centered in the trigger sensor <NUM>, and additionally, two of the measurement axes of the trigger sensor <NUM> are perpendicular to each other and parallel to the plane of the printed circuit board. Such a configuration makes it easier to obtain independence from conditions affecting the amplitude of the readout and to directly detect the trigger rotation angle on the basis of the ratio between the readouts along the two above-mentioned axes. The possibility of making the readout independent of the operating temperature is especially valuable, because firing from an electric projectile propulsion device is an exothermic operation, so the controller operates in a large range of temperatures.

Preferably, this initial phase is between the positions corresponding to the trigger pull degree of <NUM>% and <NUM>%, because it is where the users typically set the moment of starting the motor and thus it is advantageous to ensure the highest insensitivity to variables environmental conditions in this particular range.

Using the solutions according to the invention, the projectile propulsion device can be calibrated according to the individual needs or sport skills of the person using the device. Calibration can also help if the geometry of the device changes due to a shock or an impact-type environmental exposure, or the operating temperature changes dramatically.

In this embodiment, the calibration is performed in all three x,y,z axes of the sensor. First, the readouts corresponding to the two extreme positions of the trigger are collected, and then a sampling step <NUM> of the readouts (pcx(r), pcy(r), pcz(r)) of the trigger sensor <NUM> is performed with the trigger <NUM> moving slowly while being pulled by the operator, as described below with reference to <FIG>. Calibration is under the control of the microcontroller <NUM>. It is advantageous to provide an increased density of registered unique combinations of the readouts in the range corresponding to the initial stage of the trigger pulling - preferably between the positions corresponding to the trigger pull degree of <NUM>% and <NUM>%.

The calibration flow chart is illustrated in <FIG>. Step <NUM> initiates the procedure in response to a user command. The command can be given by pressing a calibration button (not shown in <FIG>) connected to the microcontroller <NUM> or by a signal from a remote device e.g. a smartphone or tablet being in communication with the communication module <NUM>. Then, in step <NUM>, the device enters the calibration mode via the user interface. In step <NUM>, the user interface outputs an instruction to pull and release the trigger. If trigger pull and release are detected in step <NUM>, the procedure proceeds to the calibration at released trigger step <NUM>, otherwise this step is skipped. After step <NUM>, the user is instructed via the user interface to pull and hold the trigger in step <NUM>. If a trigger pull is detected in step <NUM>, the procedure proceeds to the calibration at pulled trigger step <NUM>, otherwise step <NUM> is skipped. Next, in step <NUM>, the user interface outputs an instruction to pull the trigger slowly and smoothly. In step <NUM>, the sensor is sampled and in step <NUM>, a reference map of the positions and magnetic field values along three axes is created. In step <NUM>, the position map is evaluated and if it is correct, the completeness of the reference data is verified in step <NUM>, and if the verification result is positive, the calibration ends with success - step <NUM>. If the map fails the verification, e.g. due to collecting less than the desired number of unique trigger positions, the process fails. A minimum number of unique positions is typically assumed to be <NUM>- although much less is sufficient - and in the present invention typically <NUM>-<NUM> unique positions are obtained.

The flow chart for determining the reference value vector for the released trigger position is shown in <FIG>. Advanced shooters set the moment of trigger release very close to its neutral position, at the trigger pull degree of <NUM>% to <NUM>%, to ensure the fastest possible response of the system, even to a slight finger movement on the trigger, because such settings give the shooter more responsiveness and improve performance, especially in Speed Soft games. The calibration at the released position starts with the initialization step <NUM>. After waiting for the insensitivity time - delay step <NUM>, the microcontroller <NUM> starts the sampling of magnetic field values along all axes of the trigger sensor <NUM> - step <NUM>. In the sampling step <NUM>, <NUM> values are collected for each measurement axis. In the analysis step <NUM>, the collected values are subjected to an analysis, in which base values for each axis and standard deviations for each axis are determined. These values are then used to determine the current trigger position and to set tolerances. Determining the calibration values for the released trigger position ends with storing this data in the memory - step <NUM>.

The flow chart for determining the reference value vector for the fully pulled trigger position is shown in <FIG>. The calibration at fully pulled position starts with the initialization step <NUM>. After waiting for the insensitivity time - delay step <NUM>, the microcontroller <NUM> starts the sampling of magnetic field values along all axes of the trigger sensor <NUM> - step <NUM>. In the sampling step <NUM>, <NUM> values are collected for each measurement axis. In the analysis step <NUM>, the collected values are subjected to an analysis, in which base values for each axis and standard deviations for each axis are determined. The correctness of the data is verified in step <NUM> by checking whether the pulled trigger state is sufficiently different from the released trigger state. The difference is evaluated based on the absolute values of the differences of the individual coordinates of the measurement vector for the individual axes of the magnetic sensor <NUM>. If this condition is not met, an error message is issued to the user interface in step <NUM>. Determining the reference value vector for the pulled trigger position ends with storing this data in the memory - step <NUM>. These values are then used to determine the current trigger position and to set tolerances.

The flow chart for determining the reference trigger position map and the magnetic field values for the positions between the released and pulled ones is shown in <FIG>. The operation begins with the initialization step <NUM> and starting sampling. The user is instructed via the interface to slowly pull the trigger. After waiting for the insensitivity time - delay step <NUM>, the microcontroller <NUM> allocates <NUM> sample buffers in allocation step <NUM> and in step <NUM> it starts sampling the magnetic field values along all axes of the trigger sensor <NUM>. The buffers are filled in step <NUM>, starting at the time instance when the movement of the trigger was detected in step <NUM>. Sampling ends when each of the buffers of <NUM> samples of magnetic field values along the axis corresponding to this buffer is filled. The data is verified in step <NUM> by checking whether a full trigger pull has not occurred before <NUM> samples have been collected and whether sufficient number of samples have been collected by the time the trigger is fully pulled. If these conditions are not met, an error message is issued to the user interface in step <NUM>. Sampling ends with filled buffers in step <NUM>.

The collected samples are processed by deleting positions sampled multiple times and creating a map of unique values. On the basis of the sum of the absolute values of the differences in the individual axes x, y, z, the resultant differences Δ between adjacent samples are created. By reviewing the entire sample set, the minimum value minΔ of the difference between adjacent samples is determined. Then duplicates are removed by not rewriting from the buffers to the reference table stored in the memory the samples of the field values along the x, y, z axes, differing from the previous ones by less than minΔ. If more than <NUM> samples of the magnetic field values along the x, y, z axes are saved in the reference table, the calibration is successful, otherwise an error message is issued. Each sample in the reference table corresponds to a deeper pull of the trigger. The pull degree is indicated by successive values starting from zero. In the last step of a correctly performed set of operations, the created reference table is saved to the nonvolatile memory of the microcontroller, i.e. to the built-in memory of the microcontroller or the external memory <NUM> attached to it. <FIG> illustrates the graphs corresponding to the reference data, i.e. the reference values of the magnetic field readout for the three measurement axes stored in the reference table.

After the calibration is completed, the user can use the user interface to set an individual trigger position, which, when exceeded, causes a shot, or leave the default value (half of the full trigger displacement). It turns out that most shooters, when performing individual calibration, guide the trigger in such a way that the most measurement points are collected in the phase of the movement in which they later want to set the firing position. This is related to the intentional or unintentional slowing down of the trigger movement during the calibration. For shooters participating in competitions, not only the reliability of the weapon is important, but also the firing rate, which is related to the sampling rate and processing delay.

In this embodiment, the sampling period of the trigger sensor is set to <NUM>. This is a compromise value between the capabilities of the selected communication interfaces between the microprocessor and the sensor (I2C) and the time resolution required for reliable and redundant data processing at a rate sufficient for sports operating conditions. Redundant data processing is optional, but provides additional security.

The time between sensor measurements is an important parameter to ensure the proper speed of the trigger mechanism when using the device. The use of shorter time (higher sampling rate) additionally enables the use of digital data analysis algorithms.

Leading players of Air Soft sports, especially in the form of Speed Soft games, can make a successful shot in less than <NUM>. With simple processing, in order to avoid aliasing, it is enough to use a sampling frequency twice as high as the frequency of the measured signal. In this case, a measurement period of <NUM> (sampling frequency <NUM>) is sufficient. When sampling at such a frequency, the predefined criterion for triggering the shot is to obtain readouts from all axes of the trigger sensor <NUM> that correspond, within a predefined tolerance, to a reference vector of measurement values for these axes contained in the reference data and corresponding to a trigger pull beyond a predefined value.

Sampling with a period of <NUM> (sampling frequency approx. <NUM>) allows <NUM> independent measurements for all axes of the trigger sensor to be done in the time when the fastest players shoot. Such redundancy allows one to formulate the shot trigger condition not only in relation to a single specific readout value vector for three axes, but also based on a sequence of consecutive measurements. Such significant oversampling of signals allows the sequence of readouts from the trigger sensor to be matched with the sequence of readouts stored in the reference data and a real operation on the trigger to be confirmed and distinguished from external interference or random events caused, for example, by a stroke due to the fall of the device, and, in the particular case, a fall in which the trigger mechanism is damaged. The applied oversampling allows the signal to be subjected to an additional analysis, for example discrimination of values showing too large gradient of changes. Such operations may additionally require approximation of values between measured reference data. Tests have shown that the measurement sequence detection works well at sample rates above <NUM>.

High rate of readouts from the trigger sensor, significantly exceeding <NUM>, providing the possibility of using even more advanced signal processing techniques including filtering and smoothing, can be obtained by using an analog sensor connected to an external analog-to-digital converter or by using a converter built into the microcontroller. In such cases, it is necessary to conduct analog signals using conductive connections on the PCB. Such connections are particularly exposed to internal and external electromagnetic interference that is very difficult to eliminate due to the negligible amount of energy on the signal lines and the very high sensitivity of the inputs of signal converters.

In the embodiment of the controller and method discussed above, referring to <FIG>, a Hall sensor with a built-in analog-to-digital converter made in a single silicon structure is used. Due to the short connection distances in the silicon structure of the sensor, the sensitive connections of analog signals are practically completely immune to electromagnetic interference. Communication with the microcontroller is performed in a digital way, which by its nature is much more resistant to interference. The used I2C communication bus provides the ability to transfer data with a period of <NUM> and an elementary correction code.

In alternative embodiments, a faster communication interface may be used, which may additionally utilize more advanced redundancy cyclic codes to ensure that the information is delivered unchanged or is marked as invalid. To ensure immunity to interference while maintaining a sampling frequency exceeding <NUM>, an external analog-to-digital converter can be used, providing sampling frequency for each axis of the magnetic sensor exceeding <NUM>, preferably greater than <NUM> and even greater than <NUM>, together with a suitable communication bus faster than I2C and utilizing advanced redundancy codes.

The invention allows one to take benefit from the sensitivity and precision of the magnetic sensor, and at the same time provides resistance to interference, especially to troublesome and common external magnetic field.

Additionally, it was unexpectedly possible to achieve resolution of the trigger position detection higher than in the case of other sensors. <FIG> and <FIG> show that for different positions, different measurement axes exhibit alternating high and low values and high and low gradients of changes. Especially in the initial phase of the movement, at least one axis shows a strong dependence on the trigger position. This results in a high resolution of the position detection. Using all the values one gets high dynamics. Over <NUM> unique positions obtained, corresponding to <NUM> degrees of adjustment, is a much higher result than in the case of other electronic controllers for projectile propulsion weapons.

The present invention may be embodied in various hardware, software, or combinations thereof. The hardware implementation may include, but is not limited to, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), digital signal processors (DSPs), microcontrollers, microprocessors, systems-on-a-chip (SoC), and other programmable logic devices. It can also include custom or commercial off-the-shelf (COTS) hardware components such as integrated circuits (ICs), printed circuit boards (PCBs), as well as specialized circuits designed to perform specific functions. The invention may also be implemented using a combination of different hardware components, such as a combination of ASICs and FPGAs or a combination of microprocessors and DSPs. It will be clear to those skilled in the art that the specific hardware components used to practice the invention may vary depending on desired performance and cost constraints. The appended claims are not limited to the specific hardware components described herein, and any combination of hardware components known in the art that are capable of performing the functions described in the claims is considered to fall within the scope of the invention as defined by the appended claims.

An implementation of a computer program product may include, but is not limited to, a set of instructions for a programmable device writable in its memory, it may be firmware, middleware, and other software applications that can be run on general purpose hardware or specialized hardware. In extreme cases, it can be offered in the form of software as a service (SaaS).

The computer program product may be stored on a variety of media, including, but not limited to, magnetic media such as hard drives, optical media such as CDs or DVDs, flash memory devices such as USB drives, as well as solid state drives (SSDs). The computer program product may also be stored in cloud storage systems such as Amazon Web Services (AWS), Microsoft Azure or Google Cloud Platform. In case of SaaS, the software is hosted and shared over the internet and can be accessed via a web browser or other client software. SaaS provides the advantage of allowing users to access the software from anywhere with an internet connection, with no need for installation on local devices.

It is clear to those skilled in the art that the specific hardware and software components used to practice the invention may vary depending on desired performance and cost constraints. The appended claims are not limited to the specific media and software components described herein, and any combination of media and software components known in the art that are capable of performing the functions described in the claims is considered to fall within the scope of the invention.

Claim 1:
A method of controlling a motor of an electric projectile propulsion device with a motor controller (<NUM>) comprising a microcontroller (<NUM>) and a trigger sensor (<NUM>) connected thereto adapted to start the motor (<NUM>) in response to a displacement of a trigger (<NUM>), wherein the motor controller comprises a magnetic element (<NUM>) coupled to the trigger, and the trigger sensor (<NUM>) is a magnetic field sensor,
characterized in that the magnetic field sensor has at least two non-parallel measurement axes (x,y,z) configured to sense a position of the magnetic element (<NUM>) along the at least two axes (x,y,z), and the position (r) of the trigger (<NUM>) is determined on the basis of a measurement carried out along these at least two axes and a comparison of the measurement readout (pcx, pcy, pcz) with reference data stored in memory (<NUM>) of the microcontroller (<NUM>) which contains vectors of reference measurement values for at least two axes (pcx(r), pcy(r), pcz(r)) unique for admissible trigger positions (r), and a shot is fired when a predefined condition is met.