本帖最后由 随风逐梦 于 2018-2-11 22:42 编辑
马上双节就要到了,各种花样翻新的送(xiu)温(en)暖(ai)神操作纷至沓来,抱着一把吉他对着深爱的妹子深情弹唱历来都是各路小说电影文艺片的经典桥段。然而弹吉他这种事情,对于我们理工科占多数的乐高老师而言,是个巨大的挑战,怎么办呢?
我们有无所不能的乐高!
相信上图对于广大乐高老师而言都不是什么太大的问题,关键是程序。然而,一个对音乐一窍不通的人,如何写出一个具备操作性的吉他程序呢?答案很简单,虽然笔者并不懂乐理,但是懂数学!
EV3的声音模块采用电子琴的制式码放音符,分为21个白键15个黑键总计36个音符,程序的目标就是合理有规律的安排这些音符与传感器的状态,以便达到演奏的效果。
从数学的角度,我们可以做出下图这样的统计表,这样一来,就可以通过通过寻找36个音符的数学规律的方式,安排传感器与音符的对应关系:
根据上面的图表,做出传感器的安排。可以看到,如果从数阵的角度看,上表分为字母C到B、数字456、以及是否有#号三种元素组成。合理标记这三个元素就是编程的关键。在这个EV3的吉他上,笔者安装了触碰、颜色(安装在右手挡板处,按钮朝下)、超声波三个传感器,以及一个大型电机作为角度传感器使用。将超声波传感器的读数范围分为7个部分,每个部分对应字母C到B的元素(超声波传感器部分分支较多,为方便查阅和管理程序,可将其做成自定义模块);角度传感器分以-15°和15°为界分为三个部分,对应数字456;触碰传感器按下与否对应是否有#号;颜色传感器管总,控制是否有音量发出。如此有规律的将36个音符罗列出来。
说到这里,可能很多乐高老师要开始拍桌子了:“我要是懂乐谱,早就拿真吉他开始弹了,还至于拿EV3做吗!”别急,笔者这里还有两个为不懂音乐的人设计的替代方案
方法一:提前写好音乐的程序 如下图,每一个音符用一个音乐模块对应,然后用时间控制声音的长短和间隔,重复比较多的,可以做成子程序(也就是自定义模块)然后组合起来,直接启动程序播放就好! 程序启动之后,做做弹吉他的动作就好
好吧,笔者知道读到这里肯定有更多的人要拍桌了:我要是看得懂琴键我还问你干嘛?,没关系,还有方法二,不要急着点右上角的X。
方法二:将现成的曲子切成小段用扬声器播放。 音频文件剪辑分段方法: http://v.youku.com/v_show/id_XMzM5NjMzNzQ3Ng==.html?spm=a2h3j.8428770.3416059.1
视频文件剪辑分段方法:
最后是演奏效果:
视频中用到的软件下载链接: https://pan.baidu.com/s/1i7jDIap#list/path=%2F
|