raspi

package
v0.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 10, 2016 License: Apache-2.0, Apache-2.0 Imports: 8 Imported by: 0

README

Raspi

The Raspberry Pi is an inexpensive and popular ARM based single board computer with digital & PWM GPIO, and i2c interfaces built in.

The Raspberry Pi is a credit-card-sized single-board computer developed in the UK by the Raspberry Pi Foundation with the intention of promoting the teaching of basic computer science in schools

For more info about the Raspberry Pi platform, click here.

How to Install

First you must install the appropriate Go packages

go get -d -u github.com/hybridgroup/gobot/... && go install github.com/hybridgroup/gobot/platforms/raspi
Enabling PWM output on GPIO pins.

You need to install and have pi-blaster running in the raspberry-pi, you can follow the instructions for pi-blaster install in the pi-blaster repo here:

https://github.com/sarfata/pi-blaster

Special note for Raspian Wheezy users

The go vesion installed from the default package repositories is very old and will not compile gobot. You can install go 1.4 as follows:

$ wget -O - http://dave.cheney.net/paste/go1.4.linux-arm~multiarch-armv6-1.tar.gz|sudo tar -xzC /usr/local -f -

$ echo '# Setup for golang' |sudo tee /etc/profile.d/golang.sh
$ echo 'PATH=$PATH:/usr/local/go/bin'|sudo tee -a /etc/profile.d/golang.sh

$ source /etc/profile.d/golang.sh
Cross compiling for the Raspberry Pi

You must first configure your Go environment for linux cross compiling

$ cd $GOROOT/src
$ GOOS=linux GOARCH=arm ./make.bash --no-clean

Then compile your Gobot program with

$ GOARM=6 GOARCH=arm GOOS=linux examples/raspi_blink.go

Then you can simply upload your program over the network from your host computer to the Raspi

$ scp raspi_blink pi@192.168.1.xxx:/home/pi/

and execute it on your Raspberry Pi with

$ ./raspi_blink

How to Use

package main

import (
        "time"

        "github.com/hybridgroup/gobot"
        "github.com/hybridgroup/gobot/platforms/gpio"
        "github.com/hybridgroup/gobot/platforms/raspi"
)

func main() {
        gbot := gobot.NewGobot()

        r := raspi.NewRaspiAdaptor("raspi")
        led := gpio.NewLedDriver(r, "led", "7")

        work := func() {
                gobot.Every(1*time.Second, func() {
                        led.Toggle()
                })
        }

        robot := gobot.NewRobot("blinkBot",
                []gobot.Connection{r},
                []gobot.Device{led},
                work,
        )

        gbot.AddRobot(robot)

        gbot.Start()
}

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

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type RaspiAdaptor

type RaspiAdaptor struct {
	// contains filtered or unexported fields
}

func NewRaspiAdaptor

func NewRaspiAdaptor(name string) *RaspiAdaptor

NewRaspiAdaptor creates a RaspiAdaptor with specified name and

func (*RaspiAdaptor) Connect

func (r *RaspiAdaptor) Connect() (errs []error)

Connect starts connection with board and creates digitalPins and pwmPins adaptor maps

func (*RaspiAdaptor) DigitalRead

func (r *RaspiAdaptor) DigitalRead(pin string) (val int, err error)

DigitalRead reads digital value from pin

func (*RaspiAdaptor) DigitalWrite

func (r *RaspiAdaptor) DigitalWrite(pin string, val byte) (err error)

DigitalWrite writes digital value to specified pin

func (*RaspiAdaptor) Finalize

func (r *RaspiAdaptor) Finalize() (errs []error)

Finalize closes connection to board and pins

func (*RaspiAdaptor) I2cRead

func (r *RaspiAdaptor) I2cRead(address int, size int) (data []byte, err error)

I2cRead returns value from i2c device using specified size

func (*RaspiAdaptor) I2cStart

func (r *RaspiAdaptor) I2cStart(address int) (err error)

I2cStart starts a i2c device in specified address

func (*RaspiAdaptor) I2cWrite

func (r *RaspiAdaptor) I2cWrite(address int, data []byte) (err error)

I2CWrite writes data to i2c device

func (*RaspiAdaptor) Name

func (r *RaspiAdaptor) Name() string

func (*RaspiAdaptor) PwmWrite

func (r *RaspiAdaptor) PwmWrite(pin string, val byte) (err error)

func (*RaspiAdaptor) ServoWrite

func (r *RaspiAdaptor) ServoWrite(pin string, angle byte) (err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL