本帖最后由 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)
复制代码
实验与数据分析
我设计了下面的学习单,便于学生记录实验数据,分析数据与环境条件之间的关系。
借助学习支架,学生将在项目中了解到控制系统可以通过传感器感知外部环境,并以此作为控制决策的依据、反映系统运行状态等,为后续数据应用和系统优化提供认知支持。
|