Code Monkey home page Code Monkey logo

go-hardware's Introduction

Go + hardware

This repo is a directory of tools, packages and tutorials to let you introduce Go in your hardware projects.

Why Go?

  • Great tooling that comes with a strong cross compilation story.
  • Builtin concurrency primitives in Go is making it easier to write concurrent programs.
  • Go runs on ARM boards. ARM boards are getting cheaper, making it easier for production designs to include them. Higher-level languages have more opportunities than ever on hardware projects.
  • Go is garbage collected but you can still use it to write non-realtime or networked controllers. There are plenty of Go users who program their experimental drone flight control software in Go, it's OK for prototyping.
  • Go's network stack is maintained well. Standard library might be missing higher level implementations for P2P protocols, but the community works to fill that gap.
  • Writing C bindings in Go is a pleasure with cgo.

Tutorials

Packages

Controllers, robotics, etc

  • gobot - High level Go package with a variety of platform APIs to talk to popular drivers such as GPIO on Arduino and Raspberry Pi, Leap Motion or Pebble.
  • embd - Embedded programming framework for Go.
  • fadecandy - Dithering OPC-based LED controller
  • godrone - High level Parrot AR Drone 2.0 framework written in Go.
  • launchpad - High level controller library for Novation Launchpad.
  • littlebits - littleBits controller for Go. It requires USB I/O module.
  • hwio - Hardware library for ARM boards such as Raspberry Pi and BeagleBone, loosely based on Arduino.
  • go-lepton - Streams images taken on a FLIR Lepton connected to a Raspberry Pi SPI port to over via WebSockets via embedded HTTP server.

Signal processing, computer vision, graphics, media

  • go-gl - OpenGL bindings for Go.
  • go-opc - Open Pixel Control bindings for Go.
  • go-opencv - OpenVM bindings for Go.
  • go-sox - SoX bindings for Go.
  • portaudio - PortAudio bindings for Go.
  • portmidi - PortMidi bindings for Go.
  • go-osc - Open Sound Control (OSC) bindings for Go.
  • openvg - 2D Graphics library wrapping the OpenVG API

Networking

  • mdns - mDNS server and client implementation in Go. Multicast DNS can be used to discover services and message on the local network without the use of an authoritative DNS server.
  • gatt - Provides a Bluetooth Low Energy GATT implementation.

Mobile

Contributions are welcome, please fork and open a PR if you see a missing package, tutorial, etc.

go-hardware's People

Contributors

ajstarks avatar gguuss avatar mrmorphic avatar rakyll avatar wolfeidau avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.