SparkFun DEV-13712 はんだ付け用穴付きパーティクルフォトン
仕様
- 製品名: OpenLogデータロガー
- モデル: DEV-13712
- 電源入力: 3.3V~12V (推奨3.3V~5V)
- RXI入力ボリュームtage:2.0V-3.8V
- TXO出力電圧tage:3.3V
- アイドル電流消費量: 約 2 mA ~ 5 mA (microSD カードなし)、約 5 mA ~ 6 mA (microSD カードあり)
- アクティブ書き込み電流消費量: ~20-23mA (microSD カード使用時)
製品使用説明書
必要な材料:
- Arduino Pro Mini 328 – 3.3V/8MHz
- SparkFun FTDI ベーシックブレイクアウト – 3.3V
- SparkFun Cerberus USBケーブル – 6フィート
- アダプタ付き microSD カード – 16GB (クラス 10)
- microSD USBリーダー
- 女性ヘッダー
- ジャンパーワイヤー プレミアム 6 M/M 10個パック
- ブレイクアウェイ オスヘッダー – 直角
おすすめの読み物:
ハードウェア終了view:
OpenLog は次の設定で実行されます。
VCC入力 | RXI入力 | TXO出力 | アイドル電流消費量 | アクティブ書き込み電流消費 |
---|---|---|---|---|
3.3V~12V(推奨3.3V~5V) | 2.0V-3.8V | 3.3V | 約2mA~5mA(microSDカードなし)、約5mA~6mA(microSDカードあり) | 約20~23mA(microSDカード使用時) |
導入
注意!このチュートリアルはシリアルUART用のOpenLog [ DEV-13712 ]を対象としています。QwiicのIC用OpenLog [ DEV-15164 ]をご利用の場合は、Qwiic OpenLog接続ガイドを参照してください。
OpenLogデータロガーは、プロジェクトからシリアルデータを記録するための、使いやすいオープンソースソリューションです。OpenLogは、プロジェクトからmicroSDカードにデータを記録するためのシンプルなシリアルインターフェースを提供します。
SparkFun オープンログ
開発コード:
ヘッダー付き SparkFun OpenLog
開発コード:
商品が見つかりません
必要な材料
このチュートリアルを完全に進めるには、以下のパーツが必要です。お持ちのパーツによっては、すべてが必要ない場合もあります。カートに追加し、ガイドを読み、必要に応じてカートを調整してください。
OpenLog接続ガイド
SparkFun ウィッシュリスト
おすすめの読み物
以下の概念に精通していない、または慣れていない場合は、OpenLog Hookup ガイドに進む前に、これらを読んでおくことをお勧めします。
- はんだ付け方法: スルーホールはんだ付け。このチュートリアルでは、スルーホールはんだ付けについて知っておくべきすべてのことを説明します。
- シリアル通信 非同期シリアル通信の概念: パケット、信号レベル、ボーレート、UART など!
- シリアル ペリフェラル インターフェイス (SPI) SPI は、マイクロコントローラをセンサー、シフト レジスタ、SD カードなどの周辺機器に接続するためによく使用されます。
- シリアル端末の基礎 このチュートリアルでは、さまざまなターミナル エミュレーター アプリケーションを使用してシリアル デバイスと通信する方法を説明します。
ハードウェア終了view
力
OpenLog は次の設定で実行されます。
OpenLog 電力定格
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
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の図は、ヘッダーが反転されたOpenLogを示しています。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)する必要があり、受信バッファは可能な限り大きくする必要があります。
- これら 2 つの変更されたライブラリを一緒に使用すると、OpenLog のパフォーマンスが向上します。
最新バージョンをお探しですか?
最新バージョンのライブラリとファームウェアが必要な場合は、下記のGitHubリポジトリから直接ダウンロードできます。SdFatLibライブラリとシリアルポートライブラリはArduinoボードマネージャーには表示されないため、手動でインストールする必要があります。
- GitHub: OpenLog > ファームウェア > OpenLog_Firmware
- Bill GreimanのArduinoライブラリ
- SdFatLib-ベータ
- シリアルポート
- 次に、先手を打つtag変更されたライブラリのe、SerialPort.hhを変更します 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 現在のディレクトリ。標準8.3 file名前がサポートされています。例:ampたとえば、「87654321.123」は許容されますが、「987654321.123」は許容されません。
- Example: 新しい file1.txt
- 追加 File – 末尾にテキストを追加 FileシリアルデータはUARTからストリームで読み出され、 fileシリアル端末には出力されません。 File この関数が呼び出されたときに存在しない場合、 file 作成されます。
- Example: 新規追加file.csv
- 書く File OFFSET – テキストを File オフセット位置から fileテキストはUARTから1行ずつ読み取られ、エコーバックされます。この状態を終了するには、空行を送信してください。
- Example: logs.txt 516 を書き込む
- rm File – 削除する File 現在のディレクトリから。ワイルドカードがサポートされています。
- Example: rm README.txt
- サイズ File – 出力サイズ File バイト単位。
- Example: サイズ Log112.csv
- 出力: 11
- 読む File + START+ LENGTH TYPE – の内容を出力します File STARTからLENGTHまでの範囲です。STARTを省略した場合は、 file が報告されます。LENGTHが省略された場合、開始点からの内容全体が報告されます。TYPEが省略された場合、OpenLogはデフォルトでASCII形式で報告します。出力には3つのTYPEがあります。
- ASCII = 1
- 2進数 = XNUMX
- 生 = 3
- 末尾の引数は省略できます。次の例を確認してください。ampレ。
- 基本的な読み取り + 省略されたフラグ:
- Example: LOG00004.txt を読む
- 出力: 加速度計 X=12 Y=215 Z=317
- 開始 0 から長さ 5 で読み取ります。
- Example: LOG00004.txt 0 5 を読む
- 出力: 加速
- 1 進数で長さ 5 の位置 XNUMX から読み取ります。
- Example: LOG00004.txt を読む 1 5 2
- 出力: 63 63 65 6C
- RAW で長さ 0 の位置 50 から読み取ります。
- Example: LOG00137.txt を読む 0 50 3
- 出力: André– -þ 拡張文字テスト
- 猫 File – コンテンツを書く file 16進数でシリアルモニターに viewこれは、 file SDカードを抜き差しすることなく正しく録画でき、 view の file コンピューターで。
- Example: cat LOG00004.txt
- 出力: 00000000: 41 63 65 6c 3a 20 31
ディレクトリ操作
- ls – 現在のディレクトリのすべての内容を一覧表示します。ワイルドカードがサポートされています。
- Exampル: ls
- 出力: \src
- md サブディレクトリ – 現在のディレクトリにサブディレクトリを作成します。
- Example: md Example_スケッチ
- cd サブディレクトリ – サブディレクトリに変更します。
- Example: cd Hello_World
- cd .. – ツリー内の下位ディレクトリに移動します。「cd」と「..」の間にスペースがあることに注意してください。これにより、文字列パーサーはCDコマンドを認識できます。
- Example: cd ..
- rm サブディレクトリ – サブディレクトリを削除します。このコマンドを実行するには、ディレクトリが空である必要があります。
- Example: rm temps
- rm -rf ディレクトリ – ディレクトリと fileその中に含まれるもの。
- Example: rm -rf ライブラリ
低レベル関数コマンド
- ? – このコマンドは、OpenLog で使用可能なコマンドのリストを表示します。
- ディスク – カードの製造元ID、シリアル番号、製造日、カードサイズを表示します。例:ample 出力は次のとおりです。
- カードタイプ: SD2 メーカーID: 3
- OEM ID: SD
- 製品: SU01G
- バージョン: 8.0
- シリアル番号: 39723042 製造日: 1年2010月 カードサイズ: 965120 KB
- init – システムを再初期化し、SDカードを再度開きます。SDカードが応答しなくなった場合に役立ちます。
- 同期 – バッファの現在の内容をSDカードに同期します。このコマンドは、バッファ内の文字数が512文字未満で、それをSDカードに記録したい場合に便利です。
- リセット – OpenLogをゼロにジャンプさせ、ブートローダーを再実行し、その後initコードを実行します。このコマンドは、設定を編集する必要がある場合に役立ちます。 fileOpenLogをリセットし、新しい設定を使い始めてください。ボードをリセットするには、電源を入れ直すことが依然として推奨される方法ですが、このオプションも利用可能です。
システム設定
これらの設定はconfig.txtで手動で更新または編集できます。 file.
- Echo STATE – システムの状態を変更し、システムメモリに保存されます。STATEはオンまたはオフに設定できます。オンの場合、OpenLogは受信したシリアルデータをコマンドプロンプトにエコーします。オフの場合、システムは受信した文字を読み返しません。
注記: 通常のログ記録中はエコーはオフになります。ログ記録中は、受信データのエコーに必要なシステムリソースが高すぎます。
- 詳細エラー報告の状態を変更します。STATE はオンまたはオフに設定できます。このコマンドはメモリに保存されます。詳細エラー報告をオフにすると、OpenLog はエラーが発生した場合に、不明なコマンド (COMMAND.D..T) ではなく、「!」のみで応答します。組み込みシステムでは、エラーメッセージ全体よりもコマンド文字列の方が解析が容易です。端末を使用している場合は、詳細エラー報告をオンのままにしておくと、エラーメッセージ全体を確認できます。
- 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 : 通信ボーレート。デフォルトは9600 bpsです。Arduino IDEと互換性のある許容値は2400、4800、9600、19200、38400、57600、115200です。他のボーレートも使用できますが、Arduino IDEシリアルモニターを介してOpenLogと通信することはできません。
- Escap:e エスケープ文字の ASCII 値 (26 進形式)。36 は CTRL+z で、デフォルトです。XNUMX は $ で、よく使用されるエスケープ文字です。
- Esc #: 必要なエスケープ文字の数。デフォルトでは0なので、コマンドモードに切り替えるにはエスケープ文字を254回押す必要があります。指定できる値は0~XNUMXです。この値をXNUMXに設定すると、エスケープ文字のチェックが完全に無効になります。
- モード システムモード。OpenLogはデフォルトで新規ログモード(0)で起動します。許容値は0 =新規ログ、1 =シーケンシャルログ、2 =コマンドモードです。
- Verb: 詳細モード。拡張(verbose)エラーメッセージはデフォルトでオンになっています。これを1に設定すると、詳細なエラーメッセージ(unknown command: delete ! など)が表示されます。これを0に設定すると、詳細なエラーメッセージはオフになりますが、エラーが発生した場合は ! で応答します。組み込みシステムのエラーを処理する場合は、詳細モードをオフにすると便利です。
- エコー: エコーモード。コマンドモードでは、デフォルトで文字がエコーされます。この値を0に設定すると、文字のエコーがオフになります。エラー処理などで、送信したコマンドがOpenLogにエコーバックされないようにしたい場合は、この設定をオフにすると便利です。II
- iignoreRXEmergency Override。通常、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よりも速い記録時間を備えています。これはカードの「クラス」とカードに既に保存されているデータの量によって影響を受ける可能性があります。解決策としては、ボーレートを下げるか、高いボーレートで送信する文字間隔を長くすることです。
少ない、または全くないカードを使うことを忘れないでください file3.1GBのZIPファイルが入ったmicroSDカード filesまたはMP3ファイルは、空のカードよりも応答時間が遅くなります。microSDカードをWindows OSでフォーマットしていない場合は、microSDカードを再フォーマットし、DOSファイルを作成してください。 fileSD カード上のシステム。
カードメーカー、ラベルの異なるカード、カードサイズ、カードクラスは多種多様であり、必ずしも全てが正常に動作するとは限りません。当社では通常、8bpsで問題なく動作する4GBのクラス9600 microSDカードを使用しています。より高いボーレートやより大きなストレージ容量が必要な場合は、クラス6以上のカードをお試しください。
Serial.print() ステートメント間に小さな遅延を追加することで、OpenLog に現在のバッファを記録する機会を与えることができます。
- シリアル.begin(115200);
for(int i = 1; i < 10; i++) { Serial.print(i, DEC); Serial.println(“:abcdefghijklmnopqrstuvwxyz-!#”); }
多くの文字が連続して送信されるため、OpenLogは正しくログに記録されない可能性があります。大きな文字の書き込みの間に15ミリ秒の小さな遅延を挿入すると、OpenLogは文字の欠落なく記録できるようになります。
- シリアル.begin(115200);
for(int i = 1; i < 10; i++) { Serial.print(i, DEC); Serial.println(“:abcdefghijklmnopqrstuvwxyz-!#”); delay(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入門
- ヴェルニエ・フォトゲート
もっとインスピレーションが必要ですか?以下の関連チュートリアルをご覧ください。
- フォトンリモート水位センサー
貯水タンク用のリモート水位センサーの構築方法と、その測定値に基づいてポンプを自動化する方法を学びましょう。 - Blynk Board プロジェクトガイド
再プログラミングすることなく Blynk ボード上にセットアップできる一連の Blynk プロジェクト。 - Tessel 2 で Google スプレッドシートにデータを記録する
このプロジェクトでは、IFTTTを使用してGoogleスプレッドシートにデータを記録する2つの方法について説明します。 web 接続またはUSBペンドライブと「スニーカーネット」なし。 - PythonとMatplotlibでセンサーデータをグラフ化する
matplotlib を使用して、Raspberry Pi に接続された TMP102 センサーから収集された温度データのリアルタイム プロットを作成します。
チュートリアルに関するフィードバックがある場合は、コメントをご覧いただくか、テクニカルサポートチームまでご連絡ください。 TechSupport@sparkfun.com.
よくある質問
OpenLog に推奨される電源入力は何ですか?
OpenLog に推奨される電源入力は 3.3V ~ 5V です。
OpenLog はアイドル時にどれくらいの電流を消費しますか?
OpenLog は、microSD カードが挿入されていないアイドル状態のときに約 2 ~ 5 mA を消費し、microSD カードが挿入されているときは約 5 ~ 6 mA を消費します。
OpenLog への microSD USB リレーの目的は何ですか?
microSD USB リーダーを使用すると、OpenLog で使用される microSD カードからコンピューターにデータを簡単に転送できます。
ドキュメント / リソース
![]() |
SparkFun DEV-13712 はんだ付け用穴付きパーティクルフォトン [pdf] ユーザーガイド DEV-13712、DEV-13955、DEV-13712 はんだ付け用穴付きパーティクルフォトン、DEV-13712、はんだ付け用穴付きパーティクルフォトン、はんだ付け用穴、はんだ付け用、はんだ付け |