As a backend project, hybridgroup/gobot has picked up 9.5k stars on GitHub (Go). Golang framework for robotics, drones, and the Internet of Things (IoT)
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
Gobot (https://gobot.io/) is a framework using the Go programming language (https://golang.org/) for robotics, physical
computing, and the Internet of Things.
It provides a simple, yet powerful way to create solutions that incorporate multiple, different hardware devices at the
same time.
Want to run Go directly on microcontrollers? Check out our sister project TinyGo (https://tinygo.org/)
Getting Started
Get in touch
Get the Gobot source code by running this commands:
Afterwards have a look at the examples directory. You need to find an example matching your platform for your
first test (e.g. "raspi_blink.go"). Than build the binary (cross compile), transfer it to your target and run it.
env GOOS=linux GOARCH=arm GOARM=5 go build -o ./output/my_raspi_bink examples/raspi_blink.go
Building the code on your local machine with the example code above will create a binary for ARMv5. This is probably not
what you need for your specific target platform. Please read also the platform specific documentation in the platform
subfolders.
Create your first project
Create a new folder and a new Go module project.
mkdir ~/my_gobot_example
cd ~/my_gobot_example
go mod init my.gobot.example.com
Copy your example file besides the go.mod file, import the requirements and build.
cp /<path to gobot folder>/examples/raspi_blink.go ~/my_gobot_example/
go mod tidy
env GOOS=linux GOARCH=arm GOARM=5 go build -o ./output/my_raspi_bink raspi_blink.go
Now you are ready to modify the example and test your changes. Start by removing the build directives at the beginning
of the file.
You can use the entire Gobot framework as shown in the examples above ("Classic" Gobot), or you can pick and choose from
the various Gobot packages to control hardware with nothing but pure idiomatic Golang code ("Metal" Gobot). For example:
package main
import (
"gobot.io/x/gobot/v2/drivers/gpio"
"gobot.io/x/gobot/v2/platforms/intel-iot/edison"
"time"
)
func main() {
e := edison.NewAdaptor()
if err := e.Connect(); err != nil {
fmt.Println(err)
}
led := gpio.NewLedDriver(e, "13")
if err := led.Start(); err != nil {
fmt.Println(err)
}
for {
if err := led.Toggle(); err != nil {
fmt.Println(err)
}
time.Sleep(1000 * time.Millisecond)
}
}
"Manager" Gobot
You can also use the full capabilities of the framework aka "Manager Gobot" to control swarms of robots or other features
such as the built-in API server. For example:
Generic driver for read and write values to/from register address
Grove Digital Accelerometer
GrovePi Expansion Board
Grove RGB LCD
HMC6352 Compass
HMC5883L 3-Axis Digital Compass
INA3221 Voltage Monitor
JHD1313M1 LCD Display w/RGB Backlight
L3GD20H 3-Axis Gyroscope
LIDAR-Lite
MCP23017 Port Expander
MMA7660 3-Axis Accelerometer
MPL115A2 Barometric Pressure/Temperature
MPU6050 Accelerometer/Gyroscope
PCA9501 8-bit I/O port with interrupt, 2-kbit EEPROM
PCA953x LED Dimmer for PCA9530 (2-bit), PCA9533 (4-bit), PCA9531 (8-bit), PCA9532 (16-bit)
PCA9685 16-channel 12-bit PWM/Servo Driver
PCF8583 clock and calendar or event counter, 240 x 8-bit RAM
PCF8591 8-bit 4xA/D & 1xD/A converter
SHT2x Temperature/Humidity
SHT3x-D Temperature/Humidity
SSD1306 OLED Display Controller
TSL2561 Digital Luminosity/Lux/Light Sensor
Wii Nunchuck Controller
YL-40 Brightness/Temperature sensor, Potentiometer, analog input, analog output Driver
Support for many devices that use Serial communication (UART) have a shared set of drivers provided using
the gobot/drivers/serial package:
UART <=> Drivers
Sphero: Sphero
Neurosky: MindWave
MegaPi: MotorDriver
Support for devices that use Serial Peripheral Interface (SPI) have
a shared set of drivers provided using the gobot/drivers/spi package:
SPI <=> Drivers
APA102 Programmable LEDs
MCP3002 Analog/Digital Converter
MCP3004 Analog/Digital Converter
MCP3008 Analog/Digital Converter
MCP3202 Analog/Digital Converter
MCP3204 Analog/Digital Converter
MCP3208 Analog/Digital Converter
MCP3304 Analog/Digital Converter
MFRC522 RFID Card Reader
SSD1306 OLED Display Controller
Support for devices that use 1-wire bus with Linux Kernel support (w1-gpio) have
a shared set of drivers provided using the gobot/drivers/onewire package:
1-wire <=> Drivers
DS18B20 Temperature Sensor
API
Gobot includes a RESTful API to query the status of any robot running within a group, including the connection and
device status, and execute device commands.
To activate the API, import the gobot.io/x/gobot/v2/api package and instantiate the API like this:
You may access the robeaux React.js interface with Gobot by navigating to http://localhost:3000/index.html.
CLI
Gobot uses the Gort http://gort.io Command Line Interface (CLI) so you can access important features
right from the command line. We call it "RobotOps", aka "DevOps For Robotics". You can scan, connect, update device
firmware, and more!
Documentation
We're always adding documentation to our web site at https://gobot.io/ please check there as we continue to work on Gobot
For our contribution guidelines, please go to https://github.com/hybridgroup/gobot/blob/release/CONTRIBUTING.md
.
Gobot is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.
You can read about it here.
License
Copyright (c) 2013-2020 The Hybrid Group. Licensed under the Apache 2.0 license.
The Contributor Covenant is released under the Creative Commons Attribution 4.0 International Public License, which
requires that attribution be included.
The most recent commit recorded on hybridgroup/gobot was 9 months ago, based on the GitHub push timestamp. The repository has 1.1k forks — one of the better signals of community interest.
Is hybridgroup/gobot open source?
TopGit's metadata for hybridgroup/gobot does not record a license. Most public repositories on GitHub ARE open source, but the exact terms vary — verify by opening the LICENSE file directly.
The project maintains a homepage at https://gobot.io. The README tab on this page also usually contains screenshots and a quickstart.
Where do I read more about hybridgroup/gobot?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/hybridgroup/gobot is the definitive source.
Read full README in the tab above.
Want a second opinion on gobot?
Ask an AI that can read this page — one click and you get its take on gobot.