Index

package main

import (
        "time"

        "gobot.io/x/gobot"
        "gobot.io/x/gobot/api"
        "gobot.io/x/gobot/platforms/sphero"
)

func main() {
        master := gobot.NewMaster()
        a := api.NewAPI(master)
        a.Start()

        conn := sphero.NewAdaptor("/dev/rfcomm0")
        ball := sphero.NewSpheroDriver(conn)

        robot := gobot.NewRobot("sphero-dpad",
                []gobot.Connection{conn},
                []gobot.Device{ball},
        )

        robot.AddCommand("move", func(params map[string]interface{}) interface{} {
                direction := params["direction"].(string)

                switch direction {
                case "up":
                        ball.Roll(100, 0)
                case "down":
                        ball.Roll(100, 180)
                case "left":
                        ball.Roll(100, 270)
                case "right":
                        ball.Roll(100, 90)
                }

                time.Sleep(2 * time.Second)
                ball.Stop()
                return "ok"
        })

        master.AddRobot(robot)

        master.Start()
}