Arduino

计算机硬件和软件的公司

Arduino (/ɑːrˈdwn/)是一家意大利开源硬件和软件公司、项目和用户社区。 他们设计和制造用于建造数字设备的单板微控制器和微控制器包。 Arduino 的硬件产品根据 CC BY-SA 获得许可,而软件根据 GNU 宽通用公共授权 (LGPL) 或 GNU 通用公共授权 (GPL) 获得许可[1],这意味着任何人都可以建立 Arduino 板并分卖软件。 Arduino板可以从官方网站或授权经销商购买。

Arduino
研发商arduino.cc
制造商许多
类型Single-board microcontroller
操作系统None
中央处理器Atmel AVR (8-bit),
ARM Cortex-M0+ (32-bit),
ARM Cortex-M3 (32-bit),
Intel Quark英语Intel Quark (x86) (32-bit)
存储器SRAM
硬盘存储空间Flash, EEPROM
网站www.arduino.cc 编辑维基数据链接

Arduino 板是使用各种微处理器和控制器设计的。 这些板配备了一组数字和模拟输入/输出 (I/O) 引脚,可连接到各种扩展板或面包板和其他电路。 该板具有串行通信接口,包括USB,也用于安装程序。 微控制器可以使用 CC++ 编程语言以及标准 API(原文: Arduino Programming Language)进行编程,其灵感来自于处理语言,并与处理 IDE 的修改版本一起使用。 除了使用传统的编译工具链外,Arduino项目还提供了集成开发环境(IDE)和用Go语言开发的命令行工具。

Arduino 项目始于 2005 年,[2]作为意大利伊夫雷亚交互设计学院学生的工具,旨在为新手和专业人士提供一种低成本且简单的方法来创建使用传感器和执行器进行交互的设备。 对于初学者和爱好者来说,此类设备的常见示例包括简单的机器人恒温器和运动侦测器。

Arduino 的名字来自于意大利伊夫雷亚的一家酒吧,该项目的一些创始人就是在那里相遇的。 酒吧以伊夫雷亚侯爵、1002 年至 1014 年意大利国王阿杜因 (Arduin of Ivrea) 的名字命名[3]

关于 编辑

Arduino 系列电路板的设计大多使用 Atmel AVR 单片机。这些电路板配有一组数字和模拟I/O引脚,可以连接各种扩展板或面包板(Shields 扩展版)和其他电路。这些电路板具有串行通信接口,包括某些型号上的通用串行總線(USB),也用于从个人电脑加载程序。

软件编程方面,通常使用C/C++編程語言,官方提供了一个开发用的Arduino 集成开发环境(IDE)。除了使用传统的编译工具链之外,Arduino 项目还提供了一个基于 Processing 语言項目的集成开发环境。另外,一些少儿编程教育软件提供了对 Arduino 的可视化编程

开发沿革 编辑

Arduino 的核心开发团队成员包括:马西莫·班齐(Massimo Banzi)、大卫·奎提耶斯(David Cuartielles)、汤姆·伊果(Tom Igor)、赞布罗塔·马提诺(Gianluca Martino)、大卫·梅利斯(David Mellis)和尼可拉斯·兰比提(Nicholas Zambetti)。

据说马西莫·班齐之前是意大利 Ivrea 一家高科技设计学校的老师。他的学生们经常抱怨找不到便宜好用的微控制器。2005年冬天,马西莫·班齐跟大卫·奎提耶斯讨论了这个问题。大卫·奎提耶斯是一个西班牙籍芯片工程师,当时在这所学校做访问学者。两人决定设计自己的电路板,并引入了马西莫·班齐的学生大卫·梅利斯为电路板设计编程语言。两天以后,大卫·梅利斯就写出了代码。又过了三天,电路板就完工了。这块电路板被命名为 Arduino。几乎任何人,即使不懂电脑编程,也能用 Arduino 做出东西,比如对传感器作出回应,闪烁灯光,还能控制马达。随后马西莫·班齐、大卫·奎提耶斯和大卫·梅利斯把设计图放到了网上。保持设计的开放源码理念,因为著作权法可以监管开源软件,却很难用在硬件上,他们决定采用共享创意许可[4]共享创意是为保护开放著作权行为而出现的类似 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[5]

