Vinkel mätning med gyro, accelerometer och Arduino (3 / 5 steg)
Steg 3: Lite extra information innan vi går vidare
Vi måste integrera signalen för att mäta vinkeln med hjälp av gyro.
Men varför måste vi göra detta?
Eftersom gyrot ger oss den kantiga kurs, så är ett enkelt sätt att få vinkeln har andelen kantiga multiplicerat med tiden [vinkel = vinkel + w * dt]
För att mäta vinkeln med hjälp av en accelerometer som vi har att känna allvaret i varje område av accelerometern, vad det innebär, projektionen av gravitation acceleration på varje riktning av sensorn ger oss en uppfattning om vinkeln. [angle_accel = arctg (Ay / sqrt (Ax ^ 2 + Az ^ 2))]
Så varför vi kommer för att använda två sensor istället en?
Att dra nytta av båda sensor egenskaper. Om du tittar på bilden gyro data kontinuerligt öka, detta kallas drift och accelerometer data ändra mycket på en liten tid.
Och hur man slår ihop båda signal?
Vi kommer att använda en teknik som kallas kompletterande filter. Jag vet inte den exakta teorin bakom detta, men det fungerar bra. Det finns viss information på internet, bara google det om du behöver mer information. Denna länk har en hel del information och kan vara användbara.
filtered_angle = HPF * (filtered_angle + w * dt) + LPF*(angle_accel); där HPF + LPF = 1
HPF och LPF värden kan hittas på denna länk, på det filter.pdf arkivera. Tack ni från "The DIY Segway".
Bara för att testa ändamål vi ska ställa denna värden som denna, HPF = 0,98 och LPF = 0.02.