package main import ( "time" "gobot.io/x/gobot" "gobot.io/x/gobot/api" "gobot.io/x/gobot/drivers/gpio" "gobot.io/x/gobot/platforms/intel-iot/edison" ) func main() { master := gobot.NewMaster() a := api.NewAPI(master) a.Start() board := edison.NewAdaptor() red := gpio.NewLedDriver(board, "3") green := gpio.NewLedDriver(board, "5") blue := gpio.NewLedDriver(board, "6") button := gpio.NewButtonDriver(board, "7") enabled := true work := func() { red.Brightness(0xff) green.Brightness(0x00) blue.Brightness(0x00) flash := false on := true gobot.Every(50*time.Millisecond, func() { if enabled { if flash { if on { red.Brightness(0x00) green.Brightness(0xff) blue.Brightness(0x00) on = false } else { red.Brightness(0x00) green.Brightness(0x00) blue.Brightness(0xff) on = true } } } }) button.On(gpio.ButtonPush, func(data interface{}) { flash = true }) button.On(gpio.ButtonRelease, func(data interface{}) { flash = false red.Brightness(0x00) green.Brightness(0x00) blue.Brightness(0xff) }) } robot := gobot.NewRobot( "square of fire", []gobot.Connection{board}, []gobot.Device{red, green, blue, button}, work, ) robot.AddCommand("enable", func(params map[string]interface{}) interface{} { enabled = !enabled return enabled }) master.AddRobot(robot) master.Start() }