Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/djthorpe/gopi

Raspberry Pi Go Language Interface
https://github.com/djthorpe/gopi

golang golang-driver golang-library gopi gpio gpio-library i2c i2c-bus lirc opengl-library opengles openvg openvg-library raspberry-pi raspberry-pi-library raspberry-pi-mouse spi

Last synced: 13 days ago
JSON representation

Raspberry Pi Go Language Interface

Awesome Lists containing this project

README

        

# Read me first

| ![GOPI](https://raw.githubusercontent.com/djthorpe/gopi/master/etc/images/gopi-800x388.png) | Go Language Application Framework |
| :--- | :--- |

[![CircleCI](https://circleci.com/gh/djthorpe/gopi/tree/v3.svg?style=svg)](https://circleci.com/gh/djthorpe/gopi/tree/v3)

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](https://golang.org/dl/). Then retrieve the library on your device, using:

```bash
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,

```bash
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](https://gopi.mutablelogic.com/).

## 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](LICENSE.md) for a copy of this license and for a list of the conditions for redistribution and use.