United Statesからアクセスのようです。言語設定をEnglishに切り替えますか?
Switch to English site
Skip to main content

AdafruitのArduino互換データロガー Adalogger

ローコストなロギングを実現するコンパクトなARM Cortex-M0ボード

Adafruit Featherは、柔軟性があり、小型軽量のArduino互換の開発ボードシリーズです。 小型のフォームファクターは共通していますが、それぞれLEDマトリックスディスプレイやWiFi、LoRaモジュールなどが搭載されています。Featherボードシリーズの更なる詳細については、 Adafruitのウェブサイトをご覧ください。

この記事では、USBやマイクロSDソケット、LiPoバッテリ充電回路の搭載されたデータロガーAdaloggerについて詳しく見ていきます。Arduino IDEを使ってセットアップを行い、Adafruit 加速度センサボードと接続して、データを取得してみます。

Featherボード


AdaloggerにはARM Cortex-M0コア搭載のATSAMD21G18とATmega32u42が載った2つのバリエーションがあることに注意してください。この記事で取り上げているのは、ARM Cortex-M0コア搭載のものです。

まず、追加のペリフェラルを接続する前に、Arduino IDEでAdaloggerを動作させてみましょう。これで、いくつかのデモコード(Arduinoではスケッチとよばれる)を試すことができます。

最新バージョン(記事執筆時点では1.6.13)のIDEを起動して、Additional Boards ManagerでURLを追加してから、ボードを接続する必要があります。Preferencesメニューから、Additional Boards Managerオプションを選択し、次のURLを指定します。

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

OKをクリックして保存します。次に、ToolsメニューからBoard > Board Managerを選択します。スクロールして、Arduino SAMD Boards (32-bits ARM Cortex-M0+) by Arduinoという項目を探し、最新バージョン(記事作成時点では1.6.9)をインストールします。また、さらにBoard Managerで、Adafruit SAMD Boards by Adafruitという項目を探し、最新バージョン(記事作成時点では1.0.13)をインストールします。絶対必要ではないですが、Arduino IDEを一度閉じて、再起動しましょう。Windowsを使っている場合追加のドライバをAdafruitからダウンロードし、インストールする必要があります。インストールの際には、"Feather M0"が選択されていることを確認しておいてください。

マイクロUSBのついたケーブルで、PCとAdaloggerを接続します。ボードが自動的にUSB電源に切り替わるので、ジャンパを付け替えたり、スイッチを切り替えたりする必要がありません。コンピュータがデバイスを認識して、COMポートを作成します。

Tools>Ports へ進み、Adafuit Feather M0ボードに割り当てられたCOMポートが表示されます。これを選択し、デモスケッチをボードにアップロードする準備が整いました。まず初めに、Files>Examples>Basics>Blinkにある"Blink″スケッチを使います。

スケッチを開き、ボードにアップロードしてみてください。上に紹介した手順がうまく完了していれば、ボード上のLEDが点滅するようになるはずです。

SDカードに記録したデータを保存する

Adaloggerにスケッチをアップロードできることがわかったら、何かデータをSDカードに書き込みます。まず、FATファイルシステムでSDカードをフォーマットします。フォーマットには このツールを使いました。

Arduino IDEに付属しているサンプルスケッチを使い、カードの情報を読みだすことで動作テストにもなります。File>Examples>SD>CardInfoを開き、スケッチをAdaloggerにアップロードします。IDEの右上にある小さな虫めがねマークをクリックして、シリアルコンソールを開きます。下記のスクリーンショットのようななものが表示されると思います。

ここで、データをSDカードに書き込んでみましょう。これにもサンプルスケッチがあり、IDEに付属していますが、AdafruitのGitHubによりシンプルなバージョンがあります。このコードを少し改変して、AdaloggerのLiPoバッテリの電圧を読み込み、記録するようにします。この機能は、ボード上にあらかじめ搭載されているので、接続間違いではないかと不安になる必要がなく、シンプルにコードが動作しているかどうかわかります。

The example sketch can be foundサンプルスケッチはこちらにあります。

