====== Using the Python API on Linux ====== ====== 1.0. Introduction ====== Pixy2 now has a Python wrapper for libpixyusb2. For now, this is only available for Linux-based controllers (e.g. Raspberry Pi, BeagleBone). The [[wiki:v2:building_the_libpixyusb_example_on_linux|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: * Your system has Linux Mint installed * Your system is connected to the internet Although this procedure uses Linux Mint, it should work with any Linux distribution that uses the Debian package manager (e.g. Ubuntu). ====== 2.0. Procedure ====== ===== 2.1. Install dependencies for building Python SWIG module ====== Start a terminal application. In the terminal window type: ''%%# sudo apt-get install swig libusb-1.0-0-dev g++ git%%'' ===== 2.2. Download Pixy2 source code ===== In the terminal window type: ''%%# git clone https://github.com/charmedlabs/pixy2 %%'' ===== 2.3. Build the Pixy2 SWIG module ===== In the terminal window type: ''%%# cd pixy2/scripts%%''\\ ''%%# ./build_python_demos.sh%%'' ===== 2.4. Try it out! ===== Change directory to the build folder. In your terminal window type: ''%%# cd ../build/python_demos%%'' ==== 2.4.1. Run the get blocks demo ==== 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%%'' ==== 2.4.2. Run the get lines demo ==== 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%%''