分享

创客入门必备工具——软件类(上)

 xvdo 2015-12-19
回顾上两期创客利器版块,我们主要介绍了电子类和机械类的工具。本文主要讲解一些常见的创客必备入门软件类工具,从基于文本编程的Arduino IDE、Processing 3到电子绘图Fritzing,再到积木式图形化编程的Scratch 2.0、S4A、Ardublock、App Inventor 2,三维建模AUTODESK 123D Design、SolidWorks和3DS MAX,最后到常用单片机与机器人调试软件,笔者将带领大家一同学习每款软件操作技法。

  ......


  Arduino IDE

  Arduino IDE(集成开发环境)是针对Arduino硬件进行编程的工具。什么是Arduino?可以问度娘,这里不做过多介绍。Arduino不仅在硬件上使用USB上传程序,而且在软件中提供了丰富的库加以支持,这使得Arduino的门槛非常低,因此使用它进行创作的人也越来越多。Arduino IDE使用C/C++语法,并将程序抽象为setup和loop两个部分:程序一开始执行且仅执行一次setup函数,它通常负责初始化操作,随后程序不断地执行loop函数。

  此外Arduino IDE还把输入输出封装为函数,屏蔽了底层寄存器的修改,如pinMode、digitalRead、digitalWrite、analogRead、digitalWrite等,同时还提供了Serial、SPI.h、Wire.h(即I2C)等通讯协议的库函数。我们只需要很简单的三行代码就能实现LED一闪一灭的效果:


  Arduino IDE还提供了丰富的示例供初学者参考(文件菜单中的示例选项)。如果有兴趣你还可以尝试http:///中最新的编程软件Arduino Studio。


  Processing

  Processing是一种具有革命前瞻性的新兴计算机语言,它的概念是在电子艺术的环境下介绍程序语言,并将电子艺术的概念介绍给程序设计师。它使用Java语言进行开发,是Arduino IDE的前身。其官方网站中提供了大量的类库,涉及串行通信、网络、视频与可视化、声音、GUI、3D、动画等各个方面。下图是Processing 3.0中Topics/Drawing/Pattern的示例程序,除去注释只需要12行代码,就实现了跟随鼠标绘制正圆,并随着鼠标移动速度改变大小的效果:


  随着JavaScript、Python以及Ruby的流行,Processing也逐渐支持这三种编程语言,即p5.js、Processing.py以及ruby-processing。这使得它已不仅仅是一门编程语言,而更像是一门面相艺术学习方式,使得我们可以通过编程学习、教学,甚至制作互动装置。下图页面的动态3D方格背景(http:///,使用p5.js制作)可以随着鼠标移动而变化:


  此外,由于Processing可以使用串行通信,因此它也可以和Arduino通过串口通信。因为Arduino自带的串口监视器比较简单,仅支持文本输入输出,因此我们可以将Processing与Arduino结合,使Arduino程序更加具有交互艺术性。

  Fritzing

  Fritzing将电子产品作为每一个人的创意素材。它同样是开源软件,让每个人记录其产品原型并与他人分享。Fritzing也常作为课堂上学习电子学的工具,甚至还可以制作PCB。下图是一个简单的使用案例:


  AUTODESK 123D CIRCUITS

  Autodesk的123D Circuits也是一个不错的工具,除了与大家分享自己的作品、定制PCB之外,其Electronics Lab还可以进行一些模拟仿真:




  Scratch 2.0

  目前Scratch是由麻省理工学院(MIT)媒体实验室所开发的一款面向青少年的图形化简易编程软件。使用者只需将色彩丰富的指令方块组合,便可创作出多媒体程序、互动游戏、动画故事等作品。最常用的版本有1.4(已经停止更新)和2.0。Scratch将一百多块积木分为十大类,通过积木的组合我们就能实现出各种效果。下图程序脚本询问了用户出生年份,然后展示计算结果:


  Scratch适合各个年龄阶段的人群学习编程,国内已有许多小学和中学开始教授Scratch。它可以实现计算机科学中的许多概念,例如递归、字符串操作、查找、排序等。下面展示的案例出自于《动手玩转Scratch 2.0编程》:


  Scratch不仅可以制作纯软件项目,也支持与硬件的互动。官方标准Scratch支持PicoBoard和LEGO WeDo,但是这远远不能满足广大爱好者的需求。由于Scratch是开源软件,因此越来越多的机器人厂家和创客空间修改出更具特色的版本。与Scratch同类型的软件还有Snap!(也称为BYOB),它的编程功能更加强大,如支持局部变量、获取HTTP数据、字符串解析、执行JavaScript脚本等。

  Scratch还有一个适合于更小的孩子(5-7岁)学习编程的版本ScratchJr,有安卓和IOS两个版本。它能让孩子们创作交互式故事和游戏,通过积木的简单卡合就能实现角色的跑动、跳跃、跳舞和唱歌等效果。下图是ScratchJr的程序截图:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多