智能产品综合开发实践 - 助眠呼吸灯

1 实训选题目的

        提高学生对生活实际应用场景中问题的发现、描述、分析和产品设计能力,对所学人工智能专业知识的综合应用能力,要求同学们能综合运用前期课程中所学习到的Linux操作系统、Python程序设计、人工智能数据处理、机器学习技术及应用、计算机视觉技术、响应式网页设计、创新创业教育、 数据库基础(可能涉及)、软件工程、人工智能产品开发等知识,开发有一定创新、实用价值人工智能产品。

2 实训任务目的

        通过本实训任务,旨在使团队成员掌握树莓派硬件的基本组成,完成树莓派硬件搭建、新版64位桌面版系统烧录安装及SSH、VNC、用户密码等基础配置。通过这些步骤,团队将能够远程控制树莓派,为开发“助眠呼吸灯”项目打下坚实的基础。此外,本任务还将帮助团队成员熟悉树莓派的操作系统环境,确保后续开发过程中能够有效地进行编程和调试,以实现助眠呼吸灯的各项功能。

3 实训介绍

(一)必备功能说明:

  1. 系统能够感知用户的呼吸频率,通过调整灯光亮度和颜色,模拟自然呼吸效果,帮助用户放松。这种模拟自然呼吸的灯光效果,可以让用户感觉仿佛在自然环境中呼吸,有助于缓解压力和焦虑,进而促进放松和睡眠。
  2. 系统能够根据用户的心率变化,智能调节灯光的亮度和颜色,以促进用户进入睡眠状态。通过监测用户的生理信号,如心率和呼吸频率,系统可以自动调整灯光,创造一个有利于睡眠的环境。
  3. 设备能够根据预设的助眠模式,逐渐降低灯光亮度,引导用户自然入睡。这种渐进式的调光技术可以帮助用户逐渐适应黑暗环境,减少对突然黑暗的不适感,从而更容易入睡。

        LED三色灯用于模拟不同环境光,由红色、绿色和蓝色LED组成。LED三色灯是一种新型的照明技术,其外形图如图8_1所示。这种灯光技术通过组合红色、绿色和蓝色三种基本颜色,可以产生广泛的颜色范围,从而模拟各种环境光,为用户提供多样化的照明体验。其外形图8_1所示。

图8_1 LED三色灯实物图

4 实训组件

  1. 树莓派主板1块
  2. 树莓派电源适配器1个
  3. 40P软排线1根
  4. LED三色灯1个
  5. 面包板1个
  6. 跳线若干
  7. 电阻若干(用于LED灯电流限制)
  8. 杜邦线若干(用于连接面包板上的组件)

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灯)

跳线(用于连接面包板和树莓派等模块)

杜邦线(用于连接面包板上的组件)

面包板(如果需要临时搭建电路)

连接线(用于连接传感器和树莓派)

外壳或保护套(用于保护内部组件,可选)

硬件模块

  1. 集成树莓派4B 4G主板,负责运行系统软件,处理传感器数据,控制其他模块。
  2. 包含32G TF卡,用于存储操作系统和应用程序,确保系统稳定运行。

环境感知模块

  1. 集成环境光传感器,实时监测室内光照强度,并将数据发送至树莓派。
  2. 集成心率传感器和呼吸传感器,监测用户的心率和呼吸频率,为调整灯光提供依据。

语音对话模块

  1. 集成USB免驱麦克风,用于接收用户的语音指令,实现语音控制灯光的功能。
  2. 通过语音识别技术,允许用户通过简单的语音命令控制灯光的开关、亮度和颜色。

控制模块

  1. 树莓派根据环境感知模块和语音对话模块的输入,智能调节LED三色灯的亮度和颜色。
  2. 实现预设的助眠模式,如模拟日落效果,逐渐降低亮度,引导用户进入睡眠状态。
  3. 提供手动控制界面,允许用户自定义灯光设置,以适应个人偏好。

显示模块

  1. LED三色灯作为主要的显示模块,根据控制模块的指令改变颜色和亮度。
  2. 通过不同的颜色和亮度组合,为用户提供视觉反馈,如模拟自然光变化,增强放松效果。

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bowen_CV

哇噻,感谢你的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值