bebop

package
v1.2.1 Latest Latest
Warning

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

Go to latest
Published: Feb 16, 2017 License: Apache-2.0, Apache-2.0, Apache-2.0 Imports: 3 Imported by: 0

README

Bebop

The Parrot Bebop and Parrot Bebop 2 are inexpensive quadcopters that can be controlled using their built-in API commands via a WiFi connection. They include a built-in front-facing HD video camera, as well as a second lower resolution bottom-facing video camera.

How to Install

go get -d -u gobot.io/x/gobot/... && go install gobot.io/x/gobot/platforms/parrot/bebop

How to Use

package main

import (
	"time"

	"gobot.io/x/gobot"
	"gobot.io/x/gobot/platforms/parrot/bebop"
)

func main() {
	bebopAdaptor := bebop.NewAdaptor()
	drone := bebop.NewDriver(bebopAdaptor)

	work := func() {
    drone.HullProtection(true)
		drone.TakeOff()
		gobot.On(drone.Event("flying"), func(data interface{}) {
			gobot.After(3*time.Second, func() {
				drone.Land()
			})
		})
	}

	robot := gobot.NewRobot("drone",
		[]gobot.Connection{bebopAdaptor},
		[]gobot.Device{drone},
		work,
	)

	robot.Start()
}

How to Connect

By default, the Parrot Bebop is a WiFi access point, so there is no additional work to establish a connection to a single drone, you just connect to it.

Once connected, if you want to stream drone video you can either:

- Use the RTP protocol with an external player such as mplayer or VLC.
- Grab the video frames from the drone's data frames, and work with them directly.

Documentation

Overview

Package bebop provides the Gobot adaptor and driver for the Parrot Bebop.

Installing:

go get -d -u gobot.io/x/gobot/... && go install gobot.io/x/gobot/platforms/parrot/bebop

For more information refer to the bebop README: https://github.com/hybridgroup/gobot/tree/master/platforms/parrot/bebop/README.md

Index

Constants

View Source
const (
	// Flying event
	Flying = "flying"
)

Variables

This section is empty.

Functions

func ValidatePitch added in v1.2.0

func ValidatePitch(data float64, offset float64) int

ValidatePitch helps validate pitch values such as those created by a joystick to values between 0-100 that are required as params to Parrot Bebop PCMDs

Types

type Adaptor

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

Adaptor is gobot.Adaptor representation for the Bebop

func NewAdaptor

func NewAdaptor() *Adaptor

NewAdaptor returns a new BebopAdaptor

func (*Adaptor) Connect

func (a *Adaptor) Connect() (err error)

Connect establishes a connection to the ardrone

func (*Adaptor) Finalize

func (a *Adaptor) Finalize() (err error)

Finalize terminates the connection to the ardrone

func (*Adaptor) Name

func (a *Adaptor) Name() string

Name returns the Bebop Adaptors Name

func (*Adaptor) SetName

func (a *Adaptor) SetName(n string)

SetName sets the Bebop Adaptors Name

type Driver

type Driver struct {
	gobot.Eventer
	// contains filtered or unexported fields
}

Driver is gobot.Driver representation for the Bebop

func NewDriver

func NewDriver(connection *Adaptor) *Driver

NewDriver creates an Bebop Driver.

func (*Driver) Backward

func (a *Driver) Backward(speed int)

Backward causes the drone go forward, controls the pitch. speed can be a value from `0` to `100`.

func (*Driver) Clockwise

func (a *Driver) Clockwise(speed int)

Clockwise causes the drone to spin in clockwise direction speed can be a value from `0` to `100`.

func (*Driver) Connection

func (a *Driver) Connection() gobot.Connection

Connection returns the Bebop Drivers Connection

func (*Driver) CounterClockwise

func (a *Driver) CounterClockwise(speed int)

CounterClockwise the drone to spin in counter clockwise direction speed can be a value from `0` to `100`.

func (*Driver) Down

func (a *Driver) Down(speed int)

Down makes the drone reduce altitude. speed can be a value from `0` to `100`.

func (*Driver) Forward

func (a *Driver) Forward(speed int)

Forward causes the drone go forward, controls the pitch. speed can be a value from `0` to `100`.

func (*Driver) Halt

func (a *Driver) Halt() (err error)

Halt halts the Bebop Driver

func (*Driver) HullProtection

func (a *Driver) HullProtection(protect bool) error

HullProtection tells the drone if the hull/prop protectors are attached. This is needed to adjust flight characteristics of the Bebop.

func (*Driver) Land

func (a *Driver) Land()

Land causes the drone to land

func (*Driver) Left

func (a *Driver) Left(speed int)

Left causes the drone to bank to the left, controls the roll, which is a horizontal movement using the camera as a reference point. speed can be a value from `0` to `100`.

func (*Driver) Name

func (a *Driver) Name() string

Name returns the Bebop Drivers Name

func (*Driver) Outdoor

func (a *Driver) Outdoor(outdoor bool) error

Outdoor tells the drone if flying Outdoor or not. This is needed to adjust flight characteristics of the Bebop.

func (*Driver) Right

func (a *Driver) Right(speed int)

Right causes the drone to bank to the right, controls the roll, which is a horizontal movement using the camera as a reference point. speed can be a value from `0` to `100`.

func (*Driver) SetName

func (a *Driver) SetName(n string)

SetName sets the Bebop Drivers Name

func (*Driver) Start

func (a *Driver) Start() (err error)

Start starts the Bebop Driver

func (*Driver) StartRecording

func (a *Driver) StartRecording() error

StartRecording starts the recording video to the drones interal storage

func (*Driver) Stop

func (a *Driver) Stop()

Stop makes the drone to hover in place.

func (*Driver) StopRecording

func (a *Driver) StopRecording() error

StopRecording stops a previously started recording

func (*Driver) TakeOff

func (a *Driver) TakeOff()

TakeOff makes the drone start flying

func (*Driver) Up

func (a *Driver) Up(speed int)

Up makes the drone gain altitude. speed can be a value from `0` to `100`.

func (*Driver) Video

func (a *Driver) Video() chan []byte

Video returns a channel which raw video frames will be broadcast on

func (*Driver) VideoEnable added in v1.1.0

func (a *Driver) VideoEnable(enable bool) error

VideoEnable tells the drone to start/stop streaming video

func (*Driver) VideoStreamMode added in v1.1.0

func (a *Driver) VideoStreamMode(mode int8) error

VideoStreamMode tells the drone what mode to use for streaming video

Directories

Path Synopsis
examples command
This example will connect to the Bebop and stream its video to a webpage via ffserver.
This example will connect to the Bebop and stream its video to a webpage via ffserver.

Jump to

Keyboard shortcuts

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