シリアルコンソールにこのように読み取った電圧を表示しました。ログファイルに書き込まれたデータを確認するため、Adaloggerの電源を落とし、SDカードを抜いて、PCに接続して.txtファイルを開きました。しかし、残念なことにいくつかのtxtファイルが存在するものの、どれも空で何のデータも書き込まれていませんでした。

Adafruitのドキュメントを少し詳しく見てみると、データは一度バッファに保存されていて、50データポイントごとに書き込まれるとされていました。ひょっとすると、ロギングする時間が十分でなくデータが保存されなかったのではないかと思い、数分に及ぶ長いデータを記録しましたが、やはりデータは得られませんでした。そこで、強制的にデータを書き込むために、次の行を追加しました。

logfile.flush();

これにより問題は解決しました。ただし、Adafruit のドキュメントによれば、この動作を行うことでAdaloggerの消費電力が大体3倍になってしまうとされており、低消費電力が必要なアプリケーションには、最適とは言えません。

本格的なデータを記録する

Adafruitの製品には、小さく扱いやすいブレイクアウトボードに実装されたさまざまなセンサや入力デバイスが用意されており、ホビイストが簡単にRaspberry PiやArduinoを使ってプロトタイピングを行うことができるようになっています。

そのようなモジュールの一つであるI2Cで接続可能な3軸加速度センサボードを接続することにしました。Adaloggerと接続し、その値を記録することにします。これら2つのボードを接続することは、そこまでシンプルとは言えません。ボードにピンヘッダをはんだ付けし、両端がメスのジャンパーケーブルでVCC、GND、SCL、SDAをそれぞれ接続します。

続いて、簡単な取り付け用のプレートを設計し、レーザーで切り出して、ボードとバッテリを固定します。これにより、すっきりとすべてのものを固定でき、余った配線や金属がボードの裏に触れてしまうことも防ぐことができます。

ほかのAdafruit製品と同じように、加速度センサブレイクアウトボードも、使いやすいリファレンスドキュメントとサンプルコードが付属しています。センサからデータを取得する前に、AdafruitのGitHub(ここ と ここ)から2つのライブラリをダウンロードして、インストールする必要がありました。

このようなライブラリは、ブレークアウトボートと共に提供されていることは価値があり、重要なことです。これらなしでは、このようなセンサを利用することは、とくに電子機器に関する経験のない人々にとってはかなり難しいことになります。ブレイクアウトボードが仮にあったとしても、ライブラリなしでは、取得できるデータは数値であり、これから意味のある使いやすいデータを得るにはさらに計算を行わなければならないでしょう。Adafruitではライブラリを作成して、SI単位系でのデータ取得を可能にしてくれているために、われわれはただプロジェクトのそのものに集中すれば良いようになっているのです。

どのようにライブラリをインストールすればよいかについての詳しい説明についてはこちらをご覧ください。

ライブラリをインストールして、IDEを再起動(必ず必要ではありませんがライブラリが正しくインストールされていることを確実にするにはこれが良い方法です)して、うまく動作していることを確認するため、サンプルスケッチ (File>Examples>Adafruit MMA8451 Library>MMA8451 demo)をAdaloggerにアップロードします。


加速度センサのサンプルスケッチから必要な部分を、先ほど作ったデータロギングスケッチに移植して、SDカードに加速度センサのデータを記録できるようにしました。

 

最終的なコードはこちら

まとめ

AdafruitのArduino互換ボードは、ブレイクアウトボードとモジュールの製品群のように拡大を続けていきます。彼らは、実直にホビイストや教育目的、メイカーマーケットをターゲットとしていますが、素早いプロトタイピングで面白いプロジェクトを作り上げようとしている全ての人に便利なものとなっています。

オープンデザイン(Adafruitはボードレイアウトと回路図をほとんどの製品で公開しています)と素晴らしいドキュメント、ソフトウェアが合わさることで、素晴らしいユーザエクスペリエンスが提供されており、その一方で足りない部分は活発なオンラインコミュニティが補ってくれています。多くのボードが店頭に並び、世界中で使われており、Adafruitは間違いなくメイカーが電子機器のプロジェクトで必要な多くの要件を満たそうとしています。