OpenLog連線指南
介紹
小心!本教學適用於串列 UART 的 Open Log [ DEV-13712 ]。如果您正在使用 Qwiic OpenLog for IC [ DEV-15164 ],請參閱 Qwiic OpenLog 連線指南。
OpenLog 資料記錄器是一個易於使用的開源解決方案,用於記錄專案中的序列資料。 OpenLog 提供了一個簡單的串行接口,用於將專案資料記錄到 microSD 卡。
SparkFun OpenLog
• DEV-13712
帶標題的SparkFun OpenLog
• DEV-13955
未找到產品
所需材料
為了完整完成本教程,您將需要以下部分。但根據您所擁有的東西,您可能並不需要所有東西。將其添加到您的購物車,閱讀指南,並根據需要調整購物車。
OpenLog 連線指南 SparkFun 願望清單
![]() |
Arduino Pro Mini 328 – 3.3V/8MHz DEV-11114 它是藍色的!它很薄!這是Arduino Pro Mini! SparkFun對Arduino的極簡設計方法。這是一個3.3V的Arduino… |
| SparkFun FTDI 基本分線盒 – 3.3V DEV-09873 這是我們的[FTDI Basic](http://www.sparkfun.com/commerce/product_info.php?products_id=… |
|
![]() |
SparkFun Cerberus USB 線 – 6 英尺 CAB-12016 你用錯了 USB 線。不管你用的是哪根,反正都是錯的。但如果你能… |
| SparkFun OpenLog DEV-13712 SparkFun OpenLog 是一個開源資料記錄器,它透過簡單的串行連接工作並支援 mi… |
|
![]() |
附轉接器的 microSD 卡 – 16GB(Class 10) COM-13833 這是一款 10 級 16GB microSD 記憶卡,非常適合容納單板電腦的作業系統… |
| microSD USB 讀卡機 COM-13004 這是一個很棒的小型microSD USB讀卡機。只要將microSD卡插入USB介面內部,即可… |
|
| 母頭 PRT-00115 單排 40 孔母座。可用鋼絲鉗剪裁至所需尺寸。標準間距 1 英吋。我們使用… |
|
![]() |
跳線優質 6 吋 M/M 10 件裝 PRT-08431 這是SparkFun獨家產品!這些是155毫米長的跳線,兩端都有公接頭。用它們來… |
| 分離式公頭 – 直角 PRT-00553 一排直角公頭 - 可斷開以適應。 40 個引腳,可切割成任意尺寸。適用於客製化 PCB 或 gen… |
推薦閱讀
如果您不熟悉或不熟悉以下概念,我們建議您在繼續閱讀 OpenLog 連線指南之前先通讀這些內容。
如何焊接:通孔焊接
本教程涵蓋了有關通孔焊接的所有知識。
序列週邊介面 (SPI)
SPI 通常用於將微控制器連接到感測器、移位暫存器和 SD 卡等週邊設備。
序列通訊
非同步串行通訊概念:資料包、訊號電平、波特率、UART 等等!
串行終端基礎知識
本教學將向您展示如何使用各種終端模擬器應用程式與串行設備通訊。
硬體結束view
力量
OpenLog 在以下設定下運作:
OpenLog 功率等級
| VCC輸入 | 3.3V-12V(建議3.3V-5V) |
| RXI輸入 | 2.0V-3.8V |
| TXO輸出 | 3.3V |
| 空閒電流消耗 | ~2mA-5mA(無 microSD 卡),~5mA-6mA(有 microSD 卡) |
| 主動寫入電流消耗 | ~20-23mA(附 microSD 卡) |
OpenLog 在寫入 microSD 卡時,電流消耗約為 20mA 至 23mA。根據 microSD 卡的容量和製造商的不同,OpenLog 在寫入記憶卡時的實際電流消耗可能會有所不同。asin波特率越高,電流消耗也越大。
微控制器
OpenLog 由板載 ATmega328 運行,由於板載晶振,運行頻率為 16MHz。 ATmega328 已載入 Optiboot 引導程序,這使得 OpenLog 與 Arduino IDE 中的「Arduino Uno」板設定相容。
介面
序列串口
OpenLog 的主要介面是板邊緣的 FTDI 接頭。此接頭設計用於直接插入 Arduino Pro 或 Pro Mini,從而允許微控制器透過串行連接將資料傳送到 OpenLog。
警告! 由於引腳順序使其與 Arduinos 相容,因此它不能直接插入 FTDI 分線板。
欲了解更多信息,請務必查看硬體連接的下一部分。
SPI
電路板的另一端還有四個 SPI 測試點。您可以使用它們來重新編程 ATmega328 上的引導程式。
最新的 OpenLog(DEV-13712)將這些引腳分解到較小的鍍通孔上。如果您需要使用 ISP 重新編程或將新的引導程式上傳到 OpenLog,則可以使用 pogo 針連接到這些測試點。
與 OpenLog 通訊的最終介面是 microSD 卡本身。為了進行通信,microSD 卡需要 SPI 引腳。這不僅是 OpenLog 儲存資料的地方,您還可以透過 config.txt 更新 OpenLog 的配置 file 在 microSD 卡上。
microSD卡
OpenLog 記錄的所有資料都儲存在 microSD 卡上。 OpenLog 可與具有以下功能的 microSD 卡搭配使用:
- 64MB至32GB
- FAT16 或 FAT32

LED狀態
OpenLog 上有兩個狀態 LED 可協助您進行故障排除。
- STAT1 – 此藍色指示燈 LED 連接到 Arduino D5(ATmega328 PD5),並在收到新字元時開啟/關閉。當串行通訊正常運作時,此 LED 會閃爍。
- STAT2 – 此綠色 LED 連接到 Arduino D13(SPI 序列時鐘線/ATmega328 PB5)。只有當 SPI 介面處於活動狀態時,此 LED 才會閃爍。當 OpenLog 將 512 位元組記錄到 microSD 卡時,您會看到它閃爍。

硬體連接
將 OpenLog 連接到電路主要有兩種方法。您將需要一些接頭或電線來連接。確保將其焊接到電路板上以確保連接牢固。
基本序列連接
提示: 如果您有母頭,OpenLog 和 FTDI 上的母頭將需要 M/F 跳線來連接。
如果您需要重新編程電路板或透過基本串列連接記錄數據,則此硬體連接專為與 OpenLog 介面而設計。
進行以下連接:
OpenLog→3.3V FTDI基本分接
- 接地 → 接地
- 接地 → 接地
- VCC → 3.3V
- TXO → RXI
- RXI → TXO
- DTR → DTR
請注意,它不是 FTDI 和 OpenLog 之間的直接連接——您必須切換 TXO 和 RXI 引腳連接。
您的連接應如下所示:
一旦建立了 OpenLog 和 FTDI Basic 之間的連接,就將 FTDI 板插入 USB 電纜並插入電腦。
打開串行終端,連接到 FTDI Basic 的 COM 端口,然後開始!
專案硬體連接
提示: 如果您已在 OpenLog 上焊接了母接頭,則可以將公接頭焊接到 Arduino Pro Mini 上,以便將電路板插在一起,而無需使用電線。
雖然透過串行連接與 OpenLog 互動對於重新編程或調試很重要,但 OpenLog 的亮點在於嵌入式專案。我們建議您透過這個通用電路將 OpenLog 連接到微控制器(在本例中為 Arduino Pro Mini),以便將串列資料寫入 OpenLog。
首先,你需要將程式碼上傳到你打算執行的 Pro Mini。請查看 Arduino Sketches 中的一些範例amp您可以使用的程式碼。
筆記: 如果您不確定如何對 Pro Mini 進行編程,請查看此處的教學。
使用 Arduino Pro Mini 3.3V
本教學將引導您了解 Arduino Pro Mini 的所有內容。它解釋了它是什麼、它不是什麼以及如何開始使用它。
對 Pro Mini 進行程式設計後,您可以移除 FTDI 板,並將其替換為 OpenLog。
確保連接 Pro Mini 和 OpenLog 上標有 BLK 的引腳(如果操作正確,兩者上標有 GRN 的引腳也會匹配)。
如果您無法將 OpenLog 直接插入 Pro Mini(由於接頭不匹配或其他板擋住了路),您可以使用跳線並進行以下連接。
OpenLog → Arduino Pro/Arduino Pro Mini
- 接地 → 接地
- 接地 → 接地
- VCC → VCC
- TXO → RXI
- RXI → TXO
- DTR → DTR
完成後,Arduino Pro Mini 和 Arduino Pro 之間的連接應如下所示。
Fritzing 圖表顯示了 OpenLogs 的介面鏡像。如果你將 microSD 插槽相對於 Arduino 的頂部翻轉 view,它們應該與 FTDI 之類的程式設計頭相符。
筆記 連接是直線的,OpenLog「倒置」(microSD 朝上)。
⚡注意: 由於 OpenLog 和 Arduino 之間的 Vcc 和 GND 被接頭佔用,因此您需要將電源連接到 Arduino 上可用的其他引腳。否則,您可以將電線焊接到任一板上裸露的電源插針上。
啟動您的系統,您就可以開始記錄了!
Arduino草圖
有六種不同的情況amp包含草圖,當連接到 OpenLog 時您可以在 Arduino 上使用這些草圖。
- OpenLog_Benchmarking — 此範例ample 用來測試 OpenLog。這將以 115200bps 的速度通過多個 files.
- OpenLog_CommandTest — 此範例ample 展示如何建立和附加 file 透過 Arduino 的命令列控制。
- OpenLog_ReadExample — 這個前任ample 介紹如何透過命令列控制 OpenLog。
- OpenLog_ReadExamp大File - 前任amp如何開啟大型存儲 file 在 OpenLog 上並透過本機藍牙連線報告。
- OpenLog_Test_Sketch — 用於使用大量串列資料測試 OpenLog。
- OpenLog_Test_Sketch_Binary — 用於使用二進位資料和轉義字元測試 OpenLog。
韌體
OpenLog 板上有兩個主要軟體:引導程式和韌體。
Arduino 引導程式
筆記: 如果您使用的是 2012 年 5 月之前購買的 OpenLog,則板載引導程式與 Arduino IDE 中的「Arduino Pro 或 Pro Mini 16V/328MHz w/ ATmegaXNUMX」設定相容。
如前所述,OpenLog 板上有 Optiboot 串列引導程式。上傳 ex 時,你可以像對待 Arduino Uno 一樣對待 OpenLogamp代碼或新韌體到主機板。
如果您最終弄壞了 OpenLog 並需要重新安裝引導程序,您還需要將 Optiboot 上傳到主機板上。請查看我們關於安裝 Arduino Bootloader 的教學課程以獲取更多資訊。
編譯韌體並將其載入到OpenLog上
筆記: 如果這是您第一次使用 Arduino,請重新view 我們關於安裝 Arduino IDE 的教學。如果您之前沒有安裝 Arduino 庫,請查看我們的安裝指南以手動安裝庫。
如果您因為任何原因需要更新或重新安裝 OpenLog 上的韌體,則下列程序將使您的主機板啟動並運行。
首先,請下載 Arduino IDE v1.6.5。其他版本的 IDE 可能可以編譯 OpenLog 韌體,但我們已驗證這是一個已知的良好版本。
接下來,下載 OpenLog 韌體和所需的庫包。
下載 OPENLOG 韌體包 (ZIP)
下載庫和韌體後,將庫安裝到 Arduino 中。如果您不確定如何在 IDE 中手動安裝庫,請查看我們的教學:安裝 Arduino 庫:手動安裝庫。
筆記: 我們使用修改後的 SdFat 和 SerialPort 函式庫,以便任意宣告 TX 和 RX 緩衝區的大小。 OpenLog 要求 TX 緩衝區非常小(0),而 RX 緩衝區則需要盡可能大。將這兩個修改後的庫結合使用可以提高 OpenLog 的效能。
正在尋找最新版本?如果您想要最新版本的庫和韌體,可以直接從下方連結的 GitHub 程式碼庫下載。 SdFatLib 和串列埠在 Arduino 開發板管理器中不可見,因此您需要手動安裝。
- GitHub:OpenLog > 韌體 > OpenLog_Firmware
- Bill Greiman 的 Arduino 庫
SdFatLib-beta
序列埠
接下來,為了取得進展tag修改庫中的 SerialPort.h file 在 \Arduino\Libraries\SerialPort 目錄中找到。將 BUFFERED_TX 變更為 0 ,將 ENABLE_RX_ERROR_CHECKING 變更為 0 。儲存 file,然後開啟 Arduino IDE。
如果您還沒有,請透過 FTDI 板將您的 OpenLog 連接到電腦。請仔細檢查amp如果您不確定如何正確執行此操作,請參閱電路。
在“工具”>“板”選單下開啟您想要上傳的 OpenLog 草圖,選擇“Arduino/Genuino Uno”,然後在“工具”>“連接埠”下為您的 FTDI 板選擇正確的 COM 連接埠。
上傳代碼。
就是這樣!您的OpenLog現在已使用新韌體進行程式設計。現在您可以開啟串行監視器並與OpenLog互動。通電後,您將看到 12> 或 12< 。 1 表示串列連線已建立,2 表示SD卡已成功初始化,< 表示OpenLog已準備好記錄任何接收到的串列數據,> 表示OpenLog已準備好接收指令。
OpenLog韌體草圖
您可以在 OpenLog 上使用三個包含的草圖,具體取決於您的特定應用程式。
- OpenLog – 此韌體預設安裝在 OpenLog 上。傳送 ? 指令將顯示裝置上載入的韌體版本。
- OpenLog_Light – 此版本的草圖刪除了選單和命令模式,從而允許增加接收緩衝區。對於高速記錄來說,這是一個不錯的選擇。
- OpenLog_Minimal – 必須在程式碼中設定波特率並上傳。建議有經驗的使用者使用此草圖,但它也是最高速度記錄的最佳選擇。
命令集
您可以透過串行終端與 OpenLog 互動。以下命令將幫助您讀取、寫入和刪除 files,以及更改OpenLog的設定。您需要處於命令模式才能使用以下設定。
當 OpenLog 處於命令模式時,STAT1 將為接收的每個字元開啟/關閉。 LED 將保持亮起直到接收到下一個字元。
File 操縱
- 新的 File – 建立新的 file 命名的 File 在目前目錄中。標準 8.3 file支援名稱。
對於前amp例如,「87654321.123」是可以接受的,而「987654321.123」則不可以。
• 前任ample: 新的 file1.txt - 附加 File – 將文字附加到 File.然後從 UART 讀取串行數據並將其添加到 file。它不會在串行終端上回顯。如果 File 呼叫此函數時不存在, file 將被創建。
• 前任ample:附加新的file.csv - 寫 File OFFSET – 將文字寫入 File 從位置 OFFSET 內 file文字從 UART 逐行讀取並回顯。若要退出此狀態,請傳送一行空白。
• 前任ample:寫入 logs.txt 516 - rm File – 刪除 File 從目前目錄。支援通配符。
• 前任ample: rm README.txt - 尺寸 File – 輸出大小 File 以位元組為單位。
• 前任ample: 大小 Log112.csv
• 輸出:11 - 讀 File + START+ LENGTH TYPE – 輸出內容 File 從 START 開始,一直到 LENGTH。
如果省略了 START,則整個 file 被報告。如果省略 LENGTH,則報告從起始點開始的所有內容。如果省略 TYPE,OpenLog 將預設以 ASCII 格式報告。輸出類型有三種:
• ASCII = 1
• 十六進位 = 2
• RAW = 3
您可以省略一些後續論點。檢查以下範例amp萊斯。
基本讀取+省略的標誌:
• 前任ample:讀取LOG00004.txt
• 輸出:加速度計 X=12 Y=215 Z=317
從開始 0 讀取,長度為 5:
• 前任ample:讀取LOG00004.txt 0 5
• 輸出:加速度
從位置 1 讀取長度為 5 的十六進位資料:
• 前任ample: 讀取 LOG00004.txt 1 5 2
• 輸出:63 63 65 6C - 從位置 0 開始讀取 RAW 中長度為 50 的資料:
- • 前任ample: 讀取 LOG00137.txt 0 50 3
- • 輸出:André– -þ 擴充字元測試
- 貓 File – 寫下 file 以十六進位形式傳送到串行監視器 viewing。這有時有助於看到 file 無需拔出 SD 卡即可正確錄製, view 這 file 在電腦上。
• 前任amp勒:cat LOG00004.txt
•輸出:00000000:41 63 65 6c 3a 20 31
目錄操作
- ls –列出目前目錄的所有內容。支援通配符。
• 前任ample: ls
• 輸出:\src - md 子目錄 – 在目前目錄中建立子目錄。
• 前任ample: md Example_Sketches - cd 子目錄 — 變更到子目錄。
• 前任amp例如:cd Hello_World - cd .. – 切換到目錄樹中的下一層目錄。注意,「cd」和「..」之間有一個空格。這能讓字串解析器辨識出 cd 指令。
• 前任amp樂: cd .. - rm 子目錄 – 刪除子目錄。該目錄必須為空,此命令才能起作用。
• 前任ample: rm temps - rm -rf 目錄 – 刪除目錄和任何 file包含在其中。
• 前任ample:rm -rf 庫
低級功能指令
- ? – 此指令將拉出 OpenLog 上可用指令的清單。
- disk – 顯示卡片製造商 ID、序號、製造日期和卡片尺寸。例如amp輸出為:
卡片類型:SD2
製造商 ID:3
OEM ID: SD
產品:SU01G
版本:8.0
序號:39723042
生產日期:1/2010
卡片大小:965120 KB - init – 重新初始化系統並重新開啟 SD 卡。如果 SD 卡停止回應,這將很有幫助。
- sync – 將緩衝區的目前內容同步到 SD 卡。如果緩衝區中的字元少於 512 個,並且希望將其記錄到 SD 卡上,則此命令非常有用。
- reset – 將 OpenLog 跳到位置 0,重新執行引導程序,然後啟動程式碼。如果您需要編輯配置,此命令很有用。 file,重置 OpenLog 並開始使用新配置。電源循環仍然是重置電路板的首選方法,但此選項可用。
系統設定
這些設定可以手動更新,或在 config.txt 中編輯 file.
- 回顯狀態 – 變更系統回顯的狀態,並儲存於系統記憶體中。狀態可以是 開 或 關 。 開 時,OpenLog 將在命令提示字元下回顯接收到的串列資料。 關 時,系統不會讀回接收到的字元。
筆記: 正常日誌記錄期間,回顯將會關閉。日誌記錄期間回顯接收資料的系統資源需求過高。 - 詳細狀態 – 變更詳細錯誤報告的狀態。 STATE 可以是 on 或 off 。此命令儲存在記憶體中。透過關閉詳細錯誤,OpenLog 將在發生錯誤時僅回應 ! ,而不是傳回未知指令:COMMAND 。對於嵌入式系統來說,與完整錯誤相比,字元 ! 更容易解析。如果您正在使用終端,保持詳細狀態開啟將允許您查看完整的錯誤訊息。
- 波特率-此命令將開啟一個系統選單,允許使用者輸入波特率。支援 300bps 至 1Mbps 之間的任意波特率。波特率選擇是即時的,並且 OpenLog 需要電源循環才能使設定生效。波特率儲存到 EEPROM 中,並在 OpenLog 每次啟動時載入。預設值為 9600 8N1 。
記住:如果電路板的波特率未知,您可以將RX綁定到GND並啟動OpenLog。 LED將來回閃爍2秒,然後同時閃爍。關閉OpenLog電源,並拆下跳線。 OpenLog現在重置為9600bps,並連續三次按下「ctrl-z」轉義字元。可以透過將緊急覆蓋位設為1來覆蓋此功能。
查看 config.txt 以了解更多資訊。
- set – 此指令開啟系統選單以選擇啟動模式。這些設定將在
• 下次開機時,資訊會儲存在非揮發性 EEPROM 中。 File 記錄 – 此模式建立一個新的 file 每次 OpenLog 啟動時。 OpenLog 將發送 1(UART 處於活動狀態)、2(SD 卡已初始化),然後 <(OpenLog 已準備好接收資料)。所有資料都將記錄到 LOG#####.txt 檔案中。每次 OpenLog 啟動時,##### 數字都會增加(最大為 65533 個日誌)。該數字儲存在 EEPROM 中,可以從設定選單中重置。
所有接收到的字元均不會回顯。您可以透過發送 CTRL+z (ASCII 26) 來退出此模式並進入命令模式。所有緩衝資料都將儲存。
筆記: 如果建立的日誌過多,OpenLog 將輸出錯誤 **日誌過多**,請退出此模式並傳回命令提示字元。串行輸出將類似於“12!日誌過多!”。
- 附加 File 日誌記錄-也稱為順序模式,此模式建立 file 如果不存在,則呼叫 SEQLOG.txt,並將所有接收的資料附加到 file。 OpenLog 將傳輸 12<,此時 OpenLog 已準備好接收資料。字元不回顯。您可以透過發送 CTRL+z (ASCII 26) 來退出此模式並進入命令模式。所有緩衝資料都將儲存。
- 命令提示字元-OpenLog 將傳輸 12>,此時系統已準備好接收指令。請注意,> 符號表示 OpenLog 已準備好接收指令,而不是資料。您可以創建 files 並將數據附加到 files,但這需要一些串行解析(用於錯誤檢查),因此我們默認不設定此模式。
- 重置新 File 數字 – 此模式將重設日誌 file 號碼為 LOG000.txt 。如果您最近清理了 microSD 卡並希望查看日誌,這將很有幫助 file 數字重新開始。
- 新的轉義字元 – 此選項允許使用者輸入一個字元(例如 CTRL+z 或 $ ),並將其設定為新的轉義字元。緊急重置期間,此設定將重設為 CTRL+z。
- 轉義字元數-此選項允許使用者輸入字元(例如 1、3 或 17),更新進入指令模式所需的轉義字元數。例如amp例如,輸入 8 將要求使用者按 CTRL+z 八次才能進入指令模式。緊急重置期間,此設定重設為 3。
轉義字元說明:OpenLog 要求按三次「CTRL+z」才能進入指令模式,是為了防止從 Arduino IDE 上傳新程式碼時意外重置開發板。在引導過程中,開發板可能會偵測到「CTRL+z」字元(我們在早期版本的 OpenLog 韌體中發現過這個問題),因此此操作旨在防止這種情況發生。如果您懷疑您的開發板因此而損壞,您可以隨時透過在上電期間將 RX 引腳接地來進行緊急重置。
配置 File
如果您不想使用串行終端修改 OpenLog 上的設置,您也可以透過修改 CONFIG.TXT 來更新設置 file.
筆記: 此功能僅適用於韌體版本 1.6 或更高版本。如果您在 2012 年之後購買了 OpenLog,則將運行韌體版本 1.6 及以上。
為此,您需要一個 microSD 卡讀卡機和一個文字編輯器。開啟 config.txt file (大寫 file 名稱無所謂),然後進行配置!如果您以前從未使用 SD 卡啟動過 OpenLog,您也可以手動建立 file。如果您先前已使用插入的 microSD 卡啟動了 OpenLog,則讀取 microSD 卡時應該會看到類似以下內容。
OpenLog 建立 config.txt 和 LOG0000.txt file 首次啟動時。
默認配置 file 有一行設定和一行定義。
預設配置 file 由 OpenLog 編寫。
請注意,這些是常規可見字元(沒有不可見或二進位值),並且每個值都以逗號分隔。
設定定義如下:
- baud:通訊波特率。預設值為 9600bps。與 Arduino IDE 相容的可接受值為 2400、4800、9600、19200、38400、57600 和 115200。您可以使用其他波特率,但您將無法透過 Arduino IDE 串列監視器與 OpenLog 通訊。
- escape :轉義字元的 ASCII 值(十進位格式)。 26 是 CTRL+z,是預設值。 36 是 $,是常用的轉義字元。
- esc#:所需的轉義字元數。預設為 0,因此您必須輸入三次轉義字元才能進入命令模式。可接受的值範圍為 254 到 0。將此值設為 XNUMX 將完全停用轉義字元檢查。
- mode :系統模式。 OpenLog 預設以新日誌模式( 0 )啟動。可接受的值為 0 = 新日誌,1 = 順序日誌,2 = 命令模式。
- verb :詳細模式。預設啟用擴充(詳細)錯誤訊息。將其設為 1 會啟用詳細錯誤訊息(例如,未知命令:remove !)。將其設為 0 會關閉詳細錯誤訊息,但如果發生錯誤,則會傳回 !。如果您嘗試處理來自嵌入式系統的錯誤,關閉詳細模式會非常方便。
- echo :回顯模式。在命令模式下,字元預設回顯。設定為 0 會關閉字元回顯。如果您正在處理錯誤,並且不希望發送的命令被回顯到 OpenLog,那麼關閉此功能會很方便。
- 忽略RX:緊急覆蓋。通常情況下,當通電期間RX引腳被拉低時,OpenLog會緊急重設。將其設為1將禁用通電期間對RX引腳的檢查。這對於由於各種原因將RX線保持在低位的系統很有幫助。如果停用緊急覆蓋,您將無法強制裝置恢復到9600bps,且配置 file 將是修改波特率的唯一方法。
OpenLog如何修改配置 File
OpenLog修改config.txt有五種不同的情況 file.
- 配置 file 發現:在啟動過程中,OpenLog 將會尋找 config.txt file。如果 file 發現後,OpenLog 將使用包含的設定並覆蓋任何先前儲存的系統設定。
- 無需配置 file 找到:如果 OpenLog 找不到 config.txt file 然後OpenLog將建立config.txt並將目前儲存的系統設定記錄到其中。這表示如果您插入新格式化的 microSD 卡,您的系統將保持其目前設定。
- 配置損壞 file 發現:OpenLog 將刪除損壞的 config.txt file,並將重寫內部 EEPROM 設定和 config.txt 設定 file 變為已知良好狀態 9600,26,3,0,1,1,0 。
- 配置中的非法值 file:如果 OpenLog 發現任何包含非法值的設置,OpenLog 將覆蓋 config.txt 中的損壞值 file 使用目前儲存的 EEPROM 系統設定。
- 透過命令提示字元進行變更:如果透過命令提示字元(透過序列連接或透過微控制器序列命令)變更系統設置,則這些變更將記錄到系統 EEPROM 和 config.txt 中 file.
- 緊急重設:如果OpenLog透過RX和GND之間的跳線進行電源循環,並且緊急覆蓋位元設定為0(允許緊急重設),OpenLog將重寫內部EEPROM設定和config.txt設置 file 變為已知良好狀態 9600,26,3,0,1,1,0 。
故障排除
有幾種不同的選項可用於檢查您是否遇到了透過序列監視器連接的問題、日誌中遺失字元的問題或與損壞的 OpenLog 作鬥爭。
檢查 STAT1 LED 行為
STAT1 LED 對兩種不同的常見錯誤表現出不同的行為。
- 閃爍 3 次:microSD 卡初始化失敗。您可能需要在電腦上使用 FAT/FAT16 格式化該卡。
- 5 次閃爍:OpenLog 已變更為新的波特率,需要進行電源循環。
仔細檢查子目錄結構
如果您使用預設的 OpenLog.ino example,OpenLog 僅支援兩個子目錄。您需要將 FOLDER_TRACK_DEPTH 從 2 變更為您需要支援的子目錄數量。完成此操作後,重新編譯程式碼,並上傳修改後的韌體。
驗證數量 File根目錄中
OpenLog 最多僅支援 65,534 個日誌 file位於根目錄。我們建議重新格式化您的 microSD 卡以提高記錄速度。
驗證修改後的韌體的大小
如果您正在為 OpenLog 編寫自訂草圖,請驗證您的草圖不大於 32,256。如果是的話,它將切入快閃記憶體的上部 500 字節,由 Optiboot 串列引導程式使用。
雙重檢查 File 名稱
全部 file 名稱應由字母和數字組成。 MyLOG1.txt 可以,但 Hi !e _.txt 可能不行。
使用 9600 波特
OpenLog 基於 ATmega328 運行,RAM 容量有限(2048 位元組)。當您向 OpenLog 發送串列字元時,這些字元會被緩衝。 SD 組簡化規格允許 SD 卡花費最多 250 毫秒(第 4.6.2.2 節「寫入」)將資料區塊記錄到快閃記憶體中。
在 9600bps 時,即每秒 960 位元組(每位元組 10 位元)。即每位元組 1.04 毫秒。 OpenLog 目前使用 512 位元組接收緩衝區,因此它可以緩衝大約 50 毫秒的字元。這使得 OpenLog 能夠成功接收以 9600bps 傳輸的所有字元。隨著波特率的增加,緩衝區的持續時間將會縮短。
OpenLog緩衝區溢位時間
| 波特率 | 每位元組時間 | 緩衝區溢位時間 |
| 9600bps | 1.04毫秒 | 532毫秒 |
| 57600bps | 0.174毫秒 | 88毫秒 |
| 115200bps | 0.087毫秒 | 44毫秒 |
許多 SD 卡的記錄時間都快於 250 毫秒。這可能會受到卡片的「類別」以及卡片上已儲存的資料量的影響。解決方案是使用較低的波特率或增加以較高波特率發送的字元之間的時間量。
格式化您的 MicroSD 卡
記得使用信用卡 file就在上面。一張附有 3.1GB ZIP 檔案的 microSD 卡 files 或 MP3 的回應時間比空卡慢。
如果您沒有在 Windows 作業系統上格式化 microSD 卡,請重新格式化 microSD 卡並建立 DOS fileSD 卡上的系統。
更換 MicroSD 卡
卡的製造商、標籤、卡片尺寸和卡片等級各不相同,並非所有卡片都能正常運作。我們通常使用 8GB Class 4 microSD 卡,在 9600bps 下運作良好。如果您需要更高的波特率或更大的儲存空間,可以嘗試 Class 6 或更高等級的卡片。
在字元寫入之間添加延遲
透過在 Serial.print() 語句之間加入一個小的延遲,你可以讓 OpenLog 有機會記錄其目前
緩衝。
對於前amp樂:
串列.開始(115200);
對於(int i = 1;i < 10;i ++){
串行列印(i,DEC);
序列列印(“:abcdefghijklmnopqrstuvwxyz-!#”);
}
可能無法正確記錄,因為有很多字元是緊挨著發送的。在寫入大字元之間插入 15ms 的小延遲將有助於 OpenLog 記錄而不遺失字元。
串列.開始(115200);
對於(int i = 1;i < 10;i ++){
串行列印(i,DEC);
序列列印(“:abcdefghijklmnopqrstuvwxyz-!#”);
延遲(15);
}
添加 Arduino 串行監視器相容性
如果您嘗試將 OpenLog 與內建串列程式庫或 SoftwareSerial 程式庫一起使用,您可能會注意到命令模式有問題。 Serial.println() 傳送換行符號和回車符。有兩個替代指令可以解決這個問題。
第一種是使用 \r 指令(ASCII 回車符):
序列列印(“TEXT \ r”);
或者,您可以發送值 13(十進制回車符):
序列列印(“文字”);
串列寫入(13);
緊急重置
記住,如果您需要將 OpenLog 重設為預設狀態,您可以透過將 RX 引腳綁定到 GND、啟動 OpenLog、等待 LED 開始同時閃爍,然後關閉 OpenLog 電源並移除跳線來重置電路板。
如果您已將緊急覆蓋位變更為 1 ,則需要修改配置 file,因為緊急重置將不起作用。
與社區核實
如果您仍然遇到 OpenLog 問題,請在此處查看我們的 GitHub 儲存庫中的目前問題和已關閉的問題。有一個大型社群正在使用 OpenLog,因此很可能有人已經找到了您所看到的問題的解決方案。
資源和進一步發展
現在您已經成功使用 OpenLog 記錄數據,您可以設定遠端專案並監控所有可能的數據。考慮創建您自己的公民科學項目,甚至創建寵物追蹤器來查看 Fluffy 外出時會做什麼!
查看這些額外的資源,以獲得故障排除、協助或為您的下一個專案提供靈感。
- OpenLog GitHub
- Illumitune 項目
- LilyPad光感應器連接
- BadgerHack:土壤感測器插件
- OBD-II入門
- 遊標光電門
需要更多靈感嗎?請參閱以下一些相關教學:
光子遠程水位感測器
了解如何為儲水箱建立遠端水位感測器以及如何根據讀數自動控制泵浦!
光子遠程水位感測器
了解如何為儲水箱建立遠端水位感測器以及如何根據讀數自動控制泵浦!
使用 Tessel 將數據記錄到 Google 表格 2
該專案涵蓋瞭如何透過兩種方式將資料記錄到 Google Sheets:使用 IFTTT 和 web 連接或 USB 驅動器,無需“sneakernet”。
使用 Python 和 Matplotlib 繪製感測器數據
使用 matplotlib 建立從連接到 Raspberry Pi 的 TMP102 感測器收集的溫度資料的即時圖。
如果您有任何教程回饋,請造訪評論或聯絡我們的技術支援團隊 TechSupport@sparkfun.com.

文件/資源
![]() |
SparkFun DEV-13712 SparkFun 開發板 [pdf] 使用者指南 DEV-13712、DEV-11114、DEV-09873、CAB-12016、COM-13833、COM-13004、PRT-00115、PRT-08431、DEV-13712 SparkFun 開發板、DEV-13712、XNUMX、開發板、開發板、開發板、開發板、FunXNUMX、開發板、開發板、開發板 |




