APP下载

基于嵌入式技术的磁悬浮手势识别照明系统设计

2022-11-09梁瑞

微型电脑应用 2022年10期
关键词:浮子照明灯磁悬浮

梁瑞

(西安翻译学院, 信息工程学院, 陕西, 西安 710105)

0 引言

随着城市建设的不断发展,点亮工程逐渐在各地实施,美丽的夜景对于提升城市和景区的形象起到至关重要的作用。然而,普通照明系统已经无法满足人们的需求,研发一种节能、个性化、创新型照明系统就显得愈加迫切。本文针对这一需求,基于嵌入式芯片STM32F103C8T6设计一种磁悬浮手势识别照明系统,该系统照明部分悬浮于底座之上,可以通过手势控制对灯光进行开关和亮度的调节,不仅可应用于智能家居,也可在夜景建设和景区使用,从而增加景观吸引力,提高城市时代感[1]。

1 方案设计

本系统由主控模块、磁悬浮模块、感应开关模块、手势识别模块和照明模块5部分组成。其中主控模块为STM32F103C8T6嵌入式核心板,主要负责信号处理;磁悬浮模块主要是对照明灯进行悬浮控制;感应开关模块通过传感器HC-SR501采集是否有人在检测区的信息,将模拟信号转换为数字信号供主控模块处理,从而控制灯的开与关;手势识别模块主要为手势检测传感器,将不同的手势信号发送给主控模块;照明模块接收主控模块发送的信号进行不同灯光亮度的效果展现。系统结构框图如图1所示。

图1 系统结构框图

根据整体设计方案,该磁悬浮手势识别照明系统模型如图2所示。底部为磁悬浮底座,照明灯悬浮于底座之上,照明灯正轴线与底座正轴线重合。

图2 磁悬浮手势识别照明系统模型

2 硬件设计

2.1 主控模块

采用意法半导体STM32系列单片机,相较于其他单片机,该系列单片机基于ARM-Cortex-M3,32位RISE内核,性价比高,功能强大,被广泛应用于嵌入式设备中。主控模块为STM32C8T6F103单片机最小系统,主要包括电源电路、复位电路、晶振电路、调试电路、外围接口等。STM32F103C8T6核心板接口定义原理图[2]如图3所示。

图3 核心板接口定义原理图

2.2 磁悬浮模块

磁悬浮模块主要由磁悬浮底座、磁铁组件、线性霍尔、线圈和浮子组成,其结构如图4所示。磁悬浮底座采用12 V直流电源供电,电源驱动3个霍尔传感器采集磁力变化,该变化转换为电压信号传输至主控模块,当主控模块收到3个霍尔传感器的磁力信号后计算其是否处于平衡状态,当磁力不平衡时发出控制信号,通过放大器控制电流大小对底座中的4个磁线圈的磁力进行控制,从而使浮子永磁体稳定悬浮于相对固定位置。同时,底座中的可调电阻可调节浮子的悬浮高度。

图4 磁悬浮模块结构

2.3 感应开关模块

采用HC-SR501感应开关模块进行照明灯开关控制。该模块利用菲尼尔透镜的聚焦作用,首先将人体产生的红外信号以折射或者反射的形式传输到感应晶体上;其次HC-SR501将检测区域划分为若干个明区和暗区,当人进入检测区时,其能通过温度产生的变化在感应晶体上热释红外信号,这样感应晶体即可产生变化的电信号,从而控制照明灯的开与关。HC-SR501外观[3-4]如图5所示。

图5 HC-SR501外观图

2.4 手势识别模块

手势识别模块采用APDS9960芯片,该芯片是集成环境亮度检测、红外LED接近检测和手势识别控制功能于一体的光学手势传感器。STM32F103C8T6和APDS9960通过IIC接口进行连接,其中IIC接口是STM32F103C8T6普通GPIO模拟时序实现的。IIC具有2根电缆,分别为SCL和SDA:SCL是同步时钟设备信号线,主要用于两个设备之间同步信号;SDA为数据线,通过读取SDA上的电平变化接收数据。每一个IIC设备都会有一个地址,APDS9960的IIC地址是0x39。APDS9960原理图及接口如图6所示。

