RoboMaster

标题: 【分享帖】创客小白入门不可错过的工具大全——软件类 [打印本页]

作者: 机械狗    时间: 2015-12-8 13:18
标题: 【分享帖】创客小白入门不可错过的工具大全——软件类
作为一枚小白,看到高大上的硬件产品总想自己也弄个装装逼;作为一枚创客,看到别人演示的神奇技术总想自己验证一番;作为一枚硬件创业者,脑袋里的奇思妙想总想动手试试看可否成为创业方向。大家都有动手制作的欲望,奈何硬件产品是一门非常复杂的技艺...

And,工欲善其事,必先利其器,做为一位创客(or小白),这些工具可以让你的梦想如虎添翼,事半功倍的提高实现效率。本文搜集了一些常用创客工具,提供参考。(此处应有掌声)

Arduino IDE
Arduino IDE(集成开发环境)是针对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一闪一灭的效果:
[attach]5268[/attach]
Arduino IDE还提供了丰富的示例供初学者参考(文件菜单中的示例选项)。如果有兴趣你还可以尝试http://arduino.org/中最新的编程软件Arduino Studio。
[attach]5285[/attach]
Processing
Processing是一种具有革命前瞻性的新兴计算机语言,它的概念是在电子艺术的环境下介绍程序语言,并将电子艺术的概念介绍给程序设计师。它使用Java语言进行开发,是Arduino IDE的前身。其官方网站中提供了大量的类库,涉及串行通信、网络、视频与可视化、声音、GUI、3D、动画等各个方面。

