github.com/dmcgowan/pigo

Go library for Raspberry Pi


License
MIT
Install
go get github.com/dmcgowan/pigo

Documentation

PiGo

Go library for Raspberry Pi GPIO

Reference

http://elinux.org/RPi_Low-level_peripherals

http://elinux.org/RPi_BCM2835_GPIOs

Example

Sample program which will display an 8bit value given from command line args onto gpio pins (rev2).

sample.go (go run sample.go -d 7 will set gpio 7, 8, 9 high and 10, 11, 14, 15, 17 low)

	package main

	import (
		"github.com/dmcgowan/pigo"
		"flag"
		"log"
	)

	var display_value = flag.Int("d", 0, "Value to display on led")

	func main() {
		flag.Parse()
		gp, err := pigo.NewMmapGPIO() // or pigo.NewSysGPIO()
		if err != nil {
			log.Fatalln(err)
		}
		defer gp.Close()

		output_bits := [8]pigo.PinNumber{7, 8, 9, 10, 11, 14, 15, 17}

		for _, bit := range output_bits {
			gp.SetDirection(bit, pigo.Out)
		}
                    
		value := pigo.Value(*display_value)

		for i := uint(0); i < 8 ; i++ {
			gp.SetValue(output_bits[i], (value >> i & 0x01))
		}
	}

License

MIT License, See LICENSE file

Copyright (C) 2013 Derek McGowan