ArduinoIDEで動作を自由にプログラミング可能な、19種類以上のセンサーに対応したマルチセンサーロガーです。加速度/姿勢/回転/地磁気/気温/湿度/気圧/空気品質などのデータをmicroSDに記録できます。USB-Aポートに直挿し可能な設計となっており、車などモバイルで運用可能です。
主な特徴


19種類以上の測定に対応したセンサーを搭載
19種類以上の測定に対応し、microSDスロットを利用したロギング、データ解析に最適です。 モーションセンサーにはBosch社/HillcreastLabs社共同開発のBNO080を採用しました。 センサー内部に計算用MCUを搭載しており、3軸加速度、磁場、ジャイロスコープ(角速度)を動的キャリブレーションしながら 測定できる上、データを処理(Fusion)することで、姿勢を示すクォータニオン、行動予測、歩数カウント、タップ検出、衝撃検出など 複雑なデータを出力可能です。環境センサーとして温度、湿度、気圧の測定が可能なBosch社のBME280、および 空気品質の測定が可能なams社のCCS811を搭載しました。CCS811は独自のアルゴリズムにより、空気中の等価TVOC値[ppb]を出力できます。
ArduinoIDEで開発可能
本基板はご自身で動作をプログラミングできるため、ユーザー様の目的に合ったフレキシブルな制御、測定やロギングが可能です。 コントローラーにはATmega1284Pを採用しました。Arduinoで採用されているATmega328Pと同一ファミリーで、 世界的に人気の高いArduinoIDEで開発することができます。既に様々なライブラリが用意されており、 開発コストを低減できます。また、ATmega1284PはATmega328Pと比べてプログラムROMが4倍、SRAMメモリーが8倍となっており、 複雑なアプリケーションにも対応できます。
測定用プログラム書き込み済みで出荷
実用可能な測定プログラムを書き込んで出荷致しますので、プログラムを作成しなくても測定が開始できます。 100ミリ秒、1秒、1分の3種類の間隔でセンサー値をマイクロSDへ記録できるほか、 シリアル通信や外部OLEDディスプレイ(オプション品) でリアルタイム表示、時刻の設定が可能となっています。 ソースコードは応用例のページで公開しており、自由に改変してご利用いただけます。 (お客様の責任でご利用いただくことが条件となります。プログラムは将来変更される可能性があります。)
コンパクト、モバイルに最適
幅30mm x 長さ77mmのコンパクトサイズで、USB-Aポートに直挿し可能な設計となっており、モバイルに最適です。 PCのUSBポート、市販のモバイルバッテリーや、車のUSBポートなどに挿すだけで計測できます。 また、PCと接続時はプログラム書き込みやシリアル通信によるデータ取得が可能です。
低消費電力
不要なICの消費電力をカットできる機能、測定していないときはメインマイコンをSleep状態にできる機能など、 低消費電力に対応した回路設計となっております。SleepMode時は消費電流を最小1mA以下に抑えることができます。 バッテリーを利用した長時間測定が可能です。(測定の頻度や有効にするセンサーによって消費電流は変動します)
RTC(リアルタイムクロック)搭載
Maxim社製RTC(リアルタイムクロック)DS3231MZ+を搭載しているので、電源を落とした状態でも時刻を保持できます。 ログを残す際に時刻データも記録できるので、後からの解析を簡単にできます。 RTCを利用するには別途CR2032コイン電池が必要となります。 電池ホルダーにはMPD社製SnapDragonを採用しました。取り外しが容易で、激しい動きでも電池の落下を防ぎます。
LED、スイッチ搭載
ユーザー入力スイッチを4個、LED4個を搭載しています。ステータスを表示したり、スイッチで直接本基板を操作することができます。 また、別売りのOLEDディスプレイ を接続すると文字を表示させることもできます。
Revisionの違いについて
Rev1.x間の違いは製造上の都合による配線パターンの最適化のみとなります。 基板寸法、部品位置および回路に変更はなく、ソフトウェアも完全互換で動作します。
購入
完成品
部品一式を基板に実装した完成品になります。オプションのOLEDディスプレイ、リアルタイムクロック用コイン電池は付属しません。
利用例


