func main() { if err := embd.InitI2C(); err != nil { panic(err) } defer embd.CloseI2C() bus := embd.NewI2CBus(1) gyro := l3gd20.New(bus, l3gd20.R250DPS) defer gyro.Close() gyro.Start() quit := make(chan os.Signal, 1) signal.Notify(quit, os.Interrupt, os.Kill) orientations, err := gyro.Orientations() if err != nil { panic(err) } timer := time.Tick(250 * time.Millisecond) for { select { case <-timer: orientation := <-orientations fmt.Printf("x: %v, y: %v, z: %v\n", orientation.X, orientation.Y, orientation.Z) case <-quit: return } } }
func NewGyroscope(bus embd.I2CBus, rng *l3gd20.Range) Gyroscope { return &gyroscope{ l3gd20.New(bus, rng), } }