言語切り替え

arduino_raspberrypi

IoTデバイス開発向け製品を徹底比較。Arduino、Raspberry Pi、M5Stackからobnizまで

IoTデバイス(インターネットに接続できるデバイス)を自分でつくろうとしたとき、プロセッサ(CPU)や通信機能はどのように実現すればよいでしょうか。

少し電子工作に詳しい人であれば、ArduinoやRaspberry Piを利用することを思いつくかもしれませんね。ArduinoやRaspberry Piには、Wi-FiやBluetooth通信機能をそなえた製品や、無線通信機能を追加できるモジュールがあり、これらを使うことでIoTデバイスを開発することができます。

また近年登場して話題となっている製品に、M5Stackがあります。こちらは、プロセッサやディスプレイが小型のケースに収まっていて、拡張モジュールを追加しながら組み立てる新しいタイプの製品です。

さらに、IoTデバイス開発の難易度を大幅に下げる製品として、obniz Boardがあります。obniz BoardはWi-Fi通信機能をそなえた小型の基板で、ソフトウェア開発は全てWEB上で行えます。

本記事では、これらの製品を詳しく比較します。ぜひ、IoTデバイス開発の参考にしてください。

Arduino (アルデゥイーノ)

Arduino Uno - R3

Arduinoは、1枚のプリント基板上にCPUや入出力ポートをそなえた小型のコンピュータです。安価で簡単に動作させられるため、教育用としても非常に人気があります。

Arduinoには非常にたくさんの種類がありますが、最もポピュラーなものはArduino Unoです。ただし、Arduino UNOにはネットワーク通信機能が備わっていないため、これをIoTデバイスとする場合は、Wi-Fiシールド(Wi-Fi通信機能を追加するための拡張ボード)や別のWiFi モジュールなどと組み合わせて使用する必要があります。※この時、技適マークのない製品を利用すると、電波法違反となりますので注意が必要です

初めからWi-FiやBluetooth通信の機能を搭載しているArduino製品もあります。例えば、Arduino Uno WiFi rev 2は、Arduino UnoにWi-Fi通信機能を付与した製品です。

より小型でIoTデバイス開発に適した製品もあり、Arduino nano 33シリーズは、Wi-FiとBluetooth通信機能をそなえたIoTデバイス向けの小型ボードとなっています。

このほか、多数のIoT向けArduinoがございますので、気になるかたは是非Arduinoの公式Webサイトをご覧ください。

Arduinoの開発は、Arduino IDEと呼ばれる統合開発環境を用いるのが一般的です。プログラミング言語として、俗に「Arduino言語」と呼ばれるオリジナル言語を用います。ArduinoはC言語に非常に近いので、C言語に親しんでいる開発者であればすぐに使いこなせます。プログラムはUSBケーブルなどを経由してArduinoデバイスに書き込まれます。

Arduino IDEを用いた開発の様子

Arduinoをインターネットに接続してIoTデバイスとする場合、IoTデバイスからのデータを表示したり、逆にIoTデバイスに命令を送ったりするソフトウェア(例えばWebページやスマートフォンのアプリなど)は、Arduinoのプログラムとは別に開発する必要があります。

以下の記事では、Arduinoのプログラムをobnizのプログラムと比較しています。合わせてご覧いただければ幸いです。

Raspberry Pi(ラズベリーパイ)

Raspberry Pi 4 Model B - Top

Raspberry Pi(通称、ラズパイ)は、Arduinoと似た外観をしています。こちらも多数の製品ラインナップがありますが、機能別に製品が並んでいるというよりは、年々バージョンアップされた製品が登場しているイメージです。比較的新しい「Raspberry Pi 3 Model B+」や「Raspberry Pi 4 Model B」では、初めからWi-Fi通信とBluetooth通信の機能を搭載しています。

プログラムの動作は、Arduinoとやや異なります。まず、Raspberry PiにはLinuxやWindows 10 IoT CoreといったOSが搭載されており、このボード自体がコンピュータとして動作します。(ArduinoにはOSが乗っておらず、一度書き込んだプログラムがマイコン上で動作しているにすぎません)

また、プログラムはLinux上で動作する形になるので、開発で使用できるプログラミング言語に制限はありません。総じて、ソフトウェアについては、Raspberry PiはArduinoと比較して数段複雑な動作が可能と言えます。

Arduinoには多数の拡張ボード(シールド)がありますが、Raspberry Piはプログラミング言語が統一されていないこともあり、公式の拡張ボードの種類ではArduinoに劣ります。また、OSによる複雑な処理を行っているため、電源を切る際に正規の手順を踏まないと破損する恐れがあるなど、扱いにはやや注意を要します。(Arduinoの場合、電源を切りたい時はケーブルをひっこぬくだけでOKです)

Raspberry Piは多機能ですが、シンプルな作品を作りたい場合や、電子工作にさほど慣れていない場合、教育現場で利用したい場合などは、Arduinoの方が良いかもしれません。

Arduinoと同様、Raspberry Piをインターネットに接続してIoTデバイスとする場合、IoTデバイスからのデータを表示したり、逆にIoTデバイスに命令を送ったりするソフトウェア(例えば Webページやスマートフォンのアプリなど)は、Raspberry Piに乗せるプログラムと別に開発する必要があります。

M5Stack (エムファイブスタック)

M5Stackは、Arduinoの機能を5センチメートル四方程度のケースに詰め込んだような製品です。基板がむき出しではないうえに、初めからWi-FiやBluetooth通信機能、SDカードスロット、マイク、スピーカー、ディスプレイなどが搭載されているため、これ1つだけでさまざまなIoTデバイスとして利用できます。

