当前位置:首页  <  应用教程  <  【创客学堂】基于Arduino的Scratch软件传感器互动...
【创客学堂】基于Arduino的Scratch软件传感器互动
编辑:Techie 2013-09-05 浏览次数:6567

Scratch是什么?


    Scratch是近些年很流行的儿童编程软件。Scratch官网上的介绍是这样一句话“Create and share your own interactive stories,games, musics, and art.”创造和分享你自己有趣的故事,游戏,音乐等艺术作品。"可见它整合的元素是很吸引人的。
    Scratch是由MIT Media Lab开发的一种适于八岁以上孩子学习的图形化编程语言。台湾地区较流行,好多学校已开始教学,还有的在比赛。近几年,国内各地也有越来越多地方开设了Scratch课程。这是因为,Sractch不仅仅是一款利用积木式工具制作二维动画的工具,还是一个学习互动媒体技术的平台。它可以挂接外部传感器扩展板,从而可以获取外界环境的信息与指示,制作互动作品。
 

Scratch 软件 
图1  Scratch 软件界面


Arduino与Scratch有什么关系?
 

    其实ArduinoScratch本没有关系,但是因为Scratch自己的传感器板Scratch Board,较难买到,并且价格很高,而Arduino拥有基于开放源码的软硬体平台,又设计了完善的串口通讯接口,那它在极客的眼里,就跟Scratch有关系了。
极客们从来都是追求性价比的。Scratch的编程界面简单,方便,易于学习,Arduino的硬件价格便宜,扩展性好,使用面广,那就没有理由不让它们在一起啦。

 

Arduino UNO 控制器

图2 Arduino UNO控制器

 

动手连接Scratch与Arduino


    下面给大家介绍一下如何连接Scratch与Arduino
    首先是Scratch软件的设置:
1. 打开Scratch软件,在左侧命令库中点击侦测项,勾选最下面的传感值与传感器两项,如图3;
2. 在传感值标签上单击右键,选择显示ScratchBoard监视器,如图4;
3. 右侧上方舞台就会显示出相关的端口与实时的数据,如图5。
     
              

Scratch 传感器设置1  Scratch 传感器设置成显示
              图3 勾选Scratch 传感器设置                 图4  点击显示ScratchBoard监视器
 
Scratch 传感器与数据

  图5  Scratch 传感器与显示的数据

 

    然后是Arduino控制器的设置:
1. 因为开始Arduino板子上没有同Scratch通讯的相关程序,不能同Scratch通讯,你需要到网上down一个for Scartch的程序,成型的例子很多,现在可以找到scratch board firmware for Arduino的v1.5 版本了;
2. 把固件代码通过Arduino IDE编译一下,下载到你的Arduino控制板


Scratch for Arduino的程序 

图6  Scratch for Arduino的程序

    最后连接Scratch 与Arduino
1. 烧写好程序的Arduino控制板就不用拔下来了,记住它的串口号;
2. 在Scratch软件中,右侧上方舞台传感器窗口上,单击右键,选择你的Arduio控制板的串口号,如果状态是开,窗口中各项值实时的显示出来了,那么恭喜你,连接成功!

  选择Scratch端口       成功连接Scratch 与Arduino
  
       图7  选择Scratch端口                        图8  状态是开表示成功连接Scratch 与Arduino

 


开始你的Scratch与Arduino互动之旅吧!

    首先你可以试着通过电位器调整模拟端口的电位,看是不是软件中的数据也跟着变化呢?因为我用的Arduino UNO板子上只有6个模拟端口,所以,声音与按钮项是没有变化的。
试着用Scartch软件命令库的的block自己搭一个程序吧,开始你的互动之旅!
    下面是我搭的一个程序效果,可以通过电位器控制Arduino板的A0口电位(0-5V变化,转到软件中0-100数值变化),与Scratch软件互动,控制太阳的升起与落下(用0-100数值变化,控制太阳的升降),还能控制天亮与天黑(用0-100数值变化,控制图片的明暗程度),想不想试试呢?
   

     Scratch日落    Scratch太阳出来了
            图9  Scratch日落(A值为0)                      图10  Scratch太阳出来了(A值为50)

     Scratch 中午了     到的Arduino UNO与传感器扩展板 
     图11  Scratch 中午了(A值为100)               图12  用到的Arduino UNO与传感器扩展板

相关链接 
Scratch中文版软件下载地址:
http://scratch.softonic.cn/
用到的Arduino UNO控制板:
http://www.alsrobot.cn/goods-141.html
用到的扩展板:            
http://www.alsrobot.cn/goods-147.html
Scratch for Arduino firmware下载地址:
http://seaside.citilab.eu/S4AFirmware14.pde