Stap 6: Code
De code implementeert in wezen een PID-regelaar voor de tilt. Het heeft nogal een hoge integraal termijn, waardoor het bot om overschrijding wanneer het wordt corrigeren voor een duwtje. Dat heeft de neiging op null uit het bot tendens op drift langs, balancing rechtop maar niet stationaire. Dit is de belangrijkste lijn die de PID-voorwaarden vat:
snelheid = tilt_rads_estimate * TILT_FACT +
tilt_int_rads * TILT_INT_FACT +
gyro_rads_per_sec * D_TILT_FACT;
Er zijn verschillende plaatsen die u tweaken in de code moeten zou te laten werken met je bot:
De constante GYRO_V_PER_DEG_PER_SEC ingesteld hoeveel de output van uw bijzondere gyro verandert voor een verandering van één graad per seconde in rotatie tarief. Ik vond dat mijne aan het einde van de belcurve in het gegevensblad was.
Tevens stelt de ACCEL_V_PER_G constante de waarde voor de versnellingsmeter.
U kunt ook gebruik dan het formulier van de ingangen de potten te tweaken van andere waarden als de X-verschuiving, die kantelt de bot achteruit of vooruit. Dit moet correct worden ingesteld anders de bot niet in evenwicht zal brengen.
De drukknop zorgt ervoor dat de bot kalibratie-modus invoeren voor 10 seconden. Om het te gebruiken, de bot lag op haar rug en druk op de knop laat het gedurende 10 seconden. Het zal automatisch kalibreren de gyro tarief null punt.