Go, Robot, Go!
Golang Powered Robotics

Next generation robotics/IoT framework with support for 35 different platforms

Start Now

Gobot is a framework for robots, drones, and the Internet of Things (IoT), written in the Go programming language

Meet The Code

Gobot makes controlling robots and devices incredibly simple and fun.

All you need to get started is to install Gobot:

$ go get -d -u gobot.io/x/gobot/...

The "Hello, World" Of Things

This program connects to an Arduino, and toggles an LED, every one second.

package main

import (
  "time"

  "gobot.io/x/gobot"
  "gobot.io/x/gobot/drivers/gpio"
  "gobot.io/x/gobot/platforms/firmata"
)

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()
}

We've got many more examples to help you get started on your next IoT project!

Platform Support

Gobot has a extensible system for connecting to hardware devices. The following robotics and physical computing platforms are currently supported:

35 Platforms

19 GPIO drivers

Support for devices that use General Purpose Input/Output (GPIO) communication have a shared set of drivers provided using the "gobot/drivers/gpio" package:

5 Analog I/O (AIO) drivers

Support for devices that use Analog Input/Output (AIO) communication have a shared set of drivers provided using the "gobot/drivers/aio" package:

24 I2C drivers

Support for devices that use Inter-Integrated Circuit (I2C) communication have a shared set of drivers provided using the "gobot/drivers/i2c" package:

8 SPI drivers

Support for devices that use Serial Peripheral Interface (SPI) communication have a shared set of drivers provided using the "gobot/drivers/spi" package:

API

Gobot includes a RESTful API to query the status of any connection, device or robot running in your swarm. It additionally has the ability to issue commands directly to your devices and robots. Check out http://cppp.io for more information.

It also comes with the robeaux React.JS interface baked right into its API server for quick and easy configuration.

You can check out more information on the Gobot API in the docs here

CLI

Gobot is designed to be using in conjunction with Gort, a Command Line Toolkit (CLI) for RobotOps. Gort provides tools to scan for connected devices, upload firmware, and it works perfectly with Gobot. Also included with Gobot is a CLI for generating new robots and adaptors.

Gobot also has it own CLI which you can learn more about here.

Be Part Of The Robot Evolution