網上有數百個可在Aruduino中使用的庫,這些程式碼集使得我們無需從0-1地搭建我們所需功能,這使得學習和使用Arduino變得更加方便簡單。除此之外,平時直接從網上download下的程式碼也很有可能因為相應包沒下載而報錯。本篇以eFLL(embedded fuzzy logic library)為例,帶大家手把手地進行庫的下載和使用,並針對相關庫的一些注意事項進行了簡單說明。

一、庫檔案的簡單介紹

1. 如何下載庫檔案?(以eFLL為例)

2. 如何安裝/匯入庫(eFLL)檔案?

二、Arduino中管理庫檔案的三個位置

1. Arduino IDE安裝時的資料夾

2. Arduino的核資料夾

3. 專案資料夾

4. 這三個位置的差異

一、庫檔案的簡單介紹

一般情況下,庫以.ZIP的檔案封裝,解壓.ZIP檔案後,裡面有各種相關的示例,測試檔案以及底層程式碼可供深入瞭解和學習。eFLL是Arduino平臺提供的用於嵌入式系統(比如Arduino或NodeMCU)中實現模糊系統的標準庫,並且跟所有的Arduino板適配。下圖是eFLL的庫檔案,可以看到examples和tests資料夾和一些二其它檔案,尤其是examples裡的檔案,對剛接觸到某個新庫的同學們是來說真的是非常非常有用的。

需要注意的是,這些庫並非是一成不變的,而是逐步迭代的,所以存在一個庫有多個版本存在的情況,比如這個eFLL目前就有五個版本,分別為1.3.1(最新),1.3.0,1.2.0,1.1.1和1.1.0。

1. 如何下載庫檔案?(以eFLL為例)

(1)eFLL的.zip檔案(1.3.11.3.01.2.01.1.11.1.0),點選下載對應版本

(2)在特定專案在GitHub的官方頁(https://github.com/zerokol/eFLL)中直接下載.ZIP檔案。

(3)bd雲盤方式:

連結:https://pan.baidu.com/s/1YQfpoF-0C6e5n1DpA6BSeg
提取碼:shd9

2. 如何安裝/匯入庫(eFLL)檔案?

(1)使用庫管理器(library mananager) (這種方法無需用到下載的.ZIP檔案)

a 專案-載入庫-管理庫; b 在彈出來的“庫管理器”中搜索“eFLL”,找到你需要的版本(沒有限制就選擇最新的)並點選“安裝”即可。

(2)新增.ZIP檔案

在Arduino IDE中單擊專案-載入庫-新增.ZIP庫,選擇下載好的庫檔案即可

(3)手動安裝庫(瞭解即可,用的比較多的還是前兩種方法)

在Arduino IDE中開啟檔案-首選項,檢視專案資料夾(sketchbook)位置,在這個資料夾中有個libraries資料夾,把.ZIP解壓縮後的所有檔案(為了安全起見,請把資料夾的名稱改成eFLL),放到這裡即可。

操作完成後重啟Arduino IDE,點選專案(sketch)-載入庫(include library),檢視是否顯示你剛剛新增的庫。

二、Arduino中管理庫檔案的三個位置

在這裡需要說明一下這個庫放置的位置。在Arduino中,庫可以有三種方式存放,也就是有位於3個不同位置存放有libraries資料夾:(1)Arduino IDE安裝的資料夾(2)Arduino的核資料夾(3)專案資料夾。以上三種安裝庫的方式中,除了最後一種庫匯入方式使得庫的位置具有選擇性,前兩種的庫的位置可在專案資料夾中libraries中找到。

1. Arduino IDE安裝的資料夾(也叫distribution folder,分發資料夾)

這個資料夾就是你在安裝Arduino過程中的目標資料夾。下載完畢後,開啟相應資料夾可看見libraries資料夾。

(插一個小疑惑:一開始我怎麼都找不到Arduino IDE安裝的資料夾,我就開始搜尋關鍵詞,搜尋邏輯是既然arduino IDE可以在我的電腦上執行,那必定是存在一個.exe檔案;既然我的IDE裡的examples裡的內建示例都可以檢視,那電腦中也應該存在以對應.ino命名的檔案,使用了“arduino.exe”,“examples”等很多關鍵詞搜尋,但都一無所獲,也沒法找到軟體的屬性。後來我發現我的IDE上有“Windows Store字樣”,這才想起來這可能是我當時直接從微軟商店裡下載的。

我從官網上又下載了arduino的可執行檔案並安裝,發現我想要的東西就都有了,並且這兩個IDE可以同時執行。

但我還是疑惑微軟商店裡下載的為什麼就找不到安裝位置。如果知道的朋友們可以解答一下,那真的太感激不過了~~)

2. Arduino的核資料夾(core folder):

這個核(core)說白了就是讓你的板子和微處理器及相關專案和庫適配,想用不同的板子你就得有對應的的核。從Arduino Software (IDE) version 1.6.2開始,所有Arduino AVR板都儲存在“Arduino”安裝資料夾中(Windows預設為C:\Program Files (x86)\Arduino\hardware\arduino\ AVR)。

然而,其它的板子需要安裝一個額外對應的核,並存儲在電腦的一個其它的資料夾。一般通過在Arduino IDE中的“開發板管理器”新增對應板子的核,這也是檢查和更新已安裝核心版本的最佳方式。下面這個目錄列表是新的核心檔案在計算機中的位置

On GNU/Linux: ~/.arduino15/packages/

On Windows: %APPDATA%\Arduino15\packages\

On macOS: ~/Library/Arduino15/packages/

在Windows上,如果你在Arduino主資料夾中建立一個名為“portable”的資料夾,所有的包、庫和草圖都會儲存在這兒,這樣就可以把所有東西都放在一個地方,方便移動或同步。

下圖是我的電腦所安裝的位置,可以看出我額外為這三個板子下載了相關檔案。

開啟ESP8266的檔案來看看庫在哪裡~

3. 專案資料夾中的libraries資料夾

4. 這三個位置的差異

通常來說,不管你專案需要的庫在哪個位置,都可以正常執行,但這三個位置還是有一些不同特性:

(1)專案資料夾 vs 分發資料夾; 專案資料夾 vs 核資料夾:在專案的編譯期間,如果你需要的庫在分發資料夾(Aruduino安裝時資料夾)裡,同時你專案資料夾中的“libraries”資料夾中放置了同樣的庫,無論版本高低都會使用專案資料夾中的庫檔案。同理適用於核資料夾和專案資料夾的庫,專案資料夾的庫也會覆蓋。

(2)核資料夾 vs IDE分發資料夾中的庫  當的的板選擇一個特定的核心時,將使用核資料夾中出現的庫,而不是IDE分發資料夾中出現的相同庫。

(3)建議庫只安裝於專案資料夾(第3種方式)中,因為Arduino IDE在自動升級過程中,Arduino(或安裝IDE的資料夾)中的所有檔案被刪除,並建立一個新的資料夾與新內容。如果你的庫都在專案資料夾中,它與IDE資料夾不在一個位置,這樣它們就不會在Arduino IDE更新過程中被刪除啦

就是這些啦!有什麼問題可以在評論區留言哦~~ 希望這些總結的知識可以給你們帶來哪怕一些些的幫助啦,方便的話可以要求一個贊鼓勵一下嘛,hhh

參考文章:

https://support.arduino.cc/hc/en-us/articles/360012076960-Where-are-the-installed-cores-located-

https://www.arduino.cc/en/guide/cores

https://www.arduino.cc/en/Guide/Libraries