Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

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