极客DIY限时挑战 — 10月挑战任务:自动视力测试仪(基于FPGA)
综合项目完成速度,项目完成情况,以及扩展功能对的扩展,恭喜社区用户 chy520cvv童鞋荣获10月挑战的冠军。并赢得本月挑战的1000元挑战悬赏!
项目帖请见:http://bbs.elecfans.com/jishu_941738_1_1.html本月任务挑战书:自动视力测试仪
任务描述:挑战者需基于上述指定软硬件,在为期三周的时间内制作一个自动视力测试仪,实现用FPGA随机生成不同方向的E, 通过VGA接口在显示器上显示,判断测试者按的按键方向是否正确,通过几轮测试计算并显示最终视力测试结果的功能。
本月挑战指定硬件:Basys 3 Artix-7 FPGA训练板 (DIGILENT提供免费租借 | 板卡功能介绍:www.digilent.com.cn/products/product-basys3-artix-7-fpga-board.html)
本月挑战指定软件:Xilinx Vivado (免费下载地址:www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/vivado-design-tools/2016-2.html)
挑战悬赏:
1. 挑战周期内最先完成挑战任务的选手:¥1,000元挑战悬红
2. 挑战周期内,非第1位但如期完成挑战任务的选手:¥100精美礼品
3. 每月限3名入围挑战者(从报名参与者中择优录取,并提供硬件免费租借)
本月挑战周期:3周(提交截止日为10月20日)
挑战参与规则:
1. 挑战者需为高校在校学生(研究生、本科生、专科生皆可)
2. 通过活动官方报名窗口【https://www.sojump.hk/jq/9710758.aspx 】报名参加挑战(申请挑战者需同时为DIGILENT开源技术论坛与电子发烧友论坛的实名注册用户)
3. DIGILENT将在当月的报名者中择优挑选3名挑战者,并提供当月项目开发所涉及主要硬件的免费租借(需挑战者交付押金¥500元,活动结束归还硬件后押金退还)
4. 在限定挑战周期内,挑战者需在DIGILENT开源技术论坛“创客小组版块”及电子发烧友论坛“FPGA板块”单独开贴提交以下素材:
· 所完成挑战任务的“Demo视频”
· 所完成挑战任务的“功能实现说明(限150-300字)”
· 所完成挑战任务的“DIY动手指南(包括每一个步骤的配图)”【参考样式:http://www.digilent.com.cn/diy/83.html】
5. 在限定挑战周期内,最先完整提交上述素材的“第1位挑战者”即为当月挑战王,并获得挑战悬红;
6. “第1位提交者”以在DIGILENT开源技术论坛“创客小组版块”及电子发烧友论坛“FPGA板块”开贴提交上述全部材料的用户为准(特别提示:两边论坛皆需提交),提交先后以天为判定。若多位挑战者在同一48小时内提交材料,DIGILENT将根据①在任务书的规定功能之外,所实现的扩展能;以及②“项目DIY动手指南”制作的精细程度来判定获胜者。
摸我立即报名申请参与挑战,赢取千元现金挑战悬红!
参考步骤如下哟:
1、随机生成不同方向视力测试的符号“E”,通过FPGA的VGA接口在显示器上显示。四个方向的概率应相同。
生成有两种方法:
1) 用VGA显示图像,并旋转图像,得到不同方向的E
2)用VGA显示字符
注:VGA显示字符可参考GIThub上的VHDL代码。如果挑战者熟悉的是Verilog编程,亦可作为参考改写。https://github.com/dries007/Basys3/tree/master/VGA
工程在顶层文件中通过draw_string函数调用draw_char函数来显示一行字符。如draw_string(X, Y, posX, posY, "HELLO", true, 2),将在(posX, posY)位置显示一行大小为2的字符HELLO。文字颜色可以通过设置RGB改变。
为了显示不同方向的“E”,可以改变draw_char函数中的二进制矩阵。比如,将字符U对应的矩阵改为向上的“E”,将字符D对应的矩阵改为向下的“E”,将字符L对应的矩阵改为向左的“E”,将字符R对应的矩阵改为向右的“E”。这样在代码中就可以用U/D/R/L来代替不同方向的E。
该工程还使用了四个方向按键来控制字符位置。在我们的挑战中,字符位置不需要移动,四个按键将被用于视力测试。具体功能在步骤2中描述。
图:原代码中字符“E”的二进制矩阵(可将字符的棱角去除,变为宽高一致的“E”,更符合视力测试的需求)
2、测试者按Basys3板上的中央按键开始测试。测试分为5轮,每轮用同样大小的字号进行3次测试,每次在屏幕显示一个“E”。测试者通过Basys3板上的四个方向按键选择看到的字符方向。若三次判断正确两次及以上,则字号变小,进行下一轮测试;否则测试结束,通过VGA在屏幕上提示测试结束,并显示视力测试结果(参考标准视力对照表)。
3、测试过程中,数码管显示测试的等级、每轮已完成的次数,以提醒测试者测试进程。
4、完成一组测试后,测试者可按Basys3板上的中央按键重设,进行另一只眼睛的视力测试。
@2016 DIGILENT保留对该活动的最终解释权。关于本次活动如有任何问题,欢迎回帖询问。
好难呀 期待学习一下
mark一下
期待
要是硬件平台不限多好
以前一直学习单片机,FPGA正在学习,HDL语言
- 1 %%
- 2 close all;
- 3 clear all;
- 4 clc;
- 5 %% parameters
- 6 CY=8;
- 7 fSymbol=67000;
- 8 fs=CY*fSymbol;
- 9 N_fft=100000;
- 10 addr_diff=8;
- 11 addr_find=512;
- 12 L=5;
这个贴真的很有帮助!
正在学习FPGA
哇塞,这样的机会不错,,,,,,,,,,,,,,,
小编能发下源码吗,,新手想学下...