gobot.io/x/gobot/v2@v2.1.0/examples/raspi_grove_pi_ultrasonic.go (about) 1 //go:build example 2 // +build example 3 4 // 5 // Do not build by default. 6 7 package main 8 9 import ( 10 "fmt" 11 "time" 12 13 "gobot.io/x/gobot/v2" 14 "gobot.io/x/gobot/v2/drivers/i2c" 15 "gobot.io/x/gobot/v2/platforms/raspi" 16 ) 17 18 const ( 19 ultrasonicPin = "4" 20 delayMillisec = 10 21 ) 22 23 func main() { 24 r := raspi.NewAdaptor() 25 gp := i2c.NewGrovePiDriver(r) 26 27 work := func() { 28 gobot.Every(1*time.Second, func() { 29 if val, err := gp.UltrasonicRead(ultrasonicPin, delayMillisec); err != nil { 30 fmt.Println(err) 31 } else { 32 fmt.Println("Distance [cm]", val) 33 } 34 }) 35 } 36 37 robot := gobot.NewRobot("ultrasonicBot", 38 []gobot.Connection{r}, 39 []gobot.Device{gp}, 40 work, 41 ) 42 43 robot.Start() 44 }