README
¶
C.H.I.P.
The C.H.I.P. is a small, inexpensive ARM based single board computer, with many different IO interfaces available on the pin headers.
For documentation about the C.H.I.P. platform click here.
How to Install
We recommend updating to the latest Debian OS when using the C.H.I.P., 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 C.H.I.P and run the program on the C.H.I.P. itself as documented here.
go get -d -u gobot.io/x/gobot/...
PWM support
Note that PWM might not be available in your kernel. In that case, you can install the required device tree overlay from the command line using Gort CLI commands on the C.H.I.P device. Here are the steps:
Install the required patched device tree compiler as described in the C.H.I.P docs:
gort chip install dtc
Now, install the pwm overlay to activate pwm on the PWM0 pin:
gort chip install pwm
Reboot the device to make sure the init script loads the overlay on boot.
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 (
"fmt"
"gobot.io/x/gobot"
"gobot.io/x/gobot/drivers/gpio"
"gobot.io/x/gobot/platforms/chip"
)
func main() {
chipAdaptor := chip.NewAdaptor()
button := gpio.NewButtonDriver(chipAdaptor, "XIO-P0")
work := func() {
gobot.On(button.Event("push"), func(data interface{}) {
fmt.Println("button pressed")
})
gobot.On(button.Event("release"), func(data interface{}) {
fmt.Println("button released")
})
}
robot := gobot.NewRobot("buttonBot",
[]gobot.Connection{chipAdaptor},
[]gobot.Device{button},
work,
)
robot.Start()
}
How to Connect
Compiling
Compile your Gobot program on your workstation like this:
$ GOARM=7 GOARCH=arm GOOS=linux go build examples/chip_button.go
Once you have compiled your code, you can you can upload your program and execute it on the C.H.I.P. from your workstation using the scp
and ssh
commands like this:
$ scp chip_button root@192.168.1.xx:
$ ssh -t root@192.168.1.xx "./chip_button"
Documentation
¶
Overview ¶
Package chip contains the Gobot adaptor for the CHIP
For further information refer to the chip README: https://github.com/hybridgroup/gobot/blob/master/platforms/chip/README.md
Index ¶
- type Adaptor
- func (c *Adaptor) Connect() (err error)
- func (c *Adaptor) DigitalRead(pin string) (val int, err error)
- func (c *Adaptor) DigitalWrite(pin string, val byte) (err error)
- func (c *Adaptor) Finalize() (err error)
- func (c *Adaptor) GetConnection(address int, bus int) (connection i2c.Connection, err error)
- func (c *Adaptor) GetDefaultBus() int
- func (c *Adaptor) Name() string
- func (c *Adaptor) PwmWrite(pin string, val byte) (err error)
- func (c *Adaptor) ServoWrite(pin string, angle byte) (err error)
- func (c *Adaptor) SetName(n string)
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 represents a Gobot Adaptor for a C.H.I.P.
func (*Adaptor) DigitalRead ¶ added in v1.0.0
DigitalRead reads digital value from the specified pin. Valids pins are the XIO-P0 through XIO-P7 pins from the extender (pins 13-20 on header 14), as well as the SoC pins aka all the other pins.
func (*Adaptor) DigitalWrite ¶ added in v1.0.0
DigitalWrite writes digital value to the specified pin. Valids pins are the XIO-P0 through XIO-P7 pins from the extender (pins 13-20 on header 14), as well as the SoC pins aka all the other pins.
func (*Adaptor) GetConnection ¶ added in v1.2.0
GetConnection returns a connection to a device on a specified bus. Valid bus number is [0..2] which corresponds to /dev/i2c-0 through /dev/i2c-2.
func (*Adaptor) GetDefaultBus ¶ added in v1.2.0
GetDefaultBus returns the default i2c bus for this platform
func (*Adaptor) ServoWrite ¶ added in v1.4.0
ServoWrite writes a servo signal to the specified pin