基于fpga的电子琴

河海大学V2C创客部落作品 | 游戏娱乐

paselay   项目发起人  2017-08-30

本项目通过basys3完成了音乐播放及弹琴的功能,通过按键播放不同的音符,同时内部存储2首编译好的音乐。

项目详情

项目创意灵感
进一步熟悉basys3的使用,完成音乐播放功能。
设计特色创新
内部存储了两首歌曲,不单纯是按键+音频输出
系统原理功能
通过矩阵键盘来获取键值来确定音频信号的频率大小,以此确定音调,
通过8位拨码开关来确定2组谐波频率相对于基波的倍数,以此来改变音色,我们的FPGA使用verilog 语言编写,通过综合,实现,生成对应的数字逻辑电路,然后生成比特流下载到FPGA中,FPGA部分实现我们采用了信号发生器的工作原理,通过对100MHz的时钟以频率作为分频因子来获得分频计数最大值。然后通过对100Mhz的时钟进行以分频计数最大值为分频因子来获得对应的频率,每次当计数值达到分频计数最大值时,通过取反采集时钟来获得对应频率的采集时钟;然后以采集时钟为触发信号来获取对应的正弦值,这样就得到了基波频率的正弦波,还有两个谐波通过各4位拨码开关来确定相对于基波频率的倍数。重复上述步骤,即可,然后将获取到的三个正弦波进行累加就可以获得不同音色的音频信号了,然后通过DA模块将得到的音频数字信号转换为音频模拟信号,通过LM386音频放大来使扬声器发出声音。

完成情况概述
基本完成所有功能
项目采用平台:
项目采用传感器: