跳转到内容

Arduino

本页使用了标题或全文手工转换
维基百科,自由的百科全书

这是本页的一个历史版本,由163.23.180.250留言2022年3月16日 (三) 11:57 IDE编辑。这可能和当前版本存在着巨大的差异。

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 是一个开源嵌入式硬件平台,用来供使用者制作可交互式的嵌入式项目。此外 Arduino 作为一个开源硬件开源软件的公司,同时兼有项目和用户社区。該公司负责设计和制造Arduino电路板及相关附件。这些产品按照GNU宽通用公共许可证(LGPL)或GNU通用公共许可证(GPL)[1]许可的开源硬件和软件分发的,Arduino 允许任何人制造 Arduino 板和软件分发。 Arduino 板可以以预装的形式商业销售,也可以作为DIY套件购买。

Arduino 项目始于2003年,作为意大利伊夫雷亚地区伊夫雷亚交互设计研究所的学生项目,目的是为新手和专业人员提供一种低成本且简单的方法,以创建使用传感器与环境相互作用的设备执行器。适用于初学者爱好者的此类设备的常见示例包括传感器、简单机器人恒温器运动检测器

Arduino 这个名字来自意大利伊夫雷亚的一家酒吧,该项目的一些创始人過去常常会去这家酒吧。 酒吧以伊夫雷亚的 Arduin(Arduin of Ivrea)命名,他是伊夫雷亚邊疆伯爵,也是1002年至1014年期间的意大利国王[2]

關於

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 做出很酷的東西,比如對感測器作出回應,閃爍燈光,還能控制馬達。隨後馬西莫·班齊、大衛·奎提耶斯和大衛·梅利斯把設計圖放到了網上。保持設計的開放源碼理念,因為版權法可以監管開源軟體,卻很難用在硬體上,他們決定採用共享創意許可[3]共享創意是為保護開放版權行為而出現的類似 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[4]

特色

  • 基於創用CC开源的電路圖設計。
  • 免費下載,也可依需求自己修改,但需遵照姓名標示。您必須按照作者或授權人所指定的方式,表彰其姓名。
  • 依相同方式分享,若您改變或轉變著作,當散布該衍生著作時,您需採用與本著作相同或類似的授權條款。
  • Arduino 可使用 ICSP 線上燒入器,將 Bootloader 燒入新的IC晶片[5]
  • 可依據 Arduino 官方網站,取得硬體的設計檔,加以調整電路板及元件,以符合自己實際設計的需求[6]
  • 可簡單地與感測器,各式各樣的電子元件連接,如紅外線超音波熱敏電阻光敏電阻伺服馬達等。
  • 支援多樣的互動程式,如Adobe Flash, Max/MSP, VVVV, Pure Data, C, Processing等。
  • 使用低價格的微處理控制器(Atmel AVR)(ATMEGA 8,168,328等)。
  • USB 介面,不需外接電源。另外有提供直流(DC)電源輸入。

硬體

官方硬體

原始的 Arduino 硬體是從一間意大利公司 Smart Projects 製造[7]有些 Arduino 硬體則是被官方授權由美國公司 SparkFun Electronics英语SparkFun ElectronicsAdafruit Industries英语Adafruit Industries 設計。[8]

Shields

「Shields」擴充版能夠插入 Arduino 和 Arduino 相容硬體,用途是增加 Arduino 硬體本身沒有的功能,如馬達控制、GPS有線網路液晶顯示器或者是麵包板。使用者也可以自己動手做 Shields 擴充版[10][11][12]

軟體

