<< return to Pixycam.com

User Tools

Site Tools


wiki:v2:python

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wiki:v2:python [2021/12/24 12:30]
kees Added description for flags in get_line_tracking_data()
wiki:v2:python [2021/12/30 14:48] (current)
kees Some minor changes
Line 15: Line 15:
 In this tutorial we will describe the following platforms: In this tutorial we will describe the following platforms:
  
-  * Raspberry Pi: using USB and the libpixyusb2 library. 
   * LEGO Mindstorms EV3 using Python on the ev3dev operating system.   * LEGO Mindstorms EV3 using Python on the ev3dev operating system.
   * LEGO Mindstorms EV3 using MicroPython with PyBricks.   * LEGO Mindstorms EV3 using MicroPython with PyBricks.
 +  * Raspberry Pi: using USB and the libpixyusb2 library.
  
 This tutorial belongs to Pixy2 and Pixy2.1. If you own the previous Pixy, go This tutorial belongs to Pixy2 and Pixy2.1. If you own the previous Pixy, go
 to the chapter "Pixy for LEGO Mindstorms"​ in the tutorial to the chapter "Pixy for LEGO Mindstorms"​ in the tutorial
-[[https://​github.com/​KWSmit/​Pixy_ev3dev|over here]]. That tutorial is written +[[https://​github.com/​KWSmit/​Pixy_ev3dev|over here]]written 
-by one of our customers. +by one of our customers ​which explains how to use Pixy on LEGO Mindstorms EV3.
- +
-===== Rasberry Pi ===== +
- +
-<Work in progress>​+
  
 ===== LEGO Mindstorms EV3 ===== ===== LEGO Mindstorms EV3 =====
Line 52: Line 48:
 page. page.
  
-==== API ====+==== pixycamev3 ​====
  
 To make programming more easy for you, we developed a Python API to use Pixy2 To make programming more easy for you, we developed a Python API to use Pixy2
-on the EV3. The same API can be used with both Python3 and MicroPython. The+on the EV3. To use this API you have to install module ''​pixycamev3''​. 
 +The same API can be used with both Python3 and MicroPython. The
 only difference is the way you install the API. When installed, using our only difference is the way you install the API. When installed, using our
 API with Python3 is exactly the same as with MicroPython. But first you have API with Python3 is exactly the same as with MicroPython. But first you have
Line 78: Line 75:
 PixyMon and detach Pixy2 from your computer. PixyMon and detach Pixy2 from your computer.
  
-==== Installing ​Python API ====+==== Installing ​pixycamev3 ​====
  
 This Python API works both with Python3 and MicroPython. There are two ways This Python API works both with Python3 and MicroPython. There are two ways
Line 129: Line 126:
 in your ''​pixycamev3''​ folder. in your ''​pixycamev3''​ folder.
  
-Your project folder structure should look now like this:+Your project folder structure should look like this:
  
 <​code>​ <​code>​
Line 141: Line 138:
 the file you're ready to program! the file you're ready to program!
  
-==== Using Python API ====+==== Using pixycamev3 ​====
  
 The main object you will need is the ''​Pixy2''​ class. This object contains all The main object you will need is the ''​Pixy2''​ class. This object contains all
Line 177: Line 174:
 from pixycamev3.pixy2 import Pixy2 from pixycamev3.pixy2 import Pixy2
  
-prixy2 ​= Pixy2(port=1,​ i2c_address=0x54)+pixy2 = Pixy2(port=1,​ i2c_address=0x54)
  
 # Get version # Get version
Line 198: Line 195:
 from pixycamev3.pixy2 import Pixy2 from pixycamev3.pixy2 import Pixy2
  
-prixy2 ​= Pixy2(port=1,​ i2c_address=0x54)+pixy2 = Pixy2(port=1,​ i2c_address=0x54)
  
 # Get frame resolution # Get frame resolution
Line 219: Line 216:
 from pixycamev3.pixy2 import Pixy2 from pixycamev3.pixy2 import Pixy2
  
-prixy2 ​= Pixy2(port=1,​ i2c_address=0x54)+pixy2 = Pixy2(port=1,​ i2c_address=0x54)
  
 # Turn upper leds on for 2 seconds, then turn off # Turn upper leds on for 2 seconds, then turn off
Line 331: Line 328:
 | <​code>​ | <​code>​
 from pixycamev3.pixy2 import Pixy2 from pixycamev3.pixy2 import Pixy2
 +
 +pixy2 = Pixy2(port=1,​ i2c_address=0x54)
  
 # Detect barcodes and print their number # Detect barcodes and print their number
Line 338: Line 337:
         for i in range(0, data.number_of_barcodes)         for i in range(0, data.number_of_barcodes)
             print('​Barcode number: ', data.barcodes[i].code)             print('​Barcode number: ', data.barcodes[i].code)
 +</​code> ​                                                                     ^^
 +
 +^ %%set_next_turn(angle)%% ​                                                  ^^
 +| **Description:​** ​                                                          ^^
 +| Set direction for turn at the next intersection. After this intersection ​  ^^
 +| Pixy2 will choose it's default turn again. ​                                ^^
 +| **Parameters:​** ​                                                           ^^
 +| angle | Direction to choose at the next intersection (-180, 180  degrees) ​  |
 +| **Returns:​** ​                                                              ^^
 +| None                                                                       ^^
 +| **Example:​** ​                                                              ^^
 +| <​code>​
 +from time import sleep
 +from pixycamev3.pixy2 import Pixy2
 +
 +pixy2 = Pixy2(port=1,​ i2c_address=0x54)
 +
 +# Set next turn to 90 degrees
 +pixy2.set_next_turn(90)
 +</​code> ​                                                                     ^^
 +
 +^ %%set_default_turn(angle)%% ​                                               ^^
 +| **Description:​** ​                                                          ^^
 +| Set default direction for all intersections. ​                              ^^
 +| **Parameters:​** ​                                                           ^^
 +| angle | Default direction (-180, 180 degrees) ​                              |
 +| **Returns:​** ​                                                              ^^
 +| None                                                                       ^^
 +| **Example:​** ​                                                              ^^
 +| <​code>​
 +from time import sleep
 +from pixycamev3.pixy2 import Pixy2
 +
 +pixy2 = Pixy2(port=1,​ i2c_address=0x54)
 +
 +# Set default turn to 0 degrees (straight on)
 +pixy2.set_default_turn(0)
 </​code> ​                                                                     ^^ </​code> ​                                                                     ^^
  
Line 344: Line 380:
 You'll find more practical sample code in the You'll find more practical sample code in the
 [[https://​github.com/​charmedlabs/​pixycamev3|Github repository]]. [[https://​github.com/​charmedlabs/​pixycamev3|Github repository]].
 +
 +===== Rasberry Pi =====
 +
 +<Work in progress>​
  
wiki/v2/python.1640349041.txt.gz · Last modified: 2021/12/24 12:30 by kees