本页目录

7.XGO双轮足动作控制与表演模式

第7课时:XGO双轮足动作控制与表演模式 | python中函数的参数传递

实验目标:

  • 学习如何控制XGO双轮足执行预设动作。
  • 掌握如何启动和停止XGO双轮足的表演模式。
  • 理解Python中的函数定义和模块化编程。
  • 学习使用python中函数的参数传递。

课前预习:

实验步骤与代码:

  1. 双轮足动作执行
    • 使用rider_action方法控制双轮足执行单个预设动作。
from xgolib import XGO
import time

# 初始化双轮足对象
rider = XGO("xgorider")

def perform_rider_action(action_id, duration):
    """
    执行指定动作ID,并持续一段时间

    :param action_id: 动作ID
    :param duration: 动作持续时间(秒)
    """
    rider.rider_action(action_id)  # 开始执行动作
    time.sleep(duration)           # 等待指定时间
    rider.rider_reset()            # 重置动作(回到初始状态)

# 依次执行三个动作,每个持续3秒
perform_rider_action(2, 3)
perform_rider_action(3, 3)
perform_rider_action(4, 3)
  1. 双轮足表演模式
    • 使用perform方法控制双轮足进入表演模式。
def start_performance():
    """
    启动双轮足的表演模式,循环执行预设动作。
    """
    rider.rider_perform(1)  # 开启表演模式

def stop_performance():
    """
    停止双轮足的表演模式。
    """
    rider.rider_perform(0)  # 关闭表演模式

# 启动表演模式
start_performance()
time.sleep(10)  # 表演持续10秒
# 停止表演模式
stop_performance()
  1. 结合Python模块化编程 - 将动作执行和表演模式控制封装成函数,实现模块化编程。
# 定义动作执行函数
def execute_rider_action(action_id, duration):
    rider.rider_action(action_id)  # 执行动作
    time.sleep(duration)           # 持续一段时间
    rider.rider_reset()            # 重置为初始状态

# 定义启动和停止表演模式的函数
def perform_rider_show():
    rider.rider_perform(1)         # 启动表演模式
    time.sleep(10)                 # 模拟表演过程(可替换为按键检测)
    rider.rider_perform(0)         # 停止表演模式

# 执行一个动作,例如:动作ID 5(升降旋转),持续5秒
execute_rider_action(5, 5)

# 执行双轮足预设动作的表演模式
perform_rider_show()

实验说明:

  • 在这个实验中,我们定义了perform_rider_actionstart_performance等函数来控制双轮足的动作和表演模式。
  • 使用time.sleep函数来控制动作和表演的持续时间。
  • 通过模块化编程,我们可以重用函数,使代码更加清晰和易于维护。

注意事项:

  • 在执行每个动作之间要确保有足够的时间间隔,以便于观察动作的执行。
  • 确保树莓派和双轮足的电源充足,避免在表演模式中电量耗尽。
  • 实验中要注意双轮足的运动范围,避免碰撞或跌落。

课后作业:

  • 修改execute_rider_action函数,使其能够接受更多参数。
  • 设计一个使用循环和条件判断的程序,使双轮足根据特定的条件(如时间或传感器输入)来执行不同的动作。

通过本课时的学习,学生应该能够掌握如何控制双轮足执行预设动作和表演模式,并且理解如何使用Python的函数和模块化编程来组织代码。