使用MakeCode学习JavaScript的基础知识

图形化编程、JavaScript
Maker、LEGO、CPE
回复
头像
shaoziyang
帖子: 742
注册时间: 2019年 10月 21日 13:48

使用MakeCode学习JavaScript的基础知识

#1

帖子 shaoziyang » 2019年 11月 19日 12:02

来自https://makezine.com/2017/09/20/learn-b ... -makecode/

毫无疑问,我们现代世界最有价值的技能之一就是能够编程。

我们被技术包围着; 能够编程它将其弯曲到您的意愿。开始做程序员有无数种方法,但很少有人像使用微控制器一样激动人心。这些微小的计算设备可让您与虚拟世界互动并接触现实世界。

图片
图A


MakeCode是微软的一种新的编码环境,它不是第一种编程语言,但它是我见过的最好的解决方案。这些语言不会严格依赖用户了解广泛的特定语法,而是允许他们通过在拖放界面中一起堆叠命令来构建应用程序(图A)。

想想像是一个诗人一样从头开始编写代码; 你可以随意使用整个英语语言,但找到合适的词语并使其流动是一项需要时间和耐心掌握的技能。另一方面,块编程就像是粘在朋友的冰箱上的磁性诗歌。即使是最幸福的派对游客,也可以从现有的语言中组合一两个打油诗,以便在第二天发现时清理主持人的清理工作。

图片
图B


帮助MakeCode从众多功能中脱颖而出的众多功能之一是它不会让您卡在块状区域 - 您可以无缝地来回切换到实际的代码窗口。当您将程序块添加到程序(图B)并切换到代码视图时,等效功能将显示在JavaScript(JS)中,即MakeCode背后的语言(图C)。当然,如果你在JS中修改那段代码并切换回到块窗口,这些块将会随着这些改变而更新。这种触发器的功能可以帮助那些刚刚接触编程的人开始使用块,但可以快速选择可用于编写MakeCode之外的应用程序的JS语法。

图片
图C


JavaScript是现代互联网的基础技术。它允许开发人员编写丰富的应用程序,不必总是依赖服务器来执行计算,但允许在浏览器中本地完成一些工作。Gmail,Facebook,Makezine.com,甚至MakeCode自己的站点都依靠JavaScript来发挥作用。对于那些程序员而且想要“茫然”的人,MakeCode团队甚至实现了一个编译器,该编译器接受用户创建的代码,并为JS中选定的开发板做好准备 - 无需返回服务器。

板级支持

为物理计算而设计的MakeCode目前支持一些板卡,包括BBC micro:bit,Adafruit的Circuit Playground Express,Chibi Chip和SparkFun的SAMD21开发板。虽然这些系统中的大多数目前处于测试阶段,但micro:bit  是最好的支持。这个董事会的小小强者非常适合入门。虽然您的标准Arduino Uno内置单个可控LED,但micro:bit具有5×5 LED矩阵,内置加速计(摇动和移动),磁力计(指南针和金属探测器),两个按键,光线和温度传感器,甚至是蓝牙低功耗无线电。所有这些共同意味着可以完成很多项目而无需插入其他组件。

MakeCode的实现完全支持这些组件,并且在无线电的情况下,甚至可以为电路板增加一些功能,允许两个微位彼此进行通信,而无需通过大多数蓝牙设备所需的标准配对过程。MakeCode和micro:bit的组合很容易上手,但功能非常强大; 当我选择一个平台教导200名沙特阿拉伯青少年使用微控制器时,我选择了这对。
开始使用MakeCode及其支持的平台很简单。没有下载,没有驱动程序,没有真正的设置。MakeCode完全在浏览器中运行,所以你只需要一个互联网连接就可以使用它。由于内置模拟器,您甚至不需要实际的电路板。

图片
图D


我们来测试一下。首先,进入makecode.com并选择你想要使用的电路板。我将在这里使用所有示例的micro:bit。一旦新项目打开后,一个简单的界面将用左侧的模拟开发板,中间的命令列表以及包含右侧前两个块的代码窗口(图D)来迎接您。任何曾经完成过任何Arduino编程的人都会对这些初始块有所了解; “开始”和“永远”是MakeCode相当于“开始”和“循环” - 这两个函数是每个应用程序的基础。任何添加到“开始”块的代码都会在设备开启,重新启动或重置时执行。这样可以很容易地添加代码,您只需要执行一次代码,例如设置电机的初始位置或打开传感器。

图片
鼠标移动块可以让你清楚地描述它们的功能。

图片

向前两个块添加代码就像拖放一样简单。在代码窗口和模拟之间,您将找到构建应用程序的命令。这些被分解成类似的命令组。对于micro:这包括基本,输入,音乐,LED,收音机,循环,逻辑,变量,数学和高级(我会让你自己去探索)。如果在给定的组中找不到您要查找的命令,请不要忘记单击“更多”按钮。另外请记住滚动选项,因为有些可能隐藏在屏幕之外。

图片
图E.通过嵌套代码片段创建事件序列。

在micro:位上,MakeCode允许您以各种方式访问??LED阵列,从而避免使用它的大部分工作。您不仅可以单独切换每个LED,还可以在矩阵中显示或滚动全部单词,句子和图标。所有用户都无需创建缓冲区或单独控制矩阵中的每个LED(图E)。

图片每个代码功能类别都提供了多种选项,让您可以制作复杂的代码作品。


积木块

MakeCode模块拼接在一起,堆叠成最终的应用程序。一些块适合其他人,并有形状,有助于表明这一点。我有一个抱怨是,有时块形状太相似了; 很难知道哪个块将会或不会工作。我很喜欢这样一个系统,点击一个块或一个空的套接字将会更改可用的项目,只显示那些可以与被点击的项目一起使用的选项。在我看来,这与微软专业开发工具中intellisense的工作方式非常相似。

每添加一个块或更改一个变量,仿真窗口都会自动更新,显示代码将如何在电路板上工作。第一次看到它时,我印象非常深刻,它不仅可以在电路板上使用这些组件,还可以展示如何连接基本的外部组件,以帮助用户学习电路。我预计未来会有更多的传感器和输出被支持,为用户提供了一种在购买单件硬件之前虚拟开发整个项目的好方法。
MakeCode在移动设备上也很棒!
完成后,编译后的应用程序可以下载到您的计算机或直接上传到设备。兼容MakeCode的设备显示为计算机上的闪存驱动器,这意味着它们不需要驱动程序即可正常工作。编程设备本身所需的一切就是在插入USB时将从页面下载的.hex文件复制到设备。拖放,完成。然后设备将开始运行复制到其中的代码。

如果我不得不对系统进行任何真正的批评,那就会导致设备有点反应迟钝。这可能是某个使用微控制器的新手永远不会注意到的,但对于那些熟悉他们实时快感的人来说,所有代码的额外分量让事情变得简单,使终端设备变得缓慢。

图片
摄影:Hep Svadja


观点

我真的希望微软承诺MakeCode并继续改进它。对于那些正在考虑开始使用微控制器的人,特别是那些你是教育工作者并可能与大型团队一起工作的人来说,给他们一些启发,你可能会发现他们会帮助你建立明天的软件架构师。
  

回复

  • 随机主题
    回复总数
    阅读次数
    最新文章