Arduino程式語言

學資訊技術(IT)有個麻煩,相同的東西常因不同的開發者而有不同的命名,即便本質是一樣的東西,舉例而言,Windows作業系統上有所謂的捷徑(shortcut),但在Mac OS X上卻叫替身、化身(alias),在已經作古的作業系統OS/2上叫投影(shadow),但其實三者是相同的。

類似的,只是幫一個程式換個外觀,有的稱為佈景主題theme,有的稱皮膚skin,有的稱範本template,不一定。或者,搭配主程式運作的小程式,有的稱add-on、有的稱plug-in(外掛程式,大陸叫插件)、有的稱extension。

還有,Java把小的應用程式稱為applet,什麼小東西都常被叫let,大的應用程式才叫application,但是現在手機上的應用程式也被人簡稱為app,但意思也有點近似applet。資訊技術如此,電子工程也類似,同樣是I2C介面的時脈接腳,有的晶片公司稱SCL,有的稱CLK,但意思都是Serial Clock的意思。

Arduino程式語言
Arduino程式語言

Arduino的延伸板稱為Shield。

回歸正題,Arduino其實是針對從沒電路設計、程式撰寫經驗的人所發展的,不僅把許多技術細節隱藏,還換替了許多名詞,讓學習更親和點,例如介面卡不會稱interface card或adapter(轉接器、配接器、適配器),在Arduino裡頭叫shield(盾)。

還有,用Processing IDE開發撰寫出來的Arduino應用程式不叫application,叫sketch(素描)。或者,編譯compile不說編譯,在Arduino說是verify(確認),但其實動作上依然是編譯,完成編譯後的顯示訊息是「Done compiling.」。

另外,Arduino Uno之類的系統電路板不適合直接插在麵包板上使用,針對麵包板運用而重新設計外型的Arduino系統電路板,則稱為breakout,如breakout board、breakout kit等。

當然,也不是所有的詞都使用新的一套、獨有的一套,例如IDE、ISP(In-System Programming,或稱ICSP=In-Circuit Serial Programming)也是過去其他電子工程、資訊技術人員所熟悉的術語。或許該建立起一個對應表,透過對應表,原本學過其他開發技能的人,也能很快熟悉、掌握Arduino的脈絡。

  • About
  • Latest Posts

Arduino程式語言
Arduino程式語言

陸向陽

從電子科系畢業後,即以媒體人的角色繼續這段與「電子科技」的不解之緣。歷任電子技術專書作者、電子媒體記者、分析師等角色,並持續寫作不殆。近來投入Arduino、Raspberry Pi等開放硬體的研究與教程介紹。

See the libraries page for interfacing with particular types of hardware. Try the list of community-contributed code. The Arduino language is based on C/C++. It links against AVR Libc and allows the use of any of its functions; see its user manualfor details.

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

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

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

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

官方硬體[编辑]

  • Arduino硬體範例
  • Arduino Diecimila in Stoicheia

  • Arduino Duemilanove (rev 2009b)

  • Arduino MEGA 2560 R3(正面)[a]

  • Arduino MEGA 2560 R3(背面)[a]

  • LilyPad Arduino (rev 2007)

Shields[编辑]

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

  • Arduino shields擴充版範例
  • 多重的Shield可以被堆疊起來。在這張圖裡,最上層的Shield擴充版上含有麵包板。

  • Adafruit馬達Shield擴充版和用於連接馬達的螺絲端子Shield擴充版。

  • 內建一個SD卡插槽,以及實時時鐘晶片的Adafruit數據記錄Shield。

  • HackARobot結構Shield,專為了Arduino Nano硬體設計以推動馬達和感測器如:陀螺儀和GPS,以及其他的擴充版如:Wifi、藍芽、無線射頻等。

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

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

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

IDE[编辑]

Sketch[编辑]

使用Arduino Software IDE編寫的程式被稱為「sketch」[18]。一個典型的 Arduino C/C++ sketch 程式會包含兩個函式,它們會在編譯後合成為 main() 函式:

arduino 用 什麼程式 語言?

Arduino Software IDE.

arduino 算什麼語言?

Arduino 的程式語法基於C/C++, 其實就是客製化的C/C++ 語言, 其程式架構仿自廣為藝術與設計界人士熟悉的 Processing 語言, 而其開發工具Arduino IDE 則是衍生自以Processing 為基礎的電子開發設計平台 Wiring.

arduino 是c++嗎?

Arduino使用C/C++编写程序,虽然C++兼容C语言,但这两种语言,C语言一种面向过程的编程语言,C++是一种面向对象的编程语言。 目前最新的Arduino核心库采用CC++混合编写而成。 基本结构: Arduino程序基本结构由setup() 和loop() 两个函数组成: (1) void se....

arduino 用什麼寫?

什麼軟體寫Arduino的程式呢? 選擇其實不少,傑森建議初學者先官方的Arduino IDE,它是一套跨平台應用軟體,不管是Windows或Mac,甚至是Linux也能使用,是大多數Arduino開發者所選用的整合開發環境,大家可以到Arduino官方網站免費下載。