Products/7IMUduino
■ 7IMUduino
7IMUduino (ないむどぅいーの)は、WiFi対応の慣性計測装置(IMU)です。ポピュラーなWiFiマイコンESP8266EXを採用し、Arduinoで自由な開発が可能です。3軸ジャイロ+3軸加速度+高度(温度,湿度,気圧センサーより計算)の7自由度(7DoF)を持ちます。7DoF + IMU + Arduino = 7IMUduinoという安直な命名です。
【ご注意】本製品はエンジニア向けの実験的な製品です。扱いには相当の工学的知識・電気的知識を要します。本製品を使用して生じた損害については責任を負いかねます。
【NOTICE】This products are experimental products for engineers. Handling of this product requires a significant amount of engineering and electrical knowledge. I cannot assume any responsibility whatsoever for damages that result from usage of this product.
仕様
- 超コンパクト(28mm X 43mm)
- WiFiマイコン搭載(ESP8266EX,技適対応)
- 3軸加速度, 3軸ジャイロセンサー搭載(Invensense MPU-6050)
- 気温, 湿度, 気圧センサー搭載(Bocsh BME280)
- フルカラーLED搭載(Worldsemi WS2812B)
- リチウムポリマー電池対応(1セル,3.7V,充電電流200mAh)
このボードの特徴
実績のあるIMUチップMPU-6050
Arduinoの世界ではIMUチップとして実績のあるInvenSense社製MPU-6050を採用しました。
スイッチサイエンス扱いの製品ではSparkfun MPU-6050搭載三軸加速度三軸ジャイロセンサモジュール(https://www.switch-science.com/catalog/1208/)に相当します。
MPU-6050にはDMP(Digital Motion Processor)と呼ばれるプロセッサが搭載されていて、センサーデータを統合して、クォータニオン(四元数)にして出力してくれます。クォータニオンはDirectX, Processing, MATLABなど画像処理ライブラリに必ずといって良いほどサポートがあり、3D CGによるビジュアライゼーション、人体などのモーションキャプチャ、ロボットやドローンなどの慣性体の挙動解析などを助けます。
もちろん、従来からのオイラー角や、単純な3軸加速度も取得することができます。iOSアプリのよくあるような、本体を傾けると画面内も回転する・・・といった単純なGUI応用はもっと簡単に行うことができます。
超小型温度・湿度・気圧センサBME280
BME280は3mm角以下の極小チップで3種類の環境情報を計測可能です。
スイッチサイエンス扱いの、BME280搭載 温湿度・気圧センサモジュール(https://www.switch-science.com/catalog/2236/)と同じチップです。
本製品ではESP8266EXという最大の熱源がそばにいるので苦労しましたが、チップの配置を工夫することで測定誤差に対する影響を最小に抑えました。
「IoT云々」の文脈では部屋や農場の環境を測定することが良くありますが、本製品の場合は何も付け加えずに測定が可能です。
さらに、気圧が測定できることで標高(海抜)がわかります。
海面気圧P0, 測定した現在地の気圧P1, 標高Hとすると以下の近似式が成り立ちます。
H = 18410.0 * (log10(P0) - log10(P1))
BME280は気圧±1hPa程度の精度がありますので、だいたい10m程度の誤差で標高がわかります(※ある程度移動平均をとる必要はあります)
フルカラーLED搭載
Arduinoの世界ではポピュラーな、マイコン内蔵フルカラーLED WS2812Bを搭載しています。大変便利なLEDですが電気的にセンシティブな挙動をすることでも有名です。まず3.3V系だと安定して動きません。
7IMUduinoでは、レベル変換回路と無電圧降下ゲート回路により、USB電源でもリチウムポリマー充電池でも安定した発光を可能としました。
5VレンジADC
ESP8266EXはTOUTと呼ばれるADCが1ch搭載されていますが、電圧範囲が0~1Vでとても使いにくいです。そこで分圧回路を経由して5Vレンジで使えるようにしました。
ADCはJP3のPin8に配置しました。従来のTOUTもJP1のPin5に配置されていますので配線は可能です。
リチウムポリマー充電池対応
往年のパック○パワーグロー○のように、人体の動きをモーションキャプチャしたい用途では、電源やUSBワイヤーの有線接続はかなり煩わしいものです。電池で動いたらなあ・・・できれば省スペースで・・・そんな希望に本製品は答えます。
本製品はリチウムポリマー充電池に対応しています。単セル,3.7Vで、充電電流200mA以上を許容するものが対象です。スイッチサイエンスのリチウムイオンポリマー電池400mAh(https://www.switch-science.com/catalog/821/)などが適しています。
しかし、リチウムポリマー充電池の扱いには、相応の電気的知識を必要とします。扱いを間違えると笑っちゃうほど簡単に爆発・炎上します。一流メーカーのノートパソコンから始まり果てはジャンボジェットまで爆発・炎上している部品です。取扱いには注意してください。
もう、さらに都合の悪いことに、同じJST PH 2ピンコネクタにも関わらず市場に流通している電池の中にはプラスマイナス逆のものが存在します!!本製品はJST PH 2ピンで1番ピン側がプラス(+)にアサインされている充電池が対象です。ボードの半田付け時にコネクタの向きを良く確認してください。
なお、充電機能はMicrochip MCP73831Tチップで実現されています。スイッチサイエンス扱いの製品では小型のリチウムイオン電池充電器(https://www.switch-science.com/catalog/550/)に相当します。
有機ELディスプレイが搭載可能
市場に良く出回っている0.96インチ,128x64ピクセル,i2cバスの有機ELディスプレイモジュールが子亀のように搭載できるためのピンソケットを用意しました。
本当に便利なんです、画面があると。プロトタイピングこそディスプレイが必要だと思います。
対応モジュールは、モジュールサイズ27.3mm X 27.8mmで、上から見て左からGND,VCC,SCL,SDAの順番のピンヘッダを備えたものに限ります。この製品は類似品が大量に出回っており、微妙にピン配置,ボードサイズ,穴位置が異なります。本製品では楕円状のネジ穴を備える工夫で、ある程度の誤差を許容できるようにしました。
5V電源対応&Arduino IDEで開発可能
本製品はArduino Pro mini用のシリアル変換アダプタを介して、Arduino IDEで開発が可能です。
例えばスイッチサイエンス扱いのFTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)(https://www.switch-science.com/catalog/1032/)などがお薦めです。
Arduino標準の5Vのまま供給できます。他社のESP8266ブレイクアウトにありがちな「3.3V電源が足りなくてESP8266が挙動不安定になる」といった問題を極力防ぐため、電源レギュレータには信頼性の高いトレックスセミコンダクタのXC6222を採用しています。
シリアル変換アダプタを介して開発している間は、microUSB端子には何もつながなくてかまいません。ちゃんとフルカラーLEDも光ります。本製品は(1)microUSB, (2)リチウムポリマー充電池, (3)シリアル変換アダプター経由の3通りの電源供給に対応しています。