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

点击蓝字关注我们

关注、星标公众号,精彩内容每日送达
来源:网络素材

2c26b1d8a703ee878aff6018f3f9497a.png

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

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

项目链接

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

项目介绍

Spring 2014 开发板 CycloneII 和 CycloneIV

Fruit Ninja with video tracking - 视频追踪的水果忍者游戏

19b58158c72112b181894e48aef25557.png 427c7851a843228d853d0e095750bdcc.png

水果忍者游戏主要基于 HTC 231x CCD 摄像头和 VGA 显示器。游戏中,玩家需要移动自己的手,VGA上的光标会跟随移动。

9d72611283aeafdc32f0567a3e32b6d1.png

这时候表明手已被正确跟踪,切掉显示器上出现的苹果、橙子等水果来获得分数,这就是这个游戏的机制。如果玩家误击炸弹或错过太多水果,游戏就会结束。摄像头将捕捉玩家的动作并将信息发送到 FPAG 进行分析。手部追踪是基于肤色检测算法实现,每8个时钟周期进行平均,这样输出就更加平稳。所有游戏图像也存储在定制的 M4K 块中。此外,还添加了玩家切水果和炸弹时的不同音效。

473aa04e672a0cc1d10a7f7724815de3.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/js2839_yc969_ww387/js2839_yc969_ww387/js2839_yc969_ww387/index.html

  • 视频链接

https://www.youtube.com/watch?v=oDQUxPjDd4A&list=PL2E0D05BEC0140F13

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/js2839_yc969_ww387/js2839_yc969_ww387/js2839_yc969_ww387/verilog.rar

Flappy Bird player - 游戏

4051dfb5aae507aa2f50519813119014.png

《Flappy Bird》是一款在 iOS 和 Android 平台上流行的游戏。游戏中有一只小鸟,点击屏幕时它会上升,否则会下降。游戏的目的是穿过绿色管道。小鸟每经过一组管道,玩家就得一分。该游戏被公认为2014年最容易上瘾的游戏之一。我们的项目是尝试让Altera DE2-115在Android手机上玩该游戏。摄像机为 FPGA 提供视频输入。根据该视频输入,FPGA 识别屏幕上几个关键点的位置,并根据这些点,FPGA 决定是否通过 GPIO 输出引脚“点击”屏幕。

《插入图片》

  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/alt53_akt52_sm2354/alt53_akt52_sm2354/index.html

  • hackaday项目介绍

http://hackaday.com/2014/07/27/an-automated-flappy-bird-player/

  • 视频链接

https://www.youtube.com/watch?v=Fuzear7ZRhc&list=PL2E0D05BEC0140F13

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/alt53_akt52_sm2354/alt53_akt52_sm2354/code.zip

Whack-a-Mole with video tracking - 带视频跟踪的打地鼠游戏

353ad5297f16dd45d22268c400f5fe76.png

使用 Altera DE2 板设计了一款传统的打地鼠游戏。我们不是敲击键盘或触摸屏幕,而是通过使用绿色球拍将鼹鼠击向屏幕来玩游戏。使用相机来检测绿色。如果球拍中心击中目标,玩家将获得一分;另一方面,如果球拍中心击中布鲁斯(课程老师),玩家将失去 5 分。如果玩家达到15分,等级就会上升,后续目标的出现速度会加快。当我们点击图像或进入下一个关卡时,会根据动作产生不同的声音。

ae9b424f71cc7d586d6ad15d2b616f64.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/zh239/ECE5760_ZEQUN_NINGNING_KANG/ECE5760_ZEQUN_NINGNING_KANG/ECE5760.html

  • 视频链接

https://www.youtube.com/watch?v=L7q5g2qjT5U&list=PL2E0D05BEC0140F13

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/zh239/ECE5760_ZEQUN_NINGNING_KANG/ECE5760_ZEQUN_NINGNING_KANG/ECE5760.html

Bruce-in-a-box  - 使用 FPGA 的增强现实

9cc52ed988427af8c235b3b78e5970d5.png 02fe2d98f89ff2b52e134b1708faa778.png

从 NTSC 视频信号开始,信号会进入FPGA中,一旦信号进入 FPGA,代码首先会执行中值滤波器、颜色检测器找到绿色像素区域,该区域被传递到角跟随器和角中值滤波器。图像从 ROM 加载并覆盖到视频流上,然后通过 VGA 输出。

da8e756ed866a276fff6633af9ebe4db.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/jsw267/html/html/index.html

  • hackaday项目介绍

http://hackaday.com/2014/05/16/augmented-reality-with-an-fpga/

  • 视频链接

https://www.youtube.com/watch?v=shh8ySmrpKo&list=PL2E0D05BEC0140F13

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/jsw267/html/html/index.html

Interrupt for Pancake processor - Pancake 处理器的中断

