本页目录

4.XGO双轮足LED灯控制

第4课时:XGO双轮足LED灯控制 | python中函数的创建和调用

实验目标:

  • 理解双轮足LED控制的基础概念。
  • 学习如何使用Python控制双轮足的背部LED灯
  • 掌握时间与控制结合的基本编程思维和技巧。
  • 理解python语言中关于函数基本概念。

实验步骤与代码:

  1. 将所有背灯设置为红色
    • 使用rider_led方法控制双轮足背灯颜色。
# 导入XGO库
from xgolib import XGO
# 导入时间库
import time

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

#将双轮足所有背灯设为红色
rider.rider_led(1,[255,0,0])
rider.rider_led(2,[255,0,0])
rider.rider_led(3,[255,0,0])
rider.rider_led(4,[255,0,0])
rider_led(index, color)
#rider_led(index, color)
#参数名	格式	输入范围	说明
#index	uint8	1-4	左上,左下,右下,右上分别为1、2、3、4号LED
#color	[uint8, uint8, uint8]	0-255	写入三个字节数据,
#数值范围为0-255,代表RGB的亮度,[0,0,0]代表灭,[255,255,255]代表最亮的白光
  1. 熄灭双轮足所有背灯
    • 使用time.sleep方法控制双轮足背灯亮灯时间。
#控制双轮足红灯亮2秒
time.sleep(2)
#熄灭双轮足所有背灯
rider.rider_led(1,[0,0,0])
rider.rider_led(2,[0,0,0])
rider.rider_led(3,[0,0,0])
rider.rider_led(4,[0,0,0])
  1. 结合时间的组合控制
    • 自定义简单的函数,使双轮足实现红灯“三短三长三短国际求救信号”有规律闪烁。
#定义函数实现双轮足背灯全部为红色
def all_red():
  rider.rider_led(1,[255,0,0])
  rider.rider_led(2,[255,0,0])
  rider.rider_led(3,[255,0,0])
  rider.rider_led(4,[255,0,0])

#定义函数实现双轮足背灯熄灭    
def all_unlight():
  rider.rider_led(1,[0,0,0])
  rider.rider_led(2,[0,0,0])
  rider.rider_led(3,[0,0,0])
  rider.rider_led(4,[0,0,0])

# --- 发送“S”部分(...)- 三个短闪,表示短电码(每次亮1秒,灭1秒) ---
all_red()         # 第一次短闪
time.sleep(1)
all_unlight()
time.sleep(1)

all_red()         # 第二次短闪
time.sleep(1)
all_unlight()
time.sleep(1)

all_red()         # 第三次短闪
time.sleep(1)
all_unlight()
time.sleep(1)

# --- 发送“O”部分(---)- 三个长闪,表示长电码(每次亮2秒,灭1秒) ---
all_red()         # 第一次长闪
time.sleep(2)
all_unlight()
time.sleep(1)

all_red()         # 第二次长闪
time.sleep(2)
all_unlight()
time.sleep(1)

all_red()         # 第三次长闪
time.sleep(2)
all_unlight()
time.sleep(1)

# --- 再次发送“S”部分(...)- 三个短闪 ---
all_red()         # 第一次短闪
time.sleep(1)
all_unlight()
time.sleep(1)

all_red()         # 第二次短闪
time.sleep(1)
all_unlight()
time.sleep(1)

all_red()         # 第三次短闪
time.sleep(1)
all_unlight()
time.sleep(1)

实验说明:

  • 每次LED点亮或熄灭后使用 time.sleep() 函数暂停程序,便于观察每次闪烁,确保摩尔斯电码节奏清晰可见。
  • 通过调整 time.sleep() 中的参数,可以控制短闪(S)和长闪(O)的持续时间,进而模拟标准或自定义的摩尔斯电码节奏。
  • 实验中的代码展示了如何用多个 all_red()all_unlight() 函数组合,实现“SOS”信号的完整闪烁序列。

注意事项:

  • 确保树莓派和双轮足的电源充足。
  • 在实验前检查网络连接,确保VScode能够正常连接至树莓派。
  • 实验过程中,注意观察双轮足的运动状态,防止意外碰撞或跌落。
  • 实验结束后,及时关闭双轮足电源,防止过度放电。

课后作业:

  • 自定义函数,减少相同代码重复使用。
  • 尝试编写一个使用循环的程序,实现SOS求救信号。

通过本课时的学习,学生应该能够掌握使用Python控制双轮足进行基本运动的技能,并理解如何将这些技能应用到更复杂的运动控制中。