智能控制设计与制作 - 程序参考
本栏目为使用 Steamania JoyKit V2 进行电路搭建练习提供程序参考。每个项目包含:
- 项目目标:清晰的学习目标
- 所需硬件:需要的电子模块清单
- 核心任务:关键编程挑战
- 参考方案:完整的程序代码及详细解释
可用项目
第 1 题:室内温度监测系统
目标:用温度传感器和全彩 LED 制作温度监测系统,LED 颜色随温度变化(温度升高由绿变红)。
所需硬件:
- Steamania JoyKit V2(主控)
- BME280/BMP280 温湿度传感器模块
- WS2812B 全彩 LED 模块
核心任务:
- 启用温度传感器模块
- 循环读取温度数据
- 将温度值映射到 LED 颜色(绿→黄→红)
- 在屏幕上实时显示温度值
关键概念:
- 传感器数据采集
- 颜色映射的条件逻辑
- RGB 颜色控制
- 循环结构
👉 查看详细方案
第 2 题:模拟室内照明电路
目标:用按键和全彩 LED 模拟电灯开关。
所需硬件:
- Steamania JoyKit V2(主控)
- 按键模块
- WS2812B 全彩 LED 模块
核心任务:
- 配置按键为数字输入
- 实现切换逻辑(按下切换开/关)
- 控制 LED 在"开"时发出白光
- 显示当前开关状态
关键概念:
- 数字输入读取
- 状态机/切换逻辑
- 边沿检测(按键按下 vs. 按住)
- 二进制状态控制
👉 查看详细方案
第 3 题:模拟社区路灯照明系统
目标:用亮度传感器和 4 个全彩 LED(蓝光)制作自动路灯系统。根据环境光照强度,自动调节点亮的 LED 数量(光线越暗,点亮越多),并实时显示传感器数值。
所需硬件:
- Steamania JoyKit V2(主控)
- TCS34725 颜色传感器(用于环境光检测)
- 4x WS2812B 全彩 LED 模块(配置为蓝色路灯)
核心任务:
- 从传感器读取环境光照强度
- 实现多级阈值逻辑
- 根据光照水平独立控制 4 个 LED
- 在屏幕上实时显示传感器数值
- 自动调节 LED 数量(0-4 个)
关键概念:
- 模拟/数字传感器读取
- 多级条件分支
- 多个输出的类数组控制
- 实时数据可视化
- 基于阈值的自动化
👉 查看详细方案
第 4 题:模拟电子日历
目标:用按键和四位数码管制作电子日历。初始显示"0000",通过按键在显示年份"2026"和显示月日"0131"两种模式间切换,并持续循环。
所需硬件:
- Steamania JoyKit V2(主控)
- 4 位数码管显示模块
- 按键模块
核心任务:
- 初始化数码管显示"0000"
- 实现按键检测
- 在年份显示模式(2026)和月日显示模式(0131)之间切换
- 持续循环显示
关键概念:
- 多位数码管动态显示
- 状态管理
- 按键消抖
- 显示模式切换
👉 查看详细方案
第 5 题:声控电子蜡烛
目标:用声音传感器、全彩 LED 和奏乐单元设计声控蜡烛。LED 默认闪烁绿光;吹一口气后切换为闪烁红光模拟点燃;再吹一口则熄灭 LED 并演奏一段音乐(至少三个音符)后保持熄灭,模拟吹灭。过程循环。
所需硬件:
- Steamania JoyKit V2(主控)
- 声音传感器模块(麦克风)
- WS2812B 全彩 LED 模块
- 蜂鸣器/奏乐模块
核心任务:
- 初始化 LED 闪烁绿光(默认状态)
- 检测声音触发(吹气)
- 第一次吹气切换到红色闪烁模式(蜡烛点燃)
- 第二次吹气熄灭 LED 并播放音乐
- 持续循环所有状态
关键概念:
- 声音检测与触发
- 多模式状态机
- LED 闪烁模式
- 音乐播放集成
👉 查看详细方案
第 6 题:智能窗帘
目标:用电机、驱动模块及多种传感器(按键、遥控、语音等)设计智能卷帘。包含三个子任务,分别实现:1) 按键开关控制正/反转 1 秒;2) 遥控器按键长按控制正/反转(松开即停);3) 语音命令控制正/反转 1 秒。鼓励用一套程序实现多个任务。
所需硬件:
- Steamania JoyKit V2(主控)
- 直流电机模块
- 电机驱动模块(L298N 或类似)
- 按键模块(2 个按键:正转/反转)
- 红外遥控模块
- 语音识别模块(可选)
核心任务:
- 按键控制:按键开关控制正/反转 1 秒
- 遥控控制:遥控器按键长按控制正/反转(松开即停)
- 语音控制:语音命令控制正/反转 1 秒
关键概念:
- 电机正反转控制
- 多种输入方法集成
- 多样化人机交互
- 输入优先级处理
👉 查看详细方案
如何使用这些项目
给学生:
- 仔细阅读项目要求
- 先规划电路连接
- 在查看参考答案前尝试自己编写程序
- 逐步测试和调试
- 尝试修改(如不同的颜色方案、阈值等)
给教师:
- 将这些项目用作实验练习或家庭作业
- 修改参数创建变体(如不同的温度范围)
- 组合多个项目创建更复杂的挑战
- 鼓励学生添加创意功能
前置要求
在尝试这些项目之前,学生应熟悉:
- 基础 JoyKit 编程(寄存器读写)
- 数字 I/O 配置
- 十六进制数理解
- 基础条件跳转指令