特色 编辑

  • 基于知识共享开源的电路图设计。
  • 免费下载,也可依需求自己修改,但需遵照姓名标示,按照作者或授权人所指定的方式,表彰其姓名。
  • 依相同方式分享,若改变或转变著作,当散布该派生著作时,需采用与本著作相同或类似的授权条款。
  • Arduino 可使用 ICSP 在线烧入器,将 Bootloader 烧入新的IC芯片[6]
  • 可依据 Arduino 官方网站,获取硬件的设计档,加以调整电路板及组件,以符合自己实际设计的需求[7]
  • 可简单地与传感器及各式各样的电子组件连接,如红外线超音波热敏电阻光敏电阻伺服马达等。
  • 支持多样的交互程序,如Adobe Flash、Max/MSP、VVVV、Pure Data、C及Processing等。
  • 使用低价格的微处理控制器(Atmel AVR)(ATmega8168328等)。
  • USB 接口,不需外接电源。另外有提供直流(DC)电源输入。

硬件 编辑

官方硬件 编辑

原始的 Arduino 硬件是从一间意大利公司 Smart Projects 制造[8]有些 Arduino 硬件则是被官方授权由美国公司 SparkFun Electronics英语SparkFun ElectronicsAdafruit Industries英语Adafruit Industries 设计。[9]

Shields 编辑

“Shields”扩展版能够插入 Arduino 和 Arduino 兼容硬件,用途是增加 Arduino 硬件本身没有的功能,如马达控制、GPS有线网络液晶显示器或者是面包板。用户也可以自己动手做 Shields 扩展版[10][11][12]

软件 编辑

Arduino Software IDE
 
编写于Arduino IDE的简单入门程序“闪灯(Blink)”的屏幕截图
开发者Arduino Software
编程语言JavaCC++
操作系统Windows, macOS, Linux
类型集成开发环境
许可协议LGPLGPL授权
网站arduino.cc

在 Arduino 上执行的程序可以使用任何能够被编译成 Arduino 机器代码的编程语言编写,Arduino 官方推荐使用集成了 arduino 库的 C++ 进行编程。

多数 Arduino 电路板上 MCU 的制造商 Atmel 公司也提供了数个可以开发 Atmel 微处理机程序的集成开发环境,AVR Studio[13]和更新的 Atmel Studio[14][15]

目前微软在其 Microsoft Visual Studio 也有提供 Arduino 的 SDK,在编译执行上更方便。


IDE 编辑

Arduino 计划也提供了 Arduino Software IDE,一套以 Java 编写的跨平台应用软件。Arduino Software IDE 源自于 Processing编程语言以及 Wiring英语Wiring 计划的集成开发环境。它是被设计于介绍程序编写给艺术家和不熟悉程序设计的人们,且包含了一个拥有语法高亮、括号匹配、自动缩进和一键编译并将可执行文件烧写入 Arduino 硬件中的编辑器。

Arduino Software IDE 使用与C语言C++相仿的编程语言,并且提供了包含常见的输入/输出函数的 Wiring英语Wiring 软件函式库。在使用GNU toolchain编译和链接后,Arduino Software IDE提供了一个程序“avrdude”用来转换可执行档成为能够烧写入 Arduino 硬件的固件。2019 年后,版本分为简洁、免安装的IDE1 和功能齐全的IDE2

Sketch 编辑

使用Arduino Software IDE编写的程序被称为“sketch”[1]。一个典型的 Arduino C/C++ sketch 程序会包含两个函数,它们会在编译后合成为 main() 函数:

  • setup():在程序执行开始时会执行一次,用于初始化设置。
  • loop():直到Arduino硬件关闭前会重复执行函数放的代码。

相关设备名称 编辑

