gobot.io/x/gobot/v2@v2.1.0/examples/gopigo3_grove_button.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 12 "gobot.io/x/gobot/v2" 13 "gobot.io/x/gobot/v2/drivers/gpio" 14 "gobot.io/x/gobot/v2/platforms/dexter/gopigo3" 15 "gobot.io/x/gobot/v2/platforms/raspi" 16 ) 17 18 func main() { 19 raspiAdaptor := raspi.NewAdaptor() 20 gpg3 := gopigo3.NewDriver(raspiAdaptor) 21 led := gpio.NewGroveLedDriver(gpg3, "AD_1_1") 22 button := gpio.NewGroveButtonDriver(gpg3, "AD_2_1") 23 24 work := func() { 25 button.On(gpio.ButtonPush, func(data interface{}) { 26 fmt.Println("On!") 27 led.On() 28 }) 29 button.On(gpio.ButtonRelease, func(data interface{}) { 30 fmt.Println("Off!") 31 led.Off() 32 }) 33 } 34 35 robot := gobot.NewRobot("gopigo3button", 36 []gobot.Connection{raspiAdaptor}, 37 []gobot.Device{gpg3, button, led}, 38 work, 39 ) 40 41 robot.Start() 42 }