Arduino

Arduino（oʊ）是一家意大利开源硬体和软体公司、专案和使用者社群。 他们设计和制造用于建造数位设备的单板微控制器和微控制器套件。 Arduino 的硬体产品获得 CC BY-SA 许可，而软体根据 GNU 宽通用公共授权 (LGPL) 或 GNU 通用公共授权 (GPL) 获得许可，这意味着任何人都可以建立 Arduino 板并分卖软体。 Arduino板可以从官方网站或授权经销商购买。
Arduino 板是使用各种微处理器和控制器设计的。 这些板配备了一组数位和类比输入/输出 (I/O) 引脚，可连接到各种扩展板或面包板和其他电路。 该板具有串行通讯接口，包括USB，也用于安装程式。 微控制器可以使用 C 和 C++ 程式语言以及标准 API（原文： Arduino Programming Language）进行编程，其灵感来自于处理语言，并与处理 IDE 的修改版本一起使用。 除了使用传统的编译工具链外，Arduino专案还提供了整合开发环境（IDE）和用Go语言开发的命令列工具。 
Arduino 计划始于 2005 年，作为义大利伊夫雷亚互动设计学院学生的工具，旨在为新手和专业人士提供一种低成本且简单的方法来创建使用感测器和执行器进行互动的设备。 对于初学者和爱好者来说，此类设备的常见范例包括简单的机器人、恒温器和运动侦测器。
Arduino 的名字来自于义大利伊夫雷亚的一家酒吧，该计划的一些创始人就是在那里相遇的。 酒吧以伊夫雷亚侯爵、1002 年至 1014 年义大利国王阿杜因 (Arduin of Ivrea) 的名字命名。

**关于**
Arduino 系列电路板的设计大多使用 Atmel AVR 单片机。这些电路板配有一组数字和模拟I/O引脚，可以连接各种扩展板或面包板（Shields 扩充版)和其他电路。这些电路板具有-{zh-cn:串行通信接口;zh-tw:串列埠;}-，包括某些型号上的-{zh-cn:通用串行总线;zh-tw:通用串列汇流排;}-（USB），也用于从个人电脑加载程序。
软件编程方面，通常使用C/C++-{zh-cn:编程语言;zh-tw:程式语言;}-，官方提供了一个开发用的Arduino 集成开发环境(IDE)。除了使用传统的编译工具链之外，Arduino 项目还提供了一个基于 Processing 语言-{zh-cn:项目;zh-tw:专案;}-的集成开发环境。另外，一些少儿编程教育软件提供了对 Arduino 的可视化编程。

**开发沿革**
Arduino 的核心开发团队成员包括：马西莫·班齐（Massimo Banzi）、大卫·奎提耶斯（David Cuartielles）、汤姆·伊果（Tom Igor）、赞布罗塔·马提诺（Gianluca Martino）、大卫·梅利斯（David Mellis）和尼可拉斯·兰比提（Nicholas Zambetti）。
马西莫·班齐曾是义大利 Ivrea 一家高科技设计学校的教师，他的学生们经常抱怨找不到便宜又好用的微控制器。2005年冬天，班齐与西班牙籍晶片工程师大卫·奎提耶斯讨论了这个问题，奎提耶斯当时在学校担任访问学者。两人决定设计自己的电路板，并邀请班齐的学生大卫·梅利斯负责电路板的编程语言设计。两天后，梅利斯完成了程式码，三天后，电路板也宣告完工，并被命名为 Arduino。
Arduino 的设计使几乎任何人都能轻松创作，即使不懂编程的人也能利用它来响应感测器、闪烁灯光或控制马达。随后，班齐、奎提耶斯和梅利斯将设计图上传至网路，并秉持开放源码的理念，决定采用共享创意许可（Creative Commons License）。这种许可旨在保护开放版权行为，类似于 GPL，但更适用于硬体。根据共享创意许可，任何人都可以生产印刷电路板的复制品，重新设计，甚至销售原设计的复制品，而无需支付版税或获得 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。

**特色**
 基于创用CC开源的电路图设计。- 免费下载，也可依需求自己修改，但需遵照姓名标示，按照作者或授权人所指定的方式，表彰其姓名。- 依相同方式分享，若改变或转变著作，当散布该衍生著作时，需采用与本著作相同或类似的授权条款。- Arduino 可使用 ICSP 线上烧入器，将 Bootloader 烧入新的IC晶片。- 可依据 Arduino 官方网站，取得硬体的设计档，加以调整电路板及元件，以符合自己实际设计的需求。- 可简单地与感测器及各式各样的电子元件连接，如红外线、超音波、热敏电阻、光敏电阻、伺服马达等。- 支援多样的互动程式，如Adobe Flash、Max/MSP、VVVV、Pure Data、C及Processing等。- 使用低价格的微处理控制器（Atmel AVR）（ATmega8、168、328等）。- USB 介面，不需外接电源。另外有提供直流（DC）电源输入。

