func main() { e := joule.NewAdaptor() led0 := gpio.NewLedDriver(e, "100") led1 := gpio.NewLedDriver(e, "101") led2 := gpio.NewLedDriver(e, "102") led3 := gpio.NewLedDriver(e, "103") work := func() { led0.Off() led1.Off() led2.Off() led3.Off() gobot.Every(1*time.Second, func() { led0.Toggle() }) gobot.Every(2*time.Second, func() { led1.Toggle() }) gobot.Every(4*time.Second, func() { led2.Toggle() }) gobot.Every(8*time.Second, func() { led3.Toggle() }) } robot := gobot.NewRobot("blinkBot", []gobot.Connection{e}, []gobot.Device{led0, led1, led2, led3}, work, ) robot.Start() }
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() { mqttAdaptor := mqtt.NewAdaptor("tcp://test.mosquitto.org:1883", "pinger") work := func() { mqttAdaptor.On("hello", func(data []byte) { fmt.Println("hello") }) mqttAdaptor.On("hola", func(data []byte) { fmt.Println("hola") }) data := []byte("o") gobot.Every(1*time.Second, func() { mqttAdaptor.Publish("hello", data) }) gobot.Every(5*time.Second, func() { mqttAdaptor.Publish("hola", data) }) } robot := gobot.NewRobot("mqttBot", []gobot.Connection{mqttAdaptor}, work, ) robot.Start() }
func main() { mqttAdaptor := mqtt.NewAdaptor("tcp://test.mosquitto.org:1883", "blinker") firmataAdaptor := firmata.NewAdaptor("/dev/ttyACM0") led := gpio.NewLedDriver(firmataAdaptor, "13") work := func() { mqttAdaptor.On("lights/on", func(data []byte) { led.On() }) mqttAdaptor.On("lights/off", func(data []byte) { led.Off() }) data := []byte("") gobot.Every(1*time.Second, func() { mqttAdaptor.Publish("lights/on", data) }) gobot.Every(2*time.Second, func() { mqttAdaptor.Publish("lights/off", data) }) } robot := gobot.NewRobot("mqttBot", []gobot.Connection{mqttAdaptor, firmataAdaptor}, []gobot.Device{led}, work, ) robot.Start() }
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() { firmataAdaptor := firmata.NewAdaptor("/dev/ttyACM0") led1 := gpio.NewLedDriver(firmataAdaptor, "3") led2 := gpio.NewLedDriver(firmataAdaptor, "4") button := gpio.NewButtonDriver(firmataAdaptor, "2") sensor := gpio.NewAnalogSensorDriver(firmataAdaptor, "0") work := func() { gobot.Every(1*time.Second, func() { led1.Toggle() }) gobot.Every(2*time.Second, func() { led2.Toggle() }) button.On(gpio.ButtonPush, func(data interface{}) { led2.On() }) button.On(gpio.ButtonRelease, func(data interface{}) { led2.Off() }) sensor.On(gpio.Data, func(data interface{}) { fmt.Println("sensor", data) }) } robot := gobot.NewRobot("bot", []gobot.Connection{firmataAdaptor}, []gobot.Device{led1, led2, button, sensor}, work, ) robot.Start() }
func main() { natsAdaptor := nats.NewAdaptorWithAuth("localhost:4222", 1234, "user", "pass") work := func() { natsAdaptor.On("hello", func(data []byte) { fmt.Println("hello") }) natsAdaptor.On("hola", func(data []byte) { fmt.Println("hola") }) data := []byte("o") gobot.Every(1*time.Second, func() { natsAdaptor.Publish("hello", data) }) gobot.Every(5*time.Second, func() { natsAdaptor.Publish("hola", data) }) } robot := gobot.NewRobot("natsBot", []gobot.Connection{natsAdaptor}, work, ) robot.Start() }
func main() { master := gobot.NewMaster() spheros := []string{ "/dev/rfcomm0", "/dev/rfcomm1", "/dev/rfcomm2", } for _, port := range spheros { spheroAdaptor := sphero.NewAdaptor(port) cell := sphero.NewSpheroDriver(spheroAdaptor) cell.SetName("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, ) master.AddRobot(robot) } master.Start() }
func main() { firmataAdaptor := firmata.NewAdaptor("/dev/ttyACM0") work := func() { gobot.Every(1*time.Second, func() { val, err := firmataAdaptor.AnalogRead("0") if err != nil { fmt.Println(err) return } voltage := (float64(val) * 5) / 1024 // if using 3.3V replace 5 with 3.3 tempC := (voltage - 0.5) * 100 tempF := (tempC * 9 / 5) + 32 fmt.Printf("%.2f°C\n", tempC) fmt.Printf("%.2f°F\n", tempF) }) } robot := gobot.NewRobot("sensorBot", []gobot.Connection{firmataAdaptor}, []gobot.Device{}, work, ) robot.Start() }
func main() { // use "/dev/ttyUSB0" if connecting with USB cable // use "/dev/ttyAMA0" on devices older than Raspberry Pi 3 Model B megaPiAdaptor := megapi.NewAdaptor("/dev/ttyS0") motor := megapi.NewMotorDriver(megaPiAdaptor, 1) work := func() { speed := int16(0) fadeAmount := int16(30) gobot.Every(100*time.Millisecond, func() { motor.Speed(speed) speed = speed + fadeAmount if speed == 0 || speed == 300 { fadeAmount = -fadeAmount } }) } robot := gobot.NewRobot("megaPiBot", []gobot.Connection{megaPiAdaptor}, []gobot.Device{motor}, work, ) robot.Start() }
func main() { core := particle.NewAdaptor(os.Args[1], os.Args[2]) led := gpio.NewLedDriver(core, "A1") work := func() { brightness := uint8(0) fadeAmount := uint8(25) gobot.Every(500*time.Millisecond, func() { led.Brightness(brightness) brightness = brightness + fadeAmount if brightness == 0 || brightness == 255 { fadeAmount = -fadeAmount } }) } robot := gobot.NewRobot("spark", []gobot.Connection{core}, []gobot.Device{led}, work, ) robot.Start() }
func main() { master := gobot.NewMaster() firmataAdaptor := firmata.NewAdaptor("/dev/ttyACM0") red := gpio.NewLedDriver(firmataAdaptor, "7") red.SetName("red") green := gpio.NewLedDriver(firmataAdaptor, "6") green.SetName("green") blue := gpio.NewLedDriver(firmataAdaptor, "5") blue.SetName("blue") work := func() { checkTravis(master.Robot("travis")) gobot.Every(10*time.Second, func() { checkTravis(master.Robot("travis")) }) } robot := gobot.NewRobot("travis", []gobot.Connection{firmataAdaptor}, []gobot.Device{red, green, blue}, work, ) master.AddRobot(robot) master.Start() }
func main() { firmataAdaptor := firmata.NewAdaptor("/dev/ttyACM0") motor := gpio.NewMotorDriver(firmataAdaptor, "3") work := func() { speed := byte(0) fadeAmount := byte(15) gobot.Every(100*time.Millisecond, func() { motor.Speed(speed) speed = speed + fadeAmount if speed == 0 || speed == 255 { fadeAmount = -fadeAmount } }) } robot := gobot.NewRobot("motorBot", []gobot.Connection{firmataAdaptor}, []gobot.Device{motor}, work, ) robot.Start() }
func main() { board := edison.NewAdaptor() board.SetBoard("miniboard") accel := i2c.NewGroveAccelerometerDriver(board) work := func() { gobot.Every(500*time.Millisecond, func() { if x, y, z, err := accel.XYZ(); err == nil { fmt.Println(x, y, z) fmt.Println(accel.Acceleration(x, y, z)) } else { fmt.Println(err) } }) } robot := gobot.NewRobot("accelBot", []gobot.Connection{board}, []gobot.Device{accel}, work, ) robot.Start() }
func main() { board := edison.NewAdaptor() screen := i2c.NewGroveLcdDriver(board) work := func() { screen.Write("hello") screen.SetRGB(255, 0, 0) gobot.After(5*time.Second, func() { screen.Clear() screen.Home() screen.SetRGB(0, 255, 0) // set a custom character in the first position screen.SetCustomChar(0, i2c.CustomLCDChars["smiley"]) // add the custom character at the end of the string screen.Write("goodbye\nhave a nice day " + string(byte(0))) gobot.Every(500*time.Millisecond, func() { screen.Scroll(false) }) }) screen.Home() time.Sleep(1 * time.Second) screen.SetRGB(0, 0, 255) } robot := gobot.NewRobot("screenBot", []gobot.Connection{board}, []gobot.Device{screen}, work, ) robot.Start() }
func main() { firmataAdaptor := firmata.NewAdaptor("/dev/ttyACM0") servo1 := gpio.NewServoDriver(firmataAdaptor, "5") servo2 := gpio.NewServoDriver(firmataAdaptor, "3") leapAdaptor := leap.NewAdaptor("127.0.0.1:6437") leapDriver := leap.NewDriver(leapAdaptor) work := func() { x := 90.0 z := 90.0 leapDriver.On(leap.MessageEvent, func(data interface{}) { if len(data.(leap.Frame).Hands) > 0 { hand := data.(leap.Frame).Hands[0] x = gobot.ToScale(gobot.FromScale(hand.X(), -300, 300), 30, 150) z = gobot.ToScale(gobot.FromScale(hand.Z(), -300, 300), 30, 150) } }) gobot.Every(10*time.Millisecond, func() { servo1.Move(uint8(x)) servo2.Move(uint8(z)) fmt.Println("Current Angle: ", servo1.CurrentAngle, ",", servo2.CurrentAngle) }) } robot := gobot.NewRobot("pwmBot", []gobot.Connection{firmataAdaptor, leapAdaptor}, []gobot.Device{servo1, servo2, leapDriver}, work, ) robot.Start() }
func main() { firmataAdaptor := firmata.NewAdaptor("/dev/ttyACM0") pin := gpio.NewDirectPinDriver(firmataAdaptor, "13") work := func() { level := byte(1) gobot.Every(1*time.Second, func() { pin.DigitalWrite(level) if level == 1 { level = 0 } else { level = 1 } }) } robot := gobot.NewRobot("pinBot", []gobot.Connection{firmataAdaptor}, []gobot.Device{pin}, work, ) robot.Start() }
func main() { digisparkAdaptor := digispark.NewAdaptor() led := gpio.NewLedDriver(digisparkAdaptor, "0") work := func() { brightness := uint8(0) fadeAmount := uint8(15) gobot.Every(100*time.Millisecond, func() { led.Brightness(brightness) brightness = brightness + fadeAmount if brightness == 0 || brightness == 255 { fadeAmount = -fadeAmount } }) } robot := gobot.NewRobot("pwmBot", []gobot.Connection{digisparkAdaptor}, []gobot.Device{led}, work, ) robot.Start() }
func main() { _, currentfile, _, _ := runtime.Caller(0) cascade := path.Join(path.Dir(currentfile), "haarcascade_frontalface_alt.xml") window := opencv.NewWindowDriver() camera := opencv.NewCameraDriver(0) work := func() { var image *cv.IplImage camera.On(opencv.Frame, func(data interface{}) { image = data.(*cv.IplImage) }) gobot.Every(500*time.Millisecond, func() { if image != nil { i := image.Clone() faces := opencv.DetectFaces(cascade, i) i = opencv.DrawRectangles(i, faces, 0, 255, 0, 5) window.ShowImage(i) } }) } robot := gobot.NewRobot("faceBot", []gobot.Connection{}, []gobot.Device{window, camera}, work, ) robot.Start() }
func main() { gbot := gobot.NewMaster() api.NewAPI(gbot).Start() gbot.AddCommand("echo", func(params map[string]interface{}) interface{} { return params["a"] }) loopback := NewLoopbackAdaptor("/dev/null") ping := NewPingDriver(loopback, "1") work := func() { gobot.Every(5*time.Second, func() { fmt.Println(ping.Ping()) }) } r := gobot.NewRobot("TestBot", []gobot.Connection{loopback}, []gobot.Device{ping}, work, ) r.AddCommand("hello", func(params map[string]interface{}) interface{} { return fmt.Sprintf("Hello, %v!", params["greeting"]) }) gbot.AddRobot(r) gbot.Start() }
func main() { robot := gobot.NewRobot( func() { gobot.Every(500*time.Millisecond, func() { fmt.Println("Greetings human") }) }, ) robot.Start() }
// Halt halts the SpheroDriver and sends a SpheroDriver.Stop command to the Sphero. // Returns true on successful halt. func (s *SpheroDriver) Halt() (err error) { if s.adaptor().connected { gobot.Every(10*time.Millisecond, func() { s.Stop() }) time.Sleep(1 * time.Second) } return }
func main() { robot := gobot.NewRobot( "hello", func() { done := gobot.Every(750*time.Millisecond, func() { fmt.Println("Greetings human") }) gobot.After(5*time.Second, func() { done.Stop() fmt.Println("We're done here") }) }, ) robot.Start() }
func main() { firmataAdaptor := firmata.NewAdaptor("/dev/ttyACM0") led := gpio.NewLedDriver(firmataAdaptor, "13") work := func() { gobot.Every(1*time.Second, func() { led.Toggle() }) } robot := gobot.NewRobot("bot", []gobot.Connection{firmataAdaptor}, []gobot.Device{led}, work, ) robot.Start() }
func main() { firmataAdaptor := firmata.NewTCPAdaptor(os.Args[1]) led := gpio.NewLedDriver(firmataAdaptor, "2") work := func() { gobot.Every(1*time.Second, func() { led.Toggle() }) } robot := gobot.NewRobot("bot", []gobot.Connection{firmataAdaptor}, []gobot.Device{led}, work, ) robot.Start() }
func main() { r := raspi.NewAdaptor() led := gpio.NewLedDriver(r, "7") work := func() { gobot.Every(1*time.Second, func() { led.Toggle() }) } robot := gobot.NewRobot("blinkBot", []gobot.Connection{r}, []gobot.Device{led}, work, ) robot.Start() }
func main() { beagleboneAdaptor := beaglebone.NewAdaptor() led := gpio.NewLedDriver(beagleboneAdaptor, "P9_12") work := func() { gobot.Every(1*time.Second, func() { led.Toggle() }) } robot := gobot.NewRobot("blinkBot", []gobot.Connection{beagleboneAdaptor}, []gobot.Device{led}, work, ) robot.Start() }
func main() { e := edison.NewAdaptor() led := gpio.NewGroveLedDriver(e, "4") work := func() { gobot.Every(1*time.Second, func() { led.Toggle() }) } robot := gobot.NewRobot("blinkBot", []gobot.Connection{e}, []gobot.Device{led}, work, ) robot.Start() }
func main() { board := edison.NewAdaptor() sensor := aio.NewGroveTemperatureSensorDriver(board, "0") work := func() { gobot.Every(500*time.Millisecond, func() { fmt.Println("current temp (c): ", sensor.Temperature()) }) } robot := gobot.NewRobot("sensorBot", []gobot.Connection{board}, []gobot.Device{sensor}, work, ) robot.Start() }
func main() { chipAdaptor := chip.NewAdaptor() led := gpio.NewLedDriver(chipAdaptor, "XIO-P6") work := func() { gobot.Every(1*time.Second, func() { led.Toggle() }) } robot := gobot.NewRobot("blinkBot", []gobot.Connection{chipAdaptor}, []gobot.Device{led}, work, ) robot.Start() }