gobot.io/x/gobot@v1.16.0/examples/leap_servos.go (about) 1 // +build example 2 // 3 // Do not build by default. 4 5 package main 6 7 import ( 8 "gobot.io/x/gobot" 9 "gobot.io/x/gobot/drivers/gpio" 10 "gobot.io/x/gobot/platforms/firmata" 11 "gobot.io/x/gobot/platforms/leap" 12 ) 13 14 // Video: https://www.youtube.com/watch?v=ayNMyUfdAqc 15 func main() { 16 firmataAdaptor := firmata.NewAdaptor("/dev/tty.usbmodem1451") 17 servo1 := gpio.NewServoDriver(firmataAdaptor, "3") 18 servo2 := gpio.NewServoDriver(firmataAdaptor, "4") 19 servo3 := gpio.NewServoDriver(firmataAdaptor, "5") 20 servo4 := gpio.NewServoDriver(firmataAdaptor, "6") 21 servo5 := gpio.NewServoDriver(firmataAdaptor, "7") 22 23 leapMotionAdaptor := leap.NewAdaptor("127.0.0.1:6437") 24 l := leap.NewDriver(leapMotionAdaptor) 25 26 work := func() { 27 fist := false 28 l.On(leap.MessageEvent, func(data interface{}) { 29 handIsOpen := len(data.(leap.Frame).Pointables) > 0 30 if handIsOpen && fist { 31 servo1.Move(0) 32 servo2.Move(0) 33 servo3.Move(0) 34 servo4.Move(0) 35 servo5.Move(0) 36 fist = false 37 } else if !handIsOpen && !fist { 38 servo1.Move(120) 39 servo2.Move(120) 40 servo3.Move(120) 41 servo4.Move(120) 42 servo5.Move(120) 43 fist = true 44 } 45 }) 46 } 47 48 robot := gobot.NewRobot("servoBot", 49 []gobot.Connection{firmataAdaptor, leapMotionAdaptor}, 50 []gobot.Device{servo1, servo2, servo3, servo4, servo5, l}, 51 work, 52 ) 53 54 robot.Start() 55 }