基于小脚丫FPGA的综合技能训练平台
基于小脚丫FPGA的综合技能训练平台定时、测温、报警、控制功能实现
标签
FPGA
cjmf
更新2021-03-26
1367

项目需求

  1. 实现一个可定时时钟的功能,用小脚丫FPGA核心模块的4个按键设置当前的时间,OLED显示数字钟的当前时间,精确到分钟即可,到整点的时候比如8:00,蜂鸣器报警,播放音频信号,最长可持续30秒;

  2. 实现温度计的功能,小脚丫通过板上的温度传感器实时测量环境温度,并同时间一起显示在OLED的屏幕上;

  3. 定时时钟整点报警的同时,将温度信息通过UART传递到电脑上,电脑上能够显示当前板子上的温度信息(任何显示形式都可以),要与OLED显示的温度值一致;

  4. PC收到报警的温度信号以后,将一段音频文件(自己制作,持续10秒钟左右)通过UART发送给小脚丫FPGA,蜂鸣器播放收到的这段音频文件,OLED屏幕上显示的时间信息和温度信息都停住不再更新;

  5. 音频文件播放完毕,OLED开始更新时间信息和当前的温度信息

实现的思路

  1. 通过模块组件例化来实现 OLED 、 UART 与 FPGA 之间的连接。

  2. 60 秒计时直接采用时钟分频的方式,不使用求余和整除的操作,节省部分空间。

  3. 流水灯通过移位的方式,一组寄存器直接控制两个,无需多余算术操作,尽量降低空间占用。

  4. 发送音频使用类似于 MIDI 的思路,即发送音符。同时定义了音乐开始幻数与结束幻数。播放时长由上位机延时实现。

  5. 报警时采用音乐生成模块来生成一段任意长度的音乐,然后并发使用 PWM 模块来播放音乐。

完成的功能

  1. 实现一个可定时时钟的功能,用小脚丫FPGA核心模块的4个按键设置当前的时间,OLED显示数字钟的当前时间,精确到分钟即可,到整点的时候比如8:00,蜂鸣器报警,播放音频信号,最长可持续30秒;

  2. 实现温度计的功能,小脚丫通过板上的温度传感器实时测量环境温度,并同时间一起显示在OLED的屏幕上;

  3. 定时时钟整点报警的同时,将温度信息通过UART传递到电脑上,电脑上能够显示当前板子上的温度信息(任何显示形式都可以),要与OLED显示的温度值一致;

  4. PC收到报警的温度信号以后,将一段音频文件(自己制作,持续10秒钟左右)通过UART发送给小脚丫FPGA,蜂鸣器播放收到的这段音频文件,OLED屏幕上显示的时间信息和温度信息都停住不再更新;

  5. 音频文件播放完毕,OLED开始更新时间信息和当前的温度信息

  6. 红色 LED 流水灯从上往下依次亮起。两组彩色 RGB 灯间隔亮起。

  7. 四个按键分别实现了复位,时钟归零、递减、递增等操作。

遇到的主要难题

  1. 音符间的间隔较难把握。真实乐器中音量大小会自动衰减,而 PWM 驱动中的音量保持一致。所以需要手动加入一段空白来分割停顿。

  2. 有时占用的资源量过大,导致无法成功编译。使用了一些优化手段后可以把占用降低到可接受的范围内。

  3. 有时候编译会遇到时序错误,修正代码和配置后解决。

未来的计划建议

  1. 实现 MIDI 的基本功能,增加 PWM 驱动的音量调节功能。

  2. 尝试使用 ADC 模块实现更多的操作。

使用资源及代码

FrlAshNY0f5F0jZP4Qi_MjNR_Hpj

FkQqQxfNF4Xj9ZFOpxdoz8JmKIM_

 

演示图片

Fj9rEOnxptIuGXBFX8dmFrf1zfJkFrD3_nJpHVqkibC0PdNOH5QTZYfFFsWnecx717cTqbeg4M-O6gmojosv

附件下载
main.zip
源代码
main_impl1.jed
固件
团队介绍
中国计量大学
团队成员
钱嘉程
中国计量大学 2020 级
评论
0 / 100
查看更多
目录
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2023 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号