跳到主要内容

cocube_module

import cocube_module as cm

这是什么?

cocube_module 负责 CoCube 外接模块,主要包括:

  • 电源控制
  • 夹爪
  • NeoPixel 灯板
  • ToF 测距
  • 光照模块
  • 语音识别模块

很多外设在正式使用前,建议先执行:

cm.power_on()

供电

cm.power_on()
cm.power_off()

模块电源由 GPIO13 控制。

夹爪

cm.gripper_open()
cm.gripper_close()
cm.gripper_degree(degree)
cm.gripper_stop()

说明:

  • degree 范围是 0~70
  • 0 更接近全开
  • 70 更接近全闭
  • 普通模式下走 GPIO22 舵机 PWM
  • 摄像头初始化后会切到 I2C 控制夹爪

NeoPixel 灯板

推荐先手动挂载:

cm.neopixel_attach(n=48)

如果没有手动挂载,绝大多数 NeoPixel 接口会按默认 48 颗自动初始化。

常用接口:

cm.neopixel_set_all(r, g, b)
cm.neopixel_set_all_color(color)
cm.neopixel_set(i, r, g, b)
cm.neopixel_set_color(i, color)
cm.neopixel_clear()
cm.neopixel_rotate(n=1)
cm.neopixel_brighten(i, delta)
cm.neopixel_brighten_all(delta)
cm.neopixel_shift_color(i, delta)
cm.neopixel_shift_all_colors(delta)
cm.color_from_rgb(r, g, b)
cm.random_color()

注意:

  • AI 摄像头模式下 NeoPixel 不可用;这时 GPIO22 已被摄像头相关功能占用
  • i 颗灯珠是 1 开始计数
  • color_from_rgb() 返回 0xRRGGBB 形式的整数
  • NeoPixel 数据也走 GPIO22

ToF 测距

cm.tof_connected()
cm.tof_distance()

返回说明:

  • 正常时返回毫米值
  • -1:数据无效
  • -2:测量超时

光照

cm.dlight_level()
cm.dlight_lux()

说明:

  • dlight_level() 返回原始值
  • dlight_lux() 返回换算后的 lux

语音识别

cm.asr_get_command()
cm.asr_play_command(cmd_id)

说明:

  • asr_get_command() 返回最新命令 ID
  • 没有新命令时通常返回 0

最小示例

import cocube_module as cm

cm.power_on()
cm.gripper_open()
cm.neopixel_attach(48)
cm.neopixel_set_all(0, 0, 255)
print(cm.tof_distance())
print(cm.dlight_level())
print(cm.asr_get_command())

注意

  • 摄像头 init() 后,cocube_module 会进入摄像头模式,夹爪从普通 PWM 切到 I2C 控制
  • GPIO22 会复用给舵机、NeoPixel、I2C SCL,NeoPixel 和 I2C 外设不要一开始就混着调,先单独验证