M5Stackは多数の高機能な拡張パーツが利用できます。現在、カメラやGPSモジュール、ゲームのコントローラ、脈拍計など、その機能は多岐にわたります。そして、それらはM5Stackに直接接続できるブロック型の形状をしており、まるでレゴブロックのようにパーツ同士を組み合わせる感覚で開発が可能です。つまり、ArduinoやRaspberry Piと比較して、ハードウェアを組み立てる労力がかなり低いと言えます。

開発にはArduino IDEを用いることもできます。Arduinoの開発経験がある人は、M5Stackもすぐに扱えることでしょう。Arduinoと同様、プログラムはUSBケーブルなどを用いてM5Stackに書き込みます。

obniz Board (オブナイズボード)

obniz Board

obniz Boardは、IoTデバイス開発のために開発された日本発の製品です。obniz Boardには12個の入出力端子がついており、各種電子部品とは導線で接続します。モータードライバを内蔵しているため、DCモーターを直結させて動作させられるのも嬉しいポイントです。

obniz Boardの大きな特徴は、obniz上で動くプログラムとobnizからの信号を送受信する画面を、1つのプログラムとしてWebブラウザで開発できる点にあります。ArduinoやRaspberry Pi、M5Stackでは、デバイス上のプログラムと、デバイスからのデータを送受信するソフトウェア(例えば Webページやスマートフォンのアプリなど)は、それぞれ別に開発する必要がありました。

しかしobniz Boardでは、Webブラウザ上でプログラミングを行うだけで、IoTデバイスとして動作させることができます。スマートフォンとobniz Boardの連携も、非常に簡単なコードで書くことができ、通信についての複雑な知識や技能は不要です。開発言語としてJavaScriptが利用できるため、Webの知識(HTML・CSSやJavaScript)さえあれば、IoTデバイスの開発者になることができるのです。

さらに、Scratchと似たブロックによるプログラミングも可能ですので、プログラミングが未経験でも安心です。obnizはAI機能を搭載しており、例えば物体の認証をブロック1行で実装できてしまいます。簡単にIoT×AIを実現できるのも、obniz Boardの特徴です。もちろん、AIはJavaScriptを用いても実装できます。

ArduinoやRaspberry Pi、M5StackでIoTデバイスを開発する場合、クラウド(IoTサーバ)は自分で準備する必要があり、一般の人にとっては敷居が高いという課題がありました。しかし、obniz Boardにはobnizクラウドという専用クラウドの無期限ライセンスがついています。これにより、IoTを実現するハードルが格段に下がっています。

プログラムはクラウド上に保存され、手元のブラウザで実行されます。実行結果がWi-Fi経由でobniz Boardに送信される仕組みなので、プログラムの変更は遠く離れたデバイスにも瞬時に反映されます。通常、IoTデバイスのプログラムをアップデートするためには、そのデバイスのすぐ近くにいって1つ1つ手動で作業する必要がありますが、obniz Boardではそのような手間がなくなります。

公式の拡張モジュールはやや少ないですが、複雑な工作をしたい方のために、公式サイトでさまざまなパーツの利用方法を、プログラムの例と共にご紹介しております。

すでに、いろいろな開発者がobniz Boardを用いた工作を行っています。obnizの公式サイトにも、多数の工作例が掲載されておりますので、ぜひご覧ください。

obniz Boardobniz BoardをAmazonで見る

Arduino、 Raspberry Pi 、 M5Stack 、obniz Boardの比較

これら4つの製品を比較しやすいように、表にまとめました。IoTデバイスの開発に限れば、通信に関する複雑なプログラミングが不要なobniz Boardは、非常に取り掛かりやすく、教育現場などにも向いています。

ArduinoRaspberry PiM5Stackobniz Board
作れる作品の代表例電子工作、ロボット電子工作、ロボット電子工作、IoT電子工作、IoT、AI
Wi-Fi・
Bluetooth 通信
製品による(追加可能)あり(新しい製品に限る)ありあり
クラウドなしなしなしobnizクラウド無期限ライセンス付き
IoT機能の開発難易度普通普通やや容易とても容易
公式の拡張モジュール豊富やや少ない豊富やや少ない(ただし公式サイトで各パーツの利用法を紹介
開発環境の構築難易度普通やや難普通容易
ハードウェア(電子回路)の開発難易度普通普通とても容易~普通容易~普通
ソフトウェアの開発難易度普通やや難普通容易
利用できる主なプログラミング言語Arduino言語C/C++、Python、Java、Scratch、他多数Arduino言語、MicroPython、UI Flowブロック、JavaScript、Python、 Node.js など
Wi-Fiのない環境での動作可能可能可能不可
特徴・豊富な拡張モジュールがあり、ハードウェアの拡張性が高い・高性能なプロセッサとOSを搭載しており、複雑な処理が可能・専用の拡張モジュールで高機能を容易に実現可能・通信の知識なしでIoTデバイスが開発可能
・Web経由でソフトウェアを更新可能
価格(参考)¥5,095(UNO Wifi Rev2)¥7,950(4 Bodel B)¥4,125(Basic)¥6,090

obniz Boardは初めてのIoTデバイス開発に最適です。以下の記事では、obniz Boardの特徴や簡単な工作例をご紹介しておりますので、是非ご覧ください。

obniz Boardobniz BoardをAmazonで見る