**硬体**

**官方硬体**
原始的 Arduino 硬体是从一间意大利公司 Smart Projects 制造有些 Arduino 硬体则是被官方授权由美国公司 SparkFun Electronics 和 Adafruit Industries 设计。。
File:Arduino Diecimila 6.jpg|Arduino Diecimila in Stoicheia
File:Arduino Duemilanove 2009b.jpg|Arduino Duemilanove (rev 2009b)
File:Arduino UNO unpacked.jpg|Arduino UNO
File:Arduino Leonardo.jpg|Arduino Leonardo
File:Arduino Mega.jpg|Arduino Mega
File:Arduino Nano.jpg|Arduino Nano
File:ArduinoDue Front.jpg|Arduino Due （ARM Cortex-M3核心）
File:LilyPad Arduino Main Board.JPG|LilyPad Arduino (rev 2007)
File:ArduinoYun.jpg|Arduino Yun
File:Arduino Pro Micro.jpg|Arduino Pro Micro
File:Arduino MEGA2560.png|Arduino MEGA 2560 

**Shields**
「Shields」扩充版能够插入 Arduino 和 Arduino 相容硬体，用途是增加 Arduino 硬体本身没有的功能，如马达控制、GPS、有线网路、液晶显示器或者是面包板。使用者也可以自己动手做 Shields 扩充版。
Image:Arduino Protoboard Shields.jpg|多重的Shield可以被堆叠起来。在这张图里，最上层的Shield扩充版上含有面包板。
Image:Wingshield on Arduino - ARSH-05-WI.jpg|翅膀形状的螺丝端子Shield扩充版。
Image:Adafruit Motor Shield - ARSH-02-MS 01.jpg|Adafruit马达Shield扩充版和用于连接马达的螺丝端子Shield扩充版。
Image:ARSH-09-DL 03.jpg|内建一个SD卡插槽，以及实时时钟晶片的Adafruit数据记录Shield。
Image:Fabric Shield for Arduino Nano.JPG|HackARobot结构Shield，专为了Arduino Nano硬体设计以推动马达和感测器如：陀螺仪和GPS，以及其他的扩充版如：Wifi、蓝芽、无线射频等。

**软体**
在 Arduino 上执行的程式可以使用任何能够被编译成 Arduino 机器码的程式语言编写，Arduino 官方推荐使用整合了 arduino 库的 C++ 进行编程。
多数 Arduino 电路板上 MCU 的制造商 Atmel 公司也提供了数个可以开发 Atmel 微处理机程式的整合开发环境，AVR Studio和更新的 Atmel Studio。
目前微软在其 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」。一个典型的 Arduino C/C++ sketch 程式会包含两个函式，它们会在编译后合成为 main() 函式：- setup()：在程式执行开始时会执行一次，用于初始化设定。- loop()：直到Arduino硬体关闭前会重复执行函式放的程式码。

**相关设备名称**
 BASIC Stamp- OOPic- PICAXE- Parallax Propeller- Fritzing- Gumstix- ioBridge- Make (magazine)#Make Controller Kit- Minibloq- 树莓派 - 单板机电脑- Simplecortex

**参见**
 创作共用

**注释**

**参考资料**

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

**外部链接**
  Arduinodate=20110223104208 -  Make Magazine article on the Arduino - "Wiring" software project: http://wiring.org.co/date=20090106194251 -  Flickr上有关Arduino的图片date=20090118181239 -  Arduino tutorialdate=20090402062527  – 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 Arduinodate=20090110233031 ："Getting Started" pages and sequenced programming tutorials, with help on hardware.-  Wired article about open source hardware, focusing on Arduinodate=20090123225745 -  新竹交通大学毛先生的资料date=20170403071054 -  Freeduino索引-  自制USB AVR烧录器date=20090204053534 -  Arduino: Robotics for beginners (Spanish with English subtitles)date=20140408085957 -  Arduino tutorial – in portuguese, but with source codes and videos.-  Cooper Maa的Arduino笔记date=20170403061727 -  Arduino中文教程-Arduino中文社区date=20131213044241 -  Arduino中文教程-  柯博文老师的arduino教学date=20190919045801