Stap 5: Software
Arduino is bekend om zijn vriendelijke coderingsomgeving en grote open source gebruiker-Bibliotheken, waardoor de prototyping echt gemakkelijk.
Ik begon met aparte versnellingsmeter en gyroscoop. Maar als dingen vorderde, ik vind het moeilijk om evenwicht met computationele overhead van berekening pitch & roll (met behulp van kalman/complementaire filter). Toen ik overgeschakeld naar MPU-6050, verbeterd het drastisch de afweging.
Voor het gebruik van de DMP voor MPU, gebruikte ik Van Jeff RowbergI2CDev bibliotheken. Als u wilt kalibreren de mpu, gebruikte ik Luis Rodenas deschets.
Nu, kunnen we de hoek van bot met verticale bepalen. Maar hoe kunnen we de hoeveelheid kracht moest duwen bot terug naar verticale wanneer het is onevenwichtig door sommige onzeker graden van verticale berekenen. Dit is waar de PID in schopt. PID geeft deze kracht die zal veranderen al naar gelang tijd en hoek door welke bot onevenwichtig is.
Ik zal niet ingaan op technische details. Brett Beauregard schreef een mooi PID bibliotheek met uitleg als u wilt.
Verdere Versnel de motorische reactie gebruikte ik digitalIOPerformance bibliotheek voor snelle schrijven van pinnen.
Tot slot voor het opslaan van PID waarden in de EEPROM van Arduino, EEPROMex bibliotheek voor efficiëntie en schone code.
Volledige code kan worden gevonden op de GITHUB.