孩子们是最贪玩的也是最聪明的,因此在过去的数年中,市面上出现了不少寓教于乐的理工科知识(STEM)学习新方法。如今这类产品中又有了一名新成员,TPYBoard重磅推出一款针对小白、中小学生的可编程计算机设备,意在依靠“炫酷”来吸引孩子学习编程知识。

  编程像乐高一样简单!

  TurnipBit不需要在电脑上写代码,枯燥地学习编程,而是通过图形化拖拖拽拽的编程方式,轻松地创造出自己的游戏、音乐、科学实验,以及控制机器人。

  TurnipBit自制小乐器

  下面就使用TurnipBit制作了一款简易的乐器,分享出来给大家交流学习一下。自己在家里也可以带着孩子一起动手做起来!

  实物成品如下图:

  这个小乐器的主要是能依靠可调电阻调节输入电压,再通过蜂鸣器发出不同音调的音乐出来,里面的蓝色圆柱LED灯主要是用来显示一下当前的输入电压(可不要),LED灯越亮,蜂鸣器输出的音调越高。使用板子LED灯的亮度和度数显示当前的频率高低。

  小乐器制作过程:

  这个简易的乐器主要使用的器件如下:

  TurnipBit一块

  蜂鸣器一个(TurnipBit上面自带了耳机接口,没有蜂鸣器接上耳机和音响,或许效果更好)

  可调电阻一个

  杜邦线四根

  鳄鱼钳导线一根

  LED一个(可以不要)

  面包板一个(也可以直接用线连接针脚的,用面包板好看一些)

  1.蜂鸣器简要介绍

  蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“ZZG”、“LB”、“JD”等)表示。

  2.可调电阻简要介绍

  可调电阻的标称值是标准可以调整到最大的电阻阻值,理论上,可调电阻的阻值可以调整到0与标称值以内的任意值上,但因为实际结构与设计精度要求等原因,往往不容易100%达到“任意”要求,只是“基本上”做到在允许的范围内调节,从而来改变阻值。

  可调电阻一共有三个引脚,两边的引脚分别接3.3V和GND,中间的引脚接到想要读取电压值的引脚上。

  硬件接线方法如下图:

  这次主要是要使用图形编码来制作的小实验,这次需要用到的命令主要有音乐里面的播放音调命令,逻辑里面的如果和判断条件命令,循环里面的重复命令和读取ADC值的命令等。

  接下来就一一介绍一下这些命令的选择和命令中参数的使用方法进行介绍和讲解。

  1.播放音调命令

  播放音调命令就是控制蜂鸣器播放出相应的音调的声音。

  下面讲解一下各个参数和使用方法。

  使用这个命令的时候,在命令选择区域中,选择音乐,选择播放音调命令,如图

  播放音调命令中共有两个参数,这两个参数分别控制蜂鸣器输出的音调和输出时间,如下图:

  2.如果和判断条件命令

  如果和判断条件命令,使用如果命令,是为了判断命令里面的判断条件命令是否成立,如果成立则执行相应的命令。

  使用如果和判断条件命令,需要在命令选择区域里面选择逻辑,选择如果和判断条件命令即可,如下图:

  在选择了如果命令的时候,必须要加上判断条件命令,具体格式如下图:

  3.重复命令

  重复命令是在判断一个条件是否成立,如果这个条件成立,则执行相应的指令。

  使用重复命令,在命令选择区域中选择循环,选择重复命令,如下图:

  在选择了重复命令后,在判断条件上加入一个逻辑里面的真命令,即可完成一个无限循环,如下图:

  4.读取ADC值

  读取ADC值的命令,是为了读取相应的引脚输入的电压值。

  选择读取ADC值的命令,需要在命令选择区域,选择引脚,选择读取X引脚的模拟电压值,如下图:

  上面介绍了基本的命令的使用方法,下面说一个这次要制作的小乐器的基本原理。

  这个小乐器的的控制端是一个接在电源上的一个可调电阻,利用改变阻值来改变相应的输出音调。下面贴上我做的代码的截图:

  

