DesignSpark Electrical Logolinkedin
  • Brought to you by
  • RS Components
  • Allied Electronics

February 8, 2017 09:11

Follow

兼容Arduino的Adafruit Adalogger (繁體)

本文章翻譯自 : https://www.rs-online.com/designspark/adafruits-awesome-arduino-compatible-adalogger

用於低成本數據記錄的ARM Cortex-M0

Adafruit Feather  是一系列兼容Arduino及設計為輕巧而有靈活性的開發板。它們都有相同的大小當中包括LED矩陣顯示屏,Wi-Fi和LoRa模組等。關於Adafruit Feather的介紹可以在Adafruit網站上找到。

在這篇文章,我們會了解一下  Adalogger   ,一個整合了USB,microSD卡插座和支持LiPo電池充電的數據記錄器!在連接到Adafruit的accelerometer board和載入一些數據前,我們會先把它在Arduino IDE上運行。

Feather 板上

注意Adalogger有兩個版本:一個是使用ATSAMD21G18 ARM Cortex-M0微控制器,另一個是使用ATmega32u4。在這篇文章,我們將使用Cortex-M0版本。

在連接任何額外的外設之前,先使用Arduino IDE,這樣我們可以測試一些演示代碼(在Arduino中稱為“sketch”)。

啟動最新版本的IDE(編寫本文時為1.6.13),我們需要在添加一個URL到”Additional Boards Manager”,然後才能連接到板。在”Preferences”菜單中,找到”Additional Boards Manager”選項,並添加以下URL:

 

https://adafruit.github.io/arduino-board-index/package_adafruit_index.json

點擊“OK”保存。接下來到Tools菜單,然後選Board > Boards Manager。首先,向下滾動到Arduino選項中的Arduino SAMD板(32位ARM Cortex-M0 +),並安裝最新版本(編寫時為1.6.9)。在Boards Manager中,到Adafruit選項中選擇Adafruit SAMD Boards ,並安裝最新版本(編寫時為1.0.13)。在這之後,最好退出並重新啟動Arduino IDE儘管不是絕對必要。如果您正在運行Windows,您需要從Adafruit下載並安裝其他驅動程序,確保您在安裝過程中選擇“Feather M0”。

現在我們可以使用micro USB線連接Adalogger到我們的電腦。電路板自動切換到USB供電,因此無需輕觸開關或將跳線設置到正確的引腳。計算機將識別設備並創建COM端口。

在Tools> Ports的下拉菜單應顯示Adafruit Feather M0被分配了一個COM端口。點選它,您就可以將示例sketch上傳到開發板了。在Files > Examples > Basics > 中點選Blink,這是開始的最好地方。

打開sketch並嘗試將其上傳到電路板。如果上述步驟成功完成並且一切正常,您應該看到板上的紅色LED在閃爍。

將數據記錄到SD

現在我們可以上傳sketch到Adalogger,嘗試寫一些數據到SD卡。首先使用FAT文件系統格式化SD卡,我使用這裡找到的格式化工具。

我們將使用Arduino IDE內的sketch示例來嘗試讀取卡的信息(並且是一個很好的基本測試)。在File> Examples> SD> CardInfo。將sketch上傳到Adalogger,然後打開串行控制台(單擊IDE右上角的“放大鏡”圖標)。您應該看到類似以下的屏幕截圖:

現在我們可以嘗試寫一些數據到卡。再次,在IDE中有一個sketch示例來做,但是  GitHub上有一個更簡單方法可用在Adafruit的。我取這個代碼,並修改它來讀取和記錄連接到Adalogger的LiPo電池電壓。這個功能是內置的,這意味著我們不必擔心我們自己的佈線錯誤-只是代碼能否運行。

Sketch示例可以在這裡找到。

我們可以看到電壓被讀取並顯示到串行控制台中。為了檢查數據是否正在寫入文件,我關閉了Adalogger,移除SD卡並將其放入電腦,並打開txt文件。有幾個txt文件,但每個是空白的,原來沒有任何數據記錄!

再仔細閱讀Adafruit的文檔  ,顯示實際上數據存儲在緩衝區buffer中,並且只會每50個數據點才寫入文件。也許我沒有在測試期間運行足夠長時間作記錄至數據保存!所以我做了一個幾分鐘長的測試,然後再次檢查。我還沒有數據,所以為了強制每個數據點也保存下來,我添加了一行代碼:

logfile.flush();

這解決了這個問題,雖然Adafruit文檔提到這將導致Adalogger使用多大約3倍的電,所以這不是理想的低功耗應用。

記錄更有趣的數據

Adafruit系列包括許多可以安裝在小巧方便分線板的傳感器和輸入設備,使創客更容易進行原型開發,尤其是使用在Raspberry Pi和Arduino等平台。

我們現在將連接這樣的模塊,一個3軸加速度計板,通過I2C與Adalogger通信,並開始記錄我們獲得的值。很簡單就可以連接兩個板:在焊接提供的插頭引腳後,我們使用了四條母對母跳線,連接Vcc,GND,SCL和SDA。

接下來,我設計了一塊簡單的安裝板並用激光切割出來,將板和電池固定在一起。這有助於保持整潔,並提供額外的保護,防止台上的雜散線或金屬物體接觸板下側的針腳。

與所有Adafruit產品一樣,加速度計板附帶了參考文檔和源碼幫助您設計開發。我需要在Adafruit GitHub下載並安裝兩個庫:在這裡 和這裡,然後嘗試從傳感器中獲取一些數據。

值得注意的是這些庫對於模塊的價值和重要性。沒有它們,使用這些傳感器會更困難,尤其是對於那些正在學習或沒有電子設計經驗的人。即使我們有模塊,但沒有庫的話,我們則需要把從傳感器得到的數字作進一步的計算,以獲得更有用或敏感的數據。Adafruit努力構建他們的庫,使他們的代碼提供SI單位的數據,代表我們可以專注於項目上!

有關如何安裝庫的更多信息,請參見 此處

在安裝好這些庫和重新啟動IDE後(再次,確保庫正確安裝的好習慣),我上傳示例sketch(在File> Examples> Adafruit MMA8451 Library> MMA8451 demo)到Adalogger測試一切是否正常。

然後,我簡單地整理加速度示例sketch的一部分到我們現有的數據記錄sketch,很快就有數據從加速度計記錄到SD卡。

最後的代碼在  這裡

總結

Adafruit的Arduino兼容板系列不斷擴大並令人印象深刻,它的模塊和分線板的系列也很廣。雖然它們是針對自造者和教育市場,但它們對任何想要快速製作原型和構建有趣項目的人都很有用。

公開設計(Adafruit公開其大部分產品的電路板佈局和原理圖),配合文檔和軟體,為用戶帶來了無與倫比的體驗,而活躍的在線社區則填補了空白。Adafruit有大量的產品,世界各地的人都會使用,讓自造者和電子項目的開發變得更容易。

Alex_CH has not written a bio yet…

February 8, 2017 09:11

Follow