今回は小型デバイスごとの特徴と相違点を紹介します。取り上げるデバイスは以下の通りです。
- Raspberry Pi Zero (ラズベリーパイ・ゼロ)
- Nefry BT (ネフリーBT)
- SPRESENSE (スプレセンス)
- obniz (オブナイズ)
- M5Stack (エムファイブ・スタック)
利用できるOSについて
M5Stack / Nefry BT / obnizについてはマイコンであり、汎用的なOSはありません。SPRESENSEについてもArduinoと同じように使うほか、組み込み用OSであるNuttXにも対応しています。
Raspberry Pi ZeroはLinuxディストリビューションであるRasbianであったりUbuntuなどが利用できます。Windows 10 IoT Coreは執筆時点では利用できないようです。
このようにOSの有無が一番大きな違いになるでしょう。M5Stack / Nefry BT / obniz はESP32というマイクロコントローラ、SPRESENSEはCXD5602というスマートセンシングプロセッサー、そしてRaspberry Pi ZeroはARMプロセッサを搭載しています。
利用できる開発言語について
M5StackはArduino(Processing)による開発の他、Webブラウザ経由でMicroPythonの利用が可能です。
Nefry BTはArduinoによる開発をサポートしています。
obnizはクラウドベースでの開発が可能で、主にWebブラウザ上でHTML/JavaScriptを使った開発形式になります。APIを使った場合、RubyやPythonなど自由に選べます。
SPRESENSEはArduinoまたはC/C++による開発をサポートしています。
Raspberry Pi Zeroは汎用OSを使っていますのでプログラミング言語の範囲は広いです。デフォルトではPythonが選ばれることが多いです。その他Node.jsやC/C++、Rubyなど幅広いプログラミング言語から開発を行えます。
I/Oの違い
入力、出力インタフェース(Input/Output)の違いです。M5StackにはSPI/I2C/UART/スピーカー/microSDが付いています。また、ディスプレイが付いていて、情報の表示が可能です。ESP32を搭載しているのでWi-FiおよびBluetoothも利用できます。
Nefry BTもESP32なのでWi-FiおよびBluetoothが利用できます。その他、UART/I2C/デジタル/アナログ入出力が可能です。フルカラーLEDやユーザが利用できるスイッチも用意されています。
obnizもESP32なのでWi-FiおよびBluetoothが利用できます。白黒ディスプレイもあります。他にはGPIO/PWM/UART/SPI/I2Cが用意されています。
SPRESENSEはI2C/SPI/UART/GPIO/I2Sに加えてGPSやハイレゾリューションオーディオ機能があります。
Raspberry Pi ZeroはGPIO/UART/I2C/SPIとなっています。HDMIディスプレイへの出力、USBも利用できます。カメラコネクタもあります。
IoT系の開発で便利なのがGroveコネクタです。半田付けのような手間なくスイッチやLED出力などが実装できます。このコネクタについてはそれぞれ以下のように用意されています。
- M5Stack
I2C × 1 - Nefry BT
UART/I2C/デジタル/アナログ × 1(計4つ) - obniz
なし - SPRESENSE
なし - Raspberry Pi Zero
本体にはなし。GrovePi+を組み合わせることで実現できます。
ネットワークについて
M5Stack/Nefry BT/obniz/Raspberry Pi Zeroは本体にWi-FiおよびBluetoothが付いています。
SPRESENSEにはWi-Fi、Bluetoothともになく、拡張ボード(Wi-Fi/Bluetooth)を使わないといけません。
開発スタイルの違い
M5Stack/Nefry BTはArduino IDEを使って開発します。
obnizはクラウドからコードを送信する形になりますので、インターネット接続が必須です。
SPRESENSEはArduino IDEを使うことも、C/C++を使った開発も可能です。
Raspberry PiはHDMI/キーボードを繋いで開発する他、SSHでログインした開発やローカルコンピュータで開発したコードを送信する方法も選べます。
まとめ
大きさだけ見れば似ている各デバイスですが、開発スタイルや利用できるプログラミング言語などに大きな違いがあります。利用目的に合わせて最適なデバイスを選ぶようにしてください。
なお、Raspberry Pi Zeroを使って高度なIoTプロジェクト開発を行いたい場合にはIoTエンジニア養成キットを利用いただけると幸いです!
]]>