中国孩子的micro:bit:TurnipBit自制小乐器教程实例的更多相关文章

  1. TurnipBit:DIY音乐盒教程实例

    一款可以自己DIY的音乐盒,要什么曲子,就自己谱曲啦!为他(她)制作一首他喜欢的音乐,来代表您的心意,也可以让他自己来制作他最爱的音乐哦!更可以带孩子一起体验谱写欢快的音乐. 最近发现一很好玩的中国式 ...

  2. MICRO SIM卡(SIM小卡)尺寸图及剪卡图解

    如今使用MICRO SIM卡的手机越来越多.近期刚刚买了一个手机到手才发现尼马使用的是MICRO SIM卡.再去买剪卡器吧,十几二十块用一次就废了,去营业厅吧.又比較远,懒的出门.怎么办呢,自己剪!这 ...

  3. 微信小程序教程汇总

    目前市面上在内测期间出来的一些实战类教程还是很不错的,主要还是去快速学习小程序开发的整体流程,一个组件一个组件的讲的很可能微信小程序一升级,这个组件就变了,事实本就如此,谁让现在是内测呢.我们不怕,下 ...

  4. 微信小程序 教程之引用

    系列文章: 微信小程序 教程之WXSS微信小程序 教程之引用微信小程序 教程之事件微信小程序 教程之模板微信小程序 教程之列表渲染微信小程序 教程之条件渲染微信小程序 教程之数据绑定微信小程序 教程之 ...

  5. 微信小程序之微信登陆 —— 微信小程序教程系列(20)

    简介: 微信登陆,在新建一个微信小程序Hello World项目的时候,就可以看到项目中出现了我们的微信头像,其实这个Hello World项目,就有一个简化版的微信登陆.只不过是,还没有写入到咱们自 ...

  6. 使用mpvue开发小程序教程(一)

    前段时间,美团开源了mpvue这个项目,使得我们又多了一种用来开发小程序的框架选项.由于mpvue框架是完全基于Vue框架的(重写了其runtime和compiler),因此在用法上面是高度和Vue一 ...

  7. 使用mpvue开发小程序教程(二)

    在上篇文章中,我们介绍了使用mpvue开发小程序所需要的一些开发环境的搭建,并创建了第一个mpvue小程序代码骨架并将其运行起来.在本文中,我们来研究熟悉一下mpvue项目的主要目录和文件结构. 在V ...

  8. 使用mpvue开发小程序教程(三)

    在上一篇文章中,我们熟悉了一下通过vue-cli生成的mpvue工程代码骨架的基本结构,大致了解了每一个部分的代码到底要放到何处.从本文起我们就开始涉及真正的编码部分,学习使用Vue的语法去编写小程序 ...

  9. 使用mpvue开发小程序教程(四)

    在上一章节中,我们将vue-cli命令行工具生成的代码骨架中的src目录清理了一遍,然后从头开始配置和编写了一个可以运行的小程序页面,算是正真走上了使用mpvue开发小程序的第一步.今天我们将进一步来 ...

随机推荐

  1. NOIP2014无线网络发射器选址改编1

    问题描述 随着智能手机的日益普及,人们对无线网的需求日益增大.某城市决定对城市内的公共场所覆盖无线网. 假设该城市的布局为由严格平行的129条东西向街道和129条南北向街道所形成的网格状,并且相邻的平 ...

  2. AspNet Core Api Restful +Swagger 实现微服务之旅 (三)

    (1)  访问Rest ful接口时 Token验证  返回数据格式封装 (一)访问时Token验证  返回数据格式封装 1.1访问Api接口 方法 实现         1.1.1 创建访问Rest ...

  3. oracle用户被锁定

    sqlplus sys/password@localhost:1521/cmsx as sysdba SQL*Plus: Release 11.2.0.1.0 Production on 星期一 7月 ...

  4. HttpClient4.2 Fluent API学习

    相比于HttpClient 之前的版本号,HttpClient 4.2 提供了一组基于流接口(fluent interface)概念的更易使用的API,即Fluent API. 为了方便使用,Flue ...

  5. Spring Cache简单介绍和使用

    Spring Cache 缓存是实际工作中非经常常使用的一种提高性能的方法, 我们会在很多场景下来使用缓存. 本文通过一个简单的样例进行展开,通过对照我们原来的自己定义缓存和 spring 的基于凝视 ...

  6. HDU 4923 Room and Moor (多校第六场C题) 单调栈

    Problem Description PM Room defines a sequence A = {A1, A2,..., AN}, each of which is either 0 or 1. ...

  7. 自学Zabbix3.6.1-触发器triggers创建

    1. 触发器概念 触发器(triggers)是什么?触发器使用逻辑表达式来评估通过item获取到得数据是处于哪种状态,item一收回数据,讲解任务交给触发器去评估状态,明白触发器是怎么一回事了把?在触 ...

  8. JeeSite如何正确连接SQL SERVER 数据库

    JeeSite如何正确连接SQL SERVER 数据库 jeesite介绍 感谢jeesite项目的作者thinkgem. 没有你我也不会更改这数据源非了恁大的劲,,,,嘻嘻嘻说多了. JeeSite ...

  9. 【java】扫描流Scanner接收输入示例

    多用Scanner少用InputStream 多用BufferedReader少用Reader 多用PrintStream少用OutputStream 多用PrintWriter少用Writer pa ...

  10. RabbitMQ阻塞读取时数据时,关闭channel引起的问题和解决方案

    项目场景: 最近在项目中使用了RabbitMq,其中有一个功能必须能随时切断RabbitMq的coumser.第一时间写出来的代码如下: 伪代码: while(flag){ QueueingConsu ...