碎碎思 · 2月5日

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

image.png

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

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

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

项目链接

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

项目介绍

Fall 2010 开发板 CycloneII

Falling Sand Game - Falling Sand 游戏

image.png

2D 粒子模拟器模拟“落沙”的某些动力学。

image.png
image.png
image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ss868/ss868/index.html
  • hackaday项目介绍
http://hackaday.com/2010/12/15/falling-sand-game-on-and-fpga/
  • 视频链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ss868/ss868/ss868_p1.avi

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ss868/ss868/ss868_p2.avi

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ss868/ss868/ss868_p3.avi

  • 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ss868/ss868/index.html

Video Realtime Cartoonifier - 实时视频卡通化

image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/kaf42_jay29_teg25/teg25_jay29_kaf42/index.html
  • 视频链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/kaf42_jay29_teg25/Demo_1_tom.MOV

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/kaf42_jay29_teg25/Demo_2_jeff_line.MOV

  • 代码链接

Virtual Paint - 虚拟绘画

image.png
image.png

虚拟绘画是可用于使用手部动作和手指(带有彩色带)在任何平面(例如墙壁)上绘制彩色图片的系统。该项目的灵感来自于麻省理工学院媒体实验室完成的第六感项目(http://www.pranavmistry.com/projects/sixthsense/#ABOUT),使用不同的手势检测和颜色分割技术,在手持计算设备上运行的软件执行各种不同的任务,例如在空中做笔记、阅读带有投影的新闻报纸视频、用手动作拍摄照片,甚至在墙上画画。因此,在硬件和时间的限制下,我们实现了虚拟绘画。

image.png
image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/dj238_ssb224_aa764/MyWebSites/index.htm
  • 视频链接

http://www.youtube.com/watch?v=-U31GxYNMEA

http://www.youtube.com/watch?v=FbLjXyvnrO0

  • 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/dj238_ssb224_aa764/Virtual%20Paint.zip

Stereographic Depth Mapping - 立体深度映射

image.png
image.png

随着立体电视、电脑显示器以及 3D 电影的兴起,三维视觉感知变得越来越普遍。通过在图像中添加基于硬件的深度信息,该技术可以开辟各种实际应用。一个例子是一种电子乐器,其中所演奏的音符的音高或音调取决于弦或条相对于深度相机放置的距离。我们的目标是使用两个完全由硬件处理的相同相机来设计一种非常高效且具有成本效益的实时视频深度相机。

image.png
image.png
image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/pfk5_jk459/pfk5_jk459/index.html
  • 视频链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/pfk5_jk459/Stereo_1.MOV

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/pfk5_jk459/depth_image.jpg

  • 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/pfk5_jk459/pfk5_jk459/code/

Fractal Landscape - 分形景观

image.png

本项目随机生成 2D 分形景观并创建该景观的 3D 投影图像。为了实现这一点,我们使用了菱形平方算法,该算法通常用于在计算机中创建高度图。我们在 verilog 中实现了菱形平方算法 8 次迭代,将生成分形景观的二维高度图。然后添加了高斯模糊算法使高度图更加真实。最后,我们添加了一种算法,使用正交投影从 2D 高度图创建 3D 投影视图。该算法以自定义时间间隔扫描 0 到 90 度,并显示每个角度的正交投影。

image.png
image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/tss64_rs423/rs423_tss64/index.html
  • 视频链接

http://www.youtube.com/watch?v=jCGw_JQi2nA

http://www.youtube.com/watch?v=lr58PStpBD4

  • 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/tss64_rs423/rs423_tss64/code/rs423_tss64_FractalLandscape_files.zip

3D pong with video overlay - 带视频叠加的 3D pong

image.png

image.png

POTION 是一种动作控制的游戏系统,允许两名玩家正面交锋,或者允许一名玩家与 AI 争夺乒乓球冠军。

image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ssc88_yl477/ssc88_yl477/index.html
  • hackaday项目介绍
http://hackedgadgets.com/2010/12/15/altera-de2-based-3d-pong-game/
  • 视频链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ssc88_yl477/game_1.MOV

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ssc88_yl477/game_2.MOV

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ssc88_yl477/ssc88_yl477/source/potion_slave.zip

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ssc88_yl477/ssc88_yl477/source/potion_master.zip

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ssc88_yl477/ssc88_yl477/source/potion_software.zip

Music Visualization - 音乐可视化

image.png

该项目的主要重点和测试是通过计算机播放音乐。该项目使用的 FPGA 板、板载音频编解码器和带有外部显示器的 VGA 显示驱动器。该设置让用户在板上线路上输入音乐,然后我们项目的逻辑将根据传入的信号在 VGA 端口上输出视觉效果。

image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/der34_mpl56/mpl56_der34/musicvisualization.html
  • 视频链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/der34_mpl56/music_1.MOV

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/der34_mpl56/music_4.MOV

  • 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/der34_mpl56/mpl56_der34/musicvisualization.html

PID temperature controller - PID温度控制器

image.png

该项目的目标是在 FPGA 上实现用于控制应用的数字 PID 控制器。我们设计了一个控制器来跟踪和维持水箱的设定点温度,以尽可能低的超调,同时保持最大可能的上升时间。使用多个控制器和加热器来有效地控制温度。我们使用 MATLAB 设计控制器并根据实验数据开发系统模型。加热器使用来自 FPGA 的 PWM 信号进行驱动,该信号使用 BUZ 73 晶体管进行放大。

image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ma638_ca325_as2454/ma638_ca325_as2454/index.html
  • 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/ma638_ca325_as2454/ma638_ca325_as2454/

WAV player - WAV播放器

image.png
image.png

我们实现了一个功能齐全的音乐播放器,能够通过 FPGA 开发板播放音乐文件。

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/vs327_rw363/WAV_player/ECE%205760.htm
  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/vs327_rw363/WAV_player/c%20code.zip

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/vs327_rw363/WAV_player/DE2_SD_Card_Audio.v

Word recognition - 实时语音识别引擎

image.png

实现了一个实时语音识别引擎,将来自麦克风的时域信号作为输入,并对样本执行频域特征提取识别正在说出的单词。

image.png

  • 项目介绍
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/np276_ksp55_aj355/np276_ksp55_aj355/index.html
  • 代码链接
https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/f2010/np276_ksp55_aj355/np276_ksp55_aj355/index.html

总结

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

原文:OpenFPGA
作者:碎碎思

相关文章推荐

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