首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

零基础在家陪娃玩编程(8):程小奔实例4.小奔变乐器

本章编制的这个程序,让程小奔化身为一个乐器,虽然能弹奏的音符有限(不过可以继续扩展),但确实是个真正可以演奏的乐器。

本章目标

掌握以下新知识点

概念:多线程

输入:滚转角

输出:播放-音符

重点是多线程。

之前我们已经完成了3个程序实例,那3个实例有一个共同点:只有一个事件,带上后面一串命令。我们管一个这种结构叫做“事件驱动”的一个“线程”。换句话说,就是之前的三个程序都是单一线程的。

然而稍微复杂一点的程序,都不是单线程能够实现的。程小奔支持多线程并发执行。今天的程序就是一个例子,同时拥有4个事件驱动的线程。

举个生活中的例子来帮助理解多线程并发:你在电影院一边看电影一边吃爆米花。很粗略地可以分成眼睛看、耳朵听、手拿爆米花、嘴巴吃爆米花等好几个同时进行(并发)的动作(线程),这就是多线程。

小程变乐器

程序及分析

今天我们的程序是用小程做个乐器。一个合格的乐器,需要很多输入来对应很多输出,比如钢琴88个键、吉他6弦12品...但小程总共才3个按钮,是在太少了,完全没法成曲调。

好在小程还有其他的输入方式,这次我们就利用滚转角和按键结合的方式来拓展输入。

滚转角的值来自于小程体内的陀螺仪传感器,其意义为向左向右倾斜的角度,正直为零,左倾为负,右倾为正。

总体思路就是,当小程左倾时,ABC对应(简谱音符)123;右倾时则ABC对应456。这样就可以区分出6个输入值了,然后根据这6个值来播放音符1-6。

当然6个也还是很少,以我们视频演示的“两只老虎”为例,还缺了个低音5,所以我们又补了个摇晃时发低音5。

在EXCEL里面写几个简单公式,把简谱翻译成指法,小朋友就可以看着指法用小程来演奏了。

不过我家小朋友很快就掌握了指法,直接看谱就能演奏,完全不需要看指法表。

运行效果演示

这是运行效果:

说明一下,这个视频是加速了的,所以你听到的音调会高几个8度,中间还弹错了个音重弹了一下。

本章总结

本章的重点知识点是多线程。

下表为知识点一览(蓝底标题对应慧编程指令分类,前4类均为输出,感知即输入。感知类下面,*开头的是小奔的感知,其他是小程的感知):

浅蓝底色的是以前用过的,浅橙底色的就是本章新接触的。检查下你都掌握了吗?

课后练习:更多音调

现在只有7个音调,差不多是为两只老虎定制的,显然很不够。想想看,有什么办法可以再多几个音调呢?

这个问题是开放性的,没有标准答案,你有什么想法,欢迎留言!

下期我会公布我的想法供大家参考。

上期课后练习答案

和原来的程序的区别有2个:一个是随机数从1-6变成了1-10;另一个是以前随机数等于6时显示6,现在只要大于5(6-10)都显示6。所以现在50%的概率显示6,1-5各10%。

本章到此结束。如果您有问题需要讨论或者对同好交流平台感兴趣的,欢迎扫描下面二维码加棠爸的微信,验证申请就写“程小奔”就行了。

— END —

TOP 10

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180811G0I3W700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券