单片机编程的新方法:当单片机遇到 MicroBlocks
发表于 : 2020年 8月 28日 09:33
翻译整理自:https://makezine.com/2020/07/31/microco ... croblocks/
作者简介 凯西·乔里(Kathy Giori)是Mozilla的高级产品经理;她在Arduino、高通公司和各种初创公司推广开源硬件和软件。她拥有明尼苏达大学和斯坦福大学的电气工程学位。
最新一期(vol 74)的Make magazine的主题是“The Rise of Python”(Python的崛起)
除了python之外它还以 “A New Way to Code Microcontrollers”(单片机编程的一种新方法)介绍了 MicroBlocks。MicroBlocks是一个面向微控制器的开发环境,它不仅对用户友好,而且适合教育。当你编程时,你的代码以增量方式编译、下载并存储在单片机的闪存中,这样即使由电池供电也仍然可以正常运行。这种移植性和自主性使MicroBlocks项目可以用于穿戴产品、放在口袋中或部署到户外收集传感器数据。
MicroBlocks 的创始人 约翰·马洛尼(John Maloney )在Scratch工作了十年。他的合伙人伯纳特·罗马戈萨(Bernat Romagosa)创立了Snap4Arduino,第三关键人 JensMönig 领导了 Snap!的开发,因此MicroBlocks可以使用标准的Web服务和 Snap! 进行通信。
通过“实时”编码来改善学习
MicroBlocks有什么好玩的?它与 Scratch 和 Snap! 相似,带有命令积木(矩形)和报告积木(圆角矩形),并且可以通过单击执行它们。MicroBlocks的工作方式和它们类似,但是这些命令控制可以通过单片机与物理世界进行交互。您可以单击一个积木来打开LED、电动机或者播放音乐,或者接收来自按钮、温度传感器、加速度计等输入。MicroBlocks 脚本为学生提供了他们所期望的 -- 与生活中的现实世界进行编程交互。
其他基于积木的物理计算环境(例如Snap4Arduino和Scratch micro:bit扩展)是通过在PC上运行程序并将命令发送到微控制器来支持实时控制的,但是但没有连接计算机时,微控制器什么也做不了。
使用MicroBlocks,您的代码可直接在微控制器上运行。在您编程时,程序将被增量编译,然后下载并存储在闪存中,因此即使微控制器没有连接计算机并由电池供电,它仍然可以正常工作。这种移植性和自主性使MicroBlocks项目可以用于穿戴产品、放在口袋中或部署到户外收集传感器数据。
当MicroBlocks检测到板卡连接到您的计算机时,它将自动导入对应的库。对于BBC micro:bit,会自动添加两个库:基本传感器和LED显示。当您连接外部组件(例如NeoPixels或距离传感器)时,您可以手动添加库以支持这些组件。上图显示了两个核心类别(输入和引脚),以及基本传感器和LED显示。
这些库使物理计算非常容易。只需单击几下,即可使用它们:
对于板外部的传感器和执行器,只需输入与所连接组件关联的引脚号即可。例如,attach buzzer to pin (14) 将连接引脚14到扬声器上播放音乐甚至是歌曲,内置的示例是学生最喜欢的哈利·波特主题曲:
不同类别的积木使用不同颜色,从而更容易区分积木的功能。核心类别包括:
在这些核心功能之外,其余的积木和库通常与物理计算有关。执行器作为输出,传感器作为输入。可以通过有线和无线方式(包括I2C,SPI,对等无线电,HTTP,Wi-Fi和红外遥控器)进行通信。上面显示了一个有趣的内置示例RadioTexting。
MicroBlocks最酷的功能之一是能够实时绘制数据!它可以让您了解传感器的输出,从而可以创建算法。该图像显示了一个人走路时micro:bit加速度计的数据曲线图。实时绘图使创建“计步”库成为可能。
将微控制器变成物联网设备
我们如何教导下一代创造智能、真正互联的设备?物联网供应商喜欢吹嘘“端到端”安全性,但这意味着来自设备的数据直接进入云端,这将禁用本地网络上设备之间的互操作性。如果互联网接入中断怎么办?或者云提供商倒闭?还有谁可以访问你的数据?
幸运的是,MicroBlocks提供了简单的HTTP库和与Snap!兼容的Web Thing库,以及Mozilla WebThings网关。学生可以很容易地创建自己的物联网设备,使用HTTP作为无处不在的交互操作、控制和监控层。这些免费的开源工具提供了完整的隐私和标准的网络安全,不依赖于大型科技巨头,也不需要申请云订阅许可、输入信用卡或通过共享数据放弃隐私。
查看使用BBC micro:bit、Citilab ED1和WebThings 网关制作的一些简单的Web设备,请参阅下面的“使用MicroBlocks构建Web事物”。
板卡低成本,教育价值高
你编程用什么硬件?任何可以运行MicroBlocks虚拟机(VM)。MicroBlocks内置了一些常用的预编译的vm固件,可以通过菜单命令将其安装到微控制器板上。对于不太常见的板卡,可以使用PlatformIO构建和安装VM。支持以下处理器系列中的许多板:
部分支持MicroBlocks的芯片和开发板
作者简介 凯西·乔里(Kathy Giori)是Mozilla的高级产品经理;她在Arduino、高通公司和各种初创公司推广开源硬件和软件。她拥有明尼苏达大学和斯坦福大学的电气工程学位。
最新一期(vol 74)的Make magazine的主题是“The Rise of Python”(Python的崛起)
除了python之外它还以 “A New Way to Code Microcontrollers”(单片机编程的一种新方法)介绍了 MicroBlocks。MicroBlocks是一个面向微控制器的开发环境,它不仅对用户友好,而且适合教育。当你编程时,你的代码以增量方式编译、下载并存储在单片机的闪存中,这样即使由电池供电也仍然可以正常运行。这种移植性和自主性使MicroBlocks项目可以用于穿戴产品、放在口袋中或部署到户外收集传感器数据。
MicroBlocks 的创始人 约翰·马洛尼(John Maloney )在Scratch工作了十年。他的合伙人伯纳特·罗马戈萨(Bernat Romagosa)创立了Snap4Arduino,第三关键人 JensMönig 领导了 Snap!的开发,因此MicroBlocks可以使用标准的Web服务和 Snap! 进行通信。
通过“实时”编码来改善学习
MicroBlocks有什么好玩的?它与 Scratch 和 Snap! 相似,带有命令积木(矩形)和报告积木(圆角矩形),并且可以通过单击执行它们。MicroBlocks的工作方式和它们类似,但是这些命令控制可以通过单片机与物理世界进行交互。您可以单击一个积木来打开LED、电动机或者播放音乐,或者接收来自按钮、温度传感器、加速度计等输入。MicroBlocks 脚本为学生提供了他们所期望的 -- 与生活中的现实世界进行编程交互。
其他基于积木的物理计算环境(例如Snap4Arduino和Scratch micro:bit扩展)是通过在PC上运行程序并将命令发送到微控制器来支持实时控制的,但是但没有连接计算机时,微控制器什么也做不了。
使用MicroBlocks,您的代码可直接在微控制器上运行。在您编程时,程序将被增量编译,然后下载并存储在闪存中,因此即使微控制器没有连接计算机并由电池供电,它仍然可以正常工作。这种移植性和自主性使MicroBlocks项目可以用于穿戴产品、放在口袋中或部署到户外收集传感器数据。
当MicroBlocks检测到板卡连接到您的计算机时,它将自动导入对应的库。对于BBC micro:bit,会自动添加两个库:基本传感器和LED显示。当您连接外部组件(例如NeoPixels或距离传感器)时,您可以手动添加库以支持这些组件。上图显示了两个核心类别(输入和引脚),以及基本传感器和LED显示。
这些库使物理计算非常容易。只需单击几下,即可使用它们:
对于板外部的传感器和执行器,只需输入与所连接组件关联的引脚号即可。例如,attach buzzer to pin (14) 将连接引脚14到扬声器上播放音乐甚至是歌曲,内置的示例是学生最喜欢的哈利·波特主题曲:
不同类别的积木使用不同颜色,从而更容易区分积木的功能。核心类别包括:
- 控制:“when”、条件和循环、延时、广播、注释
- 运算:数学、表达式、逻辑
- 变量:创建局部或全局变量,设置或更改它们
- 数据:列表和字符串函数
- My Blocks:创建您自己的积木功能。
在这些核心功能之外,其余的积木和库通常与物理计算有关。执行器作为输出,传感器作为输入。可以通过有线和无线方式(包括I2C,SPI,对等无线电,HTTP,Wi-Fi和红外遥控器)进行通信。上面显示了一个有趣的内置示例RadioTexting。
MicroBlocks最酷的功能之一是能够实时绘制数据!它可以让您了解传感器的输出,从而可以创建算法。该图像显示了一个人走路时micro:bit加速度计的数据曲线图。实时绘图使创建“计步”库成为可能。
将微控制器变成物联网设备
我们如何教导下一代创造智能、真正互联的设备?物联网供应商喜欢吹嘘“端到端”安全性,但这意味着来自设备的数据直接进入云端,这将禁用本地网络上设备之间的互操作性。如果互联网接入中断怎么办?或者云提供商倒闭?还有谁可以访问你的数据?
幸运的是,MicroBlocks提供了简单的HTTP库和与Snap!兼容的Web Thing库,以及Mozilla WebThings网关。学生可以很容易地创建自己的物联网设备,使用HTTP作为无处不在的交互操作、控制和监控层。这些免费的开源工具提供了完整的隐私和标准的网络安全,不依赖于大型科技巨头,也不需要申请云订阅许可、输入信用卡或通过共享数据放弃隐私。
查看使用BBC micro:bit、Citilab ED1和WebThings 网关制作的一些简单的Web设备,请参阅下面的“使用MicroBlocks构建Web事物”。
板卡低成本,教育价值高
你编程用什么硬件?任何可以运行MicroBlocks虚拟机(VM)。MicroBlocks内置了一些常用的预编译的vm固件,可以通过菜单命令将其安装到微控制器板上。对于不太常见的板卡,可以使用PlatformIO构建和安装VM。支持以下处理器系列中的许多板:
- Microchip(Atmel)SAMD21(Arm Cortex M0)
- Nordic nRF51,nRF52(Arm Cortex M0,M4)
- 乐鑫 ESP8266,ESP32(Tensilica Xtensa)
部分支持MicroBlocks的芯片和开发板