關於使用Arduino作開發的理解

轉載自arduino中文社區 https://www.arduino.cn/thread-5414-1-1.htmlphp

見到不少人對Arduino的開發方法 、應用場景有誤解,特別開個帖子說明下。html

 

誤解一:Arduino性能很低,不如樹莓派等開發板,因此不要用arduino作開發
殺雞焉用牛刀,中科院不會用銀河來玩魔獸,你也不會想用計算器來LOL,不一樣的平臺有不一樣的定位;
Arduino更多用在數據採集和控制上,簡單輕量。而樹莓派等帶OS開發板能夠實現更多的複雜功能,如圖形圖像處理;
聰明的開發者會選擇合適本身、合適項目的平臺,而非選擇性能最強大的平臺。

誤解二:Arduino程序效率很低,因此不要用arduino作開發
Arduino核心庫是對AVRGCC的二次封裝,確實會下降一些運行效率,可是這又有什麼關係呢?你的程序真是對實時性要求很高麼?至少我在論壇或者國內沒有看到多少對效率極爲苛求的項目;
Arduino與傳統的單片機開發的關係,相似於各類語言和其配套的SDK,一個正常的程序一定是選擇一個合適語言+相應的SDK快速的作出開發,選擇Arduino作開發也是如此。
固然,你能夠選擇使用傳統方式,甚至是彙編開發單片機,把效率作到極致,但你一定會付出更大的學習成本,程序後期的修改也會變得舉步維艱;
若是你的項目真是須要很高的實時性,那我建議你使用arduino+avrgcc,甚至arduino+彙編的混編方式開發,若是這樣還達不到你的要求,你還可使用Arduino Due、Arduino Zero、chipkit、maple等32位的arduino的開發平臺。

誤解三:Arduino只能開發玩具,不能作產品
能不能開發產品和arduino自己無關,只與你自身能力有關。屢次封裝後可靠性是否會下降?沒有數據或案例代表arduino庫的封裝致使可靠性下降,更多時候,可靠性主要依靠編程能力、電路設計能力和編譯器的性能。不過能夠確定的一點是,精心維護了數年的代碼理論上會比本身花幾天寫的代碼更可靠 。
國內外不少公司都在使用Arduino開發產品,也有很多成功的商業產品(我知道確定有人要來和我較真什麼叫「成功」了),所謂的不能開發產品,只能當玩具一說,徹底是無稽之談。若是你真是從事硬件開發的人員,你會發現如今各大IC廠商都推出了本身的類庫或sdk,其本質和Arduino類庫是同樣的,這也是硬件行業的趨勢。這和你們寫軟件用別人的sdk是一個性質。
我我的也一直不太明白有人說arduino不能開發產品的邏輯何在,就不能把它看成avr+sdk麼?若是你的理由是成本,那看下一條。

誤解四:Arduino開發板成本過高,不適合作產品
我介紹Arduino時,都會告訴別人Arduino是一個開發平臺。
我所說的用Arduino作開發,指的是使用arduino核心庫作開發。開發產品也並非非得集成個Arduino開發板,一個核心的控制芯片足以。
至於芯片多少錢,開發者們本身去查吧。若是你對產品體積沒要求,且產量很小,也徹底能夠直接使用Arduino控制器。
在小批量的狀況下,使用arduino開發能夠大大的下降你的開發成本,這個就沒啥好說的了。若是你的項目產量超級大~你固然應該選用更便宜的芯片開發,1塊錢的stc,5毛錢的HT都是能夠的。


總結一下:
Arduino的優點在於社區的強大和衆多類庫資源,其資源和影響力已經讓github都加上了Arduino語言分類。

有個冷笑話:若是在任一程序QQ羣說「php是最好的web語言」,一定會激起一番論戰。
若是討論衆多硬件開發平臺熟好熟壞,就會陷入這種無心義的邏輯中,因此請注意,我沒有說過Arduino是最好的開發平臺,我只是但願你們知道選擇一個適合的本身,適合項目的開發平臺,纔是最重要的。
如下是我列舉的一些狀況,我的經驗,可能不正確,歡迎你們討論。

哪些狀況Arduino可能適合你:
你歷來沒接觸過硬件開發;
你想快速的開發,下降開發陳本;
你的項目將來產量不大,或者就不會量產(這個須要你本身測算開發成本和生產成本的關係);

哪些狀況Arduino可能不適合你:
若是你對處理能力,系統實時性有較高要求,那Arduino不適合你;
若是你的項目將來產量巨大,那Arduino也不適合你(這個須要你本身測算開發成本和生產成本的關係);
對其餘一種單片機或者硬件開發平臺開發極其熟悉;
你項目會使用的到的類庫在其餘平臺也有,且其餘平臺硬件成本、開發成本也很低;


爲何使用Arduino作開發——如下摘自《Arduino程序設計基礎》,引用轉發都請註明出處
1.3        爲何使用Arduino作開發平臺
用Arduino製做做品或者進行產品開發的優點是很明顯的。
        跨平臺
Arduino IDE能夠在Windows、Macintosh OSX、Linux三大主流操做系統上運行,而其餘的大多數控制器只能在Windows上開發。
        簡單清晰的開發
Arduino IDE基於processing IDE開發。對於初學者來講,極易掌握,同時有着足夠的靈活性。Arduino語言基於wiring語言開發,是對 AVRGCC庫的二次封裝,不須要太多的單片機基礎、編程基礎,簡單學習後,你也能夠快速的進行開發。
        開放性
Arduino的硬件原理圖、電路圖、IDE軟件及核心庫文件都是開源的,在開源協議範圍內裏能夠任意修改原始設計及相應代碼。
        社區與第三方支持
Arduino有着衆多的開發者和用戶,你能夠找到他們提供的衆多開源的示例代碼、硬件設計。例如,能夠在Github.com、Arduino.cc、Openjumper.com等網站找到Arduino第三方硬件、外設、類庫等支持,更快更簡單的擴展你的Arduino項目。
        硬件開發的趨勢
Arduino不只僅是全球最流行的開源硬件,也是一個優秀的硬件開發平臺,更是硬件開發的趨勢。Arduino簡單的開發方式使得開發者更關注創意與實現,更快的完成本身的項目開發,大大節約了學習的成本,縮短了開發的週期。

由於Arduino的種種優點,愈來愈多的專業硬件開發者已經或開始使用Arduino來開發他們的項目、產品;愈來愈多的軟件開發者使用Arduino進入硬件、物聯網等開發領域;大學裏,自動化、軟件,甚至藝術專業,也紛紛開展了Arduino相關課程。git

相關文章
相關標籤/搜索