応用アプリケーション例
- 車両、航空機、船舶、ロボット、動体などの加速度、回転、姿勢のモニタリング、ロギング
- モバイルバッテリーを利用したポータブル気温、湿度、気圧のモニタリング、ロギング
- 室内空間の空気品質モニタリング、ロギング
- 歩数計
- 持ち歩いている人の行動予測
- 衝撃、揺れ、動き検出
- BNO080モーションセンサー、BME280温湿度気圧センサー、CCS811空気品質センサーの試用、開発
- 本基板を使ったマルチセンサーロガーの例 を紹介しています。
これらの応用例を実現するプログラム、機器は付属しません。 ご自身で準備していただく必要があります。
ブロックダイアグラム

仕様
項目 | 仕様 |
---|---|
基板寸法(USB端子、microSD含まず) | 幅30mm x 60mm |
基板寸法(USB端子、microSD含む) | 幅30mm x 77mm |
USB端子 | TypeAオス |
USBシリアルインターフェース | FT231X |
Atmega1284P電源電圧 | 3.3V |
Atmega1284Pクロック | 8MHz |
I2C拡張端子(J4)出力電圧、電流 | 3.3V, Max 100mA |
microSD | SPI接続。SD/SDHCに対応、SDXCには非対応 |
センサーデータ記録レート | 最大50Hz (有効センサー、microSDの性能によって変動) |
使い方
出荷時に書き込み済みのプログラムをそのまま使用される場合は、応用例のページの仕様をご参照下さい。
開発環境、プログラム書き込み方法については以下をご参照下さい。
- Arduino IDEのインストールと設定 (Windows, Mac, Linux対応)
- ATmega1284P搭載製品の設定とプログラム書き込み方法
- Arduino IDEプログラミングの基礎とシリアルモニターの使い方
以下の説明では、ArduinoIDEのピン番号の表記はボード設定Pinout:Standardに準拠しております。
USB
本基板用の電源はUSB端子より供給されます。電源が入ると自動的にプログラムが開始されます。また、USB端子を通じてPCとシリアル通信を行うことが可能です。 USBシリアルインターフェースにはFTDI社製FT231Xを使用しております。お使いのOSに応じてドライバーソフトをインストールしてください。
スイッチ
スイッチ | 機能 | ピン(MCU) | ピン(ArduinoIDE) | 補足 |
---|---|---|---|---|
SW1(白色) | MCUリセット | – | – | |
SW2(青色) | ユーザー入力 | PB2 | 2 | 押すとLOW。内部プルアップが必要。 |
SW3-1 | ユーザー入力 | PC2 | 18 | ONでLOW。内部プルアップが必要。 |
SW3-2 | ユーザー入力 | PC3 | 19 | ONでLOW。内部プルアップが必要。 |
SW3-3 | ユーザー入力 | PC4 | 20 | ONでLOW。内部プルアップが必要。 |
SW3-4 | FT231X ON/OFF | – | – | プログラム書き込み、PCと通信時はON。省電力で稼働させる際はOFF。 |
LED
LED | 機能 | ピン(MCU) | ピン(ArduinoIDE) | 補足 |
---|---|---|---|---|
LED1(緑色) | ユーザー出力 | PB0 | 0 | HIGHで点灯 |
LED2(黄色) | ユーザー出力 | PC5 | 21 | HIGHで点灯 |
LED3(赤色) | ユーザー出力 | PC6 | 22 | HIGHで点灯 |
LED4(白色) | ユーザー出力 | PC7 | 23 | HIGHで点灯 |
LED20(橙色) | USB Serial通信 | – | – | 受信中点灯 |
LED21(橙色) | USB Serial通信 | – | – | 送信中点灯 |
RTC
RTCはDS3231MZ+を搭載しています。I2C経由で時刻の設定、取得ができるほか、アラームを設定すると指定した時間に INT端子からLOWが入力されます。フラグをクリアすることでHIGH入力に戻ります。電池ホルダーにCR2032コイン電池をセットすると、 電源OFF時も時刻を保持し続けます。
RTCの32kHz端子より出力しているクロックはBNO080の動作に必要ですので、OFFにしないようにしてください。 起動時はデフォルトでONになります。
詳細はDS3231MZ+データシートをご参照下さい。
DS3231MZ+ | 機能 | ピン(MCU) | ピン(ArduinoIDE) | 補足 |
---|---|---|---|---|
INT | 割込み入力 | PD3 | 11 | RTCのアラームの条件を満たすとLOW入力。 |
I2C | データ送受信 | PC0, PC1 | – | I2Cアドレス0x68。 |
BNO080
BNO080との通信にはHillcreastLabs社のSH2プロトコルを使用する必要があります。詳細は BNO080データシート 及び BNO080 SH2プロトコルリファレンスマニュアル をご参照下さい。
BNO080 | 機能 | ピン(MCU) | ピン(ArduinoIDE) | 補足 |
---|---|---|---|---|
RST | リセット | PB3 | 3 | LOW出力でリセット |
BOOT | ブートモード | PB1 | 1 | LOW出力でリセットするとブートモードで起動。通常はHIGH出力。 |
INT | 割込み入力 | PD2 | 10 | BNO080からデータ送信要求時にLOW入力。 |
I2C | データ送受信 | PC0, PC1 | – | I2Cアドレス0x4B。 |
各軸の方向は以下の図の通りです。

