基于FPGA的WiFi电子钢琴

2017 DDC中国区选拔赛作品 | 游戏娱乐

chenpengxin   项目发起人  06-12

你是否爱音乐,是否有个钢琴梦,但又因动辄上万元的价格止住思绪。没关系,让我们来DIY一个电子钢琴,还是无线的哦!本设是一款基于Arty的WiFi电子钢琴,利用普通电脑键盘的104个按键代替钢琴的88个音符键,不同的按键对应不同的音符,实现88个音符的无线演奏。FPGA驱动键盘与WiFi模块,Qt建立服务器并控制音响播放音符文件。FPGA通过WiFi模块与远端服务器和音响建立连接,用户可以感受“无线钢琴”的体验。

项目详情

项目创意灵感
想弹钢琴,却没有钢琴怎么办?钢琴动辄上万元怎么办?何不DIY一个电子钢琴呢?一块FPGA板卡 + 一个键盘 + 一个WIFI小板,即可完成电子钢琴的DIY工作。插上电,连上网,躺在床上都能弹钢琴。
设计特色创新
本项目的特色在于,利用普通电脑键盘代替钢琴键盘,通过WIFI模块传输钢琴键值,服务器端根据接收到的键值播放对应的音符文件。从而实现“WIFI电子钢琴”的功能。实际生活中的钢琴,由于大气压力、温度、湿度以及弹奏等多方面因素影响,一台钢琴正常使用一段时间后,会使音调产生偏离,即通常所说的音不准了,这时候就需要对其进行调音。而本项目的“WIFI电子钢琴”采用标准的88音符WAV文件,也就不存在音调偏离和调音的情况了。
系统原理功能
如上图2所示,首先将键盘通过USB接口连接Basys3(因为Arty没有USB Host的接口啊,所以借助了Basys3),Basys3驱动键盘、读取键值,并利用串口通信将键值传递给Arty。Arty拿到键值之后,再通过WiFi模块传输到远端服务器。服务器使用的是家用计算机,利用Qt编写了TCP通信的程序,使之与Arty端的WiFi模块建立连接。上位机方面,制作了88个音符wav文件,利用QSound类根据键值播放对应的音符WAV文件。用户端敲击键盘,计算机端播放音符,从而实现了WiFi电子钢琴的功能。
完成情况概述
本项目较好的完成了“无线传输”和“钢琴弹奏”的功能,由于WIFI仅传输键值,音符文件存储在服务器本地,所以基本不会存在“弹奏延时”的情况。另外,利用qt编写服务器端的上位机程序,实现接收键值和播放音符的工作。
项目采用平台:

我要评价