MGIM(エムジム)は、様々なマイコンを使って、簡単にインターネット接続することができるSDカードサイズのLTE-M通信モジュール搭載の小型マイコンです。Arduino Zero互換のマイコンとして、IoTのプロトタイピングや量産試作等にすぐ利用することができます。
MGIM Ver4では、コアとなる通信モジュールとしてシエラワイヤレス製のHL7800を採用し、3GIM/4GIM/SGIM と同じサイズの小型マイコンとなっています。
- LTE Cat.M1(通称 LTE-M)を使用してLPWA通信を行う。
- Sigfoxよりも広いカバーエリアで利用できる
- 3GIM/4GIMと同様に、低コストなMVNOのSIM(docomo系)が利用可能できる
- GPS機能
- HL7800が提供するGPS機能を使って、測位が可能である
- HTTP,HTTPS,TCP,UDP通信が利用できる
- HTTPS通信では、通信相手のサーバのCA証明書を別途インポートする必要がある
- HTTP/HTTPSとは別に、TCP(1コネクション)、UDPを利用することができる
- スリープ機能を利用することで、低消費電力で利用できる
- マイコンのスリープ機能を使った間欠動作を行うことで、電池で年単位の駆動が可能となる(電池の持続時間は間欠動作の間隔、プログラムの処理内容により大きく変動する)
- マイコンをスリープ(正確にはスタンバイモード)にし、HL7800の電源をOff、加速度センサおよび温度センサを利用しない、利用していないGPIOをOUTPUT(LOW)に設定した場合、消費電流を80uA程度まで抑えることができます。
MGIM(V4.1)の画像を掲載します。 なお、基板の色やレイアウト・寸法等は、今後変更となる場合がありますのでご注意ください。
- 左からMGIM(V4)本体、小型LTEフレキアンテナです。
- LTEアンテナ(必須)とGPSアンテナ(オプション)の2つのアンテナをU.FLコネクタ経由で接続することができます。
- LTEアンテナは、下記の写真の右側のコネクタ、GPSアンテナは左側のコネクタに接続します。
- NanoSIM(SIM/USIM)のコネクタがあります。
MGIM(V4.1)は、3GIM/4GMと互換性のある下記の機能を提供します。ただし、機能の使い方は大きく異なります。
- LTE-Mを介したTCP、UDPおよびHTTPの通信機能
- 時刻取得
- 位置取得
- 省電力の制御
- その他機能(電波強度の取得、ボーレートの変更、APNの切り替え等
また、4GIM(V1)や3GIM(V2.1)と同様に、SMS機能(ショートメッセージ機能)は提供しませんのでご注意ください。
項目 | 仕様 | 補足 |
---|---|---|
外形寸法 | 幅25mm * 奥行35mm * 高さ7mm | 3GIMと同一サイズ。取付穴は2.6mm径(1ヶ所) |
電源電圧 | 3.5~4.2V | 安定した3.5~4VのDC電源または3.7Vリチウムポリマ電池を推奨(5Vの供給は不可) |
消費電流 | 0.6(sleep時)~700mA(peak時) | 利用状況や電波状態に依存 |
対応バンド | LTE(Band1/3/19) | docomo(Xi)のIOT取得済。Band 1/3/19に対応 |
外付けマイコンとのインタフェース | UART | H/Wフロー制御なし |
添付アンテナ | 同梱するフレキシブルアンテナ | シールとして非金属製のケースに貼付可 |
ロジック電圧 | 3.3V固定 | |
USB 2.0 | ATSAMD21のUSB(デバイス)機能 | |
対応SIMカード | nanoSIM | 利用実績のあるSIMカード |
添付品(予定) | MGIM本体1個、フレキアンテナ1個、20ピンヘッダ1個 | GPSアンテナを利用される場合は、別売のGPSアンテナをご購入ください |
MGIM(V4.1)は、3つのスルーホール(ピンヘッダ用のCN1,CN2,CN3)を持っています。3GIM/4GIMとはピン互換ではありませんので、ご注意ください。
- CN1 (電源コネクタ)
ピン番号 | 名称 | 機能など |
---|---|---|
1 | VBAT | 3.5~4.2Vの安定した電源(リチウムポリマ2次電池など) |
2 | GND |
- CN2 (GPIOコネクタ)
ピン番号 | 名称 | 機能など |
---|---|---|
1 | D27 | |
2 | A0 | |
3 | A1 | |
4 | A2 | |
5 | D8 | |
6 | D8 | |
7 | D9 | |
8 | TX | Serial |
9 | RX | Serial |
10 | GND |
- CN3 (電源/I2C等コネクタ)
ピン番号 | 名称 | 機能など |
---|---|---|
1 | 3.3V | 最大200mAまで(供給電源にも依存) |
2 | SCL | 内部でプルアップ済み(4.7k) |
3 | SDA | 同上 |
4 | D12 | Arduino Coreの一部書き換えにより、SPIとして利用可能 |
5 | D10 | 同上 |
6 | D13 | 同上 |
7 | D11 | 同上 |
8 | GND |
MGIM(V4.1)の内部ブロック図を下記に示す:
下表に、HL7800向けArduinoライブラリ hl7800 (2021/8現在で最新はR5)が提供する機能の一覧を示します。
分類 | 機能名 | 機能概要 | 備考 |
---|---|---|---|
System | バージョンの取得 | 3GIMに搭載されているファームウェアのバージョン情報を取得する | |
初期化 | HL7800ライブラリの利用を開始する | ||
終了 | HL7800ライブラリの利用を終了する | ||
電源制御 | HL7800の電源をOn/Offする | ||
電波受信強度(RSSI)の取得 | 現在の3Gの電波強度(単位はdBm)を取得する | ||
利用可能サービスの取得 | 現在のSIMカードで利用可能なサービス(無効/パケット通信可)を取得する | ||
IMEIの取得 | 端末固有の識別番号(IMEI:International Mobile Equipment Identity)を取得する | ||
LEDの状態の取得・設定 | LEDの現在の状態の取得あるいは設定する | LEDは基板上にLED1と表記された緑色のLED | |
UART通信速度の変更 | UARTの通信速度を(4800/9600/19200/38400/57600/115200bps)変更する | 実行後ただちに有効となる | |
MGIMのリセット | HL7800をソフトリセットする | ||
現在の日時の取得 | 現在の年月日、時分秒を取得する | ||
エアプレーンモードの切り替え | エアプレーンモードの現在の状態の取得あるいは設定する | エアプレーンモードにすると消費電力を大きく節減可 | |
ATコマンドパススルーモード | ATコマンドパススルーモードに入り、ATコマンドを実行する | 指定された時間経過後に通常モードに戻ることができる | |
Web | GETリクエスト送信・レスポンス取得 | HTTP/HTTPSのGETメソッドを送信して、レスポンスを取得する | DNS使用可。ヘッダ、URL、レスポンスには最大長の制限有 |
POSTリクエスト送信・レスポンス取得 | HTTP/HTTPSのPOSTメソッドを送信して、レスポンスを取得する | 同上 | |
ルート証明書の設定 | GET/POST先のホストのルート証明書を設定する | ||
TCP/IP | TCP/IPコネクションの接続 | TCP/IPコネクションを接続する | DNS使用可。一度に一つのコネクションのみ |
TCP/IPコネクションの切断 | TCP/IPコネクションを切断する | ||
TCP/IPコネクションからのデータ読み出し | TCP/IPコネクションから指定された長さまでデータを読み出す | ノンブロッキング方式。バイナリデータも取扱可 1. | |
TCP/IPコネクションへのデータの書き込み | TCP/IPコネクションへデータを書き込む | ノンブロッキング方式。バイナリデータも取扱可 | |
TCP/IPコネクションへのデータの直接書き込み | TCP/IPコネクションへデータを直接書き込む | バイナリデータもそのままで取扱可。最大32000バイトまでを一気に書き込み可 | |
TCP/IPコネクションの状態の取得・設定 | TCP/IPコネクションの状態を取得する | ||
TCP/IPの自ソケットのIPアドレス・ポート番号の取得 | 自ソケットのIPアドレスを取得する | ||
タイムアウト時間の設定 | TCP/IP機能で使用するタイムアウト時間を取得・設定する | ||
UDP | UDPの開始 | UDP機能の開始 | |
UDPの終了 | UDP機能の終了 | ||
UDP/IPによるデータ送信 | UDP/IPを使って指定した宛先へデータを送信する | 1回の送信データが一つのパケットとして送信される | |
UDP/IPの自ソケットのIPアドレス・ポート番号の取得 | 自ソケットのIPアドレスを取得する | ||
Profile | デフォルトプロファイルの取得・設定 | 使用するプロファイル(APN)を設定する |
下表に、MGIM向けArduinoライブラリ mgim が提供する機能の一覧を示します。
分類 | 機能名 | 機能概要 | 備考 |
---|---|---|---|
システム | 初期化 | MGIMを初期化する | |
電源電圧の取得 | 供給されている電源の電圧を取得する | ||
LED | LED制御 | MGIMボード上のLEDを点灯/消灯する | |
センサ | 加速度センサ割込み設定 | 加速度センサの割込みハンドラを設定/解除する | 加速度センサは lis2dw ライブラリを使って制御 |
- 各ライブラリの使い方は、各ライブラリのサンプルスケッチを参照してみてください。
- MGIMボード上に実装されている加速度センサLIS2DWの制御は、ライブラリ lis2dw をご利用ください。
- MGIMボード上に実装されている温度センサSTTS751の制御は、ライブラリ stts751 をご利用ください。
- ライブラリhl7800に関していくつか補足します:
- UDPとTCP機能では、各々一つのコネクションまで利用できます(つまり、同時に利用できます)
- HTTPSおよびGPS関連の機能は、今後、ライブラリhl7800に組み込んでいく予定です。現状では利用できません。
- MGIMボードでHL7800のハードウェアフロー制御を利用する場合は、MGIM(V4.1)で、ハードウェアフロー制御を使用する手順を参照ください。
- docomoのXi回線を利用します。そのため、docomoあるいはそのネットワークを利用するMVNOが提供するLTE-M向けのnano SIMが利用できます(ただし、これらの条件を満たす全てのSIMカードでの利用を保証する訳ではありません。利用実績のあるSIMカード を参照ください)
- MGIMは日本国内でのみ利用できます。海外では各国の法律により現状では利用できません。海外でのご利用は個別にご相談ください。
最新のバージョンは下記の通りです:
MGIMハードウェア | mgim/hl7800ライブラリ |
---|---|
4.1 | R4 |
- MGIM(V4.1)を動作させるためには、最大700mAの電流を供給できる3.5~4.2Vの安定した電源が必要です。
- PCとUSBケーブルで接続した状態でも、別途電源の供給が必要です(USBからの給電はできません)
- リチウムポリマ電池(電池容量400mAh以上)の利用を推奨します。MGIMのCN1にオスのPHコネクタを取り付け、リチウムポリマ電池と接続します。
-
MGIM(V4.1) 回路図
-
MGIM(V4.1) 用 Arduinoライブラリ
- Arduino library for MGIM
- 上記ライブラリのうち、mgim,hl7800,stts751,lis2dwを利用してください
- hl7800ライブラリを利用するにあたっての補足
- スイッチサイエンス様 での販売を予定しています
MGIMを使った製作事例を随時掲載していく予定です。