Arduinoの強みと特徴をラズパイ、M5Stackと比べてみた
第1回:Raspberry Pi(ラズパイ)の強みと特徴をArduino、M5Stackと比べてみた
「電子工作を始めてみようかな…でも、Arduino?っていうのが電子工作初心者向けにあるらしいけど、他にもいろんなものがあるようだし…」と、“初心者の自分がどれから始めればいいのだろう問題”で悩んでいる方も多いのではないでしょうか。
一方、電子工作に慣れている方がそういった悩みを初心者の方に聞かれても、「テキトーに好きなのから始めたらいいよ!」「その作品のアイデアなら…どれ使っても”技術的には可能”だね」としか返答ができないこともありがちで、どのようにすれば次のステップへ進める手段かを考えるのが難しいというのもまた事実です。
今回の連載では、電子工作の分野でさまざまなボードがある中で「こんなときはRaspberry Pi(以下、ラズパイ)を、こんな時はArduinoを、こんな時はM5Stackを使おう」とその使い分けを3つのマイコンを比較しながら紹介していきたいと思います。
第2回は「Arduino(アルドゥイーノ)」について、ラズパイやM5stackと比較して見ていきながら、使用する際のオススメできる場面も含め、Arduinoの強みや特徴についてご紹介していきたいと思います。
目次
1. Arduinoとは
Arduinoは電気やプログラミングの深い知識を持っていない電子工作初心者でも扱いやすい、オープンソースのマイコンボードです。「Arduino」と言われたら下の写真のような外観をイメージしていただくのが良いでしょう。
「Arduino」という言葉は、上記のように「Arduinoボード」(基板)のことを指すこともありますが、プログラミングに使う統合開発環境(IDE)と呼ばれるソフトウェアのことを指す場合もあり、ソフトウェアのほうは「Arduino IDE」と呼び分けられます。
【Arduinoについての詳細はこちら】
歴史から使い方まで解説!人気のマイコンボードArduinoとは!?
2. こんなときはArduinoから始めよう
「ラズパイから電子工作を始める人も多いみたい。でも、最近はM5Stackも流行っているみたいだし…」と、どのボードから入門すればいいか迷ってしまう方は、ご自身がどんなものを作りたいのか、どんな技術を習得したいのかを考えながら、以下の情報をたよりに検討してみるとよいでしょう。
①まずは初心者にやさしいもので入門してみたい |
①まずは初心者にやさしいもので入門してみたい
Arduinoは、ラズパイやM5Stackと比較すると最初の環境構築(必要なソフトウェアなどを準備すること)がとても簡単です。ソフトウェアは「Arduino IDE」をインストールすれば、Arduinoのプログラミングに必要な統合開発環境(コーディング、コンパイル、書き込みなどの機能がまとめられたソフトウェア群)がすべて整った状態となります。
そのため、「最初はよくわからないので、とりあえず簡単なプログラムが動いてほしい」というときはArduinoから始めることをおすすめします。なお、Arduino IDEは2022年9月にv2.0.0が正式リリースされ、初のメジャーアップデートとして公開されました。
②C言語でのプログラミングをしたことがある
Arduinoは「C言語」と「C++」をベースにしたプログラミング言語を使用します。そのため、C/C++でのコーディングの経験がある方はスムーズに始められると思いますよ。
C言語の経験がなくても、順次実行・条件分岐・繰り返し処理といったプログラミングの基本要素が理解できれば、サンプルプログラムをコピー&ペーストしながらプログラムを作ることができます。自分で考えながらプログラミングすることに慣れていない方は、最初から理解するより「コピペでやってみる」ことから始めてみてもいいかもしれません。
③センサやLED・モータ等を使って装置やロボットを作りたい
Arduinoはセンサやリモコンの状態を読み込んだり、LEDの点滅やモータの回転を制御したりといった、電気信号の入力・出力によって動作する装置やロボットを開発するのによく使われます。
Arduinoではさまざまなセンサなどの周辺回路を簡単に使い始めるための「ライブラリ」が豊富に公開されており、プログラムをゼロから開発することなくすぐに導入することができます。開発期間が限られている状況では特にこのポイントが重要です。
④長期的に半田付けや回路設計などのスキルを身につけたい
Arduinoを使って装置やロボットを作るときは、電子部品や端子を自分で半田付けして実装・配線をすることが多くあります。Arduinoに関する初心者向けの記事ではブレッドボードを使った配線で解説されているものが多いですが、長期的に半田付けや回路設計など実技的なスキルを身に着けたい場合は「ユニバーサル基板」等を使って回路を組み立てる練習を積み重ねていきましょう。
半田付けができれば、「センサのケーブルを延長したい」「スイッチをたくさん取り付けたい」といった実装ができるようになり、オームの法則やキルヒホッフの法則などの電気回路に関する計算が理解できるようになれば、電子部品を組み合わせてオリジナルの回路をつくることもできます。
3. Arduinoの強みや特徴
開発内容に合わせてボードを選ぶことができる
装置やロボットを開発するときに「LEDやスイッチがたくさん必要」や「小さいボディに回路を収めたい」といった要求が出てくることがあります。Arduinoシリーズはさまざまな種類の基板がラインナップされており、ピン数や機能の違いによってボードを選ぶことが可能です。
たくさんのLEDやスイッチが必要で、ピン数が多く必要なときは「Arduino Mega」、小さいものに組み込みたいときは「Arduino Nano Every」など、ピン数の多い・少ないによって選ぶことがあります。また、自作キーボードなどを作りたいときはHID(Human Interface Device)の開発ができる「Arduino Leonardo」など、独自の機能を持つArduinoも販売されています。
豊富なライブラリ
Arduinoの強みのひとつとして重要なのが「ライブラリ」が豊富であることです。センサやLED・モータドライバなどを使うときは、本来は製品のデータシートを読んで、その内容に応じた通信プロトコルを整えたソースコードを最初から開発しなければならず、とても大きな手間がかかります。しかし、Arduinoでは誰かの手によって開発されたそれらのソースコードが「ライブラリ」としてWeb上で公開されているものも多く、Arduino IDEでそのライブラリを読み込めば、新しく導入するセンサ等の製品をすぐシステムに導入することができます。
例えば、フルカラーLED「NeoPixel」シリーズの製品を使うときは、Arduino対応のライブラリを使うことで簡単に使い始めることができます。製品の製造社や有志のユーザーがGitHub等でライブラリを公開していることが多く、NeoPixelは製造社のadafruitが公開しています。
Adafruit NeoPixel Library
https://github.com/adafruit/Adafruit_NeoPixel
4. ラズパイやM5Stackのほうがいい“かもしれない”ケース
何か作品やシステムを作ろうとしたときに「それならラズパイでもM5Stackでも作れそうだね」となって、どのボードを使うべきなのか判断に迷ってしまうこともあるかもしれません。
Arduinoはハードウェア・ソフトウェアともにシンプルであることから、初心者でも比較的簡単に扱うことができる点が大きなメリットと考えられます。状況によってはうまくボードを選定することでシステムの拡張をしやすい形で作り始めることができるかもしれません。
以下、M5StackやRaspberry Piのほうがいい“かもしれない”ケースについて述べます。
①Wi-FiやBluetoothによる無線通信を実装するとき |
①Wi-FiやBluetoothによる無線通信を実装するとき
ロボットや装置にリモコンによる遠隔操作など無線通信の機能を持たせたいとき、Wi-FiやBluetoothの機能はArduinoには標準搭載されておりませんが、M5Stackやラズパイのシリーズの多くには標準搭載されています。IoTデバイスや遠隔操作ロボットを手軽に作りたいときは、M5StackやRaspberry Piから使い始めるとよいでしょう。
ただし、Wi-FiやBluetoothなどの2.4GHz帯の無線通信でなく、他の周波数帯(920MHz帯など)の通信モジュールを使いたい場合や、赤外線通信などを導入したい場合は、Arduinoにそれらの周辺モジュールや部品を接続して製作することが必要です。通信の方法や使用するモジュールによってはArduinoの導入も検討してよいでしょう。特にロボット競技会や展示会など、入場人数が多い環境では、同じ空間にたくさんのスマートフォンなどとの混信によって2.4GHz帯での無線通信が困難になる場合がありますので、使用環境を想定することはとても大切です。
②C言語などのテキストコーディングをしたくないとき
Arduinoは「C言語」と「C++」をベースにした言語によってプログラミングをします。C言語等に限らず他のプログラミング言語などでもテキストコーディングの経験があれば無理なく進められると思いますが、どうしても「キーボードで打ち込むのが無理…!」という場合は、GUIでのプログラミングができるボードを使うことをおすすめします。
M5Stackでは「UIFlow」で、ラズパイでは「Scratch」などでブロックを組み合わせるプログラミングができますので、それらを使ってプログラミングに慣れていくとよいでしょう。
③半田付けなどをせずにセンサ等を配線したいとき
Arduinoは専用のシールド基板(Arduino UNOのピン配置に対応した基板)を用いて周辺回路を拡張することができ、たくさんの種類がラインナップされています。拡張性の高さについて、Arduinoはとても優れていますが、初心者にとっては「どこの端子につなげばいいかわからない」という不安もあるかもしれません。
一方、M5Stackは「Grove拡張ポート」と呼ばれる端子が設けられており、「Grove」に対応したコネクタをもつセンサやモータドライバなどの周辺モジュールを接続することで、半田付けをせず簡単に配線を終えることができます。
5. 回路を読み書きできるようになるために
Arduinoにブレッドボードやユニバーサル基板を使って電子部品を配線するときは、最初は書籍やブログ記事などを参考にして、同じ電子部品を同じように配線することであとは写経したプログラムを書き込めばうまく動作させることが可能です。最初はこのように「理解できなくても、とりあえず動かしてみる」を繰り返すことで勘所をつかむことができます。
だんだんArduinoを使うことに慣れてきたら、どこかで「自分で考えた回路を作りたい」と意欲が出てくることもあると思います。この段階になると電気物理の法則をある程度理解する必要が出てきます。
ここでは詳しくは解説しませんが、「LEDの抵抗値計算」「スイッチに接続するプルアップ(プルダウン)抵抗」をテーマに学習してみると、電気回路の抵抗値の意味について理解を深めることができます。これらの内容をよく理解するには「オームの法則」や「キルヒホッフの法則(第1法則・第2法則)」を勉強するのがいいでしょう。
6. まとめ
本記事では、Arduinoの強みや特徴の解説を中心とし、装置やロボットを開発するとき、または電子工作を学習するときのボードの選択肢として、M5Stackやラズパイもあるときに何を基準として選べばいいのかを紹介してきました。
ボードを選ぶときには「どれが便利か」という観点で選ぶことは一番大事にしたいポイントですが、「どんなスキルを身に着けたいか」も考えながら選んでいくと、今後ものづくりを続けていく上で必要となるスキルを身につけることができ、良い成長につながるかもしれません。
Arduinoは“ちょっと動くものを作ってみる”ときにとても便利なボードです。何かアイデアを思いついたら、ぜひArduinoでサクッと作ってみましょう!
今回の連載の流れ
第1回:Raspberry Pi(ラズパイ)の強みと特徴をArduino、M5Stackと比べてみた
第2回:Arduinoの強みと特徴をラズパイ、M5Stackと比べてみた(今回)
第3回:M5Stackの強みと特徴をラズパイ、Arduinoと比べてみた