關於使用Arduino做開發的理解


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

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

 

誤解一: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相關課程。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM