« Previous - Version 4/47 (diff) - Next » - Current version
Rich LeGrand, 02/19/2014 05:57 pm


Hooking up Pixy to a Microcontroller like an Arduino

Pixy is meant to talk to a microcontroller, and Pixy comes out of the box ready to talk to an Arduino. Use the supplied Arduino cable to connect Pixy to your Arduino.

**

Download the Arduino library "Pixy.zip" here. Bring up the Arduino IDE and import the Pixy library by selecting Sketch->Import Library... in the Arduino IDE, and then browsing to the Pixy.zip file that you just downloaded.

Next, load the "hello_world" example by selecting it in File->Examples->Pixy. Upload it and bring up the Serial Monitor. You should see messages printed that look similar to this:

Detected 1:
  block 0: sig: 1 x: 159 y: 109 width: 61 height: 61
Detected 1:
  block 0: sig: 1 x: 173 y: 114 width: 60 height: 61
Detected 1:
  block 0: sig: 1 x: 146 y: 111 width: 70 height: 65
... 

Note, the example will only print messages if Pixy is running the "default program" and an object that matches one of its color signatures is visible.

Other Microcontrollers

Pixy will output objects that it detects through one of several interfaces that you choose. It supports SPI, I2C, UART, and analog/digital I/O through its 10-pin I/O connector. Pixy also supports USB 2.0 through its mini-USB connector. You can configure which interface Pixy uses through the configure dialog in PixyMon. The "Data out port" parameter determines the output port.

**

If you hover the mouse pointer over the "Data out port" text, a help string will be displayed that describes which value corresponds to which type of port.

  • SPI - this is the default port that uses 3 wires (pins 1, 3, and 4 of the I/O connector) and is used to communicate with Arduino
  • I2C - this is a multi-drop 2-wire port (pins 5 and 9 of the I/O connector) that allows a single master to communicate with up to 127 slaves (up to 127 Pixys).
  • analog/digital x - this will output the x value of the largest detected object as an analog value between 0 and 3.3V (pin 3). It also outputs whether an object is detected or not as a digital signal (pin 1 of the I/O connector).
  • analog/digital y - this will output the y value of the largest detected object as an analog value between 0 and 3.3V (pin 3). It also outputs whether an object is detected or not as a digital signal (pin 1 of the I/O connector).
  • port picture