图6 APDS9960原理图及接口

APDS9960的接近检测功能以8位分辨率测量物体距传感器正面的距离(最大几厘米),同时具有4个红外传感器,可以测量每个主要位置随时间的光反射率变化,并将这些变化转化为手势,最终将其保存在驱动电路中[5]。根据放置在主控模块中的手势数据集结果生成中断,将数据集定义为与上、下、左、右对应的4字节数据。传感器的值与每个二极管相对应的8位结果按以下顺序提供:0xfc、0xfd、0xfe和0xff。

2.5 照明模块

采用LED作为照明灯,在其他场合也可选用大型太阳能照明模块,不仅体积可以更大,亮度可以更高,而且节能。STM32F103C8T6判断APDS9960手势识别模块采集的信息并通过PC13引脚输出PWM信号,从而控制LED灯亮度。LED灯上的电流大小根据STM32F103C8T6的PC13引脚输出的PWM信号变化而变化,当PC13引脚变为高电平时,三极管内部电流导通,LED状态由暗变为亮;当PC13变为低电平时,三极管内部电流截止,LED由亮变暗。在STM32F103C8T6的一个PWM信号周期里,通过修改其占空比的方式和大小,使LED灯的亮度状态发生变化,以实现连续性的调控[7-8]。亮度控制电路原理图如图7所示。

图7 亮度控制电路原理图

3 软件设计

软件使用Keil uVision4进行编程,整体程序分为手势感应处理和磁悬浮处理2部分。

手势感应处理部分。经过程序初始化后检测灯是否已打开:若灯未打开,则重新进行初始化,继续检测灯是否打开;若灯已开则通过传感器信号进行手势信号识别,信号采集处理后对信号进行发送,若发送不成功则重新进行手势识别并判断。

磁悬浮处理部分。通过初始化程序分配内存等资源,由单片机读取霍尔传感器电压大小:当电压大于浮子平衡时的电压(初始值),浮子低于平衡位置,为了保持平衡需要减小线圈电流;当电压小于初始值时,浮子高于平衡位置,需要增大线圈电流来保持平衡;当电压等于初始值时,浮子处于平衡位置,电流不变[6]。具体程序流程图如图8所示。

图8 程序流程图

4 系统测试

打开底座模块电源,即刻所有直流电全部转换为高频交流电,4个线圈之间互感耦合使电能持续传输以保证电流转换为用来产生悬浮力的磁力,产生的磁力和悬浮在底座上面的照明灯底部磁铁相吸,LED灯在固定的范围进行360°自转。同时,调节底座中的可调电阻,将LED灯调整到合适悬浮高度。当人接近该系统时LED灯自动亮起,当人离开时延迟熄灭。测试效果实物如图9所示。

图9 测试效果实物图

将手掌置于手势传感器上方20 cm左右,分别从4个方向(自下而上、自上而下、自左向右、自右向左)移动手掌,4个方向所对应的LED状态变化如表1所示。综上所述,目标功能均已实现。

表1 4个方向所对应LED状态

5 总结

本设计实现了基于嵌入式技术的磁悬浮手势识别照明系统。经测试,本系统LED灯悬浮于底座之上,当人体接近后可自动开启照明,离开后可延时自动熄灭,同时,能够正确识别4个方向(自下而上、自上而下、自左向右、自右向左)的手势状态,准确度高,反应灵敏。本系统如在室内使用,可用固定电源或蓄电池供电;如在城市装饰照明工程中使用,可利用太阳能进行供电,不但节能,而且可将LED灯体积增大,增加景观的趣味性。

猜你喜欢

浮子照明灯磁悬浮
同轴双浮子波能装置水动力特性研究*
我学会钓鱼了
有趣的磁悬浮陀螺
公路隧道LED照明灯具直流供电方案探讨
2019款奔驰E300车仪表台上的环境照明灯会熄灭
气体玻璃管浮子流量计的修正
基于模糊控制的浮子快速静平衡与系统研制
磁悬浮滑板,让你感受在空中飞行
磁悬浮装置
磁悬浮初探