gobot.io/x/gobot/v2@v2.1.0/examples/firmata_pca9685.go (about) 1 //go:build example 2 // +build example 3 4 // 5 // Do not build by default. 6 7 /* 8 How to run 9 Pass serial port to use as the first param: 10 11 go run examples/firmata_pca9685.go /dev/ttyACM0 12 */ 13 14 package main 15 16 import ( 17 "fmt" 18 "os" 19 "time" 20 21 "gobot.io/x/gobot/v2" 22 "gobot.io/x/gobot/v2/drivers/gpio" 23 "gobot.io/x/gobot/v2/drivers/i2c" 24 "gobot.io/x/gobot/v2/platforms/firmata" 25 ) 26 27 func main() { 28 firmataAdaptor := firmata.NewAdaptor(os.Args[1]) 29 pca9685 := i2c.NewPCA9685Driver(firmataAdaptor) 30 servo := gpio.NewServoDriver(pca9685, "15") 31 32 work := func() { 33 pca9685.SetPWMFreq(60) 34 35 for i := 10; i < 150; i += 10 { 36 fmt.Println("Turning", i) 37 servo.Move(uint8(i)) 38 time.Sleep(1 * time.Second) 39 } 40 41 for i := 150; i > 10; i -= 10 { 42 fmt.Println("Turning", i) 43 servo.Move(uint8(i)) 44 time.Sleep(1 * time.Second) 45 } 46 } 47 48 robot := gobot.NewRobot("servoBot", 49 []gobot.Connection{firmataAdaptor}, 50 []gobot.Device{pca9685, servo}, 51 work, 52 ) 53 54 robot.Start() 55 }