Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

GOBOT+Arduinoでサーボモーターを動かしてみる その2:制御信号を叩き込む

幸い、PWM制御のサーボ用にドライバーがついてます。
こいつを活かしてやります。
gpio - GoDoc

公式のサンプルは、こんな感じ。
D3ピンにつないだサーボを

package main

import (
  "fmt"
  "time"

  "github.com/hybridgroup/gobot"
  "github.com/hybridgroup/gobot/platforms/firmata"
  "github.com/hybridgroup/gobot/platforms/gpio"
)

func main() {
  gbot := gobot.NewGobot()

  firmataAdaptor := firmata.NewFirmataAdaptor("firmata", "/dev/tty.usbmodem1411")
  servo := gpio.NewServoDriver(firmataAdaptor, "servo", "3") //デジタルの3に繋いでる場合

  work := func() {
    gobot.Every(1*time.Second, func() {
      i := uint8(gobot.Rand(180))
      fmt.Println("Turning", i)
      servo.Move(i)
    })
  }

  robot := gobot.NewRobot("servoBot",
    []gobot.Connection{firmataAdaptor},
    []gobot.Device{servo},
    work,
  )

  gbot.AddRobot(robot)
  gbot.Start()
}

この例だと、D3に繋いだサーボが動きます。
ほかに、CenterやMax、Minといった使い勝手の良さげな奴もあります。

バスパワーさえちゃんと供給すれば、
こんな感じのコード
以下のような動きもできるみたいです。
www.youtube.com