Control for RenBuggy
Dependencies: PID PinDetect mbed
Revision 2:cd7543fdcb8c, committed 2014-03-06
- Comitter:
- salatron
- Date:
- Thu Mar 06 09:56:11 2014 +0000
- Parent:
- 1:8a2a7adb3c5d
- Commit message:
- version 3
Changed in this revision
RenBuggy_PID.cpp | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 8a2a7adb3c5d -r cd7543fdcb8c RenBuggy_PID.cpp --- a/RenBuggy_PID.cpp Wed Mar 05 13:37:10 2014 +0000 +++ b/RenBuggy_PID.cpp Thu Mar 06 09:56:11 2014 +0000 @@ -143,6 +143,7 @@ int halfAxleLength = (m_axleLength + 1)/2; RadiusLeft = RadiusLeft < halfAxleLength ? halfAxleLength : RadiusLeft; + AngleLeft = AngleLeft > 90 ? 90 : AngleLeft; float m_fDistanceL = (2*pi*(RadiusLeft - halfAxleLength))*(m_countsPerRev/m_wheelCircumference)/(360/AngleLeft); float m_fDistanceR = (2*pi*(RadiusLeft + halfAxleLength))*(m_countsPerRev/m_wheelCircumference)/(360/AngleLeft); //gives the length of the arc over which the wheel will travel, and translates that into a number of wheel stripes @@ -190,6 +191,7 @@ int halfAxleLength = (m_axleLength + 1)/2; RadiusRight = RadiusRight < halfAxleLength ? halfAxleLength : RadiusRight; + AngleRight = AngleRight > 90 ? 90 : AngleRight; float m_fDistanceL = (2*pi*(RadiusRight + halfAxleLength))*(m_countsPerRev/m_wheelCircumference)/(360/AngleRight); //Forcing it to an int beforehand didn't work. It twitches instead of going argh no, but it still doesn't really work. float m_fDistanceR = (2*pi*(RadiusRight - halfAxleLength))*(m_countsPerRev/m_wheelCircumference)/(360/AngleRight); @@ -327,4 +329,4 @@ m_controllerR.setTunings(p, i, d); } -#endif +#endif \ No newline at end of file
diff -r 8a2a7adb3c5d -r cd7543fdcb8c main.cpp --- a/main.cpp Wed Mar 05 13:37:10 2014 +0000 +++ b/main.cpp Thu Mar 06 09:56:11 2014 +0000 @@ -1,10 +1,35 @@ +/******************************************************************************* +* RenBED PID Motor Control for RenBuggy * +* Copyright (c) 2014 Sally Brown & Liz Lloyd * +* * +* Permission is hereby granted, free of charge, to any person obtaining a copy * +* of this software and associated documentation files (the "Software"), to deal* +* in the Software without restriction, including without limitation the rights * +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell * +* copies of the Software, and to permit persons to whom the Software is * +* furnished to do so, subject to the following conditions: * +* * +* The above copyright notice and this permission notice shall be included in * +* all copies or substantial portions of the Software. * +* * +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR * +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, * +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE * +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER * +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,* +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * +* THE SOFTWARE. * +* * +*******************************************************************************/ #include "RenBuggy_PID.h" int main() { - //the code defaults to the striped wheel buggy configuration + //The code defaults to the striped wheel buggy configuration for counts per rev, wheel circumference, axle width //pins are motor l, motor r, brake l, brake r, sensor l, sensor r + //Supply the appropriate pins for the motors, brakes and sensors. + //i.e. if you left motor is wired to pin p25 then supply p25 as the parameter for the left motor //PID_Stripes pid(p25, p10, p8, p7, p9, p21);