Größe: 8834
Kommentar:
|
Größe: 9547
Kommentar:
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 4: | Zeile 4: |
The tool measures the vibration generated by the motors using the MK build-in sensors. This allows to balance motor/prop assemblies and to experiment with different motor-mounts. | The tool measures the vibration generated by the motors using the MK build-in sensors. This allows to balance motor/prop assemblies and to experiment with different motor-mounts. The standard FlightControl program supports a command that allows to monitor the MK sensors. The MKTool uses this command to generate graphs of analog values. In a first approach I used this standard command to monitor vibrations. The problem is that is mechanism only allows to sample the values only 30 times a second. In order to get reliable results one needs to monitor the values for a long time (a minute for example) and hope that one has catched the peaks of the signal. This new approach is based on dedicated FlightControl software that allows to monitor one sensor for a short period of time as fast as possible. This allows to grab a reliable signal in a very short time. |
Zeile 207: | Zeile 213: |
[http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=Projects&path=%2FVibrationTest%2F#_VibrationTest_ VibrationTest Project in Subversion] Mail: [[MailTo(admin AT rc-flight DOT be)]] |
* [http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=Projects&path=%2FVibrationTest%2F#_VibrationTest_ VibrationTest Project in Subversion] * Mail FredericG: [[MailTo(admin AT rc-flight DOT be)]] |
What is the VibrationTest Tool?
The tool measures the vibration generated by the motors using the MK build-in sensors.
This allows to balance motor/prop assemblies and to experiment with different motor-mounts.
The standard FlightControl program supports a command that allows to monitor the MK sensors. The MKTool uses this command to generate graphs of analog values. In a first approach I used this standard command to monitor vibrations. The problem is that is mechanism only allows to sample the values only 30 times a second. In order to get reliable results one needs to monitor the values for a long time (a minute for example) and hope that one has catched the peaks of the signal.
This new approach is based on dedicated FlightControl software that allows to monitor one sensor for a short period of time as fast as possible. This allows to grab a reliable signal in a very short time.
This is an example of the signal measured by the Roll-ACC sensor:
attachment:test.jpg
Current Project status
The current implementation is very basic, it is a "command-line" tool without any graphical user-interface.
I am still experimenting and working on the first version of the tool.
Currently the tool was only tested on PC/Windows with FC 1.3 hardware.
How do I install the tool?
Option 1: Install Python
The tool is written in Python. In case you have heard of python, have look in [http://en.wikipedia.org/wiki/Python_(programming_language) Wikipedia]. In order to run the tool, you need to install support for Python on your PC. It you do not have Python installed on you PC, I propose you install: [http://www.activestate.com/activepython/ ActivePython for Windows] and [http://sourceforge.net/projects/pyserial/files/ PySerial (support for serial port access)]
Python is also available for Linux and MAC.
Once you have Python support on your PC all you need to is place the files VibrationTest.py and mkProto.py from [http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=Projects&path=%2FVibrationTest%2Ftrunk%2FVibrationTest%2F#_VibrationTest_trunk_VibrationTest_ SVN] together in a directory.
Option 2: Get compiled version
It should be possible to compile python applications to a windows executable. I did not investigate this approach yet.
Installing the FlightControl software
The VibrationTest tool works in combination with a special version of the FlightControl software. It must be flashed in the FC board before using the test and you need to reinstall your regular software version afterwards. This just takes a few minutes. Switching the software is done the usual way, using the MKTool.
You can grab the latest version of the VibrationTest-FC.hex file from [http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=Projects&path=%2FVibrationTest%2Ftrunk%2FExecutables%2FFlightCtrl%2F#_VibrationTest_trunk_Executables_FlightCtrl_ SVN]
How do I use the tool?
Attach you MK to the table :)
The command line parameters
VibrationTest.py COMPORT MOTORS SPEEDS CHANNELS [-m MINSPEED] [-s NBSAMPLES] [-n NAME] [-d FILENAME] [-v] COMPORT Serial port to use. e.g. COM4 MOTORS Motors to activate during test. Multiple motors can be used at the same time. e.g. 1,2,3,4 SPEEDS Indicates at what speeds the motors need to be tested. Format 1: e.g. 50,110,140 Tests at speeds 50, 110 and 140 Format 2: e.g. 100-200:50 Tests at speeds 100, 150 and 200 CHANNELS Channels to monitor. e.g. 5,6,7 Channel 0 = GyroYaw Channel 1 = GyroRoll Channel 2 = GyroNick Channel 3 = Pressure Channel 4 = Batt Channel 5 = AccTop Channel 6 = AccRoll Channel 7 = AccNick -m MINSPEED Minimum speed of the motor(s) -s NBSAMPLES Number of samples -n NAME Name of the test -d FILENAME File to which the measured values will be logged in -v Verbose
General procudure
Example 1
Finding what sensor provides best information at what speed:
VibrationTest.py COM5 3 100-200:20 6,7 Speed=100 U=11.3V Channel=AccRoll Min=492 Max=505 pp= 13 ** Speed=100 U=11.3V Channel=AccNick Min=498 Max=507 pp= 9 * Speed=120 U=11.3V Channel=AccRoll Min=489 Max=503 pp= 14 ** Speed=120 U=11.3V Channel=AccNick Min=497 Max=507 pp= 10 ** Speed=140 U=11.2V Channel=AccRoll Min=469 Max=519 pp= 50 ********** Speed=140 U=11.2V Channel=AccNick Min=495 Max=508 pp= 13 ** Speed=160 U=11.1V Channel=AccRoll Min=478 Max=517 pp= 39 ******* Speed=160 U=11.1V Channel=AccNick Min=493 Max=511 pp= 18 *** Speed=180 U=10.9V Channel=AccRoll Min=479 Max=511 pp= 32 ****** Speed=180 U=10.9V Channel=AccNick Min=493 Max=514 pp= 21 **** Speed=200 U=10.7V Channel=AccRoll Min=479 Max=515 pp= 36 ******* Speed=200 U=10.7V Channel=AccNick Min=493 Max=513 pp= 20 **** VibrationTest.py COM5 3 130-160:10 6 Speed=130 U=11.1V Channel=AccRoll Min=484 Max=511 pp= 27 ***** Speed=140 U=11.1V Channel=AccRoll Min=469 Max=524 pp= 55 *********** Speed=150 U=11.1V Channel=AccRoll Min=475 Max=520 pp= 45 ********* Speed=160 U=11.1V Channel=AccRoll Min=479 Max=518 pp= 39 *******
So, lets concentrate on channel 6 at speed 140.
Now, the preliminary balancing of the prop:
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 0s0 0s0 Speed=140 U=11.0V Channel=AccRoll Min=470 Max=521 pp= 51 ********** VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s0 1s0 Speed=140 U=11.0V Channel=AccRoll Min=482 Max=513 pp= 31 ****** VibrationTest.py COM5 3 140 6 -d motor3.txt -n 2s0 2s0 Speed=140 U=11.0V Channel=AccRoll Min=475 Max=520 pp= 45 *********
For now, 1 sticker seems best.
Now, lets rotate the prop:
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s0 1s0 Speed=140 U=10.9V Channel=AccRoll Min=481 Max=513 pp= 32 ****** VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s60 1s60 Speed=140 U=10.9V Channel=AccRoll Min=480 Max=512 pp= 32 ****** VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s120 1s120 Speed=140 U=10.9V Channel=AccRoll Min=477 Max=514 pp= 37 ******* VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s180 1s180 Speed=140 U=10.9V Channel=AccRoll Min=482 Max=509 pp= 27 ***** VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s240 1s240 Speed=140 U=10.9V Channel=AccRoll Min=482 Max=510 pp= 28 ***** VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s300 1s300 Speed=140 U=10.9V Channel=AccRoll Min=482 Max=514 pp= 32 ****** VibrationTest.py COM5 3 140 6,6,6 -d motor3.txt -n 1s360 1s360 Speed=140 U=10.9V Channel=AccRoll Min=482 Max=515 pp= 33 ******
Rotating the prop by 180 degrees produces best results, now lets try to balance the prop again:
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s180 1s180 Speed=140 U=10.9V Channel=AccRoll Min=483 Max=509 pp= 26 ***** VibrationTest.py COM5 3 140 6 -d motor3.txt -n 0s180 0s180 Speed=140 U=10.9V Channel=AccRoll Min=472 Max=519 pp= 47 ********* VibrationTest.py COM5 3 140 6 -d motor3.txt -n 1s180 1s180 Speed=140 U=10.9V Channel=AccRoll Min=483 Max=510 pp= 27 ***** VibrationTest.py COM5 3 140 6 -d motor3.txt -n 2s180 2s180 Speed=140 U=10.9V Channel=AccRoll Min=489 Max=508 pp= 19 *** VibrationTest.py COM5 3 140 6 -d motor3.txt -n 3s180 3s180 Speed=140 U=10.9V Channel=AccRoll Min=483 Max=512 pp= 29 *****
So, 2 stickers is best
VibrationTest.py COM5 3 140 6 -d motor3.txt -n 2s180 2s180 Speed=140 U=10.9V Channel=AccRoll Min=488 Max=508 pp= 20 **** VibrationTest.py COM5 3 140 6,6,6 -d motor3.txt -n end end Speed=140 U=10.8V Channel=AccRoll Min=487 Max=510 pp= 23 ****
Now, we can perform a sweep in order to compare with the starting-point:
VibrationTest.py COM5 3 100-200:20 6,7 Speed=100 U=11.1V Channel=AccRoll Min=493 Max=501 pp= 8 * Speed=100 U=11.1V Channel=AccNick Min=499 Max=507 pp= 8 * Speed=120 U=11.1V Channel=AccRoll Min=489 Max=507 pp= 18 *** Speed=120 U=11.1V Channel=AccNick Min=497 Max=508 pp= 11 ** Speed=140 U=11.0V Channel=AccRoll Min=489 Max=507 pp= 18 *** Speed=140 U=11.0V Channel=AccNick Min=498 Max=509 pp= 11 ** Speed=160 U=10.9V Channel=AccRoll Min=482 Max=508 pp= 26 ***** Speed=160 U=10.9V Channel=AccNick Min=496 Max=510 pp= 14 ** Speed=180 U=10.7V Channel=AccRoll Min=489 Max=505 pp= 16 *** Speed=180 U=10.7V Channel=AccNick Min=495 Max=508 pp= 13 ** Speed=200 U=10.6V Channel=AccRoll Min=482 Max=508 pp= 26 ***** Speed=200 U=10.6V Channel=AccNick Min=491 Max=509 pp= 18 ***
Links
[http://svn.mikrokopter.de/mikrowebsvn/listing.php?repname=Projects&path=%2FVibrationTest%2F#_VibrationTest_ VibrationTest Project in Subversion]
Mail FredericG: MailTo(admin AT rc-flight DOT be)
- Explain the parameters
- The general procedure
- Make a hex-file available
- Provide a picture of my MK attached to the table