想象#

初始化视觉类#

使用以下构造函数创建视觉传感器:

Vision(port, brightness, sigs)

该构造函数使用三个参数:

范围

描述

port

与 AI 视觉传感器连接的有效 智能端口

brightness

**可选。**视觉传感器的亮度值,从 1 到 100。

sigs

**可选。**一个或多个 签名 对象的名称。

# Create a new Signature "dark_blue" with the Colordesc class.
dark_blue = Signature(1, -3911, -3435, -3673,10879, 11421, 11150,2.5, 0)
# Create a new Vision Sensor "vision_1" with the Vision
# class, with the "dark_blue" Signature.
vision_1 = Vision(Ports.PORT1, 100, dark_blue)

在本 API 文档的所有后续示例中,当引用 Vision 类方法时,将使用此 vision_1 AiVision 对象和 dark_blue Signature 对象。

相关课程

类方法#

拍摄快照()#

take_snapshot(index, count) 方法获取视觉传感器可见的当前快照,并检测给定 SignatureCode 的对象。

在拍摄快照之前,您必须配置视觉传感器要查找的签名。

参数

描述

指数

签名代码

数数

**可选。**要获取的对象的最大数量。默认值为 8。

**返回:**检测到的对象元组,如果没有可用对象,则返回空元组。

while True: 
    # Create a tuple named "darkblue_objects" of detected objects
    # matching the "dark_blue" Signature.
    darkblue_objects = vision_1.take_snapshot(dark_blue)

    # Clear the screen/reset so that we can display 
    # new information.
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)

    # Print the amount of objects detected that matched
    # the "dark_blue" Signature using the len command.
    brain.screen.print("object count:", len(vision_objects))
    # Wait 0.5 seconds before repeating the loop and
    # taking a new snapshot.
    wait(0.5, SECONDS)

最大的对象()#

largest_object() 方法检索视觉传感器在最新快照中检测到的最大物体。

视觉对象属性

描述

id

对象的唯一 ID。

originX

对象左上角的 x 位置。

originY

对象左上角的 y 位置。

centerX

对象的中心 x 位置。

centerY

对象的中心 y 位置。

width

物体的宽度。

height

物体的高度。

angle

物体的角度。

exists

如果视觉相机检测到物体。

**返回:**一个 Vision 对象,如果不存在则返回 None。

while True: 
    # Create a tuple named "darkblue_objects" of detected objects
    # matching the "dark_blue" Signature.
    darkblue_objects = vision_1.take_snapshot(dark_blue)
    
    # Clear the screen/reset so that we can display
    # new information.
    brain.screen.clear_screen()
    brain.screen.set_cursor(1, 1)

    # Print the largest detected object's CenterX
    # coordinate to the Brain's screen.
    brain.screen.print("Center X: ", vision_1.largest_object.centerX)
    # Wait 0.5 seconds before repeating the loop and
    # taking a new snapshot.
    wait(0.5, SECONDS)

安装()#

installed() 方法检查视觉传感器是否已连接。

返回: 如果视觉传感器已连接,则返回 True。如果未连接,则返回 False

时间戳()#

timestamp() 方法返回从视觉传感器接收到的最后一个状态包的时间戳。

**返回:**最后接收的状态包的时间戳(以毫秒为单位)。