BME280
詳細はBME280データシートをご参照下さい。
BME280 | 機能 | ピン(MCU) | ピン(ArduinoIDE) | 補足 |
---|---|---|---|---|
I2C | データ送受信 | PC0, PC1 | – | I2Cアドレス0x76。 |
CCS811
空気品質センサーCCS811を使用する際はWAKEをLOWにして動作させてください。動作中は常に15mA程度の電流を消費します。 起動状態から省電力のため停止する場合は、WAKEをHIGHにした上でリセットしてください。
初めて起動する際は、測定値が安定するまで合計48時間のエージング動作が必要です。また、エージング完了後も、 毎回の起動後20分程度が安定までに必要です。
高温状態で空気品質を測定するため、センサー動作時は若干発熱します。BME280への影響が少なくなるように設計しておりますが、 2°C程度温度が上昇する場合がございます。
詳細はCCS811データシートをご参照下さい。
CCS811 | 機能 | ピン(MCU) | ピン(ArduinoIDE) | 補足 |
---|---|---|---|---|
RST | リセット | PD5 | 13 | LOW出力でリセット |
WAKE | 割込み入力 | PD4 | 12 | LOW出力でデバイス動作 |
I2C | データ送受信 | PC0, PC1 | – | I2Cアドレス0x5A。 |
microSD
マイクロSDカードとはSPIで接続されております。カード挿入はCardDetect入力で判定できます。 サポートしているデバイスはSDもしくはSDHCでFATフォーマットされたものに限ります。
microSD | 機能 | ピン(MCU) | ピン(ArduinoIDE) | 補足 |
---|---|---|---|---|
CS | SPIセレクト信号 | PB4 | 4 | |
CardDetect | カード挿入検知 | PD6 | 14 | カード挿入時LOW入力。内部プルアップが必要。 |
SPI | データ送受信 | PB5, PB6, PB7 | – |
ICSP
ICSP端子を搭載しており、ライターを使用してプログラムやブートローダーの書き込みが可能です。 (ブートローダーを書き込んで出荷しますので、ArduinoIDEからのプログラム書き込みについては、本端子を使う必要はありません。) ICSP端子を使用する際は、必ずUSB-A端子が未接続状態で行ってください。電源は3.3Vとなります。 5Vではありませんのでご注意ください。端子配列は以下の通りです。
I2C拡張端子 / OLEDディスプレイ
I2C接続のOLEディスプレイ(オプション品) を装着できるJ4端子を用意しております。測定結果や状態を表示できます。 端子はGND, 3V3, SCL, SDAの順となっております。 端子配列の異なる類似のディスプレイがありますので、接続しないように注意して下さい。 また、I2Cで通信する汎用ポートとしてご利用いただけます。3V3端子から出力できる電流は最大100mAです。
消費電力
各機能の消費電力の目安(実測値)は以下の通りです。電流値は5V USBの電流値となります。
機能 | 状態 | 消費電流(平均) |
---|---|---|
ATmega1284P | 動作中 | 7mA |
LED | 点灯時 | 2-3mA |
BNO080 | 動作中 | 25mA |
CCS811 | 動作中 | 19mA |
FT231X | 動作中 | 3-4mA |
OLEDディスプレイ | 動作中 | 3-4mA |
センサーデータロギング中の消費電力の目安(実測値)は以下の通りです。電流値は5V USBの電流値となります。
ATmega1284P | LED | BNO080 | CCS811 | FT231X | 消費電流(平均) |
---|---|---|---|---|---|
ロギング10Hz | 1つ点灯 | センサー5種類 | スタンバイ | OFF | 27mA |
ロギング毎秒 | 1つ点灯 | センサー8種類 | スタンバイ | OFF | 23mA |
ロギング毎秒 | 1つ点灯 | センサー8種類 | 動作 | OFF | 41mA |
ロギング毎分 | 消灯 | スタンバイ | スタンバイ | OFF | 0.8mA |
ロギング毎分 | 消灯 | スタンバイ | 動作 | OFF | 20mA |
サンプルプログラム
プログラム | 環境 | MightyCore | 内容 |
---|---|---|---|
Interface | Arduino | 2.0.1 | ユーザースイッチSW2, SW3、LEDを制御するサンプルプログラムです。 |
RTC | Arduino | 2.0.1 | RTC(リアルタイムクロック)DS3231MZ+の時刻設定、時刻取得及びアラーム設定のサンプルプログラムです。 |
BNO080Sample | Arduino | 2.0.1 | モーションセンサーBNO080による3軸加速度測定サンプルプログラムです。 |
BME280Sample | Arduino | 2.0.1 | BME280による温湿度気圧測定サンプルプログラムです。 |
CCS811Sample | Arduino | 2.0.1 | CCS811による空気品質測定サンプルプログラムです。 |
FusionLogger | Arduino | 2.0.1 | マルチセンサーロガーの応用例です。本プログラム書き込み済みで出荷します。 |
サードパーティ製ライブラリ
以下のサードパーティー製ライブラリに含まれるサンプルプログラムも動作します。 いずれのライブラリもArduino IDEの「ツール->ライブラリを管理」よりインストールし、「ファイル->スケッチ例」より ご利用になれます。
ライブラリ | 補足 |
---|---|
SparkFun BNO080 Cortex Based IMU | モーションセンサーBNO080を制御するライブラリです。 |
Adafruit BME280 Library | 温湿度気圧センサーBME280を制御するライブラリです。begin関数のI2Cアドレスを0x76に変更(bme.begin(0x76))してご利用下さい。 |
回路図、関連資料
- 回路図
- 寸法図
- DS3231MZ+データシート
- BNO080データシート
- BNO080 SH2プロトコルリファレンスマニュアル
- BNO080 ドライバーソフトウェア
- BME280データシート
- CCS811データシート
- OLEDディスプレイ(オプション)データシート
開発依頼
本製品への機能追加などのカスタマイズや、本製品を使ったシステムの開発依頼、その他ハードウェア、ソフトウェアの開発については、有償にて承っております。ハードウェア、ソフトウェア受託開発をご参照下さい。
注意事項
関連ページ