参见 编辑

注释 编辑

参考资料 编辑

  1. ^ 1.0 1.1 Programming Arduino Getting Started with Sketches. McGraw-Hill. Nov 8, 2011 [2013-03-28]. (原始内容存档于2019-09-19). 
  2. ^ Severance; Charles. Massimo Banzi: Building Arduino. Computer. 2014, 47 (1): 11–12 [2022-04-12]. (原始内容存档于2022-04-24). 
  3. ^ Justin Lahart. Taking an Open-Source Approach to Hardware. The Wall Street Journal. 27 November 2009 [2014-09-07]. (原始内容存档于2014-12-20). 
  4. ^ ChiuHao Chen. OPEN的力量:ARDUINO開放硬體計畫. [2016-03-06]. (原始内容存档于2016-03-10). 
  5. ^ Arduino的雙胞戰爭:創始團隊的分裂始末. [2016-03-06]. (原始内容存档于2016-03-04). 
  6. ^ M-SHORT. Installing an Arduino Bootloader. [2016-03-06]. (原始内容存档于2016-03-08). 
  7. ^ Arduino Single-Sided Serial Board (version 3). [2016-03-06]. (原始内容存档于2016-03-10). 
  8. ^ Redirect.... smartprj.com. [2016-03-05]. (原始内容存档于2016-03-05). 
  9. ^ Schmidt, M. Arduino: A Quick Start Guide. Pragmatic Bookshelf. January 22, 2011: 201 (英语). 
  10. ^ Arduino breadboard shield: $10 & 10 mins. todbot blog. [2016-03-05]. (原始内容存档于2017-09-16). 
  11. ^ Arduino Shields for Prototyping. tigoe.net. [2016-03-05]. (原始内容存档于2017-07-02). 
  12. ^ Jonathan Oxer. Arduino Shield list. [5 Nov 2013]. (原始内容存档于2016-03-04). 
  13. ^ Using AVR Studio for Arduino development. Engblaze.com. [2013-01-18]. (原始内容存档于2012-08-28). 
  14. ^ Arduino Software Release Notes. Arduino Project. [May 31, 2013]. (原始内容存档于2020-02-02). 
  15. ^ Using Atmel Studio for Arduino development. Megunolink.com. [2013-01-18]. (原始内容存档于2013-01-28). 

补充资料 编辑

  • Exploring Arduino: Tools and Techniques for Engineering Wizardry; 2nd Ed; Jeremy Blum; Wiley; 512 pages; 2019; ISBN 978-1119405375.
  • Arduino For Dummies; 2nd Ed; John Nussey; John Wiley & Sons; 400 pages; 2018; ISBN 978-1119489542.
  • Programming Arduino Next Steps: Going Further with Sketches; 2nd Ed; Simon Monk; McGraw-Hill Education; 320 pages; 2018; ISBN 978-1260143249.
  • Programming Arduino: Getting Started With Sketches; 2nd Ed; Simon Monk; McGraw-Hill Education; 192 pages; 2016; ISBN 978-1259641633.
  • Beginning C for Arduino: Learn C Programming for the Arduino; 2nd Ed; Jack Purdum; Apress; 388 pages; 2015; ISBN 978-1484209417.
  • Arduino: A Quick Start Guide; 2nd Ed; Maik Schmidt; Pragmatic Bookshelf; Pragmatic Bookshelf; 323 pages; 2015; ISBN 978-1941222249.
  • Make: Getting Started with Arduino; 3rd Ed; Massimo Banzi, Michael Shiloh; Make Community; 262 pages; 2014; ISBN 978-1449363338.
  • Make: Sensors; 1st Ed; Tero Karvinen, Kimmo Karvinen, Ville Valtokari; Make Community; 400 pages; 2014; ISBN 978-1449368104.
  • Arduino Workshop: A Hands-On Introduction with 65 Projects; 1st Ed; John Boxall; No Starch Press; 392 pages; 2013; ISBN 978-1593274481.

外部链接 编辑