Arduino

title: 关于.
content: 使用 Atmel AVR 单片机,采用开源的软硬件平台,构建于开源 simple I/O 接口板,并具有使用类似 Java、C 语言的 Processing/Wiring 开发环境。
title: 开发沿革.
content: Arduino的核心开发团队成员包括:马西莫·班齐(Massimo Banzi)、大卫·奎提耶斯(David Cuartielles)、汤姆·伊果(Tom Igor)、赞布罗塔·马提诺(Gianluca Martino)、大卫·梅利斯(David Mellis)和尼可拉斯·兰比提(Nicholas Zambetti)。  据说马西莫·班齐之前是意大利Ivrea一家高科技设计学校的老师。他的学生们经常抱怨找不到便宜好用的微控制器。2005年冬天,马西莫·班齐跟大卫·奎提耶斯讨论了这个问题。大卫·奎提耶斯是一个西班牙籍芯片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并引入了马西莫·班齐的学生大卫·梅利斯为电路板设计编程语言。两天以后,大卫·梅利斯就写出了程序码。又过了三天,电路板就完工了。这块电路板被命名为Arduino。几乎任何人,即使不懂电脑编程,也能用Arduino做出很酷的东西,比如对传感器作出回应,闪烁灯光,还能控制马达。随后马西莫·班齐、大卫·奎提耶斯和大卫·梅利斯把设计图放到了网上。保持设计的开放源码理念,因为版权法可以监管开源软件,却很难用在硬件上,他们决定采用共享创意许可。共享创意是为保护开放版权行为而出现的类似GPL的一种许可(license)。在共享创意许可下,任何人都被允许生产印刷电路板的复制品,还能重新设计,甚至销售原设计的复制品。你不需要付版税,甚至不用取得Arduino团队的许可。然而,如果你重新发布了引用设计,你必须说明原始Arduino团队的贡献。如果你调整或改动了电路板,你的最新设计必须使用相同或类似的共享创意许可,以保证新版本的Arduino电路板也会一样的自由和开放。唯一被保留的只有Arduino这个名字。它被注册成了商标。如果有人想用这个名字卖电路板,那他们可能必须付一点商标费用给Arduino的核心开发团队成员。  赞布罗塔·马提诺创立的Arduino Srl被2009年创立的Arduino LLC控告侵犯了他们的著作权,这第二家被控侵权的Arduino(也就是Arduino Srl),原先叫做Smart Projects Srl,以前是在意大利负责生产制造Arduino控制板的公司。而第一家Arduino(也就是我们较熟悉的Arduino LLC)则负责开发控制板,并管理周边的开源专题与社群。在之前,原本双方是合作的关系;2014年马提诺与另外四位共同创办人,对于Arduino品牌的发展方向意见不合,导致马提诺另外请费德里科·穆斯托担任Smart Projects的新首席执行官,并把公司名称改为Arduino Srl。
title: 硬件.
title: 官方硬件.
content: 原始的Arduino硬件是从一间意大利公司Smart Projects制造有些Arduino硬件则是被官方授权由美国公司SparkFun Electronics和Adafruit Industries设计。。
title: Shields.
content: 「Shields」扩充版能够被插入Arduino和Arduino相容硬件。用途是增加Arduino硬件上没有的功能,如马达控制、GPS、有线网络、液晶显示器或者是面包板。使用者也可以自己动手做Shields扩充版。
title: 软件.
content: 在Arduino上执行的程序可以使用任何能够被编译成Arduino机器码的程序语言编写。  而Atmel也提供了数个可以开发Atmel微处理机程序的整合开发环境,AVR Studio和更新的Atmel Studio。  目前微软在其Visual Studio 也有提供Arduino 的 SDK,在编译执行上更方便。
title: IDE.
content: 而Arduino计划也提供了Arduino Software IDE,一套以Java编写的跨平台应用软件。Arduino Software IDE源自于Processing程序语言以及Wiring计划的整合开发环境。它是被设计于介绍程序编写给艺术家和不熟悉程序设计的人们,且包含了一个拥有语法突显、括号匹配、自动缩排和一键编译并将执行档烧写入Arduino硬件中的编辑器。  Arduino Software IDE使用与C语言和C++相仿的程序语言,并且提供了包含常见的输入/输出函式的Wiring软件函式库。在使用GNU toolchain编译和连结后,Arduino Software IDE提供了一个程序「avrdude」用来转换可执行档成为能够烧写入Arduino硬件的固件。
title: Sketch.
content: 使用Arduino Software IDE编写的程序被称为「sketch」。一个典型的Arduino C/C++ sketch程序会包含两个函式,它们会在编译后合成为main()函式:
title: Arduino语言.
content: 这是Arduino的Blink范例程序。  Arduino 程序可由五个部分组成: //1. 汇入函式库与定义 (可有可无)  //2. 宣告常数与全域变量 (可有可无)  const float PI=3.14159; int r;  //3. 设定函式 (必要)  //4. 无限循环;(必要)  //5. 自订函式 (可有可无)  float area(float r) {  其中 setup() 与 loop() 是一定要有的函式(均无参数无传回值),其他则视需要而定。 Arduino 语言采用 C/C++ 语法,  加上以 Wiring 为基础的电子设计核心函式库组合而成,包括 Digital I/O, Analog I/O 等函式库。内建的函式库可直接调用,  但若有使用第三方函式库(例如驱动传感器模组所需的函式库),则必须使用 include 前置指令引入。此外,也可以用前置指令 define 定义一个常数或宏(运算式)。  前置指令乃 C 编译器指令,不属于 C 语言本身,其用途有三:  所以前置指令的功能一言以蔽之就是替换,include 就是在标头处以指定之档案内容替换;而 define 就是在程序中用到所定义之常数与宏名称时,以其内容替换。  宏的功能事实上与函数类似,不同之处是函式呼叫使用堆叠,而宏则是直接放在源代码中,执行效率较快(但若很多地方都要用到时,编译后就会比较大)。  标头档可用角括号 < > 或双引号 "",差别是用双引号时,前置处理器会先从原始档所在位置开始去搜寻标头档;而用角括号则会先从 libraries 目录开始找。

Summary: Arduino是一家制作开源硬件和开源软件的公司,同时兼有项目和用户社区,该公司负责设计和制造单板微控制器和微控制器套件,用于构建数字设备和交互式对象,以便在物理和数字世界中感知和控制对象。该项目的产品是按照GNU宽通用公共许可证(LGPL)或GNU通用公共许可证(GPL)许可的开源硬件和软件分发的,Arduino允许任何人制造Arduino板和软件分发。 Arduino板可以以预装的形式商业销售,也可以作为DIY套件购买。

Arduino: Arduino () is an open-source hardware and software company, project and user community that designs and manufactures single-board microcontrollers and microcontroller kits for building digital devices. Its products are licensed under the GNU Lesser General Public License (LGPL) or the GNU General Public License (GPL), permitting the manufacture of Arduino boards and software distribution by anyone. Arduino boards are available commercially in preassembled form or as do-it-yourself (DIY) kits.