[其他] 【分享帖】创客小白入门不可错过的工具大全——软件类

  [复制链接]
工程机械狗
2015-12-8 13:18:38 显示全部楼层

马上注册,玩转Robomaster!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
作为一枚小白,看到高大上的硬件产品总想自己也弄个装装逼;作为一枚创客,看到别人演示的神奇技术总想自己验证一番;作为一枚硬件创业者,脑袋里的奇思妙想总想动手试试看可否成为创业方向。大家都有动手制作的欲望,奈何硬件产品是一门非常复杂的技艺...

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

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

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

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

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

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

下图分别是Stencyl的场景编辑器和编程界面:
19.jpg
作为新手,排版心好累

评分

参与人数 1金钱 +15 收起 理由
robomasters + 15 很给力!

查看全部评分

跳转到指定楼层

[其他] 【分享帖】创客小白入门不可错过的工具大全——软件类

  [复制链接]
顾问木 木跶
2017-10-14 14:46:41 显示全部楼层
看得小白我眼睛都花了。。。。。。哎,安慰自己慢慢来,加油。谢谢楼主

[其他] 【分享帖】创客小白入门不可错过的工具大全——软件类

  [复制链接]
工程无血九痕
2016-5-4 16:41:41 显示全部楼层
哇哦  好多的都不懂呢   受教了

[其他] 【分享帖】创客小白入门不可错过的工具大全——软件类

  [复制链接]
工程而后,淡默安然
2015-12-8 20:53:20 显示全部楼层
新手排版会了么?是全部字打好,然后图片做附件,0金币么??

点评

哦,这个是好早之前写好的草稿,最近发现了才发出来,排版早就没问题了  发表于 2015-12-9 17:12

[其他] 【分享帖】创客小白入门不可错过的工具大全——软件类

  [复制链接]
工作人员Tony_Stark
2015-12-8 19:50:37 显示全部楼层
赞一个
~~
回复

使用道具 举报

[其他] 【分享帖】创客小白入门不可错过的工具大全——软件类

  [复制链接]
工程而后,淡默安然
2015-12-8 20:51:12 显示全部楼层
顶!d=====( ̄▽ ̄*)b

[其他] 【分享帖】创客小白入门不可错过的工具大全——软件类

  [复制链接]
正式队员984605267
2015-12-8 22:19:41 显示全部楼层
好炫酷啊
回复

使用道具 举报

[其他] 【分享帖】创客小白入门不可错过的工具大全——软件类

  [复制链接]
工程Jellyfish
2015-12-9 19:53:40 显示全部楼层
哇,收藏了!
回复

使用道具 举报

[其他] 【分享帖】创客小白入门不可错过的工具大全——软件类

  [复制链接]
工程而后,淡默安然
2015-12-9 21:04:29 显示全部楼层
啊累累~~快点告诉我是怎么排的

[其他] 【分享帖】创客小白入门不可错过的工具大全——软件类

  [复制链接]
工程而后,淡默安然
2015-12-11 23:07:28 显示全部楼层
嘤嘤嘤~~快点告诉我是怎么排的

[其他] 【分享帖】创客小白入门不可错过的工具大全——软件类

  [复制链接]
步兵fin
2015-12-30 19:32:51 显示全部楼层
感谢楼主分享
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

触屏版 | 电脑版

Copyright © 2024 RoboMasters 版权所有 备案号 粤ICP备2022092332号

快速回复 返回顶部 返回列表