gobot.io/x/gobot/v2@v2.1.0/examples/firmata_integration.go (about) 1 //go:build example 2 // +build example 3 4 // 5 // Do not build by default. 6 7 /* 8 How to run 9 Pass serial port to use as the first param: 10 11 go run examples/firmata_integration.go /dev/ttyACM0 12 */ 13 14 package main 15 16 import ( 17 "fmt" 18 "os" 19 "time" 20 21 "gobot.io/x/gobot/v2" 22 "gobot.io/x/gobot/v2/drivers/aio" 23 "gobot.io/x/gobot/v2/drivers/gpio" 24 "gobot.io/x/gobot/v2/platforms/firmata" 25 ) 26 27 func main() { 28 firmataAdaptor := firmata.NewAdaptor(os.Args[1]) 29 led1 := gpio.NewLedDriver(firmataAdaptor, "3") 30 led2 := gpio.NewLedDriver(firmataAdaptor, "4") 31 button := gpio.NewButtonDriver(firmataAdaptor, "2") 32 sensor := aio.NewAnalogSensorDriver(firmataAdaptor, "0") 33 34 work := func() { 35 gobot.Every(1*time.Second, func() { 36 led1.Toggle() 37 }) 38 gobot.Every(2*time.Second, func() { 39 led2.Toggle() 40 }) 41 button.On(gpio.ButtonPush, func(data interface{}) { 42 led2.On() 43 }) 44 button.On(gpio.ButtonRelease, func(data interface{}) { 45 led2.Off() 46 }) 47 sensor.On(aio.Data, func(data interface{}) { 48 fmt.Println("sensor", data) 49 }) 50 } 51 52 robot := gobot.NewRobot("bot", 53 []gobot.Connection{firmataAdaptor}, 54 []gobot.Device{led1, led2, button, sensor}, 55 work, 56 ) 57 58 robot.Start() 59 }