gobot.io/x/gobot@v1.16.0/examples/firmata_curie_imu.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.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("Accelerometer", func(data interface{}) { 32 log.Println("Accelerometer", data) 33 }) 34 35 imu.On("Gyroscope", func(data interface{}) { 36 log.Println("Gyroscope", data) 37 }) 38 39 imu.On("Temperature", func(data interface{}) { 40 log.Println("Temperature", data) 41 }) 42 43 imu.On("Motion", func(data interface{}) { 44 log.Println("Motion", data) 45 }) 46 47 gobot.Every(1*time.Second, func() { 48 led.Toggle() 49 }) 50 51 gobot.Every(100*time.Millisecond, func() { 52 imu.ReadAccelerometer() 53 imu.ReadGyroscope() 54 imu.ReadTemperature() 55 imu.ReadMotion() 56 }) 57 } 58 59 robot := gobot.NewRobot("curieBot", 60 []gobot.Connection{firmataAdaptor}, 61 []gobot.Device{imu, led}, 62 work, 63 ) 64 65 robot.Start() 66 }