func main() { deviceName := flag.String("device", "", "path to Sphero device") flag.Parse() gbot := gobot.NewGobot() adaptor := sphero.NewSpheroAdaptor("sphero", *deviceName) driver := sphero.NewSpheroDriver(adaptor, "sphero") work := func() { gobot.Every(3*time.Second, func() { driver.Roll(30, uint16(gobot.Rand(360))) }) } robot := gobot.NewRobot("sphero", []gobot.Connection{adaptor}, []gobot.Device{driver}, work, ) gbot.AddRobot(robot) gbot.Start() }
func main() { gbot := gobot.NewGobot() leapAdaptor := leap.NewLeapMotionAdaptor("leap", "127.0.0.1:6437") spheroAdaptor := sphero.NewSpheroAdaptor("Sphero", "/dev/tty.Sphero-YBW-RN-SPP") leapDriver := leap.NewLeapMotionDriver(leapAdaptor, "leap") spheroDriver := sphero.NewSpheroDriver(spheroAdaptor, "sphero") work := func() { gobot.On(leapDriver.Event("message"), func(data interface{}) { hands := data.(leap.Frame).Hands if len(hands) > 0 { x := math.Abs(hands[0].Direction[0]) y := math.Abs(hands[0].Direction[1]) z := math.Abs(hands[0].Direction[2]) spheroDriver.SetRGB(scale(x), scale(y), scale(z)) } }) } robot := gobot.NewRobot("leapBot", []gobot.Connection{leapAdaptor, spheroAdaptor}, []gobot.Device{leapDriver, spheroDriver}, work, ) gbot.AddRobot(robot) gbot.Start() }
func main() { gbot := gobot.NewGobot() api.NewAPI(gbot).Start() spheros := map[string]string{ "Sphero-BPO": "/dev/rfcomm0", } for name, port := range spheros { spheroAdaptor := sphero.NewSpheroAdaptor("sphero", port) spheroDriver := sphero.NewSpheroDriver(spheroAdaptor, "sphero") work := func() { spheroDriver.SetRGB(uint8(255), uint8(0), uint8(0)) } robot := gobot.NewRobot(name, []gobot.Connection{spheroAdaptor}, []gobot.Device{spheroDriver}, work, ) robot.AddCommand("turn_blue", func(params map[string]interface{}) interface{} { spheroDriver.SetRGB(uint8(0), uint8(0), uint8(255)) return nil }) gbot.AddRobot(robot) } gbot.Start() }
func main() { master := gobot.NewGobot() spheros := map[string]string{ "Sphero-BPO": "/dev/rfcomm0", } for name, port := range spheros { spheroAdaptor := sphero.NewSpheroAdaptor("sphero", port) spheroDriver := sphero.NewSpheroDriver(spheroAdaptor, "sphero") work := func() { spheroDriver.SetRGB(uint8(255), uint8(0), uint8(0)) } master.Robots = append(master.Robots, gobot.NewRobot(name, []gobot.Connection{spheroAdaptor}, []gobot.Device{spheroDriver}, work)) } master.Robots = append(master.Robots, gobot.NewRobot( "", nil, nil, func() { gobot.Every(1*time.Second, func() { gobot.Call(master.Robot("Sphero-BPO").Device("sphero").Driver, "SetRGB", uint8(gobot.Rand(255)), uint8(gobot.Rand(255)), uint8(gobot.Rand(255))) }) }, )) master.Start() }
func main() { gbot := gobot.NewGobot() adaptor := sphero.NewSpheroAdaptor("Sphero", "/dev/rfcomm0") spheroDriver := sphero.NewSpheroDriver(adaptor, "sphero") work := func() { gobot.On(spheroDriver.Event("collision"), func(data interface{}) { fmt.Println("Collision Detected!") }) gobot.Every(3*time.Second, func() { spheroDriver.Roll(30, uint16(gobot.Rand(360))) }) gobot.Every(1*time.Second, func() { r := uint8(gobot.Rand(255)) g := uint8(gobot.Rand(255)) b := uint8(gobot.Rand(255)) spheroDriver.SetRGB(r, g, b) }) } robot := gobot.NewRobot("sphero", []gobot.Connection{adaptor}, []gobot.Device{spheroDriver}, work, ) gbot.AddRobot(robot) gbot.Start() }
func main() { gbot := gobot.NewGobot() adaptor := sphero.NewSpheroAdaptor("Sphero", "/dev/rfcomm0") board := edison.NewEdisonAdaptor("edison") spheroDriver := sphero.NewSpheroDriver(adaptor, "sphero") sensorAccel := i2c.NewGroveAccelerometerDriver(board, "accel") work := func() { gobot.Every(time.Millisecond*20, func() { if x, y, z, err := sensorAccel.XYZ(); err == nil { degree := math.Sin(y/x) * 360 spheroDriver.Roll(uint8(100+z), uint16(degree)) } }) } robot := gobot.NewRobot("sphero", []gobot.Connection{adaptor, board}, []gobot.Device{sensorAccel, spheroDriver}, work, ) gbot.AddRobot(robot) gbot.Start() }
func main() { gbot := gobot.NewGobot() adaptor := sphero.NewSpheroAdaptor("sphero", "/dev/tty.Sphero-BRB-AMP-SPP") driver := sphero.NewSpheroDriver(adaptor, "sphero") work := func() { gobot.Every(100*time.Millisecond, func() { driver.SetRGB( uint8(gobot.Rand(255)), uint8(gobot.Rand(255)), uint8(gobot.Rand(255))) }) } robot := gobot.NewRobot("sphero", []gobot.Connection{adaptor}, []gobot.Device{driver}, work, ) gbot.AddRobot(robot) gbot.Start() }
func main() { gbot := gobot.NewGobot() spheros := []string{ "/dev/rfcomm0", "/dev/rfcomm1", "/dev/rfcomm2", } for _, port := range spheros { spheroAdaptor := sphero.NewSpheroAdaptor("Sphero", port) cell := sphero.NewSpheroDriver(spheroAdaptor, "Sphero"+port) work := func() { conway := new(conway) conway.cell = cell conway.birth() cell.On(sphero.Collision, func(data interface{}) { conway.contact() }) gobot.Every(3*time.Second, func() { if conway.alive { conway.movement() } }) gobot.Every(10*time.Second, func() { if conway.alive { conway.birthday() } }) } robot := gobot.NewRobot("conway", []gobot.Connection{spheroAdaptor}, []gobot.Device{cell}, work, ) gbot.AddRobot(robot) } gbot.Start() }
func (s *s_robot) Start() { // Connect Sphero with Gobot gbot := gobot.NewGobot() adaptor := sphero.NewSpheroAdaptor(s.Name, s.Port) driver := sphero.NewSpheroDriver(adaptor, "sphero") s.connection = adaptor s.device = driver robot := gobot.NewRobot(s.Name, []gobot.Connection{adaptor}, []gobot.Device{driver}, ) gbot.AddRobot(robot) gbot.Start() }
func (s *sphero_struct) Start() { gbot := gobot.NewGobot() adaptor := sphero.NewSpheroAdaptor("sphero", s.Port) driver := sphero.NewSpheroDriver(adaptor, "sphero") s.connection = adaptor s.device = driver robot := gobot.NewRobot("sphero", []gobot.Connection{adaptor}, []gobot.Device{driver}, ) gbot.AddRobot(robot) gbot.Start() }
func main() { master := gobot.NewGobot() spheros := []string{ "/dev/rfcomm0", "/dev/rfcomm1", "/dev/rfcomm2", } for s := range spheros { spheroAdaptor := sphero.NewSpheroAdaptor("Sphero", spheros[s]) cell := sphero.NewSpheroDriver(spheroAdaptor, "Sphero"+spheros[s]) work := func() { conway := new(conway) conway.cell = cell conway.birth() gobot.On(cell.Events["Collision"], func(data interface{}) { conway.contact() }) gobot.Every(3*time.Second, func() { if conway.alive == true { conway.movement() } }) gobot.Every(10*time.Second, func() { if conway.alive == true { conway.birthday() } }) } master.Robots = append(master.Robots, gobot.NewRobot("conway", []gobot.Connection{spheroAdaptor}, []gobot.Device{cell}, work)) } master.Start() }
func main() { gbot := gobot.NewGobot() spheros := []string{ "/dev/rfcomm0", "/dev/rfcomm1", "/dev/rfcomm2", "/dev/rfcomm3", } for _, port := range spheros { spheroAdaptor := sphero.NewSpheroAdaptor("Sphero", port) spheroDriver := sphero.NewSpheroDriver(spheroAdaptor, "Sphero"+port) work := func() { spheroDriver.Stop() spheroDriver.On(sphero.Collision, func(data interface{}) { fmt.Println("Collision Detected!") }) gobot.Every(1*time.Second, func() { spheroDriver.Roll(100, uint16(gobot.Rand(360))) }) gobot.Every(3*time.Second, func() { spheroDriver.SetRGB(uint8(gobot.Rand(255)), uint8(gobot.Rand(255)), uint8(gobot.Rand(255)), ) }) } robot := gobot.NewRobot("sphero", []gobot.Connection{spheroAdaptor}, []gobot.Device{spheroDriver}, work, ) gbot.AddRobot(robot) } gbot.Start() }
func main() { gbot := gobot.NewGobot() spheros := map[string]string{ "Sphero-BPO": "/dev/rfcomm0", } for name, port := range spheros { spheroAdaptor := sphero.NewSpheroAdaptor("sphero", port) spheroDriver := sphero.NewSpheroDriver(spheroAdaptor, "sphero") work := func() { spheroDriver.SetRGB(uint8(255), uint8(0), uint8(0)) } robot := gobot.NewRobot(name, []gobot.Connection{spheroAdaptor}, []gobot.Device{spheroDriver}, work, ) gbot.AddRobot(robot) } robot := gobot.NewRobot("", func() { gobot.Every(1*time.Second, func() { sphero := gbot.Robot("Sphero-BPO").Device("sphero").(*sphero.SpheroDriver) sphero.SetRGB(uint8(gobot.Rand(255)), uint8(gobot.Rand(255)), uint8(gobot.Rand(255)), ) }) }, ) gbot.AddRobot(robot) gbot.Start() }
func main() { gbot := gobot.NewGobot() adaptor := sphero.NewSpheroAdaptor("Sphero", "/dev/rfcomm0") spheroDriver := sphero.NewSpheroDriver(adaptor, "sphero") work := func() { spheroDriver.SetDataStreaming(sphero.DefaultDataStreamingConfig()) gobot.On(spheroDriver.Event(sphero.Collision), func(data interface{}) { fmt.Printf("Collision! %+v\n", data) }) gobot.On(spheroDriver.Event(sphero.SensorData), func(data interface{}) { fmt.Printf("Streaming Data! %+v\n", data) }) gobot.Every(3*time.Second, func() { spheroDriver.Roll(30, uint16(gobot.Rand(360))) }) gobot.Every(1*time.Second, func() { r := uint8(gobot.Rand(255)) g := uint8(gobot.Rand(255)) b := uint8(gobot.Rand(255)) spheroDriver.SetRGB(r, g, b) }) } robot := gobot.NewRobot("sphero", []gobot.Connection{adaptor}, []gobot.Device{spheroDriver}, work, ) gbot.AddRobot(robot) gbot.Start() }
func main() { gbot := gobot.NewGobot() adaptor := sphero.NewSpheroAdaptor("sphero", "/dev/tty.Sphero-BRB-AMP-SPP") driver := sphero.NewSpheroDriver(adaptor, "sphero") work := func() { gobot.Every(1*time.Second, func() { driver.Roll(50, uint16(gobot.Rand(360))) }) } robot := gobot.NewRobot("sphero", []gobot.Connection{adaptor}, []gobot.Device{driver}, work, ) gbot.AddRobot(robot) gbot.Start() }
func main() { master := gobot.NewGobot() spheros := []string{ "/dev/rfcomm0", "/dev/rfcomm1", "/dev/rfcomm2", "/dev/rfcomm3", } for s := range spheros { spheroAdaptor := sphero.NewSpheroAdaptor("Sphero", spheros[s]) spheroDriver := sphero.NewSpheroDriver(spheroAdaptor, "Sphero"+spheros[s]) work := func() { spheroDriver.Stop() gobot.On(spheroDriver.Events["Collision"], func(data interface{}) { fmt.Println("Collision Detected!") }) gobot.Every(1*time.Second, func() { spheroDriver.Roll(100, uint16(gobot.Rand(360))) }) gobot.Every(3*time.Second, func() { spheroDriver.SetRGB(uint8(gobot.Rand(255)), uint8(gobot.Rand(255)), uint8(gobot.Rand(255))) }) } master.Robots = append(master.Robots, gobot.NewRobot("sphero", []gobot.Connection{spheroAdaptor}, []gobot.Device{spheroDriver}, work)) } master.Start() }
func main() { gbot := gobot.NewGobot() a := api.NewAPI(gbot) a.Start() conn := sphero.NewSpheroAdaptor("Sphero", "/dev/rfcomm0") ball := sphero.NewSpheroDriver(conn, "sphero") 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" }) gbot.AddRobot(robot) gbot.Start() }