Arduino Software IDE
編寫於Arduino IDE的簡單入門程式「閃燈(Blink)」的螢幕截圖
編寫於Arduino IDE的簡單入門程式「閃燈(Blink)」的螢幕截圖
開發者Arduino Software
当前版本1.8.8(2018年12月7日,​6年前​(2018-12-07[13]
编程语言JavaCC++
操作系统Windows, macOS, Linux
类型整合開發環境
许可协议LGPLGPL授權
网站arduino.cc

在 Arduino 上執行的程式可以使用任何能夠被編譯成 Arduino 機器碼的程式語言編寫,Arduino 官方推荐使用整合了 arduino 库的 C++ 进行编程。

多数 Arduino 电路板上 MCU 的制造商 Atmel 公司也提供了數個可以開發 Atmel 微處理機程式的整合開發環境,AVR Studio[14]和更新的 Atmel Studio[15][16]

目前微軟在其 Visual Studio 也有提供 Arduino 的 SDK,在編譯執行上更方便。


int PB_U=47,PB_D=49,Reset=51; int counter=101; int SEG[8]={12,11,10,9,8,7,6,5}; int D[5]={22,24,26,28,30}; int N[4]={0,0,0,0}; byte code7[16]={ 0xC0,0xF9,0xA4,0xB0, 0x99,0x92,0x82,0xD8,

                0x80,0x98,0x88,0x83, 0xC3,0xA1,0x86,0x8E};

//初始

void setup(){

 for(int i=0;i<8;i++){
   pinMode(SEG[i],OUTPUT);
   digitalWrite(SEG[i],1);
 }
 for(int i=0;i<5;i++){
   pinMode(D[i],OUTPUT);
   digitalWrite(D[i],1);
 }

}

//主程式

void loop(){

 int RST=digitalRead(Reset);
 if(RST==0){
   counter=0;
   while(RST==0)RST=digitalRead(Reset);
 }
 int u=digitalRead(PB_U);
 if(u==0){
   counter=counter+100;
   if(++counter>=909)counter=909;
   while(u==0)u=digitalRead(PB_U);
 }
 int d=digitalRead(PB_D);
 if(d==0){
   counter=counter-100;
   if(--counter<=0)counter=0;
   while(d==0)d=digitalRead(PB_D);
 }
 
 //轉BCD
 N[0]=counter/1000;
 N[1]=(counter/100)%10;
 N[2]=(counter/10)%10;
 N[3]=counter%10;
 
 
 //七段顯示
 for(int i=0;i<4;i++){
   byte tmp=code7[N[3-i]];
   for(int j=0;j<8;j++)
     digitalWrite(SEG[j],bitRead(tmp,j));
   digitalWrite(D[i],0);
   delay(1);
   digitalWrite(D[i],1);
 }

}

相關設備名稱

參見

注釋

  1. ^ 1.0 1.1 這是替代廠商製作的MEGA 2560 R3的相容板[9]

参考資料

  1. ^ Arduino - Introduction. arduino.cc. [2018-05-28]. (原始内容存档于2017-08-29). 
  2. ^ Justin Lahart. Taking an Open-Source Approach to Hardware. The Wall Street Journal. 27 November 2009 [2014-09-07]. (原始内容存档于2014-12-20). 
  3. ^ ChiuHao Chen. OPEN的力量:ARDUINO開放硬體計畫. [2016-03-06]. (原始内容存档于2016-03-10). 
  4. ^ Arduino的雙胞戰爭:創始團隊的分裂始末. [2016-03-06]. (原始内容存档于2016-03-04). 
  5. ^ M-SHORT. Installing an Arduino Bootloader. [2016-03-06]. (原始内容存档于2016-03-08). 
  6. ^ Arduino Single-Sided Serial Board (version 3). [2016-03-06]. (原始内容存档于2016-03-10). 
  7. ^ Redirect.... smartprj.com. [2016-03-05]. (原始内容存档于2016-03-05). 
  8. ^ Schmidt, M. Arduino: A Quick Start Guide. Pragmatic Bookshelf. January 22, 2011: 201 (英语). 
  9. ^ Arduino - ArduinoBoardMega2560. arduino.cc. [2016-03-05]. (原始内容存档于2016-03-07). 
  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. ^ Arduino Software Release Notes. Arduino Project. [December 7, 2018]. (原始内容存档于2020-02-02). 
  14. ^ Using AVR Studio for Arduino development. Engblaze.com. [2013-01-18]. (原始内容存档于2012-08-28). 
  15. ^ Arduino Software Release Notes. Arduino Project. [May 31, 2013]. (原始内容存档于2020-02-02). 
  16. ^ 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.

外部链接