ebebaf27fb0075a72e318c675e5090af.png

基于堆栈的 cpu - Pancake进行了扩展,包含一些同步中断操作。涉及对 cpu 状态机、cpu 硬件部分以及编译器部分更改。

71ccc68db9f8f5f14f2dff67e134f3bf.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/rk447/rk447/ECE5760_webpage.htm

  • 视频链接

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/rk447/rk447/ECE5760_webpage.htm

Hardware return stack and MAC for Pancake processor - Pancake 处理器的硬件返回堆栈和 MAC

7ae9b5d517011941604640e40145033f.png

为 Pancake CPU 开发了硬件扩展。Pancake CPU 最初由 K. Nakano 等人在广岛大学开发,并由 Bruce Land 改编为 ECE 5760(以前的课题,后续会介绍)。

4e7bc5c116c391bd614e59fde2829862.png 933c775ae999d16aa038183c98043ed7.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/cig23/cig23/ECE5760PancakeStackCPUHardwareExtensions.htm

  • 视频链接

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/cig23/cig23/ECE5760PancakeStackCPUHardwareExtensions.htm

Hardware Ethernet Implementation - 硬件以太网实现

57b58b44aa194eec33dafeb5340f42b6.png

在FPGA上开发了以太网数据包 tx/rx 的实现-100Mbps。

  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/aab85_jmv87/Final/Final/index.html

  • 视频链接

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/aab85_jmv87/Final/Final/index.html

Driving Simulator - 驾驶模拟器(游戏)

462e56998caffba3c8cd9e94119b633b.png

汽车驾驶游戏显示 2-D 俯视图,同时可以选择在道路上行驶的汽车 3-D 静态视图。在屏幕上,汽车的前部固定在屏幕的中央底部,而前方道路的布局也在相应地移动。玩家需要在整个游戏过程中驾驶汽车穿过道路的尽头,并且不撞到道路的两侧。用户将在假方向盘、油门/刹车踏板上进行操作。

b8a9d9c9586def1ac0a57a7f8b0113e7.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/ll654_xc255/ll654_xc255/ll654_xc255/index.html

  • 视频链接

https://www.youtube.com/watch?v=lANWXnQwkxc&list=PL2E0D05BEC0140F13

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/ll654_xc255/ll654_xc255/ll654_xc255/index.html

Egg Crusher video game - 鸡蛋破碎机视频游戏

e78fe09c987198acb1cbe5932acc2b05.png

制作了一款“鸡蛋破坏者”视频游戏。它是一款基于实时边缘和颜色检测的单人视频游戏。游戏显示在 VGA 显示器上。该系统通过 HTC 231x CCD 摄像头检测玩家手在垂直方向上的运动。游戏要求玩家在镜头前画一个圆圈。然后它会检测圆是否是圆的。根据玩家的绘制,对圆圈给予伤害,然后游戏画面会放下该圆圈,击中显示屏底部的虚拟鸡蛋。圆圈越好,玩家获得的分数越高,鸡蛋被砸碎的程度也越高。

b7c6f21c527fde6d479664422e3ecbe2.png 82cee482d3567e896f9427e197a865d7.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/zq39_jh2362_jx236/zq39_jh2362_jx236/index.htm

  • 视频链接

https://www.youtube.com/watch?v=RnmUTEWmkOM&list=PL2E0D05BEC0140F13

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/zq39_jh2362_jx236/zq39_jh2362_jx236/cam_to_vga.zip

Color following robot - 颜色跟随机器人

f6fe092d23bafedfb101e9346e74d5c3.png 48d6de2765740784ccca98648ba03bd3.png

设计并构建了一个名为 XO-Blue 的自主机器人,它可以检测并跟踪蓝色物体。机器人视野中的任何蓝色物体都是潜在目标。只要蓝色的十六进制值位于 Verilog 代码中设置的阈值范围内,XO-Blue 就可以检测距相机任何距离的蓝色。我们使用了摄像机来充当机器人的“眼睛”并实时捕捉视频。

ac208e1e775c8d7f05209dd11910ece1.png 7d8c35132d74a3692cdbbc308b6744d7.png e1ef6fb0ef2b5b3542f9377125cbcfe2.png
  • 项目介绍

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/am2462_sv345_ts599/am2462_sv345_ts599/final_report_ece5760.html

  • 视频链接

https://www.youtube.com/watch?v=hw_IRBh_m_0&list=PL2E0D05BEC0140F13&index=6

  • 代码链接

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/am2462_sv345_ts599/am2462_sv345_ts599/XO-Blue%20code.zip

https://people.ece.cornell.edu/land/courses/ece5760/FinalProjects/s2014/am2462_sv345_ts599/am2462_sv345_ts599/3D_Mirror%20code.zip

总结

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值