碎碎思 · 1月3日

国外大学生都用FPGA做什么项目(五)

image.png

  • 看看国外大学的FPGA开发项目

据我了解,目前国内很多大学是没有开设FPGA相关课程的,所以很多同学都是自学,但是自学需要一定的目标和项目,今天我们就去看看常春藤盟校Cornell University 康奈尔大学开设的FPGA项目课程,大部分课程是有源码的,而且和国内使用习惯类似都是Verilog开发,还是很有借鉴意义的。

项目链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/

项目介绍

Spring 2017 开发板 CycloneV SoC

Realtime pitch shifter-实时音调变换器

image.png

在 DE1-SoC FPGA 上设计了一个实时变调器,由 ARM 内核使用 GUI 进行控制。它可以执行以下任务:通过手动音调调整独立地改变左右音频输出的音调,使用左右音频产生语音和弦音频输出与原始语音一起,并通过以不同的速率调制适当的参数来产生时变的音调变化。最终产品能够产生许多不同的语音效果,同时通过 VGA 监视器上显示的简单、用户友好的 GUI 进行控制。

image.png
image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/jmt329_swc63_gzm3/jmt329_swc63_gzm3/PitchShifter/index.html
  • hackaday项目介绍
http://hackaday.com/2017/06/18/voice-shifting-with-a-cyclone-v-fpga/
  • 视频链接
https://www.youtube.com/watch?v=VeT4ikeRbic&index=10&list=PL2E0D05BEC0140F13&t=3s
  • 代码链接
https://github.com/jmt329/PitchShifter

Digital oscilloscope-数字示波器

image.png

使用 DE1 SoC 构建了 SillyScope 数字示波器,这是一款 4 通道示波器。用户可以使用 HPS 控制示波器。它们可以控制电压标度、时间标度、偏移量和触发通道。用户还可以使用两个通道执行加法和减法等“数学”运算。该项目使用 HPS 实现用户交互,使用 FPGA 采样信号并将其显示在 VGA 屏幕上。

image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/ijt5_jgf82_jls633/ijt5_jgf82_jls633/sillyscope/index.html
  • 视频链接
https://youtu.be/-_ ALmpx59SQ?list=PL2E0D05BEC0140F13
  • 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/ijt5_jgf82_jls633/ijt5_jgf82_jls633/sillyscope/triggered_scope.zip

Big Red Strings: A FPGA Musical Trio-大红弦:FPGA 音乐三重奏

image.png

在 DE1-SoC 上实现音乐点唱机。该设计同时使用了 FPGA 和 ARM 处理器。使用 Karplus-Strong 算法,在 FPGA 上,生成对应三种乐器的多个字符串,可以产生不同的音符。HPS 上运行的 AC 程序负责处理来自包含转录乐谱的文件夹的文件输入以及控制速度。还在 VGA 显示器上生成了一个 GUI,使用户能够选择要播放的预加载歌曲。该系统允许 HPS 和 FPGA 读取音乐并合成类似于真实乐器的声音。

image.png

image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/eli8_sjy33_awx2/ece5760finalproject/ece5760finalproject/index.html
  • hackaday项目介绍
http://hackaday.com/2017/05/18/synthesizing-strings-on-a-cyclone-v/
  • 视频链接
https://youtu.be/DvpA_gBL1VU?list=PL2E0D05BEC0140F13
  • 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/eli8_sjy33_awx2/ece5760finalproject/ece5760finalproject/files/stringsynth_verilog.zip

Catch Bruce if you Can: A video hand tracking Game-颜色检测游戏

image.png

设计了一款名为“Catch Bruce if you Can”的游戏,其中包含用户手部坐标信息的光标位置与随机生成的布鲁斯教授图像进行匹配。成功地将光标位置与布鲁斯教授的图像匹配将使分数增加一分。

image.png
image.png
image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/amg432_srs383_gkt27/amg432_srs383_gkt27/amg432_srs383_gkt27/ECE5760FinalProject.htm
  • 视频链接
https://youtu.be/ImjKtQfo_rQ?list=PL2E0D05BEC0140F13
  • 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/amg432_srs383_gkt27/amg432_srs383_gkt27/amg432_srs383_gkt27/ECE5760FinalProject/DE1_SoC_TV.zip

Character Recognition Using OpenCV on DE1-SOC -在 DE1-SOC 上使用 OpenCV 进行字符识别

image.png

该项目涉及使用扬声器、VGA 显示器和摄像头。该项目分为三个主要部分:录制语音并在扬声器上播放、在 VGA 监视器上显示实时视频源以及能够捕获和保存该源中的帧,以及使用 OpenCV 进行单词或字符识别。字符和单词识别基于“模板匹配”的技术,该技术将各种模板图像与实际图像进行比较,以确定这些模板与图像内容的匹配程度。通过将每个字母制作成模板,系统可以确定存在哪些字母。

image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/fck22_asm356_rr697/fck22_asm356_rr697/fck22_asm356_rr697/index.html
  • 视频链接
https://youtu.be/n0iMeJDNrGU?list=PL2E0D05BEC0140F13
  • 代码链接
https://github.coecis.cornell.edu/asm356/ECE5760-Lab1/tree/master/Project

HPS-powered Logic Analyzer debugging FPGA-HPS 驱动的逻辑分析仪调试 FPGA

image.png

该项目的目的是构建一个系统,通过在 VGA 监视器上实时捕获和可视化信号来调试 FPGA 设计中的实时信号。该系统还具有 USB 鼠标接口,用于放大/缩小显示以及滚动波形。

