gobot.io/x/gobot@v1.16.0/examples/firmata_curie_imu_shock_detect.go (about) 1 // +build example 2 // 3 // Do not build by default. 4 5 /* 6 How to run 7 Pass serial port to use as the first param: 8 9 go run examples/firmata_curie_imu_shock_detect.go /dev/ttyACM0 10 */ 11 12 package main 13 14 import ( 15 "log" 16 "os" 17 "time" 18 19 "gobot.io/x/gobot" 20 "gobot.io/x/gobot/drivers/gpio" 21 "gobot.io/x/gobot/platforms/firmata" 22 "gobot.io/x/gobot/platforms/intel-iot/curie" 23 ) 24 25 func main() { 26 firmataAdaptor := firmata.NewAdaptor(os.Args[1]) 27 led := gpio.NewLedDriver(firmataAdaptor, "13") 28 imu := curie.NewIMUDriver(firmataAdaptor) 29 30 work := func() { 31 imu.On("Shock", func(data interface{}) { 32 log.Println("Shock", data) 33 }) 34 35 gobot.Every(1*time.Second, func() { 36 led.Toggle() 37 }) 38 39 imu.EnableShockDetection(true) 40 } 41 42 robot := gobot.NewRobot("curieBot", 43 []gobot.Connection{firmataAdaptor}, 44 []gobot.Device{imu, led}, 45 work, 46 ) 47 48 robot.Start() 49 }