IO 状态读取与外设控制

AGVPlus 底盘主板提供了一组针对外设的 IO 接口,您可以利用这些接口读取输入信号,或输出高低电平信号控制外部继电器以及底盘风扇。

1 接口说明

控制 IO 和外设主要涉及以下三个接口:

  • get_pin_input(pin): 读取主板上的输入引脚状态。pin 范围为 1-6。返回值为 0(低电平,硬件默认),1(高电平),读取失败或无此引脚返回 -1
  • set_pin_output(pin, state=0): 控制主板上输出引脚的电平。pin 范围为 1-6state 传入 0 为低电平(默认),1 为高电平。
  • set_fan_state(state=1): 设置底盘散热风扇的开关。state 传入 0 为关闭,1 为开启(硬件默认值为开启)。

2 简单演示

创建一个新的 Python 文件 io_test.py,并输入以下代码:

from pymycobot.myagvplus import MyAGVPlus
import time

# 初始化 MyAGVPlus 对象
agv = MyAGVPlus('/dev/myagvplus_controller', baudrate=921600, esp32_port='/dev/ttyACM0', esp32_baud=115200, debug=True)

# IO 与外设由底层主板直接控制,测试时需开启底盘电源(注意:这也将使能电机)
agv.power_on()

print("--- 开始风扇与外设输出测试 ---")
print("关闭风扇 3 秒...")
agv.set_fan_state(0)
time.sleep(3)

print("重新开启风扇...")
agv.set_fan_state(1)
time.sleep(1)

print("设置 1 号输出引脚为高电平(1)...")
agv.set_pin_output(1, 1)
time.sleep(2)
print("恢复 1 号输出引脚为低电平(0)...")
agv.set_pin_output(1, 0)
time.sleep(1)

print("\n--- 开始输入引脚测试 ---")
# 测试读取 2 号引脚的输入状态
pin2_state = agv.get_pin_input(2)
print(f"当前 2 号引脚的输入状态: {pin2_state}")

# 运行完毕,安全关闭机器人电源并禁用电机
agv.power_off()

3 运行示例文件

在终端中输入以下命令运行代码:

python3 io_test.py

执行后,您可以明显听见底盘风扇关闭和重新开启的声音变化,同时终端会打印出对应引脚的实时读取状态。

← 上一页 | 下一节 →

results matching ""

    No results matching ""