下图是Processing 3.0中Topics/Drawing/Pattern的示例程序,除去注释只需要12行代码,就实现了跟随鼠标绘制正圆,并随着鼠标移动速度改变大小的效果:
[attach]5269[/attach]
随着JavaScript、Python以及Ruby的流行,Processing也逐渐支持这三种编程语言,即p5.js、Processing.py以及ruby-processing。这使得它已不仅仅是一门编程语言,而更像是一门面相艺术学习方式,使得我们可以通过编程学习、教学,甚至制作互动装置。下图页面的动态3D方格背景(http://p5js.org/,使用p5.js制作)可以随着鼠标移动而变化:
[attach]5286[/attach]
此外,由于Processing可以使用串行通信,因此它也可以和Arduino通过串口通信。因为Arduino自带的串口监视器比较简单,仅支持文本输入输出,因此我们可以将Processing与Arduino结合,使Arduino程序更加具有交互艺术性。
Fritzing
Fritzing将电子产品作为每一个人的创意素材。它同样是开源软件,让每个人记录其产品原型并与他人分享。Fritzing也常作为课堂上学习电子学的工具,甚至还可以制作PCB。下图是一个简单的使用案例:
[attach]5270[/attach]
AUTODESK 123D CIRCUITS
Autodesk的123D Circuits也是一个不错的工具,除了与大家分享自己的作品、定制PCB之外,其Electronics Lab还可以进行一些模拟仿真:

[attach]5271[/attach]
Scratch 2.0
目前Scratch是由麻省理工学院(MIT)媒体实验室所开发的一款面向青少年的图形化简易编程软件。使用者只需将色彩丰富的指令方块组合,便可创作出多媒体程序、互动游戏、动画故事等作品。最常用的版本有1.4(已经停止更新)和2.0。Scratch将一百多块积木分为十大类,通过积木的组合我们就能实现出各种效果。下图程序脚本询问了用户出生年份,然后展示计算结果:
[attach]5272[/attach]
Scratch适合各个年龄阶段的人群学习编程,国内已有许多小学和中学开始教授Scratch。它可以实现计算机科学中的许多概念,例如递归、字符串操作、查找、排序等。下面展示的案例出自于《动手玩转Scratch2.0编程》:
[attach]5273[/attach]
Scratch不仅可以制作纯软件项目,也支持与硬件的互动。官方标准Scratch支持PicoBoard和LEGO WeDo,但是这远远不能满足广大爱好者的需求。由于Scratch是开源软件,因此越来越多的机器人厂家和创客空间修改出更具特色的版本。与Scratch同类型的软件还有Snap!(也称为BYOB),它的编程功能更加强大,如支持局部变量、获取HTTP数据、字符串解析、执行JavaScript脚本等。

Scratch还有一个适合于更小的孩子(5-7岁)学习编程的版本ScratchJr,有安卓和IOS两个版本。它能让孩子们创作交互式故事和游戏,通过积木的简单卡合就能实现角色的跑动、跳跃、跳舞和唱歌等效果。下图是ScratchJr的程序截图:
[attach]5274[/attach]
Scratch for Arduino(S4A)
S4A打通了Scratch和Arduino之间的通道,我们可以使用S4A编写Arduino程序。S4A基于Scratch 1.4开发,是最早的将Scratch应用于Arduino的软件之一,目前已经处于停止更新的状态。下图是一个很简单的L灯闪烁程序:
[attach]5275[/attach]
运行S4A,首先需要在Arduino控制器中下载一个S4A提供的固件,通过这个固件S4A便可以和Arduino进行通信。同类型的软件还有S2A(Scratch to Arduino,需要Python支持,功能强大,但是几乎已经停止更新)、ScratchX(可以实现硬件和网络扩展,也可以使用网站中他人分享的扩展,如Arduino、EV3、Leapmotion、littleBits、Scratch3D等)、Snap4Arduino(将强大的Snap!与Arduino结合,由原S4A团队开发,比较小众)等。
ArduBlock
ArduBlock由上海新车间的李大维创作,国内外使用的人群很广泛。它非常适用于教育目的,笔者也曾在培训中使用该软件进行教学。下图是程序截图:
[attach]5276[/attach]
图中的程序将水位传感器的信息不断报告给Arduino的串口监视器。那么它与之前的S4A有什么不同呢?在逻辑上它们类似,都是通过积木进行Arduino的编程,但是ArduBlock本质上是Arduino IDE的“翻译器”,它会将积木程序转换为代码,再通过Arduino IDE上传至Arduino控制器,并不需要和Arduino一直保持连接的状态。同时ArduBlock的修改也非常简单,源代码中有大量的外部配置文件。如图中的“奥松机器人”模块便是笔者添加上去的,你也可以添加自己想实现的模块。
App Inventor 2
App Inventor 2(简称AI2,由MIT开发)实现了安卓软件的快速开发。AI2是基于事件驱动的浏览器程序(国内最新的地址是广州电教馆服务器),我们只需要将要用的控件拖拽至界面,调整好布局和基本的属性后进行编程即可。下图是一个简单的Screen:
[attach]5277[/attach]
笔者设计了一个简单的短信发送界面,然后进入编程界面:
[attach]5278[/attach]
代码浅显易懂,我们通过AI Companion(AI伴侣)即可在线完成动态调试。所谓动态是指,当手机和电脑处于同一个局域网时(如连接到同一个WIFI上),网页上的任何改动可以实时地反映在手机上,非常便于调试,最终还可以打包成apk。

我先“选择联系人”再选择13***105(联系人名称为欠费测试,笔者手机的第二张卡),使用18***442(笔者手机的第一张卡)发送“测试 测试”。稍等片刻就可以收到第一张卡发给第二张卡的信息。其实这就是一个最简单的短信发送界面。整个软件从开始编写、调试到打包安装,笔者只用了半个小时就实现了,由此可见AI2开发的速度之快。
[attach]5279[/attach]
AI2可以使用安卓手机的许多传感器,如相机(拍照应用)、加速度传感器(类似于微信摇一摇的功能)、GPS(获取精度、纬度、高度信息)、方向传感器(计步器)、蓝牙(实现与Arduino通信),甚至还能实现了乐高NXT的接口,这意味着AI2程序可以和NXT主控器通信。AI2还实现了很多“软”的功能,如扫描条形码、语音识别、网络/本地数据库等。AI2在国内外还有很多赛事,有兴趣的读者可以自行留意。
123D Design
123D Design由Autodesk发布(它还推出过著名的AutoCAD),是一款免费的三维 CAD 软件,使用它可以快速将构思成型。其社区非常活跃。
[attach]5280[/attach]
123D还有一系列有趣的软件,如123D Catch可以从多张平面图片中生成三维模型(然后使用3D打印机就能得到模型);123D Make将三维模型转换为二维切割图形;123D Sculpt+结合纹理、绘画甚至个人照片生成模型,并可运行在IOS和安卓设备上;Tinkerplay提供了许多3D模型;Tinkercad自称最简单的3D建模软件,运行在网页上,并有浅显易懂的操作教程。与123D Design类似的软件还有SketchUp。
SolidWorks
SolidWorks是世界上第一个基于Windows开发的三维CAD系统,并且功能非常强大,组件繁多,但是并非免费软件。下图是使用SolidWorks构建的AS-2WD轮式机器人装配体模型。
[attach]5281[/attach]
3ds MAX
3ds MAX主要应用于建筑、影视、游戏、动画方面,可以创建专业品质三维动画、渲染和模型。下图是使用3ds MAX设计小型人性机器人外观时的工作界面,更多复杂功能需要读者自行研究!
[attach]5282[/attach]
Kodu
Kodu可以制作3D游戏,操作简单,很有吸引力,小学生也能很快上手。它有点类似于《我的世界》(Minecraft),都是由操作者构建整个世界,不同的是Kodu已经内置了许多地形,而且可以进行简易地编程,实现角色的逻辑。下图是Kodu官方网站中由用户上传的Kodu世界,由上传时间可以看出这是一个非常活跃的社区。
[attach]5283[/attach]
Stencyl
Stencyl是一个非常专业的2D游戏引擎,因为它内置了重力效果,定义了各种表面的摩擦力,组间碰撞测试等。它的编程和Scratch类似,也是通过积木块的堆叠实现功能。但是其积木块数量众多,而且和Scratch的角色不同的是,Stencyl制作的是实例化到场景中的角色模板。虽然是积木式图形化编程,但其编程思想已经和面向对象、模板非常接近,对于初学者来说这个软件并不太容易上手。

付费版Stencyl有一个优势,它几乎支持任何平台:IOS、安卓、Flash、Windows、Mac、Linux。

下图分别是Stencyl的场景编辑器和编程界面:
[attach]5284[/attach]
作为新手,排版心好累

作者: Tony_Stark    时间: 2015-12-8 19:50
赞一个
~~
作者: 而后,淡默安然    时间: 2015-12-8 20:51
顶!d=====( ̄▽ ̄*)b
作者: 而后,淡默安然    时间: 2015-12-8 20:53
新手排版会了么?是全部字打好,然后图片做附件,0金币么??
作者: 984605267    时间: 2015-12-8 22:19
好炫酷啊
作者: Jellyfish    时间: 2015-12-9 19:53
哇,收藏了!
作者: 而后,淡默安然    时间: 2015-12-9 21:04
啊累累~~快点告诉我是怎么排的
作者: 而后,淡默安然    时间: 2015-12-11 23:07
嘤嘤嘤~~快点告诉我是怎么排的
作者: fin    时间: 2015-12-30 19:32
感谢楼主分享
作者: 无血九痕    时间: 2016-5-4 16:41
哇哦  好多的都不懂呢   受教了
作者: alexc01    时间: 2016-9-5 22:23
收藏了 謝謝
作者: madeira2811    时间: 2016-10-3 09:59
还蛮有意思的呢,赞一个
作者: 惊龙啸雨    时间: 2017-9-30 13:13
6666666666666666666666666
作者: Hao Her    时间: 2017-10-13 23:37
我爱水群。。
作者: 木 木跶    时间: 2017-10-14 14:46
看得小白我眼睛都花了。。。。。。哎,安慰自己慢慢来,加油。谢谢楼主
作者: 滑稽的麻瓜    时间: 2017-11-1 23:15
总感觉每个帖子都应该有我的身影
作者: 超越    时间: 2017-11-21 11:46
66666666666666666666
作者: 啊扬    时间: 2017-12-7 20:05
666666666666666
作者: jiliny    时间: 2017-12-9 16:28
学习了,谢谢
作者: x1318926557    时间: 2018-1-3 18:43
那仿真有点6
作者: xzf1078538061    时间: 2018-1-20 14:13
wawawawawawawawawawaw
作者: song    时间: 2018-2-25 13:29
感谢楼主分享
作者: whl970831    时间: 2018-11-14 16:47
一下子打开了新世界的大门
作者: x1318926557    时间: 2019-2-19 13:55
学习了学习了
作者: 地平线上的黎明    时间: 2020-10-21 14:31
感谢楼主分享
作者: 白白净净    时间: 2020-11-20 23:46
有意思.......
作者: 日月照三石    时间: 2022-11-30 11:06
厉害,写的不错。。。。。
作者: SCW    时间: 2023-10-10 14:54
感谢!太帅了
作者: J99Swei    时间: 2023-12-28 21:24
asdsa啊飒飒飒飒飒飒撒大苏打




欢迎光临 RoboMaster (https://bbs.robomaster.com/) Powered by Discuz! X3.2