Pixy2 now has a Python wrapper for libpixyusb2. For now, this is only available for Linux-based controllers (e.g. Raspberry Pi, BeagleBone). The libpixyusb2 library provides a software application programming interface (API) for communicating with Pixy2 over USB. The following procedure will outline the steps to build libpixyusb2 as a Python module.
This procedure assumes the following:
Although this procedure uses Linux Mint, it should work with any Linux distribution that uses the Debian package manager (e.g. Ubuntu).
Start a terminal application. In the terminal window type:
# sudo apt-get install swig libusb-1.0-0-dev g++ git
In the terminal window type:
# git clone https://github.com/charmedlabs/pixy2
In the terminal window type:
# cd pixy2/scripts
# ./build_python_demos.sh
Change directory to the build folder. In your terminal window type:
# cd ../build/python_demos
Make sure your Pixy2 is connected to a USB port on your computer. Then in a terminal window type:
# python get_blocks_python_demo.py
If all goes well you should see blocks:
Pixy2 Python SWIG Example -- Get Blocks
frame 0:
[BLOCK: SIG=1 X=157 Y=103 WIDTH=314 HEIGHT=207]
frame 1:
[BLOCK: SIG=1 X=157 Y=103 WIDTH=314 HEIGHT=207]
frame 2:
[BLOCK: SIG=1 X=157 Y=103 WIDTH=314 HEIGHT=207]
frame 3:
[BLOCK: SIG=1 X=157 Y=103 WIDTH=314 HEIGHT=207]
If you don't see any block information, try running as superuser:
# sudo python get_blocks_python_demo.py
Make sure your Pixy2 is connected to a USB port on your computer. Then in a terminal window type:
# python get_lines_python_demo.py
Example output:
Pixy2 Python SWIG Example -- Get Line Features
frame 0:
[VECTOR: INDEX=1 X0= 50 Y0= 15 X1= 50 Y1= 5]
[VECTOR: INDEX=2 X0= 56 Y0= 8 X1= 67 Y1= 4]
frame 1:
[VECTOR: INDEX=0 X0= 55 Y0= 27 X1= 51 Y1= 2]
frame 2:
[VECTOR: INDEX=0 X0= 55 Y0= 27 X1= 51 Y1= 2]
frame 3:
[VECTOR: INDEX=1 X0= 57 Y0= 31 X1= 53 Y1= 21]
If you don't see any line feature information, try running as superuser:
# sudo python get_lines_python_demo.py