README ¶
Raspberry Pi
The Raspberry Pi is an inexpensive and popular ARM based single board computer with digital & PWM GPIO, and i2c interfaces built in.
The Gobot adaptor for the Raspberry Pi should support all of the various Raspberry Pi boards such as the Raspberry Pi 3 Model B, Raspberry Pi 2 Model B, Raspberry Pi 1 Model A+, Raspberry Pi Zero, and Raspberry Pi Zero W.
For more info about the Raspberry Pi platform, click here.
How to Install
We recommend updating to the latest Raspian Jessie OS when using the Raspberry Pi, however Gobot should also support older versions of the OS, should your application require this.
You would normally install Go and Gobot on your workstation. Once installed, cross compile your program on your workstation, transfer the final executable to your Raspberry Pi, and run the program on the Raspberry Pi as documented here.
go get -d -u gobot.io/x/gobot/...
How to Use
The pin numbering used by your Gobot program should match the way your board is labeled right on the board itself.
package main
import (
"time"
"gobot.io/x/gobot"
"gobot.io/x/gobot/drivers/gpio"
"gobot.io/x/gobot/platforms/raspi"
)
func main() {
r := raspi.NewAdaptor()
led := gpio.NewLedDriver(r, "7")
work := func() {
gobot.Every(1*time.Second, func() {
led.Toggle()
})
}
robot := gobot.NewRobot("blinkBot",
[]gobot.Connection{r},
[]gobot.Device{led},
work,
)
robot.Start()
}
How to Connect
Compiling
Compile your Gobot program on your workstation like this:
$ GOARM=6 GOARCH=arm GOOS=linux go build examples/raspi_blink.go
Use the following GOARM
values to compile depending on which model Raspberry Pi you are using:
GOARM=6
(Raspberry Pi A, A+, B, B+, Zero)
GOARM=7
(Raspberry Pi 2, 3)
Once you have compiled your code, you can upload your program and execute it on the Raspberry Pi from your workstation using the scp
and ssh
commands like this:
$ scp raspi_blink pi@192.168.1.xxx:/home/pi/
$ ssh -t pi@192.168.1.xxx "./raspi_blink"
Enabling PWM output on GPIO pins.
For extended PWM support on the Raspberry Pi, you will need to use a program called pi-blaster. You can follow the instructions for pi-blaster install in the pi-blaster repo here:
Documentation ¶
Overview ¶
Package raspi contains the Gobot adaptor for the Raspberry Pi.
For further information refer to raspi README: https://github.com/hybridgroup/gobot/blob/master/platforms/raspi/README.md
Index ¶
- type Adaptor
- func (r *Adaptor) Connect() (err error)
- func (r *Adaptor) DigitalPin(pin string, dir string) (sysfsPin sysfs.DigitalPinner, err error)
- func (r *Adaptor) DigitalRead(pin string) (val int, err error)
- func (r *Adaptor) DigitalWrite(pin string, val byte) (err error)
- func (r *Adaptor) Finalize() (err error)
- func (r *Adaptor) GetConnection(address int, bus int) (connection i2c.Connection, err error)
- func (r *Adaptor) GetDefaultBus() int
- func (r *Adaptor) Name() string
- func (r *Adaptor) PWMPin(pin string) (raspiPWMPin sysfs.PWMPinner, err error)
- func (r *Adaptor) PwmWrite(pin string, val byte) (err error)
- func (r *Adaptor) ServoWrite(pin string, angle byte) (err error)
- func (r *Adaptor) SetName(n string)
- type PWMPin
- func (p *PWMPin) DutyCycle() (duty uint32, err error)
- func (p *PWMPin) Enable(e bool) (err error)
- func (p *PWMPin) Export() error
- func (p *PWMPin) InvertPolarity(invert bool) (err error)
- func (p *PWMPin) Period() (period uint32, err error)
- func (p *PWMPin) Polarity() (polarity string, err error)
- func (p *PWMPin) SetDutyCycle(duty uint32) (err error)
- func (p *PWMPin) SetPeriod(period uint32) (err error)
- func (p *PWMPin) Unexport() error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Adaptor ¶ added in v1.0.0
type Adaptor struct {
// contains filtered or unexported fields
}
Adaptor is the Gobot Adaptor for the Raspberry Pi
func (*Adaptor) Connect ¶ added in v1.0.0
Connect starts connection with board and creates digitalPins and pwmPins adaptor maps
func (*Adaptor) DigitalPin ¶ added in v1.5.0
DigitalPin returns matched digitalPin for specified values
func (*Adaptor) DigitalRead ¶ added in v1.0.0
DigitalRead reads digital value from pin
func (*Adaptor) DigitalWrite ¶ added in v1.0.0
DigitalWrite writes digital value to specified pin
func (*Adaptor) GetConnection ¶ added in v1.2.0
GetConnection returns an i2c connection to a device on a specified bus. Valid bus number is [0..1] which corresponds to /dev/i2c-0 through /dev/i2c-1.
func (*Adaptor) GetDefaultBus ¶ added in v1.2.0
GetDefaultBus returns the default i2c bus for this platform
func (*Adaptor) PWMPin ¶ added in v1.5.0
PWMPin returns a raspi.PWMPin which provides the sysfs.PWMPinner interface
func (*Adaptor) ServoWrite ¶ added in v1.0.0
ServoWrite writes a servo signal to the specified pin
type PWMPin ¶ added in v1.5.0
type PWMPin struct {
// contains filtered or unexported fields
}
PWMPin is the Raspberry Pi implementation of the PWMPinner interface. It uses Pi Blaster.
func (*PWMPin) InvertPolarity ¶ added in v1.5.0
InvertPolarity does not do anything when using PiBlaster
func (*PWMPin) SetDutyCycle ¶ added in v1.5.0
SetDutyCycle writes the duty cycle to the pin