OpenLog接続ガイド
導入
注意!このチュートリアルはシリアルUART用のOpenLog [ DEV-13712 ]を対象としています。QwiicのIC用OpenLog [ DEV-15164 ]をご利用の場合は、Qwiic OpenLog接続ガイドを参照してください。
OpenLogデータロガーは、プロジェクトからシリアルデータを記録するための、使いやすいオープンソースソリューションです。OpenLogは、プロジェクトからmicroSDカードにデータを記録するためのシンプルなシリアルインターフェースを提供します。SparkFun オープンログ
• DEV-13712ヘッダー付き SparkFun OpenLog
• DEV-13955
商品が見つかりません
必要な材料
このチュートリアルを完全に進めるには、以下のパーツが必要です。お持ちのパーツによっては、すべてが必要ない場合もあります。カートに追加し、ガイドを読み、必要に応じてカートを調整してください。
OpenLog接続ガイド SparkFunウィッシュリスト
![]() |
Arduino Pro Mini 328 – 3.3V/8MHz 開発コード: 青い!薄い!Arduino Pro Mini!SparkFunによるArduinoへのミニマルデザインアプローチ。3.3VのArduino… |
![]() |
SparkFun FTDI ベーシックブレイクアウト – 3.3V 開発コード: これは[FTDI Basic](の最新版です)http://www.sparkfun.com/commerce/product_info.php?products_id=… |
![]() |
SparkFun Cerberus USBケーブル – 6フィート CAB-12016 USBケーブルが間違っています。どれを使っていても、間違っています。でも、もし… |
![]() |
SparkFun オープンログ 開発コード: SparkFun OpenLog は、シンプルなシリアル接続で動作し、マイクロ秒 (Mhz) のリアルタイム データをサポートするオープンソースのデータロガーです。 |
![]() |
アダプタ付き microSD カード – 16GB (クラス 10) COM-13833 これはクラス 10 16GB microSD メモリ カードで、シングル ボード コンピューターのオペレーティング システムを格納するのに最適です。 |
![]() |
microSD USBリーダー COM-13004 これは素晴らしい小型のmicroSD USBリーダーです。microSDカードをUSBコネクタに差し込むだけで… |
![]() |
女性ヘッダー PRT-00115 40穴のメスヘッダーが1列に並んでいます。ワイヤーカッターでサイズに合わせて切断できます。標準のXNUMXインチ間隔です。当社では… |
![]() |
ジャンパーワイヤー プレミアム 6インチ M/M 10本パック PRT-08431 SparkFun限定!両端にオスコネクタが付いた長さ155mmのジャンパーです。これを使って… |
![]() |
ブレイクアウェイ オスヘッダー – 直角 PRT-00553 直角型オスヘッダーの列。折り曲げてフィットします。40ピンで、任意のサイズにカットできます。カスタムPCBまたは汎用PCBに使用できます。 |
おすすめの読み物
以下の概念に精通していない、または慣れていない場合は、OpenLog Hookup ガイドに進む前に、これらを読んでおくことをお勧めします。
はんだ付け方法:スルーホールはんだ付け
このチュートリアルでは、スルーホールはんだ付けについて知っておく必要のあるすべてのことを説明します。
シリアル ペリフェラル インターフェイス (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がメモリカードに書き込みを行う際の消費電流は異なります。ボーレートを上げると、消費電流も増加します。
マイクロコントローラ
OpenLogはオンボードのATmega328を搭載しており、オンボードの水晶振動子のおかげで16MHzで動作します。ATmega328にはOptibootブートローダーが搭載されており、OpenLogはArduino IDEの「Arduino Uno」ボード設定と互換性があります。インタフェース
シリアルUART
OpenLogとの主なインターフェースは、ボード端にあるFTDIヘッダーです。このヘッダーはArduino ProまたはPro Miniに直接接続できるように設計されており、マイクロコントローラーからシリアル接続を介してOpenLogにデータを送信できます。
警告! Arduino と互換性のあるピン配列のため、FTDI ブレークアウト ボードに直接接続することはできません。 詳細については、次のセクションの「ハードウェアの接続」を必ず確認してください。
SPI
ボードの反対側には328つのSPIテストポイントがあります。これらを使ってATmegaXNUMXのブートローダーを再プログラムできます。最新のOpenLog(DEV-13712)では、これらのピンはより小さなメッキスルーホールに分割されています。ISPを利用してOpenLogを再プログラムしたり、新しいブートローダーをアップロードしたりする必要がある場合は、ポゴピンを使用してこれらのテストポイントに接続できます。
OpenLogと通信するための最後のインターフェースは、microSDカード自体です。通信には、microSDカードにSPIピンが必要です。OpenLogはここにデータを保存するだけでなく、config.txtファイルを使ってOpenLogの設定を更新することもできます。 file microSDカードに。
microSDカード
OpenLogで記録されたすべてのデータはmicroSDカードに保存されます。OpenLogは、以下の機能を備えたmicroSDカードで動作します。
- 64MB〜32GB
- FAT16またはFAT32
ステータスLED
OpenLog にはトラブルシューティングに役立つ 2 つのステータス LED があります。
- STAT1 – この青色のインジケータLEDはArduino D5(ATmega328 PD5)に接続されており、新しい文字を受信すると点灯/消灯します。シリアル通信が機能しているときは点滅します。
- STAT2 – この緑色のLEDはArduino D13(SPIシリアルクロックライン/ATmega328 PB5)に接続されています。このLEDは、SPIインターフェースがアクティブな場合にのみ点滅します。OpenLogがmicroSDカードに512バイトを記録すると、このLEDが点滅します。
ハードウェア接続
OpenLogを回路に接続するには、主に2つの方法があります。接続にはヘッダーまたはワイヤーが必要です。しっかりと接続するために、必ず基板に半田付けしてください。
基本的なシリアル接続
ヒント: OpenLog にメス ヘッダーがあり、FTDI にメス ヘッダーがある場合は、接続に M/F ジャンパー ワイヤが必要になります。
このハードウェア接続は、ボードを再プログラムしたり、基本的なシリアル接続を介してデータを記録したりする必要がある場合に、OpenLog とインターフェイスするために設計されています。
次の接続を行います。
OpenLog → 3.3V FTDI 基本ブレイクアウト
- GND → GND
- GND → GND
- 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スケッチの例をご覧ください。amp使用できるコードです。
注記: Pro Mini のプログラミング方法がわからない場合は、こちらのチュートリアルをご覧ください。
Arduino Pro Mini 3.3Vの使用
このチュートリアルは、Arduino Pro Miniのすべてを網羅したガイドです。Arduino Pro Miniとは何か、何ができないのか、そして使い始める方法について解説します。
Pro Mini をプログラムしたら、FTDI ボードを取り外して OpenLog に置き換えることができます。
Pro Mini と OpenLog の両方で、BLK というラベルの付いたピンを必ず接続してください (正しく接続されていれば、両方の GRN というラベルの付いたピンも一致します)。
OpenLog を Pro Mini に直接接続できない場合 (ヘッダーが一致しないか、他のボードが邪魔になっているため)、ジャンパー ワイヤを使用して次の接続を行うことができます。
OpenLog → Arduino Pro/Arduino Pro Mini
- GND → GND
- GND → GND
- VCC → VCC
- TXO → RXI
- RXI → TXO
- DTR → DTR
完了すると、Arduino Pro Mini と Arduino Pro の接続は次のようになります。
Fritzingの図は、OpenLogsのヘッダーを反転した状態を示しています。Arduinoの上部に対してmicroSDソケットを反転すると、 view、FTDI のようなプログラミング ヘッダーと一致する必要があります。
注記 OpenLog を「逆さま」(microSD を上向き)にしてまっすぐに接続します。
⚡注意: OpenLogとArduino間のVccとGNDはヘッダーによって占有されているため、Arduinoの他のピンに電源を接続する必要があります。あるいは、どちらかのボードの露出した電源ピンにワイヤをはんだ付けすることもできます。
システムの電源を入れれば、ログ記録を開始する準備は完了です。
Arduinoスケッチ
6つの異なる例がありますampOpenLog に接続したときに Arduino で使用できるスケッチが含まれています。
- OpenLog_Benchmarking — この例ampleはOpenLogのテストに使用されます。これは115200bpsで非常に大量のデータを複数の files.
- OpenLog_CommandTest — この例ampleは、作成して追加する方法を示しています file Arduino を介したコマンド ライン制御を介して。
- オープンログ_読み取りExample — この例ample では、コマンド ライン経由で OpenLog を制御する方法を説明します。
- オープンログ_読み取りExample_LargeFile - 元amp大きな保存場所を開く方法 file OpenLog でそれをローカル Bluetooth 接続経由で報告します。
- OpenLog_Test_Sketch — 大量のシリアル データを使用して OpenLog をテストするために使用されます。
- OpenLog_Test_Sketch_Binary — バイナリ データとエスケープ文字を使用して OpenLog をテストするために使用されます。
ファームウェア
OpenLog には、ブートローダーとファームウェアという 2 つの主要なソフトウェアが搭載されています。
Arduino ブートローダー
注記: 2012 年 5 月以前に購入した OpenLog を使用している場合、オンボード ブートローダーは Arduino IDE の「Arduino Pro または Pro Mini 16V/328MHz w/ ATmegaXNUMX」設定と互換性があります。
前述の通り、OpenLogにはOptibootシリアルブートローダーが搭載されています。例えば、OpenLogをArduino Unoのように扱うことができます。ampボードにコードまたは新しいファームウェアをインストールします。
OpenLogが壊れてしまい、ブートローダーを再インストールする必要がある場合は、Optibootもボードにアップロードする必要があります。詳しくは、Arduinoブートローダーのインストールに関するチュートリアルをご覧ください。
OpenLogへのファームウェアのコンパイルとロード
注記: Arduinoを初めて使用する場合は、view Arduino IDEのインストールに関するチュートリアルをご覧ください。Arduinoライブラリをまだインストールしていない場合は、インストールガイドを参照して手動でライブラリをインストールしてください。
何らかの理由で OpenLog のファームウェアを更新または再インストールする必要がある場合は、次の手順に従ってボードを起動してください。
まず、Arduino IDE v1.6.5をダウンロードしてください。他のバージョンのIDEでもOpenLogファームウェアをコンパイルできる可能性がありますが、このバージョンは動作確認済みです。
次に、OpenLog ファームウェアと必要なライブラリ バンドルをダウンロードします。
OPENLOGファームウェアバンドル(ZIP)をダウンロード
ライブラリとファームウェアをダウンロードしたら、Arduinoにライブラリをインストールしてください。IDEでライブラリを手動でインストールする方法がわからない場合は、チュートリアル「Arduinoライブラリのインストール:ライブラリの手動インストール」をご覧ください。
注記: 送信バッファと受信バッファのサイズを任意に指定するために、SdFatライブラリとSerialPortライブラリの修正版を使用しています。OpenLogでは、送信バッファを非常に小さく(0)、受信バッファを可能な限り大きくする必要があります。これらのXNUMXつの修正版ライブラリを併用することで、OpenLogのパフォーマンスが向上します。
最新バージョンをお探しですか?ライブラリとファームウェアの最新バージョンをご希望の場合は、下記のGitHubリポジトリから直接ダウンロードできます。SdFatLibライブラリとシリアルポートライブラリはArduinoボードマネージャーには表示されないため、手動でインストールする必要があります。
- GitHub: OpenLog > ファームウェア > OpenLog_Firmware
- Bill GreimanのArduinoライブラリ
SdFatLib-ベータ
シリアルポート
次に、先手を打つtag変更されたライブラリのe、SerialPort.hを変更します file \Arduino\Libraries\SerialPortディレクトリにあります。BUFFERED_TXを0に、ENABLE_RX_ERROR_CHECKINGを0に変更してください。 file、Arduino IDE を開きます。
OpenLogをFTDIボード経由でコンピュータに接続していない場合は、接続してください。ampこれを適切に行う方法がわからない場合は、回路図を参照してください。
[ツール] > [ボード] メニューでアップロードする OpenLog スケッチを開き、[Arduino/Genuino Uno] を選択し、[ツール] > [ポート] で FTDI ボードに適切な COM ポートを選択します。
コードをアップロードします。
これで完了です!OpenLogに新しいファームウェアがプログラムされました。シリアルモニターを開いてOpenLogを操作できます。電源投入時に12>または12<が表示されます。1はシリアル接続が確立されたこと、2はSDカードの初期化が正常に完了したこと、<はOpenLogが受信したシリアルデータを記録できる状態、>はOpenLogがコマンドを受信できる状態であることを示します。
OpenLogファームウェアスケッチ
特定のアプリケーションに応じて、OpenLog で使用できるスケッチが 3 つ含まれています。
- OpenLog – このファームウェアはOpenLogにデフォルトで搭載されています。? コマンドを送信すると、ユニットにロードされているファームウェアのバージョンが表示されます。
- OpenLog_Light – このバージョンのスケッチでは、メニューとコマンドモードが削除され、受信バッファを増やすことができます。これは高速ログ記録に適したオプションです。
- OpenLog_Minimal – ボーレートはコードで設定し、アップロードする必要があります。このスケッチは経験豊富なユーザーに推奨されますが、最高速のログ記録にも最適なオプションです。
コマンドセット
OpenLogはシリアル端末経由で操作できます。以下のコマンドで読み込み、書き込み、削除が行えます。 fileOpenLogの設定も変更できます。以下の設定を使用するには、コマンドモードにする必要があります。
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 オフセット位置から fileテキストはUARTから1行ずつ読み取られ、エコーバックされます。この状態を終了するには、空行を送信してください。
• 元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形式で報告します。出力には3つのTYPEがあります。
• ASCII = 1
• 2進数 = XNUMX
• RAW = 3
末尾の引数は省略できます。次の例を確認してください。ampレ。
基本的な読み取り + 省略されたフラグ:
• 元ample: LOG00004.txt を読む
• 出力: 加速度計 X=12 Y=215 Z=317
開始0から長さ5で読み取ります。
• 元ample: LOG00004.txt 0 5 を読む
• 出力: 加速
1 進数で長さ 5 の位置 XNUMX から読み取ります。
• 元ample: LOG00004.txt を読む 1 5 2
• 出力: 63 63 65 6C - RAW で長さ 0 の位置 50 から読み取ります。
- • 元ample: LOG00137.txt を読む 0 50 3
- • 出力: André– -þ 拡張文字テスト
- 猫 File – コンテンツを書く file 16進数でシリアルモニターに viewこれは、 file SDカードを抜き差しすることなく正しく録画でき、 view の file コンピューターで。
• 元ample: cat LOG00004.txt
• 出力: 00000000: 41 63 65 6c 3a 20 31
ディレクトリ操作
- ls – 現在のディレクトリのすべての内容を一覧表示します。ワイルドカードがサポートされています。
• 元ampル: ls
• 出力: \src - md サブディレクトリ – 現在のディレクトリにサブディレクトリを作成します。
• 元ample: md Example_スケッチ - cd サブディレクトリ – サブディレクトリに変更します。
• 元ample: cd Hello_World - cd .. – ツリー内の下位ディレクトリに移動します。「cd」と「..」の間にスペースがあることに注意してください。これにより、文字列パーサーがcdコマンドを認識できるようになります。
• 元ample: cd .. - rm サブディレクトリ – サブディレクトリを削除します。このコマンドを実行するには、ディレクトリが空である必要があります。
• 元ample: rm temps - rm -rf ディレクトリ – ディレクトリと fileその中に含まれるもの。
• 元ample: rm -rf ライブラリ
低レベル関数コマンド
- ? – このコマンドは、OpenLog で使用可能なコマンドのリストを表示します。
- ディスク – カードの製造元ID、シリアル番号、製造日、カードサイズを表示します。例:ample 出力は次のとおりです。
カードタイプ: SD2
メーカーID: 3
OEM ID: SD
製品: SU01G
バージョン: 8.0
シリアル番号: 39723042
製造日: 1/2010
カードサイズ: 965120 KB - init – システムを再初期化し、SDカードを再度開きます。SDカードが応答しなくなった場合に役立ちます。
- sync – バッファの現在の内容をSDカードに同期します。このコマンドは、バッファ内の文字数が512文字未満で、それをSDカードに記録したい場合に便利です。
- reset – OpenLogをゼロの位置に移動し、ブートローダーを再実行して初期化コードを実行します。このコマンドは、設定を編集する必要がある場合に役立ちます。 fileOpenLogをリセットし、新しい設定を使い始めてください。ボードをリセットするには、電源を入れ直すことが依然として推奨される方法ですが、このオプションも利用可能です。
システム設定
これらの設定は手動で更新するか、config.txtで編集することができます。 file.
- echo STATE – システムエコーの状態を変更し、システムメモリに保存されます。STATEは on または off のいずれかです。on の場合、OpenLogは受信したシリアルデータをコマンドプロンプトにエコーします。off の場合、システムは受信した文字を読み返しません。
注記: 通常のログ記録中はエコーはオフになります。ログ記録中は、受信データのエコーに必要なシステムリソースが高すぎます。 - verbose STATE – 詳細なエラー報告の状態を変更します。STATE は on または off のいずれかです。このコマンドはメモリに保存されます。詳細エラー報告をオフにすると、OpenLog はエラーが発生した場合に、不明なコマンド COMMAND ではなく ! のみを応答します。組み込みシステムでは、エラー全体よりも ! 文字の方が解析が容易です。端末を使用している場合は、verbose をオンのままにしておくと、完全なエラーメッセージを確認できます。
- baud – このコマンドはシステムメニューを開き、ボーレートを入力できます。300bpsから1Mbpsまでの任意のボーレートがサポートされています。ボーレートの選択は即座に反映されますが、設定を有効にするにはOpenLogの電源を入れ直す必要があります。ボーレートはEEPROMに保存され、OpenLogの電源投入時に毎回読み込まれます。デフォルトは9600 8N1です。
覚えておいてください:ボードが不明なボーレートで動かなくなった場合は、RXをGNDに接続してOpenLogの電源を入れてください。LEDが2秒間交互に点滅し、その後同時に点滅します。OpenLogの電源を切り、ジャンパーを外してください。エスケープ文字「Ctrl + Z」を9600回連続して押すと、OpenLogは1bpsにリセットされます。この機能は、緊急オーバーライドビットをXNUMXに設定することでオーバーライドできます。
詳細については、config.txt を参照してください。
- set – このコマンドは、起動モードを選択するためのシステムメニューを開きます。これらの設定は、
• 次回電源投入時に不揮発性EEPROMに保存されます。 File ログ – このモードでは新しい file OpenLogの電源が投入されるたびに、1(UART動作中)、2(SDカード初期化完了)、<(OpenLogがデータ受信準備完了)を送信します。すべてのデータはLOG#####.txtファイルに記録されます。#####の数字はOpenLogの電源が投入されるたびに増加します(最大65533ログ)。この数字はEEPROMに保存され、設定メニューからリセットできます。
受信した文字はすべてエコーされません。CTRL+Z(ASCII 26)を送信すると、このモードを終了してコマンドモードに入ることができます。バッファリングされたデータはすべて保存されます。
注記: ログが多すぎる場合、OpenLogは**ログが多すぎます**というエラーを出力し、このモードを終了してコマンドプロンプトに戻ります。シリアル出力は`12!ログが多すぎます!`のように表示されます。
- 追加 File ロギング – シーケンシャルモードとも呼ばれるこのモードでは、 file SEQLOG.txtがまだ存在しない場合は、そこに受信データを追加し、 fileOpenLogは12<を送信し、この時点でOpenLogはデータ受信準備完了となります。文字はエコーされません。このモードを終了し、コマンドモードに入るには、CTRL+Z(ASCII 26)を送信してください。バッファリングされたデータはすべて保存されます。
- コマンドプロンプト – OpenLogは12>を送信し、システムがコマンドを受信できる状態になったことを示します。>記号はOpenLogがデータではなくコマンドを受信できる状態であることを示します。 filesにデータを追加 fileただし、これにはシリアル解析 (エラー チェック用) が必要なため、デフォルトではこのモードは設定されません。
- 新規リセット File 番号 – このモードではログがリセットされます file LOG000.txtに番号を追加します。これは、最近microSDカードを空にし、ログを保存したい場合に役立ちます。 file もう一度やり直すための番号。
- 新しいエスケープ文字 – このオプションを使用すると、Ctrl+zや$などの文字を入力し、それを新しいエスケープ文字として設定できます。この設定は、緊急リセット時にCtrl+zにリセットされます。
- エスケープ文字の数 – このオプションでは、ユーザーが文字(1、3、17など)を入力することで、コマンドモードに移行するために必要なエスケープ文字の数を更新できます。例:amp8を入力すると、コマンドモードに入るにはCtrl+Zを3回押す必要があります。この設定は緊急リセット時にXNUMXにリセットされます。
エスケープ文字の説明:OpenLogがコマンドモードに入るために「CTRL+Z」を3回押す必要があるのは、Arduino IDEから新しいコードをアップロードする際にボードが誤ってリセットされるのを防ぐためです。ブートローディング中にボードが「CTRL+Z」文字を検知する可能性があり(OpenLogファームウェアの初期バージョンで発生した問題)、これを防ぐのが目的です。この原因でボードが故障したと思われる場合は、電源投入時にRXピンをグランドに保持することで緊急リセットを実行できます。
構成 File
OpenLogの設定を変更するためにシリアルターミナルを使用したくない場合は、CONFIG.TXTを変更して設定を更新することもできます。 file.
注記: この機能はファームウェアバージョン1.6以降でのみ動作します。2012年以降にOpenLogをご購入いただいた場合、ファームウェアバージョン1.6以降が動作しています。
これを行うには、microSDカードリーダーとテキストエディタが必要です。config.txtを開いてください。 file (大文字表記 file (名前は何でも構いません)そして設定しましょう!もしOpenLogをSDカードで起動したことがない場合は、手動で作成することもできます。 file以前に microSD カードを挿入した状態で OpenLog の電源を入れたことがある場合は、microSD カードを読み取るときに次のような画面が表示されます。OpenLogはconfig.txtとLOG0000.txtを作成します。 file 最初の電源投入時。
デフォルト構成 file 設定が 1 行、定義が 1 行あります。デフォルト設定 file OpenLog によって書かれました。
これらは通常の表示可能な文字 (非表示の値やバイナリ値はありません) であり、各値はコンマで区切られていることに注意してください。
設定は次のように定義されます。
- baud : 通信ボーレート。デフォルトは9600bpsです。Arduino IDEと互換性のある許容値は2400、4800、9600、19200、38400、57600、115200です。他のボーレートも使用できますが、Arduino IDEシリアルモニターを介してOpenLogと通信することはできません。
- escape : エスケープ文字の ASCII 値 (26 進形式)。36 は CTRL+z でデフォルトです。XNUMX は $ で、よく使用されるエスケープ文字です。
- esc# : 必要なエスケープ文字の数。デフォルトでは0なので、コマンドモードに切り替えるにはエスケープ文字を254回押す必要があります。指定可能な値は0~XNUMXです。この値をXNUMXに設定すると、エスケープ文字のチェックが完全に無効になります。
- mode : システムモード。OpenLogはデフォルトで新規ログモード( 0 )で起動します。許容値は0 = 新規ログ、1 = シーケンシャルログ、2 = コマンドモードです。
- verb : 詳細モード。拡張(verbose)エラーメッセージはデフォルトで有効になっています。これを1に設定すると、詳細なエラーメッセージ(unknown command: delete ! など)が表示されます。これを0に設定すると、詳細なエラーメッセージは表示されなくなりますが、エラーが発生した場合は ! が返されます。組み込みシステムのエラーを処理する場合は、詳細モードをオフにすると便利です。
- echo : エコーモード。コマンドモードでは、デフォルトで文字がエコーされます。この値を0に設定すると、文字のエコーがオフになります。エラー処理などで、送信したコマンドがOpenLogにエコーバックされないようにしたい場合は、この設定をオフにすると便利です。
- ignoreRX: 緊急オーバーライド。通常、OpenLogは電源投入時にRXピンがローレベルになると緊急リセットを行います。これを1に設定すると、電源投入時のRXピンのチェックが無効になります。これは、様々な理由でRXラインをローレベルに保持するシステムに役立ちます。緊急オーバーライドが無効になっている場合、ユニットを9600bpsに強制的に戻すことはできず、設定は file ボーレートを変更する唯一の方法になります。
OpenLogが構成を変更する方法 File
OpenLogがconfig.txtを変更する状況は5つあります。 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 は、XNUMX つの異なる一般的なエラーに対して異なる動作を示します。
- 3回点滅:microSDカードの初期化に失敗しました。パソコンでカードをFAT/FAT16でフォーマットする必要がある可能性があります。
- 5 回点滅: OpenLog が新しいボー レートに変更されたため、電源を入れ直す必要があります。
サブディレクトリ構造を再確認する
デフォルトのOpenLog.ino exを使用している場合ample、OpenLogは2つのサブディレクトリしかサポートしません。FOLDER_TRACK_DEPTHをXNUMXから、サポートする必要があるサブディレクトリの数に変更する必要があります。変更が完了したら、コードを再コンパイルし、修正したファームウェアをアップロードしてください。
数を確認する Fileルートディレクトリ内のs
OpenLogは最大65,534ログまでしかサポートしません fileルートディレクトリにsがあります。ログ記録速度を向上させるには、microSDカードを再フォーマットすることをお勧めします。
変更したファームウェアのサイズを確認する
OpenLog用のカスタムスケッチを作成する場合は、スケッチのサイズが32,256バイトを超えていないことを確認してください。500バイトを超えると、Optibootシリアルブートローダーが使用するフラッシュメモリの上位XNUMXバイトが消費されてしまいます。
ダブルチェック File 名前
全て file 名前は英数字でなければなりません。MyLOG1.txt は問題ありませんが、Hi !e _.txt は機能しない可能性があります。
9600ボーを使用する
OpenLogはATmega328で動作し、RAM容量は限られています(2048バイト)。OpenLogにシリアルデータを送信すると、これらのデータはバッファリングされます。SDグループ簡易仕様では、SDカードがフラッシュメモリにデータブロックを記録するのに最大250ミリ秒(セクション4.6.2.2 Write)かかることが許容されています。
9600bpsでは、960秒あたり10バイト(1.04バイトあたり512ビット)の転送速度になります。これは50バイトあたり9600ミリ秒に相当します。OpenLogは現在XNUMXバイトの受信バッファを使用しており、約XNUMXミリ秒の文字をバッファリングできます。これにより、OpenLogはXNUMXbpsで送信されるすべての文字を正常に受信できます。ボーレートを上げると、バッファリング時間は短くなります。
OpenLog バッファオーバーラン時間
ボーレート | バイトあたりの時間 | バッファオーバーランまでの時間 |
9600bps | 1.04ミリ秒 | 532ミリ秒 |
57600bps | 0.174ミリ秒 | 88ミリ秒 |
115200bps | 0.087ミリ秒 | 44ミリ秒 |
多くのSDカードは250msよりも速い記録時間を備えています。これはカードの「クラス」とカードに既に保存されているデータの量によって影響を受ける可能性があります。解決策としては、ボーレートを下げるか、高いボーレートで送信する文字間隔を長くすることです。
MicroSDカードをフォーマットする
少ない、または全くないカードを使うことを忘れないでください file3.1GBのZIPファイルが入ったmicroSDカード files または MP3 は空のカードよりも応答時間が遅くなります。
microSDカードをWindows OSでフォーマットしていない場合は、microSDカードを再フォーマットしてDOSファイルを作成します。 fileSD カード上のシステム。
MicroSDカードの交換
カードメーカー、ラベルの異なるカード、カードサイズ、カードクラスは多種多様であり、必ずしも全てが正常に動作するとは限りません。当社では通常、8bpsで問題なく動作する4GBのクラス9600 microSDカードを使用しています。より高いボーレートやより大きなストレージ容量が必要な場合は、クラス6以上のカードをお試しください。
文字書き込み間の遅延を追加する
Serial.print() 文の間に少しの遅延を加えることで、OpenLog に現在の状態を記録する機会を与えることができます。
バッファ。
例えばamp上:
シリアル.begin(115200);
for(int i = 1; i < 10; i++) {
シリアル.print(i, DEC);
Serial.println(“:abcdefghijklmnopqrstuvwxyz-!#”);
}
多くの文字が連続して送信されるため、OpenLogは正しくログに記録されない可能性があります。大きな文字の書き込みの間に15ミリ秒の小さな遅延を挿入すると、OpenLogは文字の欠落なく記録できるようになります。
シリアル.begin(115200);
for(int i = 1; i < 10; i++) {
シリアル.print(i, DEC);
Serial.println(“:abcdefghijklmnopqrstuvwxyz-!#”);
遅延(15);
}
Arduinoシリアルモニターの互換性を追加
OpenLogを組み込みシリアルライブラリまたはSoftwareSerialライブラリと組み合わせて使用する場合、コマンドモードで問題が発生することがあります。Serial.println()は改行と復帰の両方を送信します。この問題を回避するための代替コマンドが2つあります。
1 つ目は、\r コマンド (ASCII キャリッジ リターン) を使用することです。
Serial.print(“TEXT\r”);
あるいは、値 13 (XNUMX 進数の復帰) を送信することもできます。
Serial.print(“TEXT”);
シリアル.write(13);
緊急リセット
OpenLog をデフォルト状態にリセットする必要がある場合は、RX ピンを GND に接続し、OpenLog の電源を入れ、LED が同時に点滅し始めるまで待ってから、OpenLog の電源を切ってジャンパーを取り外すことで、ボードをリセットできることを覚えておいてください。
緊急オーバーライドビットを1に変更した場合は、設定を変更する必要があります。 file緊急リセットは機能しません。
コミュニティに確認する
OpenLogで引き続き問題が発生する場合は、こちらのGitHubリポジトリで現在解決済みの問題をご確認ください。OpenLogには大規模なコミュニティが存在しているため、発生している問題の解決策がすでに見つかる可能性があります。
リソースとさらなる発展
OpenLogでデータの記録に成功したので、リモートプロジェクトを設定して、あらゆるデータを監視できます。独自の市民科学プロジェクトを作成したり、Fluffyが外出時に何をしているかを追跡できるペットトラッカーを作成したりすることも検討してみてください。
次のプロジェクトのトラブルシューティング、ヘルプ、またはインスピレーションを得るには、これらの追加リソースを確認してください。
- オープンログ GitHub
- イルミチューンプロジェクト
- LilyPad 光センサー接続
- BadgerHack: 土壌センサーアドオン
- OBD-II入門
- ヴェルニエ・フォトゲート
もっとインスピレーションが必要ですか?以下の関連チュートリアルをご覧ください。
フォトンリモート水位センサー
貯水タンク用のリモート水位センサーの構築方法と、その測定値に基づいてポンプを自動化する方法を学びましょう。
フォトンリモート水位センサー
貯水タンク用のリモート水位センサーの構築方法と、その測定値に基づいてポンプを自動化する方法を学びましょう。
Tesselを使用してGoogleスプレッドシートにデータを記録する 2
このプロジェクトでは、IFTTTを使用してGoogleスプレッドシートにデータを記録する2つの方法について説明します。 web 接続またはUSBペンドライブと「スニーカーネット」なし。
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、SparkFun開発ボード、開発ボード、ボード |