RPZ-CO2-Sensor (Raspberry Pi用 二酸化炭素センサー/リレー 拡張基板)
Raspberry Pi(ラズパイ)用CO2センサーとリレー拡張基板です。CO2濃度を測定することで換気の目安としたり、オフィス環境の改善やスマート農業のCO2モニタリングに利用できます。CO2濃度が一定以上になった際、リレーで換気ファンなどの外部機器をON/OFFできます。7色表示可能なRGB LEDを搭載し、CO2濃度に合わせて色を変えることも可能です。

CG-CustomARGB (Arduino IDEでプログラミング可能なアドレサブルRGB LEDコントローラー)
発光パターンを自由にプログラミング可能なアドレサブルRGB LEDコントローラーです。市販のコントローラーではできないようなイルミネーションを自作できます。世界的に有名なArduino互換機として設計しており、未経験者でも簡単にプログラミングできるチュートリアルとサンプルプログラムを提供しています。

サーボモーターを指定した角度に動かす (Raspberry Pi + RPZ-RC-Servo)
サーボモーターは、モーターシャフトの角度(位置)を電気的に指示することが可能なモーターで、ものやアームを動かしたり、カメラを回転させたりすることが可能です。本記事ではRPZ-RC-ServoとRaspberry Pi(ラズパイ)を使ってサーボモーターを指定した角度へ回転させる方法を解説しています。Pythonで動作する制御ソフトウェアcgservoを使うことで簡単かつ直感的にモーターを制御することができます。