kopia lustrzana https://github.com/cyoung/stratux
rodzic
2324bbe6f0
commit
cb4592bbbe
|
@ -62,6 +62,8 @@ type MPU6050 struct {
|
||||||
// gyro chan XYZ
|
// gyro chan XYZ
|
||||||
// accel chan XYZ
|
// accel chan XYZ
|
||||||
|
|
||||||
|
calibrated bool
|
||||||
|
|
||||||
quit chan struct{}
|
quit chan struct{}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -105,6 +107,7 @@ func (d *MPU6050) calibrate() {
|
||||||
roll_adjust = roll_adjust / float64(len(d.roll_history))
|
roll_adjust = roll_adjust / float64(len(d.roll_history))
|
||||||
d.roll_resting = roll_adjust
|
d.roll_resting = roll_adjust
|
||||||
log.Printf("calibrate: pitch %f, roll %f\n", pitch_adjust, roll_adjust)
|
log.Printf("calibrate: pitch %f, roll %f\n", pitch_adjust, roll_adjust)
|
||||||
|
d.calibrated = true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *MPU6050) readGyro() (XYZ, error) {
|
func (d *MPU6050) readGyro() (XYZ, error) {
|
||||||
|
@ -176,8 +179,10 @@ func (d *MPU6050) calculatePitchAndRoll() {
|
||||||
d.pitch = float64(ft*(sample_period*p2+d.pitch) + (1-ft)*p1_deg)
|
d.pitch = float64(ft*(sample_period*p2+d.pitch) + (1-ft)*p1_deg)
|
||||||
d.roll = float64((ft*(sample_period*r2+d.roll) + (1-ft)*r1_deg))
|
d.roll = float64((ft*(sample_period*r2+d.roll) + (1-ft)*r1_deg))
|
||||||
|
|
||||||
d.pitch_history = append(d.pitch_history, d.pitch)
|
if !d.calibrated {
|
||||||
d.roll_history = append(d.roll_history, d.roll)
|
d.pitch_history = append(d.pitch_history, d.pitch)
|
||||||
|
d.roll_history = append(d.roll_history, d.roll)
|
||||||
|
}
|
||||||
|
|
||||||
//FIXME: Experimental (heading).
|
//FIXME: Experimental (heading).
|
||||||
|
|
||||||
|
|
Ładowanie…
Reference in New Issue