1 实训选题目的
提高学生对生活实际应用场景中问题的发现、描述、分析和产品设计能力,对所学人工智能专业知识的综合应用能力,要求同学们能综合运用前期课程中所学习到的Linux操作系统、Python程序设计、人工智能数据处理、机器学习技术及应用、计算机视觉技术、响应式网页设计、创新创业教育、 数据库基础(可能涉及)、软件工程、人工智能产品开发等知识,开发有一定创新、实用价值人工智能产品。
2 实训任务目的
通过本实训任务,旨在使团队成员掌握树莓派硬件的基本组成,完成树莓派硬件搭建、新版64位桌面版系统烧录安装及SSH、VNC、用户密码等基础配置。通过这些步骤,团队将能够远程控制树莓派,为开发“助眠呼吸灯”项目打下坚实的基础。此外,本任务还将帮助团队成员熟悉树莓派的操作系统环境,确保后续开发过程中能够有效地进行编程和调试,以实现助眠呼吸灯的各项功能。
3 实训介绍
(一)必备功能说明:
- 系统能够感知用户的呼吸频率,通过调整灯光亮度和颜色,模拟自然呼吸效果,帮助用户放松。这种模拟自然呼吸的灯光效果,可以让用户感觉仿佛在自然环境中呼吸,有助于缓解压力和焦虑,进而促进放松和睡眠。
- 系统能够根据用户的心率变化,智能调节灯光的亮度和颜色,以促进用户进入睡眠状态。通过监测用户的生理信号,如心率和呼吸频率,系统可以自动调整灯光,创造一个有利于睡眠的环境。
- 设备能够根据预设的助眠模式,逐渐降低灯光亮度,引导用户自然入睡。这种渐进式的调光技术可以帮助用户逐渐适应黑暗环境,减少对突然黑暗的不适感,从而更容易入睡。
LED三色灯用于模拟不同环境光,由红色、绿色和蓝色LED组成。LED三色灯是一种新型的照明技术,其外形图如图8_1所示。这种灯光技术通过组合红色、绿色和蓝色三种基本颜色,可以产生广泛的颜色范围,从而模拟各种环境光,为用户提供多样化的照明体验。其外形图8_1所示。
图8_1 LED三色灯实物图
4 实训组件
- 树莓派主板1块
- 树莓派电源适配器1个
- 40P软排线1根
- LED三色灯1个
- 面包板1个
- 跳线若干
- 电阻若干(用于LED灯电流限制)
- 杜邦线若干(用于连接面包板上的组件)
5 实训原理
助眠呼吸灯的原理是通过控制LED三色灯的亮度和颜色变化,模拟自然呼吸的效果,以及根据用户的生理状态调整光线,以促进放松和改善睡眠质量。该系统主要由树莓派主板控制,通过读取环境光传感器或用户可穿戴设备的数据,智能调节LED灯的状态。以下是助眠呼吸灯的核心工作原理:
1) 树莓派主板作为系统的控制中心,负责处理输入信号并输出控制信号。
2) 环境光传感器(如果使用)检测周围环境的光照强度,并将数据发送给树莓派。
3) 树莓派根据接收到的数据,计算出需要调整的灯光亮度和颜色,以模拟自然呼吸或匹配用户的生理状态。
4) LED三色灯接收来自树莓派的控制信号,通过改变红、绿、蓝三种颜色LED的亮度比例,混合出不同的颜色和亮度。
5) 系统还可以根据预设的助眠模式,逐渐改变灯光状态,引导用户进入睡眠状态。
6) 电阻和跳线用于电路的连接和电流限制,确保LED灯的工作安全和稳定。
图10_1 系统功能结构图
上图展示了LED三色灯的系统功能结构。树莓派通过软件程序控制LED灯的状态,实现助眠功能。
6 实训步骤
6.1 需求分析
表11_1 项目功能概览表
硬件清单 | 功能需求 | 需求详细说明 |
树莓派4B 4G 主板 32G TF 卡(预装操作系统和应用程序) 树莓派兼容的电源适配器 LED三色灯(用于模拟不同环境光和呼吸效果) 环境光传感器(用于监测室内光照强度) USB免驱麦克风(用于接收语音指令) 电阻(用于限制LED灯电流,保护LED灯) 跳线(用于连接面包板和树莓派等模块) 杜邦线(用于连接面包板上的组件) 面包板(如果需要临时搭建电路) 连接线(用于连接传感器和树莓派) 外壳或保护套(用于保护内部组件,可选) | 硬件模块 |
|
环境感知模块 |
| |
语音对话模块 |
| |
控制模块 |
| |
显示模块 |
|
6.2 最终代码展示
import RPi.GPIO as GPIO
import time
# Set the GPIO mode to BOARD
GPIO.setmode(GPIO.BOARD)
# Define the GPIO pins for the RGB LED
RED_PIN = 11
GREEN_PIN = 13
BLUE_PIN = 15
# Set up the GPIO pins as outputs
GPIO.setup(RED_PIN, GPIO.OUT)
GPIO.setup(GREEN_PIN, GPIO.OUT)
GPIO.setup(BLUE_PIN, GPIO.OUT)
# Create PWM objects for each LED
pwm_red = GPIO.PWM(RED_PIN, 50)
pwm_green = GPIO.PWM(GREEN_PIN, 50)
pwm_blue = GPIO.PWM(BLUE_PIN, 50)
# Start each PWM channel with 0% duty cycle
pwm_red.start(0)
pwm_green.start(0)
pwm_blue.start(0)
# Function to perform the breathing effect on a single LED
def breathe(pin_pwm, steps, pause):
# Fade in
for dc in range(0, 101, steps):
pin_pwm.ChangeDutyCycle(dc)
time.sleep(0.1)
time.sleep(pause) # Pause at full brightness
# Fade out
for dc in range(100, -1, -steps):
pin_pwm.ChangeDutyCycle(dc)
time.sleep(0.1)
time.sleep(pause) # Pause at off state
# Main program loop
try:
for _ in range(2): # Loop twice for the entire sequence
# Perform the breathing effect on the red LED
breathe(pwm_red, 5, 0.5)
# Turn off the red LED
pwm_red.ChangeDutyCycle(0)
# Perform the breathing effect on the green LED
breathe(pwm_green, 5, 0.5)
# Turn off the green LED
pwm_green.ChangeDutyCycle(0)
# Perform the breathing effect on the blue LED
breathe(pwm_blue, 5, 0.5)
# Turn off the blue LED
pwm_blue.ChangeDutyCycle(0)
except KeyboardInterrupt:
# If the user sends a keyboard interrupt (Ctrl+C), exit the loop
print('Ctrl + C quit')
finally:
# Clean up GPIO resources
pwm_red.stop()
pwm_green.stop()
pwm_blue.stop()
GPIO.cleanup()
print('over')
6.3 实验结果展示
三色LED灯通过控制颜色,组合出不同颜色,依次逐渐亮逐渐暗,实现呼吸灯效果,完成最终展示,如图11_6所示。
图11_6 呼吸灯效果展示
7 参考文献
[1]张美平,吴德平,王灿杰,谢玮铭.基于树莓派的智能家居设计与实现[J].计算机系统应用,2019,28(8):109-114
[2]唐永军.基于深度学习的智能语音助手研究[J].现代信息科技, 2021, 5(12):5.DOI:10.19850/j.cnki.2096-4706.2021.12.020.
[3]刘帆.基于深度学习的语音识别研究[D].河北工业大学[2024-10-18].DOI:CNKI:CDMD:2.1017.874101.
[4]孙可,刘忠武,吴雨洽,等.基于Python的深度学习语音识别[J].沈阳师范大学学报:自然科学版, 2019, 37(3):4.DOI:CNKI:SUN:SYSX.0.2019-03-018.
[5]华亚军,魏钒,孙建,等.一种基于树莓派的LED灯行为自动化测试系统:CN202022518127.6[P].CN213715422U[2024-10-18].
[6]阳秋光,成建宏.基于树莓派的智能灯光控制系统设计[J].电脑知识与技术:学术版, 2018(10Z):3.DOI:CNKI:SUN:DNZS.0.2018-29-097.
标签:树莓,色灯,LED,用户,呼吸,智能,GPIO,助眠,pwm From: https://blog.csdn.net/m0_64545019/article/details/144119279