10042| 13
|
树莓派电子琴-MPR121触摸板 |
开始前,照例聊一聊为什么要做这个项目,是因为我实在想安利一个快乐的频道给大家:TwoSetViolin双琴侠(b站,yutube可以看到他们的视频,微博和ins有社交账号) 事情是这样的:我以前对音乐一直比较无动于衷,从去年开始关注到这个频道之后,就开始感受到音乐的乐趣啦,其实更感兴趣那些有趣的人,所以后来每天到点追更新,实在幸福。他们有一个栏目叫LINGLING40HOURS,很多有才的lingling(粉丝称号/天才称号)都凭借各种音乐才华还有乐手梗成功吸引他们的注意,可是不会乐器的我确实很难想到新梗,难道要加入三角铁帮?救命,肯定不可。思考一阵子,得,DIY一个漏洞百出的小玩具琴吧,说不定能投稿上LINGLING40HOURS搏大家一笑,还能给DIY选手们安利一下我的快乐源泉(如果评论区有零学家,请同好一定举起双手让我看到)。 先看一下成品图,那我们就开始啦!GOGO! 一、硬件准备 (一)材料准备
(二)琴键连接 1.首先准备触摸板部分焊接前,我们需要梳理一下逻辑:mpr121可以输出12个信号,可是我们需要3*7=21个信号,所以我们将12个信号分为x(0-4),y(5-11)两组,这样我们就得到了35个信号组合。 如图,将触摸板上焊接导电线,共21个,示意图和焊接图如下,我焊接了黄色和绿色部分。 2.准备琴板部分 将快递箱子裁剪折叠后得到如下一块三层板子,同时准备一些小纸板条以固定琴键。 然后将触摸板安装到琴板上 稍微加工修整一下 3.准备琴键部分 将彩色木条下端缠上一圈铜箔胶带。 然后粘在纸板条上。效果如图: 二、软件准备 [size=14.6667px] 我使用的远程连接软件是MobaXterm。 三、具体操作 (一)、硬件连接 如图所示:喇叭模块接在22口,触摸板接IIC口。 当然,你也可以选择别的引脚,但是请务必保证是接在GPIO口上,具体引脚可以查看下图 最后,网线和电源线找准位置接好即可。 (二)、代码准备
根据动图操作,将文件夹从本地拖拽到mobaxterm。(请选择Desktop文件夹下) 在本地新建一个python格式的空文件,我这里命名为36.py。下一步梳理代码。 2.梳理代码 1)电子琴的逻辑为:只需要当我们按下相应的按键,喇叭能发出对应的音符即可。mpr121的库文件中已有触摸即可输出0-11信号的功能,于是在这个基础上,我们将12个信号引申至更多信号,于是,我将0-4认为是x,5-11认为是y。组合起来就有35种可能性。在这里我只设置了低音、中音和高音三个部分,所以只需要用到x=1,2,3的情况。在代码中,如果输出了5,那么我会让它输出y=0,依次类推,这样就可以用y做下标去选择频率值了。于是我设定,当x=1时,低音部,此时根据y值决定音符频率;当x=2时,中音部,此时根据y值决定音符频率;当x=3时,高音部,此时根据y值决定音符频率。 2)代码如下: 可以直接复制粘贴。
3)然后将36.py拖进mobaxterm中examples文件夹下,如图: 四、展示效果 1.运行代码 首先进入36.py的位置,如动图: 然后输入python 36.py即可运行。ctrl+c即可退出运行。 2.展示效果 如图,此时我按下的是低音部第6个音符。 视频展示: |
© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed