Makeblockfor Scratch是Makeblock开发的一套支持Scratch编程语言控制传感器和电机等的软件环境,使用广受欢迎的Arduino作为连接Scratch与各种硬件的桥梁。
系统支持:Windows xp(原生), Windows 7(原生), Windows 8 系统,Mac(各种Ghost版本系统暂时不支持)
该使用说明包含以下几部分:
·安装说明
·电子模块使用教程
·Makeblock for Scratch 运行原理解析
如果您有任何问题,请加入QQ群,Makeblock for Scratch (238776753),提出您的问题,我们会尽快给予答复。
或将您的问题发到论坛上,我们也会尽快回复。
一.操作说明
1.请加入Makeblock for Scratch QQ群(238776753),在群共享中下载最新版本的安装包。
2. 打开安装好的Makeblock for Scratch,用USB线将主控板和电脑连接,点击一下“刷新”按键,在下拉列表中选择对应的端口(不要选择COM1和COM2,这两个口是系统通信用的)。如果没有找到串口,拔掉USB线后重新连接。连上串口后,选择115200波特率,再点击“检查最新固件”按键来下载固件(电脑需要联网)。下载时,主控板的LED灯会闪烁,待固件更新完成后,主控板上的蜂鸣器会“哔”的响一声,说明固件下载成功,同时软件下面的方框中会出现固件更新成功的提示(如图1)。再点击“连接”按键,界面会显示Arduino已连接(如图2)。
如果固件更新不成功,请按照以下教程完成手动更新。
图 1 图2
3. 打开Scratch 2.0(双击桌面上的“启动Scratch”图标),点击“更多模块”(或“More Blocks”),就可以找到Makeblock for Scratch的模块(如图3)。如果没有找到,就按住shift键同时点击Scratch 2.0中的文件选项,选择Import Experimental Extension项(如图4),找到安装Makeblock for Scratch的目录,打开extension文件夹,里面有两个Makeblock for Scratch的模块,第一个是英文版,第二个是中文版。点击一个打开就将模块导入进来。
图 3 图 4
如果您安装的是1.0.0422之前的版本,在有些Ghost Windows XP中,用USB数据线连接Baseboard和电脑时会得到“INF中服务安装段落无效”的错误提示。在“设备管理器”中看到“Arduino Leonardo”设备出现一个黄色问号
解决办法:
A. 打开刚才下载的“Ghost XP所缺驱动”文件夹,将mdmcpq.inf复制到C:windowsinf目录下;
B. 将usbser.sys复制到C:WINDOWSsystem32drivers目录下;
C. 重新安装驱动。
二.电子模块使用教程 Makeblock的电子模块分为以下四大类:主控、输入模块、输出模块和附件。
1) 主控,即指Baseboard,是Makeblock基于Arduino Leonardo开发的开源控制板; 2) 输入模块,即指传感器和各种控制模块。其中传感器具备感知周围的物理量的能力,例如温度、光强、长度距离,等等。控制模块包括电位器·旋钮模块(滑动变阻器)和摇杆等等; 3) 输出模块,包括直流电机、舵机、RGB灯等等。 4) 附件,包括RJ25转换器(将RJ25接线转换为杜邦线),电池盒,RJ25接线等等。
RJ25线
杜邦线
1. Baseboard使用教程
Baseboard是Makeblock基于现在最流行的Arduino开源硬件平台开发的控制板。它是我们连接电脑和各种电子模块的桥梁。
Baseboard与各种电子模块的连线方式如下图所示。我们为每一个模块都定义了相应的颜色,连接时,请注意模块标签的颜色要和Baseboard接口的颜色一致。注意,切勿将其余颜色的传感器接到红色的1、2两个接口上。
在使用时,请将靠近1号端口附近的开关打开(参考,下图中,开关处于打开状态)
2. 输入模块使用教程
1). 超声波传感器:
如上图所示,超声波模块拥有两个“眼睛”,其中一个“眼睛”发射超声波,当发射出去的超声波遇到障碍物反射回来,会被另外一个“眼睛”接收到。模块会用发射和接收的时间差乘以超声波在空气中传播的速度,得到障碍物到超声波模块的距离。
作用:测量某一物体距离该模块的距离,单位cm。
2). 光线传感器
光线传感器,顾名思义,可以测量当前环境光的强度。其背后的光敏二极管会根据光线强度的大小而变化电流大小。
作用:测量当前环境光的光照强度
3). 陀螺仪传感器
陀螺仪的原理解释起来比较复杂,简单的来说,它能够检测物体在3D空间中运动的角度变化。注意,在使用陀螺仪时,请先将陀螺仪与Baseboard连接,再将Baseboard与电脑连接。否则陀螺仪探测到的角度数据会出现偏差。
4). 温度传感器
通过一个带有温度传感器芯片的探头,可以探测到当前环境下的温度。
作用:探测环境温度,单位℃。
注意:温度传感器需要通过RJ25转接器和Baseboard进行连接。RJ25转接器上有两个三个插针的接口,分别是Slot1和Slot2,请在Scratch也选择对应的接口。
在Scratch中,使用传感器之前要先定义在哪个接口接收什么样的传感器数据。这点与输出模块不同。
3. 输出模块使用教程
在此我们以直流电机为例说明输出模块的使用方法。此类模块在使用时不用事先定义接口,直接发送命令即可。
传感器与输出模块使用上的区别
另外需要注意的是,直流电机在使用时必须用外接电源供电,即将装满6节五号电池的电池盒的插头插到Baseboard上,并打开Baseboard上的开关。
4. 附件说明
1). Rj11转换器用于温度传感器、舵机和Baseboard的连接。
请在Scratch中选择相应的Slot接口
2). 直流电机在使用时需要至少6V的外接电源供电。可以使用我们提供的6节5号电池的电池盒,也可以自行寻找合适的电源。
三. Makeblock for Scratch运行原理解析
离线版的Scratch 2.0可以通过电脑的USB串口通过命令来访问硬件,Arduino板负责解析Scratch发过来的命令,并且返回Scratch命令所需要的数据。
举个例子:Scratch在电脑端通过USB口向Arduino板发送命令“给我第3个接口上的温度传感器的数字”(该处命令是为了举例子让命令浅显易懂,实际的命令不是这样的), Arduino板首先会解析这个命令,当解析完知道这个命令的意图后,Arduino板会采集第三个接口上的温度传感器的数字,然后将这个数字回传给Scratch。这是采集传感器数据的命令。还有一种命令是用来做输出控制的,比如控制电机,这个过程中,Scratch软件在电脑端向Arduino板发送命令:“将接口M1上的电机速度设置为100”,Arduino板首先解析命令,解析完成后,Arduino板就会降M1的速度设置为100.
在整个过程中,Arduino板主要做三件事情:解析Scratch发送的命令,采集数据或者控制相应设备(比如电机),将数据打包回传(输出类命令无需数据回传)。Arduino板上必须有相应的程序(或者称之为固件)来完成这三个主要任务,我们在出厂的Arduino板上都烧写了这个程序。但是我们的程序还在不断的升级和完善中, 我们已经为大家提供了自动固件升级,只需将Arduino连到电脑上,启动相应程序一键点击即可完成固件升级。
还有一个问题,如何让在电脑上运行的Scratch软件发送特定的命令去操作特定的硬件,比如如何发送一个读取超声波传感器数据的命令,如何发送一个控制电机的命令等等。我们都知道Scratch软件的操作都是通过控制一个一个的block来实现的,比如发出特定声音的block,画笔落下的block。我们将对传感器的操作行为也封装成不同的block,这些block在界面的more block部分,这些对硬件操作的block的颜色是黑色的。当这些黑色的block被使用时,软件就会自动生成相应的命令,并且这些命令将通过USB转串口发送出去。
Scratch软件的命令需要通过USB接口发送到Arduino板上,但是电脑上的外部接口可能很多,需要选择正确的连接了Arduino的板的接口,并且,还需要电脑端发送数据的速率和Arduino板那一段接收数据的速率一致,否则会导致通信错误。下面的程序就是完成这个任务的,在程序中选择好正确的USB串口,设置正确的通信速率,也就是波特率,点击连接,当显示连接成功后就可以了,Scratch运行过程中要一直保持这个程序在开启状态(如下图)。
综上所述:
为了让Scratch软件能够与Makeblock的硬件传感器交互,需要三个方面的条件:
条件1:
Scratch软件上的自定义硬件传感器block,每个block在使用时会生成相应的命令,这些命令会通过电脑上的USB转串口发送出去,发送给Arduino板。
条件2:
Makeblockfor Scratch中间程序,这个程序的主要功能是告诉Scratch程序正确的通信端口是哪一个(即Arduino板连接的那个端口),并且设置好合适的通信速率以使电脑与Arduino板的通信能够成功。
条件3:
Arduino板以及板上面运行的程序。Arduino板负责解析Scratch软件发送过来的命令,并且执行命令,将必要的结果(如采集到的传感器数据)返回给Scratch软件
最后,如果您有任何问题,请加入QQ群,Makeblock forScratch (238776753),提出您的问题,我们会尽快给予答复。
或者将您的问题发到Makeblock中文官方论坛(bbs.makeblock.cc)上,我们也会尽快回复。
|