自作IoTシステムの構築 基礎編5:「マイコン」をどう選ぶか?
『自作IoTシステムの構築 基礎編』では、私自身の経験をもとに、IoTデバイスを自作するために必要な知識の全体像と、各要素の選択肢や選び方を整理して解説しています。
本記事では、IoTデバイスの心臓部であるマイコンについて考えます。マイコンの選択にあたり、通信と通信モジュールのことも考慮する必要があります。本記事では、マイコンにはどのような選択肢があり、どのように選べばよいのか整理します。
■ マイコンにはどのような選択肢があるのか?
IoT系のマイコンとして主に使用されているのは、
・Arduino系
・M5Stack系
・Raspberry Pi系
・Raspberry Pi Pico系
・SPRESENSE系
でしょうか。
あえて「系」という言葉を用いた理由は、数多くのシリーズやバージョンがあるからです。
乱暴にも、ざっくりと特徴をまとめると、
・Arduino系
歴史があり、ライブラリ/情報/拡張ボード等が豊富。使いやすい。
・M5Stack系
画面/Grove端子が搭載されている。センサーが豊富で非常に使いやすい。
・Raspberry Pi系
LinuxベースのOSを搭載。高い処理能力を持ち、デスクトップアプリケーションからサーバー、ネットワークデバイスまで幅広く利用できる。
・Raspberry Pi Pico系
RP2040チップを搭載し、低消費電力でありながら高い性能を持つ。安価。
・SPRESENSE系
ソニーが開発した高性能マイクロコントローラボード。GPS機能を内蔵し、高解像度オーディオ処理と低消費電力が特徴。
もちろんこれ以外にも選択肢がありますし、新しいマイコンも出てきているので、適宜調べて頂ければと思います。
■ マイコンをどう選ぶか?
では、マイコンの特徴を比較表にして整理します。まずは、「開発言語と用途」という評価軸で比較しました。下図をご覧ください。
開発言語に関しては、C/C++と、MicroPythonが主に用いられています。C/C++で開発したいのであれば、Arduino系、M5Stack系、SPRESENSE系。MicroPythonで開発したいのであれば、Raspberry Pi系、Raspberry Pi Pico系が良いと思います。私は大学時代にC言語を学んだこともあり、C言語で開発できるマイコンを好んで使っています。
電池駆動型IoTデバイスであれば、Arduino系、Raspberry Pi Pico系、SPRESENSE系が良いかもしれません。
UART接続やI2C接続のセンサーを選択するのであればどのマイコンでも可能です。一方、カメラ画像やGPSデータを取得したい場合は、マイコンを選ぶ必要があります。
次に、「通信モジュール」という評価軸で比較します。下図をご覧ください。
*1 M5Stack用 3G 拡張ボード
*2 ラズベリーパイ用4G(LTE)通信モジュール
*2 Soracom Onyx – LTE™ USB ドングル
*3 LTE-M Shield for Arduino
*4 SIM7080G CAT-M/NB-IoT Unit
*5 SPRESENSEメインボード + LTE拡張ボード スターターキット
*6 Sigfox Shield for Arduino
*7 LoRa通信モジュール(E220-900T22S)用評価ボード
*8 M5Stack用LoRaユニット JPバージョン アンテナ付(E220-900T22S)
*9 SPRESENSE用 LoRa Add-onボード E220-900T22S(JP)搭載
*1〜*9のように、汎用的なモジュールが売られているものを◎と表現しました。
私は、電池駆動型IoTデバイスにおいては、Sigfoxを好んでいますが、Sigfoxを使いたい場合はArduinoが最も使いやすいと感じています。
また、原則Sigfoxとするものの、Sigfoxの電波環境が悪い場所ではLTE-Mにするという開発の場合、Sigfox/LTE-Mとも通信モジュールが売られているという点でもArduinoが魅力的です。
カメラ画像を送信するようなIoTデバイスの場合、Raspberry Pi系やM5Stack系が良いかもしれません。
LoRaに関しては、記事執筆時点で積極的に商品展開がなされており、上述の全てのマイコンで使用可能です。
Wi-Fi/BLEを用いたデバイス間通信や、Wi-Fi環境下での通信をしたい場合は、Arduino系以外がおすすめです。Arduino系の場合は、Arduino UNO R4 WiFiであればWi-Fi/BLE可ですが、値段的にも別のマイコンが良いかもしれません。
このように、開発言語や用途に加え、入手性の高い通信モジュールを考慮市た上で、「マイコン」を選ぶとスムーズに選択できます。
■ まとめ
IoTデバイスにおけるマイコンをどのように選べば良いのかを、開発言語/用途/通信モジュールを評価軸とし、深堀りしました。マイコン選びの参考に頂けばと思います。
次の記事では、選んだマイコンを如何に長期稼働させるか、についてまとめます。
■参考
・自作IoTシステムの構築基礎編の各記事を、マガジンにまとめています。