基于FPGA的智能台灯系统设计与实现(附带完整工程+论文)
首先先声明一下,本项目已经结题,可以放心根据我的设计进行二次开发和直接套用!!!
代码每行都标有注释,方便同学进行学习!!
完整工程文件下载:
https://pan.baidu.com/s/1bgGqChhUrTPyvn7ITrZSqA?pwd=8l29
引言
本课题设计的目标,本设计主要通过Altera公司的Cyclone Ⅳ系列的EP4CE6E22C8实现多功能智能台灯的设计与制作。
该智能台灯的主要功能是完成按键实现自动、手动调光切换,以及测距,语音播报等功能。晶振模块主要作用是给开发板提供稳定的时钟脉冲信号,电源为系统提供一个稳定的电压源。通过超声波以及光照传感器实现距离以及光照强度数据的采集,然后将这些数据再传输到主控芯片上,由主控芯片进行数据处理,一旦测距小于设置阈值则触发语音提醒,按键控制光照的手动、自动调节,并且可以根据光照的大小实现自适应调光,还可以通过按键设置闹钟,FPGA将处理好的数据传输到数码管显示模块。
一、设计背景
随着科技的不断发展,智能家居逐渐成为人们日常生活的一部分。智能台灯作为智能家居系统中的一个重要组成部分,具备多种智能功能,能够满足用户对照明、环境监测等方面的需求。本设计旨在基于Altera公司Cyclone IV系列FPGA芯片(EP4CE6E22C8),实现一款多功能智能台灯。
本设计的实现不仅提高了台灯的智能化程度,还为用户提供了更加人性化的操作体验,具备较高的市场应用价值。
二、设计实现功能
(1)光照强度数据的采集,并传入FPGA
(2)超声波测距,测量主人和桌子的距离
(3)按键控制光照的手动、自动调节
(4)最小距离时,语音播报提醒
(5)数码管显示数字钟,可设置闹铃
三、设计选型
(1)FPGA芯片:Inter 公司 EP4CE6E22C8 主芯片
(2)测距模块:超声波模块 HC-SR04
(3)感光模块:光照传感模块 AP3216C
(4)数码管模块:共阳极数码管
四、设计方案
通过超声波以及光照传感器实现距离以及光照强度数据的采集,然后将这些数据再传输到主控芯片上,由主控芯片进行数据处理,一旦测距小于设置阈值则触发语音提醒,按键控制光照的手动、自动调节,并且可以根据光照的大小实现自适应调光,还可以通过按键设置闹钟,FPGA将处理好的数据传输到数码管显示模块。基于FPGA的智能台灯设计的系统框图如下图所示:

五、硬件介绍
1、开发板介绍
本设计FPGA部分没有进行硬件画板子设计,采用的是小精灵V2(Spirit_V2)开发板,该开发板正好可以满足我这次设计的所以外设,并且资源够用,如果大家没有这个开发板的话,也可以随便找一个你自己的开发板,工程可以完全移植

2、测距模块介绍
本设计的测距模块选择的是大家经常使用的超声波测距模块,型号为HC-SR04,提供2cm~400cm的测距功能,精度达3mm。大家可以自行在某宝购买(超便宜)。

3、感光模块介绍
本设计感光模块选择的是光照传感AP3216C,AP3216C是敦南科技出品的一款集成sensor, 其中包括 :ALS(数字型环境光线感应 sensor),PS(测距sensor)IR(照射sensor)。这款sensor主要用在手机、平板电脑、电视、显示器、数码相机等产品上。驱动方式: 采用标准的I2C接口,且工作在快速模式(400K Hz)。

六、设计思路
1、整体设计
本设计为多功能智能台灯设计,采用FPGA作为核心控制整个电路,预期对需要的功能绘制流程图和各个子模块框图,导出数据通道和控制单元,编写Verilog代码,对代码进行仿真和验证。
整个系统设计分为超声波雷达模块(hc_sr05),光照传感模块(ap3216c),按键控制模块(xiaodou),超声波测距模块(uart),数码管显示模块(seg_led)以及LED驱动模块(led_control)。