image.png
image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/md874/md874/LogicAnalyzer.htm
  • hackaday项目介绍
http://hackaday.com/2017/05/17/logic-analyzer-on-chips/
  • 视频链接
https://youtu.be/ouLi8tj1zsg?list=PL2E0D05BEC0140F13
  • 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/md874/md874/LogicAnalyzer/final_project_5760_hw.zip

Robot Operating System Stereo Vision Accelerator-ROS立体视觉加速器

image.png

立体相机是一种通过使用两个或多个镜头可以捕捉三维图像的相机。我们的项目将 FPGA 转变为一种设备,能够减少从校正图像源生成立体图像所需的时间。之后,我们将我们的系统集成到 ROS 节点中,使得我们的硬件可以轻松地被任何 ROS 系统使用。

image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/rk534_ty252_jdf258/rk534_ty252_jdf258/index.html
  • 视频链接
https://youtu.be/DKKSj_acFZU?list=PL2E0D05BEC0140F13
  • 代码链接
https://github.coecis.cornell.edu/rk534/stereo_cam_node

Julia Set Renderer

image.png

该项目通过 ssh 终端为用户提供了一个界面,可以在其中输入公式(例如z^2+ c )并在 VGA 屏幕上绘制相应的 Julia 集。用户可以使用鼠标来平移/缩放所绘制的集。

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/ipb7/ipb7/ipb7/JuliaProcessor.html
  • 视频链接
  • 代码链接
https://github.com/ipburbank/ECE5760-Julia/archive/master.zip

Real-Time Vision-based Object Identification and Tracking-基于视觉的实时物体识别和跟踪

image.png

为了模拟产品的变化,我们的工厂“生产”了 Spree 糖果,它由五种不同颜色的硬糖组成。由 FPGA 控制的伺服系统驱动的传送带将 Sprees 传送到 NTSC 摄像机的视野中。然后,FPGA 运行多个图像转换来处理原始视频输入的每一帧。HPS 最后分析每个处理后的图像,提供帧中每个彩色 Spree 的总数。该程序还跟踪每个 Spree 沿传送带移动的情况,计算我们的装配线“制造”的 Spree 总数。

image.png
image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/yz424_clc288/yz424_clc288/final_website/index.html
  • hackaday项目介绍
http://hackaday.com/2017/06/10/quality-assurance-through-fpga/
  • 视频链接
https://youtu.be/6QZgYuS9QR0?list=PL2E0D05BEC0140F13
  • 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/yz424_clc288/yz424_clc288/final_website/index.html

HPP lattice Gas Automaton-HPP 晶格气体自动机

image.png
image.png

我们的程序是一个晶格气体自动机,使用 HPP 模型来模拟气体和液体。

image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/bh475_nds64_wm226/bh475_nds64_wm226/bh475_nds64_wm226/ECE5760FinalProject.htm
  • 视频链接
  • 代码链接
https://github.com/nds64/ece5760

3D paint using video tracking-3D 绘画系统

image.png

设计了一个系统,它可以接收用户画笔动作的实时视频来生成 3D 绘图。

image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/jss459_ssd56_aj373/jss459_ssd56_aj373/index.html
  • 视频链接
https://youtu.be/_ DYayH-mK2M?list=PL2E0D05BEC0140F13
  • 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/jss459_ssd56_aj373/jss459_ssd56_aj373/index.html

Spooky Tag: Spatial sound cues -幽灵标签:空间声音提示

image.png

人类通过处理每只耳朵接收到的声音之间的细微差异来感知空间中的声音。细微的差异主要源于声音通过头部和耳腔(也称为耳廓)的传播。我们可以通过使用 HRTF 处理来合成被感知为来自特定位置的声音。

我们将这一概念集成到 Tag 的框架中,提供使用回声定位作为定位和避开追击者的主要手段的功能。

image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/arl228_dhl72_wpa26/arl228_dhl72_wpa26/5760%20website/index.html
  • hackaday项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/arl228_dhl72_wpa26/arl228_dhl72_wpa26/5760%20website/index.html
  • 视频链接
https://youtu.be/8c6E6q0jGZw?list=PL2E0D05BEC0140F13
  • 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/arl228_dhl72_wpa26/arl228_dhl72_wpa26/5760%20website/index.html

Sound controlled video game-声控视频游戏

创建了一个简单的视频游戏,使用玩家的声音作为控制机制。游戏的设定是,你控制一艘宇宙飞船在太空中飞行,有流星飞向你,你必须躲避。玩家根据对着麦克风讲话的声音大小来上下移动宇宙飞船,并尝试避开流星。

image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/cs886_bc472/cs886_bc472/cs886_bc472/index.html
  • 视频链接
https://youtu.be/AYPyFAELM_k
  • 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2017/cs886_bc472/cs886_bc472/cs886_bc472/code/code.zip

总结

项目很多,从2016~2023年,应该有一部分项目没有展现出来,大部分都有视频介绍,但是我看了一些视频,都是简单演示一下功能,并没有设计思路,所以需要自行查看源码中的文档。

原文:OpenFPGA
作者:碎碎思

相关文章推荐

更多FPGA干货请关注FPGA的逻辑技术专栏。欢迎添加极术小姐姐微信(id:aijishu20)加入技术交流群,请备注研究方向。
推荐阅读
关注数
10516
内容数
513
FPGA Logic 二三事
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息