func NewSwarmBot(port string) *gobot.Robot { spheroAdaptor := sphero.NewAdaptor(port) spheroDriver := sphero.NewSpheroDriver(spheroAdaptor) spheroDriver.SetName("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, ) return robot }
func main() { adaptor := sphero.NewAdaptor("/dev/rfcomm0") spheroDriver := sphero.NewSpheroDriver(adaptor) work := func() { spheroDriver.SetDataStreaming(sphero.DefaultDataStreamingConfig()) spheroDriver.On(sphero.Collision, func(data interface{}) { fmt.Printf("Collision! %+v\n", data) }) spheroDriver.On(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, ) robot.Start() }
func main() { e := joule.NewAdaptor() led := gpio.NewRgbLedDriver(e, "25", "27", "29") work := func() { gobot.Every(1*time.Second, func() { r := uint8(gobot.Rand(255)) g := uint8(gobot.Rand(255)) b := uint8(gobot.Rand(255)) led.SetRGB(r, g, b) }) } robot := gobot.NewRobot("rgbBot", []gobot.Connection{e}, []gobot.Device{led}, work, ) robot.Start() }
func main() { board := firmata.NewAdaptor("/dev/ttyACM0") led := gpio.NewRgbLedDriver(board, "3", "5", "6") work := func() { gobot.Every(1*time.Second, func() { r := uint8(gobot.Rand(255)) g := uint8(gobot.Rand(255)) b := uint8(gobot.Rand(255)) led.SetRGB(r, g, b) }) } robot := gobot.NewRobot("rgbBot", []gobot.Connection{board}, []gobot.Device{led}, work, ) robot.Start() }
func main() { bleAdaptor := ble.NewClientAdaptor(os.Args[1]) bb8 := bb8.NewDriver(bleAdaptor) work := func() { gobot.Every(1*time.Second, func() { r := uint8(gobot.Rand(255)) g := uint8(gobot.Rand(255)) b := uint8(gobot.Rand(255)) bb8.SetRGB(r, g, b) }) } robot := gobot.NewRobot("bbBot", []gobot.Connection{bleAdaptor}, []gobot.Device{bb8}, work, ) robot.Start() }
func main() { master := gobot.NewMaster() spheros := map[string]string{ "Sphero-BPO": "/dev/rfcomm0", } for name, port := range spheros { spheroAdaptor := sphero.NewAdaptor(port) spheroDriver := sphero.NewSpheroDriver(spheroAdaptor) work := func() { spheroDriver.SetRGB(uint8(255), uint8(0), uint8(0)) } robot := gobot.NewRobot(name, []gobot.Connection{spheroAdaptor}, []gobot.Device{spheroDriver}, work, ) master.AddRobot(robot) } robot := gobot.NewRobot("", func() { gobot.Every(1*time.Second, func() { sphero := master.Robot("Sphero-BPO").Device("sphero").(*sphero.SpheroDriver) sphero.SetRGB(uint8(gobot.Rand(255)), uint8(gobot.Rand(255)), uint8(gobot.Rand(255)), ) }) }, ) master.AddRobot(robot) master.Start() }
func main() { firmataAdaptor := firmata.NewAdaptor("/dev/ttyACM0") blinkm := i2c.NewBlinkMDriver(firmataAdaptor) work := func() { gobot.Every(3*time.Second, func() { r := byte(gobot.Rand(255)) g := byte(gobot.Rand(255)) b := byte(gobot.Rand(255)) blinkm.Rgb(r, g, b) color, _ := blinkm.Color() fmt.Println("color", color) }) } robot := gobot.NewRobot("blinkmBot", []gobot.Connection{firmataAdaptor}, []gobot.Device{blinkm}, work, ) robot.Start() }
func main() { bleAdaptor := ble.NewClientAdaptor(os.Args[1]) ollie := ollie.NewDriver(bleAdaptor) work := func() { ollie.SetRGB(255, 0, 255) gobot.Every(3*time.Second, func() { ollie.Roll(40, uint16(gobot.Rand(360))) }) } robot := gobot.NewRobot("ollieBot", []gobot.Connection{bleAdaptor}, []gobot.Device{ollie}, work, ) robot.Start() }
func main() { beagleboneAdaptor := beaglebone.NewAdaptor() servo := gpio.NewServoDriver(beagleboneAdaptor, "P9_14") 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{beagleboneAdaptor}, []gobot.Device{servo}, work, ) robot.Start() }
func main() { firmataAdaptor := firmata.NewAdaptor("/dev/ttyACM0") servo := gpio.NewServoDriver(firmataAdaptor, "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, ) robot.Start() }
func ExampleRand() { i := gobot.Rand(100) fmt.Printf("%v is > 0 && < 100", i) }
func (c *conway) movement() { if c.alive { c.cell.Roll(100, uint16(gobot.Rand(360))) } }