2、超声波模块设计
超声波模块实现时序图如下,通过时序图我们可以知道,我们给HC-SR04发送长达10us的TTL脉冲,然后模块就会进行测距,测距的结果通过回响信号传达,回响的TTL电平信号时间即是超声波从HC-SR04模块发出,触碰到障碍物后返回到HC-SR04模块的时间总和。
TTL是逻辑电平标准,当电压达到2.4V~5V之间,那么为逻辑1(高电平),电压在0V~0.4V之间,那么为逻辑0(低电平)。所以我们可以直接通过GPIO口来输出以及输入时序所需的电平信号。

3、光感传感器设计
AP3216C内部有一些寄存器,每个寄存器的位宽为8bit,我们可通过只写寄存器设置AP3216C的工作模式、中断方式、数据参数等。这里仅为大家介绍本次实验所配置到的寄存器,其余寄存器,感兴趣的读者可以参考AP3216C数据手册进行进一步了解。
写寄存器时序

读寄存器时序

七、设计代码
1、超声波雷达模块(hc_sr05_module.v)
该模块hc_sr05_module是用于控制 HC-SR05 超声波测距模块的接口模块,主要功能是通过超声波传感器测量距离,并将采集到的数据传输给主控系统。

代码如下:
2、光感传感器模块(ap3216c.v)
该模块 ap3216c是一个针对 AP3216C 传感器的接口模块,AP3216C 是一款集成了环境光传感器(ALS)和接近传感器(PS)的I2C接口传感器。它能够提供环境光强度和接近检测数据,广泛应用于智能设备中的自动亮度调节和接近检测。

代码如下:
3、iic驱动模块
此模块主要是IIC驱动,用于光感传感器模块

部分代码如下
4、顶层模块
此模块主要例化各个分模块,把所有功能集合再一次,也可以展示所有的端口

部分例化代码:
其余的代码就不一个一个展示了,文章最开的时候有下载链接,可供学生下载使用。
八、modelsim仿真
仿真主要通过modelsim进行,每个模块都有独立的仿真测试,可供学生一步一步查看。

具体测试的截图如下所示



九、下板测试
把所有外设对应引脚连接好之后,通过JTAG把工程生成的sof文件烧写到开发板
光照强的时候测试结果:

如上图所示可以看到大致的一个硬件组成,左边是本次使用的FPGA开发板、右边分别是超声波传感器以及光照传感器,可以看到此时的数码管上显示的时间与闹钟。可以看到当前用手机模拟了一个光照比较强的环境,此刻的LED也就是本文设计的智能台灯会自动关闭8个表示完成了当前的智能调节,接下来测试光照比较弱的环境下的测试。
光照弱强的时候测试结果:

从上面的测试结果可以看到当光照比较弱的时候此刻的LED全亮,接下来验证当坐姿不正确,看书离桌子过近的情况,

可以看到此时将超声波传感器离桌面过近的时候语音会播报“距离探测过近”的警报,实践证明使用FPGA设计智能台灯是可行的,各项功能都能达到预期效果。
十、结论
本文针对智能台灯设计当中完成了以下的功能设计。
1、用按键实现自动/手动调光切换,在自动调光时,驱动光照传感器模块采集光照数据利用光照数据大小进行调光/手动时利用按键进行调光。
2、将测距模块作为台灯总开关,当检测到有人时才会开启台灯,并且测量使用者和台灯的距离,达到一定值时进行报警。
3、设计扬声器模块驱动电路,完成了语音播报提醒。
这样我们项目的完整功能就测试完毕,后期可根据需求在进行更新!!!
完整工程文件下载: 提取码:8l29
如果感觉文章对您有用,麻烦三连支持一下,方便下次用到的时候,就可以快速找到我,非常感谢您的支持!!!

浙公网安备 33010602011771号