README
¶
Sphero Ollie
The Sphero Ollie is a toy robot from Sphero that is controlled using Bluetooth LE. For more information, go to http://www.sphero.com/ollie
How to Install
go get -d -u gobot.io/x/gobot/...
How to Use
package main
import (
"os"
"time"
"gobot.io/x/gobot"
"gobot.io/x/gobot/platforms/ble"
"gobot.io/x/gobot/platforms/sphero/ollie"
)
func main() {
bleAdaptor := ble.NewClientAdaptor(os.Args[1])
ollie := ollie.NewDriver(bleAdaptor)
work := func() {
gobot.Every(1*time.Second, func() {
r := uint8(gobot.Rand(255))
g := uint8(gobot.Rand(255))
b := uint8(gobot.Rand(255))
ollie.SetRGB(r, g, b)
})
}
robot := gobot.NewRobot("ollieBot",
[]gobot.Connection{bleAdaptor},
[]gobot.Device{ollie},
work,
)
robot.Start()
}
How to Connect
The Sphero Ollie is a Bluetooth LE device.
You need to know the BLE ID of the Ollie you want to connect to. The Gobot BLE client adaptor also lets you connect by friendly name, aka "2B-1247".
OSX
If you connect by name, then you do not need to worry about the Bluetooth LE ID. However, if you want to connect by ID, OS X uses its own Bluetooth ID system which is different from the IDs used on Linux. The code calls thru the XPC interfaces provided by OSX, so as a result does not need to run under sudo.
For example:
go run examples/ollie.go 2B-1247
Ubuntu
On Linux the BLE code will need to run as a root user account. The easiest way to accomplish this is probably to use go build
to build your program, and then to run the requesting executable using sudo
.
For example:
go build examples/ollie.go
sudo ./minidrone 2B-1247
Windows
Hopefully coming soon...
Documentation
¶
Overview ¶
Package ollie contains the Gobot driver for the Sphero Ollie.
For more information refer to the Ollie README: https://github.com/hybridgroup/gobot/blob/master/platforms/sphero/ollie/README.md
Index ¶
- Constants
- func DefaultCollisionConfig() sphero.CollisionConfig
- type Driver
- func (b *Driver) AntiDOSOff() (err error)
- func (b *Driver) ConfigureCollisionDetection(cc sphero.CollisionConfig)
- func (b *Driver) Connection() gobot.Connection
- func (b *Driver) EnableStopOnDisconnect()
- func (b *Driver) Halt() (err error)
- func (b *Driver) HandleResponses(data []byte, e error)
- func (b *Driver) Init() (err error)
- func (b *Driver) Name() string
- func (b *Driver) Roll(speed uint8, heading uint16)
- func (b *Driver) SetName(n string)
- func (b *Driver) SetRGB(r uint8, g uint8, bl uint8)
- func (b *Driver) SetTXPower(level int) (err error)
- func (b *Driver) Sleep()
- func (b *Driver) Start() (err error)
- func (b *Driver) Stop()
- func (b *Driver) Wake() (err error)
Constants ¶
const ( // SensorData event SensorData = "sensordata" // Collision event Collision = "collision" // Error event Error = "error" // Packet header size PacketHeaderSize = 5 // Response packet max size ResponsePacketMaxSize = 20 // Collision Packet data size: The number of bytes following the DLEN field through the end of the packet CollisionDataSize = 17 // Full size of the collision response CollisionResponseSize = PacketHeaderSize + CollisionDataSize )
Variables ¶
This section is empty.
Functions ¶
func DefaultCollisionConfig ¶ added in v1.2.0
func DefaultCollisionConfig() sphero.CollisionConfig
DefaultCollisionConfig returns a CollisionConfig with sensible collision defaults
Types ¶
type Driver ¶
Driver is the Gobot driver for the Sphero Ollie robot
func NewDriver ¶
func NewDriver(a ble.BLEConnector) *Driver
NewDriver creates a Driver for a Sphero Ollie
func (*Driver) AntiDOSOff ¶
AntiDOSOff turns off Anti-DOS code so we can control Ollie
func (*Driver) ConfigureCollisionDetection ¶ added in v1.2.0
func (b *Driver) ConfigureCollisionDetection(cc sphero.CollisionConfig)
ConfigureCollisionDetection configures the sensitivity of the detection.
func (*Driver) Connection ¶
func (b *Driver) Connection() gobot.Connection
Connection returns the connection to this Ollie
func (*Driver) EnableStopOnDisconnect ¶
func (b *Driver) EnableStopOnDisconnect()
EnableStopOnDisconnect auto-sends a Stop command after losing the connection
func (*Driver) HandleResponses ¶
HandleResponses handles responses returned from Ollie
func (*Driver) SetTXPower ¶
SetTXPower sets transmit level