2016-12-19 23:45:03 +08:00
# Raspberry Pi
2014-11-05 09:14:36 +08:00
2014-11-29 07:34:42 +08:00
The Raspberry Pi is an inexpensive and popular ARM based single board computer with digital & PWM GPIO, and i2c interfaces built in.
2014-11-05 09:14:36 +08:00
2016-12-20 19:18:15 +08:00
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+, and Raspberry Pi Zero.
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.
2014-11-29 07:34:42 +08:00
For more info about the Raspberry Pi platform, click [here ](http://www.raspberrypi.org/ ).
2015-01-02 23:05:24 +08:00
## How to Install
2014-12-29 18:41:28 +08:00
2015-01-02 23:05:24 +08:00
```
2016-12-08 20:24:03 +08:00
go get -d -u gobot.io/x/gobot/... & & go install gobot.io/x/gobot/platforms/raspi
2015-01-02 23:05:24 +08:00
```
2014-12-29 18:41:28 +08:00
2016-12-19 23:45:03 +08:00
## How to Use
2015-07-01 07:33:13 +08:00
2016-12-19 23:45:03 +08:00
The pin numbering used by your Gobot program should match the way your board is labeled right on the board itself.
2015-07-01 07:33:13 +08:00
2016-12-19 23:45:03 +08:00
```go
package main
2015-07-01 07:33:13 +08:00
2016-12-19 23:45:03 +08:00
import (
"time"
2014-12-29 18:41:28 +08:00
2016-12-19 23:45:03 +08:00
"gobot.io/x/gobot"
"gobot.io/x/gobot/drivers/gpio"
"gobot.io/x/gobot/platforms/raspi"
)
2014-12-29 18:41:28 +08:00
2016-12-19 23:45:03 +08:00
func main() {
r := raspi.NewAdaptor()
led := gpio.NewLedDriver(r, "7")
2014-11-05 09:14:36 +08:00
2016-12-19 23:45:03 +08:00
work := func() {
gobot.Every(1*time.Second, func() {
led.Toggle()
})
}
2014-11-05 09:14:36 +08:00
2016-12-19 23:45:03 +08:00
robot := gobot.NewRobot("blinkBot",
[]gobot.Connection{r},
[]gobot.Device{led},
work,
)
robot.Start()
}
2014-11-05 09:14:36 +08:00
```
2016-12-19 23:45:03 +08:00
## How to Connect
2014-11-05 09:14:36 +08:00
2016-12-19 23:45:03 +08:00
### Compiling
2014-11-05 09:14:36 +08:00
2016-12-19 23:45:03 +08:00
Simply compile your Gobot program like this:
2014-11-29 07:34:42 +08:00
2014-11-05 09:14:36 +08:00
```bash
2017-01-06 21:53:39 +08:00
$ GOARM=6 GOARCH=arm GOOS=linux go build examples/raspi_blink.go
2014-11-05 09:14:36 +08:00
```
2016-12-21 01:22:24 +08:00
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 simply upload your program over the network from your host computer to the Raspi
2014-11-29 07:34:42 +08:00
```bash
2014-11-05 09:14:36 +08:00
$ scp raspi_blink pi@192.168.1.xxx:/home/pi/
```
and execute it on your Raspberry Pi with
2014-11-29 07:34:42 +08:00
2014-11-05 09:14:36 +08:00
```bash
$ ./raspi_blink
```
2016-12-19 23:45:03 +08:00
### Enabling PWM output on GPIO pins.
2014-11-05 09:14:36 +08:00
2016-12-19 23:45:03 +08:00
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:
2014-11-05 09:14:36 +08:00
2016-12-19 23:45:03 +08:00
[https://github.com/sarfata/pi-blaster ](https://github.com/sarfata/pi-blaster )