|
Re: Programming Supershifter?
1. First you need manual control. This means control of either the pneumatic piston or servo, and adapting it into a simple form of control for the software (e.g. an enumerated type or boolean, instead of a servo angle)
2. An automated shifter is not an easy thing to program. We are currently working on improving a previous algorithm, and it has lots and lots of logic in place to make it shift as nicely as possible. Our initial algorithm many years ago (it just shifted on the average of the abs of the speed, when it hit the shift point) had several issues and we didn't like it a whole lot.
3. If you just have a shift point, you will find issues in these cases:
Thrashing at part throttle (shifting up and down fairly fast)
Runaway when you don't expect it (it upshifts when maintaining a fairly constant low speed)
Decel lurch - If you are coasting to a stop and it shifts down, the shifters can release asynchronously and the robot can twist. This seems like it would be more likely with servos, but even with pneumatics it happens at mid speeds.
I will not tell you how to solve this problem. It is a very complex one, and with some thought, it is possible to design an algorithm to handle it. In my opinion, algorithm design is the best part of programming.
Don't forget: There is a very very large difference between making it work and making it work well.
__________________
Kettering University - Computer Engineering
Kettering Motorsports
Williams International - Commercial Engines - Controls and Accessories
FRC 33 - The Killer Bees - 2009-2012 Student, 2013-2014 Advisor
VEX IQ 3333 - The Bumble Bees - 2014+ Mentor
"Sometimes, the elegant implementation is a function. Not a method. Not a class. Not a framework. Just a function." ~ John Carmack
|