Stap 14: Code details - Motor speedramp
Ik heb gezegd vroeg een van de problemen met een 4wd robot is motor tractie. Dit is teller intuïtief wanneer je eerst erover nadenkt. 4WD auto's en vrachtwagens hebben een veel betere tractie en kracht distributie dan een 2wd-voertuig. Dit is waar, maar in geval van de robot is er een motor op elk wiel en zij zijn geen uniek resultaat gevonden in snelheid en kracht als ze op zijn beurt. Het is net zoiets als een auto in zanderige of natte omstandigheden vloeren en slippen uit. Dit zorgt ervoor dat de bot een beetje glijders en niet krijgen tractie op sommige oppervlakken. Dit is een veel opgemerkt in het draaien op een 4 wiel vs. een 2 wiel chassis, waar tractie en kracht is verloren veel.
Ik heb om te helpen met dit (maar niet helemaal wegnemen), een functie die de functie van elke motor beweging roept. Deze functie "hellingen" van de motor(s) naar de snelheid gegeven door het doen van een kloof van de snelheid door 4 en 4 keer aan toe te voegen het quotiënt van de deling door 4 elke stap in de lus in een lus. Dit zorgt voor een langzame build up van de ingestelde snelheid en geeft betere tractie, bijhouden (wat-wat) en vermindert slijtage-en-scheur op de versnelling motors.
void ramp_it_up (uint8_t speed, uint8_t lf_dir, uint8_t rt_dir) { uint8_t ramp_val = 0, step_val = 0; step_val = abs (speed / 4); for (uint8_t i = 0; i < 4; i++) { ramp_val += step_val; motor_left.setSpeed (ramp_val); motor_right.setSpeed (ramp_val); motor_left.run (lf_dir|RELEASE); motor_right.run (rt_dir|RELEASE); delay (25); } }
Met deze methode kan je hetzelfde doen in omgekeerde richting voor speedramp tot stopt. Ramping helpt ook op andere gear motoren, niet alleen degenen zoals dit bot heeft. I recommend highly gebruik dit op grotere bots als goed.