All Projects → djthorpe → Gopi

djthorpe / Gopi

Licence: bsd-2-clause
Raspberry Pi Go Language Interface

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Gopi

Rppal
A Rust library that provides access to the Raspberry Pi's GPIO, I2C, PWM, SPI and UART peripherals.
Stars: ✭ 463 (+464.63%)
Mutual labels:  raspberry-pi, spi, i2c, gpio
Ofxgpio
Library C++ for raspberrypi and orangepi, GPIO interfaces compatible with openframeworks.
Stars: ✭ 155 (+89.02%)
Mutual labels:  raspberry-pi, spi, i2c, gpio
Periph
Go·Hardware·Lean
Stars: ✭ 1,700 (+1973.17%)
Mutual labels:  raspberry-pi, spi, i2c, gpio
Mraa
Linux Library for low speed IO Communication in C with bindings for C++, Python, Node.js & Java. Supports generic io platforms, as well as Intel Edison, Intel Joule, Raspberry Pi and many more.
Stars: ✭ 1,220 (+1387.8%)
Mutual labels:  raspberry-pi, spi, i2c, gpio
Johnny Five
JavaScript Robotics and IoT programming framework, developed at Bocoup.
Stars: ✭ 12,498 (+15141.46%)
Mutual labels:  raspberry-pi, spi, i2c, gpio
Diozero
Java Device I/O library that is portable across Single Board Computers. Tested with Raspberry Pi, Odroid C2, BeagleBone Black, Next Thing CHIP, Asus Tinker Board and Arduinos. Supports GPIO, I2C, SPI as well as Serial communication. Also known to work with Udoo Quad.
Stars: ✭ 167 (+103.66%)
Mutual labels:  raspberry-pi, spi, i2c, gpio
Swiftygpio
A Swift library for hardware projects on Linux/ARM boards with support for GPIOs/SPI/I2C/PWM/UART/1Wire.
Stars: ✭ 1,188 (+1348.78%)
Mutual labels:  raspberry-pi, spi, i2c, gpio
Cylon
JavaScript framework for robotics, drones, and the Internet of Things (IoT)
Stars: ✭ 3,862 (+4609.76%)
Mutual labels:  raspberry-pi, i2c, gpio
Powershell Iot
Interact with I2C, SPI & GPIO devices using PowerShell Core!
Stars: ✭ 106 (+29.27%)
Mutual labels:  spi, i2c, gpio
Ssd1306
Driver for SSD1306, SSD1331, SSD1351, IL9163, ILI9341, ST7735, PCD8544, Nokia 5110 displays running on Arduino/ESP32/Linux (Rasperry) platforms
Stars: ✭ 303 (+269.51%)
Mutual labels:  raspberry-pi, spi, i2c
Drivers
TinyGo drivers for sensors and other devices that use I2C, SPI, GPIO, ADC, and UART interfaces.
Stars: ✭ 250 (+204.88%)
Mutual labels:  spi, i2c, gpio
Luma.oled
Python module to drive a SSD1306 / SSD1309 / SSD1322 / SSD1325 / SSD1327 / SSD1331 / SSD1351 / SH1106 OLED
Stars: ✭ 560 (+582.93%)
Mutual labels:  raspberry-pi, spi, i2c
Elixir ale
Interact with hardware in Elixir - GPIOs, I2C and SPI
Stars: ✭ 336 (+309.76%)
Mutual labels:  spi, i2c, gpio
Nf Interpreter
⚙️ nanoFramework Interpreter, CLR, HAL, PAL and reference target boards
Stars: ✭ 168 (+104.88%)
Mutual labels:  spi, i2c, gpio
Tinygo
Go compiler for small places. Microcontrollers, WebAssembly (WASM/WASI), and command-line tools. Based on LLVM.
Stars: ✭ 9,068 (+10958.54%)
Mutual labels:  spi, i2c, gpio
Raspberrysharp
A .NET/Mono IO Library for Raspberry Pi This library is a complete refactoring of Raspberry-Sharp libraries, merged into one library and updated to RB3, CM3 and RB3+
Stars: ✭ 41 (-50%)
Mutual labels:  spi, i2c, gpio
awesome-embedded-swift
⚡️🛠🧰 A curated list for Embedded and Low-Level development in the Swift programming language.
Stars: ✭ 57 (-30.49%)
Mutual labels:  gpio, i2c, spi
tinyfont
Text library for TinyGo displays
Stars: ✭ 37 (-54.88%)
Mutual labels:  gpio, i2c, spi
Buck50
STM32F103 logic analyzer and more
Stars: ✭ 358 (+336.59%)
Mutual labels:  spi, i2c
Luma.led matrix
Python module to drive LED Matrices & 7-segment displays (MAX7219) and RGB NeoPixels (WS2812 / APA102)
Stars: ✭ 407 (+396.34%)
Mutual labels:  raspberry-pi, spi

Read me first

GOPI Go Language Application Framework

CircleCI

This repository contains an application framework for the Go language, which will allow you to develop applications which utilize a number of features of your computer. It's targetted at the Raspberry Pi presently. The following features are intended to be supported:

  • The GPIO, I2C and SPI interfaces
  • Font loading and rendering in bitmap and vector forms
  • Infrared transmission and receiving, for example for remote controls
  • Network microservices, announcement and discovery using mDNS and gRPC

It would also be great to support the following features in the future:

  • Image and video encoding/decoding, including utilizing hardware acceleration
  • GPU acceleration for 2D graphics
  • 3D graphics
  • Audio devices
  • Input devices like the mouse, keyboard and touchscreen
  • Display and display surfaces, bitmaps and vector graphics
  • Connected cameras
  • User interface widgets and layout
  • Building for Darwin (Macintosh) targets

Requirements

The tested requirements are currently:

  • Any Raspberry Pi (v2, v3, v4, Zero and Zero W have been tested)
  • Raspbian GNU/Linux 9 (other distributions may work, but not tested)
  • Go 1.13

In order to use the library, you'll need to have a working version of Go on your Raspberry Pi, which you can download. Then retrieve the library on your device, using:

go get github.com/djthorpe/gopi/v3

Some libraries will need to be installed for building, RPC and Media services. In order to satisfy these dependencies,

sudo apt install make protobuf-compiler libprotobuf-dev

Other dependencies will be satisfied when running the make command.

Getting Started

In order to get started, build some of the examples in the "cmd" folder. They can be built with the makefile.

  • make all will build the example commands into the build folder;
  • make test runs all tests for the pkg folder;
  • make debian will create .deb packages which can be distributed;
  • make clean removes build intermediate files.

Fuller documentation of the examples and developing your own code against this framework will be available in documentation.

License

Copyright 2016-2020 David Thorpe All Rights Reserved

Redistribution and use in source and binary forms, with or without modification, are permitted with some conditions.

This repository is released under the BSD License. Please see the file LICENSE.md for a copy of this license and for a list of the conditions for redistribution and use.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].