DI玩 发表于 2025-2-3 11:21:46

修远天窗控制系统——子项目二:捕获环境信息

本帖最后由 DI玩 于 2025-2-3 11:23 编辑

#K10信息科技真实情境案例

#修远智慧体验中心天窗控制系统原型


目标:学会观察和分析传感器数据,理解数据在控制系统中的关键作用。任务:
[*]观察传感器数据变化:在不同光照强度和水分条件下,记录光线传感器和水分传感器输出的数据。
[*]分析数据与环境关系:记录实验数据,并分析数据与环境条件之间的关系。
[*]理解数据重要性:总结数据在控制系统中的关键作用,如作为控制决策的依据、反映系统运行状态等。


   前情提要



在子项目一中,修远智慧体验中心的天窗是通过按钮手动控制的。如果要让系统可以根据外部环境亮度或者天气状况(比如是否下雨)自动开合天窗,那么首先需要让系统能够感知环境。

   硬件解读   

根据项目实际需求,我们可以利用行空板板载的光线传感器感知环境亮度,并外接一个水分传感器来感知是否下雨。



K10板载的光线传感器

在子项目一的机电安装部分,学生已经参考线路连接图,安装了舵机和本项目涉及的水分传感器(用来变通检测雨量)。





水分传感器可用热熔胶固定在屋顶上

   编程与测试   

先参考例程,用Mind+编写一个显示环境光照强度的程序





第二步,可以让学生递进一个层级,增加显示水分的功能。





课堂上也可以用手指接触水分传感器,进行初步测试。

下面提供配套浙教版教材的MicroPython代码
# 修远智慧体验中心天窗控制系统——光照数据显示
from unihiker_k10 import screen, light
import time

# 初始化屏幕
screen.init(dir=2)

while True:
    # 读取光线传感器的数值
    light_value = light.read()
   
    # 清除屏幕显示
    screen.clear()
   
    # 在屏幕上显示光线传感器的数值
    screen.draw_text(text=f"Light: {light_value}", line=1, font_size=24, color=0xFFFFFF)
   
    # 显示绘制的内容
    screen.show_draw()
   
    # 间隔0.5秒,防止过快刷新导致屏幕闪烁
    time.sleep(0.5)



大班课堂上,我们可以将显示部分封装起来,让学生专注于核心问题。# 修远智慧体验中心天窗控制系统——光照、水分数据显示
# 修远智慧体验中心天窗控制系统——光照、水分数据显示
from unihiker_k10 import screen, light, pin
import time

# 初始化屏幕
screen.init(dir=2)

# 初始化水分传感器
p0 = pin(0)# 实例化P0引脚

def display_status(light_value, rain_value):
    """显示光线强度、水分传感器数据"""
    screen.clear()# 清除屏幕显示
    screen.draw_text(text=f"Light: {light_value}", line=1, font_size=24, color=0xFFFFFF)# 显示光线强度
    screen.draw_text(text=f"Rain: {rain_value}", line=2, font_size=24, color=0xFFFFFF)# 显示水分
    screen.show_draw()# 显示绘制的内容

while True:
    # 读取光线传感器的数值
    light_value = light.read()
   
    # 读取水分传感器的数值
    rain_value = p0.read_analog()# 读取P0引脚的模拟量
   
    # 显示光线强度、水分
    display_status(light_value, rain_value)
   
    # 间隔0.5秒,防止过快刷新导致屏幕闪烁
    time.sleep(0.5)




   实验与数据分析

我设计了下面的学习单,便于学生记录实验数据,分析数据与环境条件之间的关系。



借助学习支架,学生将在项目中了解到控制系统可以通过传感器感知外部环境,并以此作为控制决策的依据、反映系统运行状态等,为后续数据应用和系统优化提供认知支持。








页: [1]
查看完整版本: 修远天窗控制系统——子项目二:捕获环境信息