Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed PID MMA8451Q
Revision 60:6906a96344a0, committed 2013-07-20
- Comitter:
- oprospero
- Date:
- Sat Jul 20 02:28:04 2013 +0000
- Parent:
- 58:9dfd9169a5e7
- Commit message:
- Increase motor control resolution
Changed in this revision
| quadCommand/motor/motor.cpp | Show annotated file Show diff for this revision Revisions of this file |
| quadCommand/quadCommand.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/quadCommand/motor/motor.cpp Wed Jul 03 04:45:03 2013 +0000
+++ b/quadCommand/motor/motor.cpp Sat Jul 20 02:28:04 2013 +0000
@@ -18,7 +18,7 @@
{
pwmPin = new PwmOut( pin );
pwmPin->period( 0.020 ); // Set the period to 20ms.
- setPulseMin( 0.001150 ); // Set default min pulse.
+ setPulseMin( 0.001000 ); // Set default min pulse.
setPulseMax( 0.002 ); // Set default max pulse.
setSpeed( 0 ); // Set motor to stopped.
}
@@ -35,15 +35,15 @@
currentSpeed = 0;
// Is the value to large?
- else if( value > 100 ) // Yup, just set to 100.
- currentSpeed = 100;
+ else if( value > 500 ) // Yup, just set to 100. Changed to 500 to increase
+ currentSpeed = 500; // motor control resolution
// Value must be in the correct range.
else
currentSpeed = value; // Set the new value.
// Calculate the value based on pulseMin, pulseMax and currentSpeed.
- pulse = ((pulseMax - pulseMin) / 100 * currentSpeed) + pulseMin;
+ pulse = ((pulseMax - pulseMin) / 500 * currentSpeed) + pulseMin;
pwmPin->pulsewidth( pulse ); // Write the pulse to the pin.
}
--- a/quadCommand/quadCommand.cpp Wed Jul 03 04:45:03 2013 +0000
+++ b/quadCommand/quadCommand.cpp Sat Jul 20 02:28:04 2013 +0000
@@ -102,7 +102,7 @@
updateCurrent();
float throttle, pitch, roll, yaw;
- throttle = targetThrottle;
+ throttle = targetThrottle * 5; // Increased throttle Range to match higher resolution
pitch = pidPitch->correct(currentPitch, targetPitch, MOTOR_UPDATE);
roll = pidRoll->correct(currentRoll, targetRoll, MOTOR_UPDATE);
yaw = pidYaw->correct(currentYaw, targetYaw, MOTOR_UPDATE);
