Arduino
Arduino (/ɑːrˈdwiːnoʊ/)是一家意大利开源硬件和软件公司、项目和用户社区。 他们设计和制造用于建造数码装置的单板微控制器和微控制器包。 Arduino 的硬件产品根据 CC BY-SA 获得许可,而软件根据 GNU 宽通用公共授权 (LGPL) 或 GNU 通用公共授权 (GPL) 获得许可[1],这意味着任何人都可以建立 Arduino 板并分卖软件。 Arduino板可以从官方网站或授权经销商购买。
![]() | |
![]() Arduino Uno SMD R3 | |
研发商 | arduino.cc |
---|---|
制造商 | 许多 |
类型 | Single-board microcontroller |
操作系统 | None |
中央处理器 | Atmel AVR (8-bit), ARM Cortex-M0+ (32-bit), ARM Cortex-M3 (32-bit), Intel Quark (x86) (32-bit) |
存储器 | SRAM |
硬盘存储空间 | Flash, EEPROM |
网站 | www |
Arduino 板是使用各种微处理器和控制器设计的。 这些板配备了一组数码和模拟输入/输出 (I/O) 引脚,可连接到各种扩展板或面包板和其他电路。 该板具有串行通讯接口,包括USB,也用于安装程序。 微控制器可以使用 C 和 C++ 编程语言以及标准 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)(ATmega8、168、328等)。
- USB 接口,不需外接电源。另外有提供直流(DC)电源输入。
硬件
编辑官方硬件
编辑原始的 Arduino 硬件是从一间意大利公司 Smart Projects 制造[8]有些 Arduino 硬件则是被官方授权由美国公司 SparkFun Electronics 和 Adafruit Industries 设计。[9]。
- Arduino硬件示例
-
Arduino Diecimila in Stoicheia
-
Arduino Duemilanove (rev 2009b)
-
Arduino UNO
-
Arduino Leonardo
-
Arduino Mega
-
Arduino Nano
-
Arduino Due
(ARM Cortex-M3核心) -
LilyPad Arduino (rev 2007)
-
Arduino Yun
-
Arduino Pro Micro
-
Arduino MEGA 2560
Shields
编辑“Shields”扩展版能够插入 Arduino 和 Arduino 兼容硬件,用途是增加 Arduino 硬件本身没有的功能,如马达控制、GPS、有线网络、液晶显示器或者是面包板。用户也可以自己动手做 Shields 扩展版[10][11][12]。
- Arduino shields扩展版示例
-
多重的Shield可以被堆栈起来。在这张图里,最上层的Shield扩展版上含有面包板。
-
翅膀形状的螺丝端子Shield扩展版。
-
Adafruit马达Shield扩展版和用于连接马达的螺丝端子Shield扩展版。
软件
编辑 编写于Arduino IDE的简单入门程序“闪灯(Blink)”的屏幕截图 | |
开发者 | Arduino Software |
---|---|
编程语言 | Java、C 和 C++ |
操作系统 | Windows, macOS, Linux |
类型 | 集成开发环境 |
许可协议 | LGPL或GPL授权 |
网站 | 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 计划的集成开发环境。它是被设计于介绍程序编写给艺术家和不熟悉程式设计的人们,且包含了一个拥有语法高亮、括号匹配、自动缩进和一键编译并将可执行文件烧写入 Arduino 硬件中的编辑器。
Arduino Software IDE 使用与C语言和C++相仿的编程语言,并且提供了包含常见的输入/输出函数的 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.0 1.1 Programming Arduino Getting Started with Sketches. McGraw-Hill. Nov 8, 2011 [2013-03-28]. (原始内容存档于2019-09-19).
- ^ Severance; Charles. Massimo Banzi: Building Arduino. Computer. 2014, 47 (1): 11–12 [2022-04-12]. (原始内容存档于2022-04-24).
- ^ Justin Lahart. Taking an Open-Source Approach to Hardware. The Wall Street Journal. 27 November 2009 [2014-09-07]. (原始内容存档于2014-12-20).
- ^ ChiuHao Chen. OPEN的力量:ARDUINO開放硬體計畫. [2016-03-06]. (原始内容存档于2016-03-10).
- ^ Arduino的雙胞戰爭:創始團隊的分裂始末. [2016-03-06]. (原始内容存档于2016-03-04).
- ^ M-SHORT. Installing an Arduino Bootloader. [2016-03-06]. (原始内容存档于2016-03-08).
- ^ Arduino Single-Sided Serial Board (version 3). [2016-03-06]. (原始内容存档于2016-03-10).
- ^ Redirect.... smartprj.com. [2016-03-05]. (原始内容存档于2016-03-05).
- ^ Schmidt, M. Arduino: A Quick Start Guide. Pragmatic Bookshelf. January 22, 2011: 201 (英语).
- ^ Arduino breadboard shield: $10 & 10 mins. todbot blog. [2016-03-05]. (原始内容存档于2017-09-16).
- ^ Arduino Shields for Prototyping. tigoe.net. [2016-03-05]. (原始内容存档于2017-07-02).
- ^ Jonathan Oxer. Arduino Shield list. [5 Nov 2013]. (原始内容存档于2016-03-04).
- ^ Using AVR Studio for Arduino development. Engblaze.com. [2013-01-18]. (原始内容存档于2012-08-28).
- ^ Arduino Software Release Notes. Arduino Project. [May 31, 2013]. (原始内容存档于2020-02-02).
- ^ 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.
外部链接
编辑- Arduino(页面存档备份,存于互联网档案馆)
- Make Magazine article on the Arduino
- "Wiring" software project: http://wiring.org.co/(页面存档备份,存于互联网档案馆)
- Flickr上有关Arduino的图片(页面存档备份,存于互联网档案馆)
- Arduino tutorial(页面存档备份,存于互联网档案馆) – broken into several lessons with photographs and suggestions for appropriate tools for beginners.
- Introduction to the Arduino - Weekend Project Podcast
- Sheepdog Software's Introduction to Arduino(页面存档备份,存于互联网档案馆):"Getting Started" pages and sequenced programming tutorials, with help on hardware.
- Wired article about open source hardware, focusing on Arduino(页面存档备份,存于互联网档案馆)
- 新竹交通大学毛先生的资料(页面存档备份,存于互联网档案馆)
- Freeduino索引
- 自制USB AVR刻录器(页面存档备份,存于互联网档案馆)
- Arduino: Robotics for beginners (Spanish with English subtitles)(页面存档备份,存于互联网档案馆)
- Arduino tutorial – in portuguese, but with source codes and videos.
- Cooper Maa的Arduino笔记(页面存档备份,存于互联网档案馆)
- Arduino中文教程-Arduino中文社区(页面存档备份,存于互联网档案馆)
- Arduino中文教程
- 柯博文老师的arduino教学(页面存档备份,存于互联网档案馆)