Hooking up Pixy to a Beaglebone Black

1. Introduction

The following procedure outlines steps to build the 'hello_pixy' example on a BeagleBone Black using the Debian Linux Distribution (Debian Image 2014-05-14). The 'hello_pixy' example is a simple program that demonstrates how to read blocks and send commands to the Pixy over USB like the PixyMon application.

You will need:

  • BBB with Debian Linux Distribution installed to the eMMC
  • USB Hub with at least three ports
  • Pixy updated to the latest firmware (1.0.2)
  • libpixyusb version is 0.2

The Debian Linux distribution for the BeagleBone Black is available from the BeagleBoard website here: http://beagleboard.org/latest-images/
A procedure for flashing the BeagleBone Black can be found here: https://learn.adafruit.com/beaglebone-black-installing-operating-systems/flashing-the-beaglebone-black

2. Procedure

2.1. BeagleBone Black Hardware Setup

2.1.1. Using a USB hub, connect your keyboard, mouse, and Pixy to the BeagleBone Black. Using an Ethernet cable, connect your BeagleBone Black to the internet. Connect a video display to the BeagleBone Black using an HDMI cable. Power up the BeagleBone Black using either a USB cable or the 5V barrel connector.

2.2. Software Dependency Installation

From the main menu, start the LXTerminal application.

In the terminal window type:

sudo apt-get update

2.2.1. Install libusb

In the terminal window type:

sudo apt-get install libusb-1.0-0.dev

2.2.2. Install libboost

In the terminal window type:

sudo apt-get install libboost-all-dev

2.2.3. Install cmake

In the terminal window type:

sudo apt-get install cmake

2.3. Install Pixy Source Code

In the terminal window type:

git clone https://github.com/charmedlabs/pixy.git

2.4. Build and install libpixyusb

2.4.1. Build the library

In the terminal window type:

cd pixy/scripts
./build_libpixyusb.sh

2.4.2. Install the library

In the terminal window type:

sudo ./install_libpixyusb.sh

2.5. Running the 'hello_pixy' example

2.5.1. Build the example

In the terminal window type:

./build_hello_pixy.sh

2.5.2. Run the example

In the terminal window type:

cd ../build/hello_pixy
sudo ./hello_pixy

The output should look like something below:

Hello Pixy:
Example Version: 0.3
Pixy Firmware Version: 1.0.2
Detecting blocks...
[sig: 1 w: 11 h: 17 x:149 y: 46]
[sig: 1 w: 9 h: 21 x:148 y: 46]
[sig: 1 w: 14 h: 21 x:151 y: 45]
[sig: 1 w: 10 h: 19 x:149 y: 47]
[sig: 1 w: 8 h: 16 x:148 y: 49]
[sig: 1 w: 9 h: 19 x:148 y: 45]
[sig: 1 w: 12 h: 6 x:150 y: 54]
[sig: 1 w: 15 h: 18 x:151 y: 46]
[sig: 1 w: 11 h: 5 x:149 y: 54]
[sig: 1 w: 9 h: 7 x:148 y: 49]
[sig: 1 w: 11 h: 5 x:149 y: 50]
[sig: 1 w: 8 h: 6 x:148 y: 47]
[sig: 1 w: 10 h: 7 x:149 y: 51]

The example does the following

  1. Connects to Pixy using USB
  2. Displays firmware version installed on Pixy
  3. Block information is displayed if color signatures have been set and if the signatures are currently being detected by Pixy.