オープンソースロガーOpenLogの互換品作ってみた その3 使い方

OpenLogの互換品を作った目的である、SDカードに書き込んだ情報をUARTで吐き出す方法です。

ArduinoのSDカードのサンプルプログラムの中にある[SD]→[DumpFile]とほぼ同じ内容を前述の方法で書き込みます。

これでInaLogからSDカードに書き込まれたdatalog.txtファイル(変更可能)から1byteづつデータを読み出すことができます。

この吐き出されたデータをマイコンで受け取ってやることで色々使えるところがあるかなぁと思います。(まだ何も使ってないけど笑)

/*
  OpenLog互換品(InaLog)でSDカード内のdatalog.txtからUARTでデータ吐き出し
*/

#include <SD.h>
const int chipSelect = 10;

void setup()
{
 // シリアルポートオープン:
  Serial.begin(9600);
  Serial.print("Initializing SD card...");
  pinMode(chipSelect, OUTPUT);

  // SDカードが存在しない場合、エラー吐く:
  if (!SD.begin(chipSelect)) {
    Serial.println("Card failed, or not present");
    return;
  }
  Serial.println("card initialized.");

  // ファイルは一度に一つ開ける。次のファイル開く場合は一旦閉じてから
  File dataFile = SD.open("datalog.txt");

  // ファイルから1byte読み出しシリアルポートから吐き出し:
  if (dataFile) {
    while (dataFile.available()) {
      Serial.write(dataFile.read());
    }
    dataFile.close();
  }  
  // ファイルが開けない場合はエラー:
  else {
    Serial.println("error opening datalog.txt");
  } 
}

void loop()
{
}

オープンソースロガーOpenLogの互換品作ってみた その2 作り方

OpenLogの互換品を使って遊んでいるわけですが,自分で使おうと思っていたので名前をInaLogってつけています.

今回はその使い方と作り方の公開をしておきます.使い方は基本的にはOpenLogと同じです.
データシートとArduinoによるサンプルスケッチを見れば全てわかると思います.
OpenLogのwikiを見るとUAV(無人飛行機)のデータロガーに使われているのがトップページに出てきて心躍ります. 続きを読む

オープンソースロガーOpenLogの互換品作ってみた その1

大学生がプロジェクト方式でものつくりするような場面をたくさん見てきましたし、自分でも実践してきました。

この中でたまに問題になるのはセンサーからのデータ取得(AD変換)やLEDやLCDでの表示はできるけど、SDカードへの記録が出来なかったということです。ちゃんとやってる人からするとショボイところで躓くようだけど、初心者の集まりだと実際大変に思ってる人は多そうです。ArduinoとかmbedだったらSDカードも簡単に取り扱えるけど、それでも悩む人は悩むみたいです。少し前の自分もそうでしたし。

これを解決するのにいいものが売っています。SparkfunのOpenLogというものです。日本だとスイッチサイセンスで販売されています。実際使っていましたが、すごく簡単にログが取れて良い商品でした。

UARTでデータを送るとSDカードにそのデータが保存されます。SPIやSDIOという通信バスで繋ぐより速度は遅くなりますが、プログラムは非常に簡単になります。

概要

  • OpenLogはオープンソースハードウェアなので回路図も配線図もコードもオープン
  • 部品は全て秋月電子通商で買えるように部品変更
  • MPUはArduino Unoなどで使われるATmega328Pの表面実装部品
  • Eagle設計→FusinPCB発注
  • FusionPCBに送ったファイルも公開するので基板をFusionPCBに発注して自分でハンダ付けすれば使える
  • 2個以上作るならOpenLog買うより安い(かも)
  • AVRライターで中身を書き換え易い(本家はSDカードスロットと書き込みピンが近すぎて書き込みにくい)

例えばロガーではなく、SDカードに貯めたデータをシリアル通信で吐き出すモジュールにすることも出来ます。これは次の記事とかに書こうと思います。この互換品の細かい仕様についても次の記事に書きます。

本家のOpenLogと比較するとこのぐらいのサイズの違いです。部品縛りがあったのでちょっと大きくなりました。写真はRev.Aのもので(上の写真も)、現在はRev.Bを作っています。というかRev.Aの基板は移動中に無くしてしまいました(涙