Go library for controlling Pimoroni's Scroll pHat.
Most of the codes were inspired by scroll-phat and Dave Cheney's i2c.
$ go get -u github.com/meinside/scrollphat-go
You need to enable I2C first:
$ sudo raspi-config
Also, your account should be in 'i2c' group:
$ sudo usermod -G i2c USERNAME
// sample.go - sample application for Scroll pHat, 2016.01.07.
package main
import (
"time"
scroll "github.com/meinside/scrollphat-go"
)
func main() {
//scroll.TrimRedundantSpaces = false // don't trim redundant spaces
if phat := scroll.New(); phat != nil {
// set brightneess
phat.SetBrightness(5)
time.Sleep(1 * time.Second)
// turn on all LEDs
phat.Fill()
time.Sleep(1 * time.Second)
// turn off all LEDs
phat.Clear()
time.Sleep(1 * time.Second)
// draw a string (not scrolling)
phat.DrawBytes(scroll.BytesForString(":-)"))
time.Sleep(1 * time.Second)
// draw a string (scrolling)
phat.Scroll(" 0123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz `~!@#$%^&*()-=_+[]{};:\"'<>,.?/\\|", 50)
time.Sleep(1 * time.Second)
// draw points (heart-shaped...)
phat.DrawBytes(scroll.ArraysToBytes([][]uint8{
{0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0},
{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0},
{0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0},
{0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0},
{0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
}))
time.Sleep(1 * time.Second)
// invert LEDs
phat.Invert()
time.Sleep(1 * time.Second)
// turn off all LEDs
phat.Clear()
phat.Close()
} else {
panic("could not initialize ScrollPHat")
}
}
Compile it and run like this:
$ go build sample.go
$ ./sample
Then you'll see:
MIT