跳到主要内容

Case 04:警察来了

简介

哈喽,我们在日常生活中看见警车感觉很酷炫,特别是上面的彩灯的颜色变化,给我们紧张和时间紧迫的感觉,同时也想坐在上面感受一下,那么这节课就可以让我们实现拥有“警车”的心愿,接下来我们将让 Ring:bit 智能车化身警察车,那我们开始吧。

硬件连接

需要将 Ring:bit Car 套件拿出来,发挥你灵动的小手将 Ring:bit 扩展版的 P1 口连接左轮舵机,P2 口连接右轮舵机。 P0口连接 Ring:bit Car 专用扩展板。

将专用扩展板上的拨片开关,拨到 Rainbow LED。

程序编写

编程环境准备是必须要的,如果你还没有准备,可以参考这篇文章:编程环境准备

代码示例

# 导入程序所需要的模块
import board
from ringbit import *
from time import *
from picoed import *

# 设置两个舵机的引脚以及专用扩展板的引脚和引脚方向
ringbit = Ringbit(board.P1, board.P2)
ringbit.init_rainbow_leds(board.P0, 2)

# 在屏幕上画一个方框
# 首先绘制顶部和底部边缘
for x in range(display.width):
display.pixel(x, 0, 50)
display.pixel(x, display.height - 1, 50)

# 现在绘制左右边缘
for y in range(display.height):
display.pixel(0, y, 50)
display.pixel(display.width - 1, y, 50)

# 随机变化两个LED灯的RGB数值,检测是否按下A/B按键,控制智能车速度
while True:
ringbit.rainbow_leds[0] = (0, 255, 0)
ringbit.rainbow_leds[1] = (0, 0, 255)
sleep(0.5)
ringbit.rainbow_leds[0] = (0, 0, 255)
ringbit.rainbow_leds[1] = (0, 255, 0)
sleep(0.5)
if button_a.is_pressed():
ringbit.set_speed(0, 0)
elif button_b.is_pressed():
ringbit.set_speed(100, 100)

代码详解

  1. 导入程序所需要的模块:board模块是引脚名称的通用容器,可以通过board模块指定要使用的引脚,ringbit模块包含对Ring:bit智能车操作的类和函数,picoed模块包含对按键A\B的操作函数,time模块包含对时间操作的函数,digitalio模块包含对基本数字IO访问的类,neopixel_write包含对灯带操作的函数。
import board
from ringbit import *
from time import *
from picoed import *
  1. 设置两个舵机的引脚以及专用扩展板的引脚和引脚方向
ringbit = Ringbit(board.P1, board.P2)
ringbit.init_rainbow_leds(board.P0, 2)
  1. 在屏幕上画一个方框。
for x in range(display.width):
display.pixel(x, 0, 50)
display.pixel(x, display.height - 1, 50)
for y in range(display.height):
display.pixel(0, y, 50)
display.pixel(display.width - 1, y, 50)
  1. 循环改变两颗LED灯的RGB数值
while True:
ringbit.rainbow_leds[0] = (0, 255, 0)
ringbit.rainbow_leds[1] = (0, 0, 255)
sleep(0.5)
ringbit.rainbow_leds[0] = (0, 0, 255)
ringbit.rainbow_leds[1] = (0, 255, 0)
sleep(0.5)
  1. 检测是否按下A/B按键,控制智能车速度
    if button_a.is_pressed():
ringbit.set_speed(0, 0)
elif button_b.is_pressed():
ringbit.set_speed(100, 100)

实验结果

按下按钮A,小车停车,灯光变换。 按下按钮B,小车底部LED灯的灯光颜色随机变换的同时小车全速前进。

思考

让你的小车闪亮黄白急救警灯,如何编写代码?

常见问题

相关阅读