gobot.io/x/gobot@v1.16.0/examples/firmata_pca9685.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_pca9685.go /dev/ttyACM0 10 */ 11 12 package main 13 14 import ( 15 "fmt" 16 "os" 17 "time" 18 19 "gobot.io/x/gobot" 20 "gobot.io/x/gobot/drivers/gpio" 21 "gobot.io/x/gobot/drivers/i2c" 22 "gobot.io/x/gobot/platforms/firmata" 23 ) 24 25 func main() { 26 firmataAdaptor := firmata.NewAdaptor(os.Args[1]) 27 pca9685 := i2c.NewPCA9685Driver(firmataAdaptor) 28 servo := gpio.NewServoDriver(pca9685, "15") 29 30 work := func() { 31 pca9685.SetPWMFreq(60) 32 33 for i := 10; i < 150; i += 10 { 34 fmt.Println("Turning", i) 35 servo.Move(uint8(i)) 36 time.Sleep(1 * time.Second) 37 } 38 39 for i := 150; i > 10; i -= 10 { 40 fmt.Println("Turning", i) 41 servo.Move(uint8(i)) 42 time.Sleep(1 * time.Second) 43 } 44 } 45 46 robot := gobot.NewRobot("servoBot", 47 []gobot.Connection{firmataAdaptor}, 48 []gobot.Device{pca9685, servo}, 49 work, 50 ) 51 52 robot.Start() 53 }