您现在的位置: 晨光科技 >> 文章 >> 新闻、背景、评论等 >> 高新技术 >> 正文  
  『视频』新车间Arduino图形化编程软件ArduBlock的介绍         
『视频』新车间Arduino图形化编程软件ArduBlock的介绍
[ 作者:佚名    转贴自:http://www.eefocus.com/zhang700309/blog/12-02/237994_76dea.html    点击数:348    更新时间:2012/7/2    文章录入:admin ]
[注:本站登载的某些文章并不代表本站支持或反对其观点或肯定其真实性]

  Make杂志主办的2011年纽约Maker Faire 展会在科学会馆举办,在几条街区外就可以看到这里高耸的火箭。本来就充满科普装置的空间塞满创客后,就像一个爱丽丝仙境,走在其中会不经意地被古灵精怪的作品打动,驻足赞叹创客们的精彩表演。

 

 

    在这次展会上,Arduino尤其抢眼,Arduino 团队高调出场,发布了一系列Arduino产品,包括低端的Leonardo,到未来式96MHz怪物DUE,以及新的Arduino1.0编程软件,机器人平台等。Arduino的核心开发团队成员Massimo还特别感谢了上海新车间创客开发的图形化编程环境ArduBlock,肯定了来自中国创客的贡献,让现场中国观众有点Hold不住了!

   位于上海市长宁区安化路76号301室的新车间是国内第一家创客空间,她为创客们提供了一个很好的交流场所,新车间网址:http://xinchejian.com/?lang=zh。新车间的ArduBlock软件受到了国际同道的好评,这篇文章我来详细介绍下ArduBlock的安装与使用。ArduBlock官方网站是:http://blog.ardublock.com/zh/。在这个网址中,您仔细查阅可以看到ArduBlock软件的安装方法和使用简介。软件直接在这里下载:http://115.com/file/an45sovq#ardublock-all-20120129.jar

    ArduBlock软件是Arduino官方编程环境的第三方软件,目前必须依附于Arduino软件下运行,区别于Arduino文本式编程环境,ArduBlock是以图形化积木搭建的方式编程的,这样的方式会使编程的可视化和交互性加强,编程门槛降低,即使没有编程经验的人也可以尝试给Arduino控制器编写程序。看上面Maker Faire视频,创客活动是每个老百姓都能参与的活动,降低软件编程门槛,可以吸引更多的人投入到创新制作中来,人人都是创客!

    ArduBlock软件的ardublock-all.jar下载后,如何安装软件,简单地说就是把ardublock-all.jar拷贝到 “Sketchbook location”所在目录底下的 tools\ArduBlockTool\tool\里面。问题是 “Sketchbook location”所在目录在哪可以找到,别急,我来找找。在Arduino的IDE下,打开菜单“File” -> “Preferences”。如图:文章中所有图片可以双击放大!

    我的电脑显示,上图“篮圈”标注的“d:\My Documents\Arduino”是 “Sketchbook location”所在位置,赶快去看看这个目录下有什么?其实这个目录下,什么东西也没有,现在要做的事是一级一级地在这个目录下建“子子目录”,像这样:d:\My Documents\Arduino\tools\ArduBlockTool\tool\,如图:

   

ArduBlock软件安装完,可以试试吗,在Arduino IDE的菜单”Tools“下找到ArduBlock,启动ArduBlock。

   

ArduBlock官网的一个例子: 
http://blog.ardublock.com/zh/2011/08/22/ardublock-drawers/

    开始编写我的第一个ArduBlock程序了,任务很简单:按下按钮,Arduino控制器检测到与按钮连接的9号数字端口为低电平,于是它向13号数字端口发出命令,点亮LED灯,松下按钮,则熄灭LED灯。

ArduBlock程序:

 

   观察程序编写,真是如搭积木那么简单,还可以对程序进行批注,可惜现在只能英文注释。”批注“窗口可以拖动和缩放,不要让它挡住了程序。程序中的各个模块都是从左侧的模块库里“拖进”编程界面的,然后用这些模块积木进行拼接,拼接对了,会发出一声“咔”的清脆响声。如果您要删去模块,也很有创意,把不需要的模块“拖出”编程界面即可。

   程序中“loop”循环结构模块和“ifelse"条件判断模块都是从”Control“ 模块中提取的,”not“取反模块来自于”Operators“模块库,而”digital pin“数字量输入模块和”set digtial pin“数字量输出模块都是从”Pin“模块库拖进来的。

     该软件还在不断地出新版本,比如中文版ArduBlock,但是目前还未放出源码,值得期待啊!

 

   实际上,这个”按钮与LED灯“的实验任务还可以有更加直观通俗的编程样式,注意到了上图没?8个模块库的最后3个”输入输出设备“模块库,是国内三家Arduino制造商产品模块库,区别于”输入输出设备“通用模块库”Pin“,Arduino制造商产品模块库里的模块不是以文字来标识模块,而是以更直观的产品图样来标识。

我现在手头的Arduino设备正好是购买于DFRobot官方淘宝网:http://dfrobot.taobao.com/,看看DFRobot模块库里有啥?

用DFRobot模块库中提取的”按钮“与”LED灯“模块,编写的ArduBlock程序如下:

再看实验照片:

   上面两个图片对照,我感觉蛮新鲜的

现在的ArduBlock是依附在Arduino官方软件的第三方图形化编程环境,两者需同时运行,点击     ArduBlock编程环境上方的”Upload“按钮,你会发现Arduino编程环境的”上传“按钮图标开始工作了,而且在Arduino编程环境里还居然生成了C代码,哈哈,现在可以通过图形程序与文本程序的对照,来学习ArduBlock编程了。

     我写了一篇介绍新车间的ArduBlock软件,很荣幸ArduBlock官网马上推荐了这篇文章,见网址:http://blog.ardublock.com/zh/2012/02/03/introduction-of-ardublock-in-chinese/,这就是互联网的力量,把自己用心写东西,扩散出去,让有相同爱好的创客,能够分享你的作品,同时你也能通过博客、论坛去了解别人的作品,给自己以启发。

    我感觉看相关博客和论坛帖子,这种交流方式远比QQ聊天效率高,博客和论坛帖子是创客们思考和加工过的内容,而QQ随意性更大,更像是速食性的快餐,没啥营养。QQ群已经成了技术宅男寻找同类,排解寂寞的场所。

     新车间Arduino图形化编程软件ArduBlock的介绍(上):

http://www.eefocus.com/zhang700309/blog/12-02/237994_76dea.html ,文章介绍的ArduBlock编程实例是关于如何实现数字量输入与输出之间的交互,而现在写的“ArduBlock的介绍(下)”文章将介绍两个例子,分别涉及:如何实现模拟量输入输出之间的交互以及模拟量输入如何控制舵机角度。 

    先谈如何实现模拟量输入输出之间的交互,举这样一个例子,用电位计来调节LED的亮度。

 

  采用“DFRobot”输入输出设备模块库编程,ArduBlock的程序如下(所有图片,点击后都会放大):

 

   LED的亮度是PWM(脉冲宽度调制)信号的脉宽来控制的,PWM信号一个周期里的脉宽越大,LED越亮,Arduino指令中PWM的脉宽参数可设范围是从0~255:255表示最亮,0表示最暗(相当于OFF状态),所以参数设定为128,则刚好就代表一半的亮度输出。Arduino控制器一共有6个PWM端口,它们是与数字端口重用的,分别位于数字端口3、5、6、9、10、11,上图程序可以看到我用了数字端口9,来为LED提供PWM驱动信号。

   作为模拟量传感器的电位计并不是连在数字端口上,而是连在专门的模拟量输入端口,Arduino UNO控制器的模拟端口一共6个,从A0到A5,这个实验我把电位计模块连在了A0端口,模拟端口可以读取电位计的电压值,通过电位计手柄的旋转,这个电压值可以从0V变化到5V,程序中模数转换后的返回值范围则为0到1024,所以如何把电位计的输入数据正比转换到LED的PWM输出数据,我采用了map[0,1024]to[0,255]函数。

   这个程序用到了“变量”,变量名为“analog input”,从0号模拟端口读取的电位计采样值经过map函数正比转换后的数据,通过“set number variable”模块赋值给了这个变量,然后这个“analog input”变量中的数据又在“LED with brightness”模块输出给9号数字端口。

    从“Number/Constants”库提取出来“number var name ”变量引用模块,然后我把这个模块的名子改成了可读性更好的变量名:“analog input”。注意:“set number variable”变量定义模块也是从“Number/Constants”库提取出来的。如图:(绿框标注了!)

 

   程序中其它模块,如“loop”循环结构模块是从”Control“ 模块中拖到编程界面的,“Analog Rotation Sensor V1”和“LED with brightness”,哈哈,都来自于”DFRobot“产品模块库。

   如果不采用“DFRobot”产品模块库,而是采用通用输入输出“Pin”模块库编程,程序就如这个样子:

 

  再谈谈模拟量输入如何控制舵机角度,可以用《为啥不把Arduino与乐高结合起来玩创意》文章中的例子,文章网址:http://www.eefocus.com/zhang700309/blog/12-01/237459_6b7a6.html。用手指旋转电位计手柄,180度舵机上的乐高人偶也随之旋转,实验照片如下:

 

   由于上篇文章介绍了电位计控制舵机角度变化的原理,所以在这里就不再累述了,倒是可以对比下ArduBlock图形式程序与上篇文章介绍的C文本式程序,这两个程序都完成了同样功能,但给人的启迪和感受是不同的。

采用“DFRobot”产品模块库编程,程序如下:

采用通用输入输出“Pin”模块库编程,程序如下:

    刚写完“新车间Arduino图形化编程软件ArduBlock的介绍(下)”,惊悉“ArduBlock在Windows上中文显示的问题已经修好了。欢迎测试”,赶快改动下文章,好跟上形势。中文版ArduBlock下载网址:

 

https://github.com/downloads/taweili/ardublock/ardublock-all.jar

  我现在把“模拟量输入如何控制舵机角度”的实验改成中文版编程,程序如图:

     ArduBlock软件是Arduino官方编程环境的第三方软件,目前必须依附于Arduino软件下运行,区别于Arduino文本式编程环境,ArduBlock是以图形化积木搭建的方式编程的,这样的方式会使编程的可视化和交互性加强,编程门槛降低,即使没有编程经验的人也可以尝试给Arduino控制器编写程序。看上面Maker Faire视频,创客活动是每个老百姓都能参与的活动,降低软件编程门槛,可以吸引更多的人投入到创新制作中来,人人都是创客!

这是在美国举办的一年一度全民创客盛会Maker faire,看看盛会里有没有未来的乔布斯和马克·扎克伯格。

  • 上一篇文章: 新型“太赫兹”扫描仪能看穿墙壁和衣服

  • 下一篇文章: 中科大在青海湖完成实验 量子隐形传输首次跨越百公里
  •    
    [注:标题搜索比内容搜索快]
    发表评论】【告诉好友】【打印此文】【关闭窗口
     最新5篇热点文章
  • temp[149]

  • 2017 年 12 月 21 日委员会决定…[133]

  • 修订第 2019/1616 号实施决定 …[180]

  • SAE001[113]

  • Proe/Creo曲面渐消+倒角教学[78]

  •  
     最新5篇推荐文章
  • 外媒:正在唤醒中国的习近平[357]

  • 中国反伪科学运动背后的CIA黑手…[545]

  • [转载]袁隆平真言:中国最大的…[715]

  • 台专家:当年我们造IDF时 大陆…[604]

  • 旅日华人:中国严重误判日本民…[608]

  •  
     相 关 文 章
  • Arduino和STM32性能对比究竟谁…[60]

  • Labview及Proteus软件环境下单…[59]

  • 基于labview串口通讯的虚拟数字…[59]

  • AVR编程语言Arduino也可以用Pr…[64]

  • Arduino编程 PWM方法调节LED光…[56]


  •   网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
        没有任何评论
    设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 | 
    版权所有 Copyright© 2003 晨光科技        站长:璀璨星辰        页面执行时间:914.06毫秒
    Powered by:MyPower Ver3.5