Arduino?RaspberryPi?それとも・・・
最近ではArduinoとかRaspberryPiの名前を書籍やネットでも見かけるようになりました。ほかにも似た形状で違う名前のものが販売されていてよくわからないこともあります。しかし、いざ購入しようと思ってもなにが違うのかを抑えてから購入したいものです。
そこで今回は、なんととなくわかるように解説をしていきます。
そもそも、ArduinoとRaspberryPiは同じものなのでしょうか?
結論から言えば「内部動作は異なるが、似たようなこともできる!」という感じです。
具体的にみていきましょう!
RaspberryPiとArduinoで何が違うの?
RaspberryPiとArduinoでの大きな違いは使っているチップの動作が違います。
RaspberryPiはチップにOS(オペレーティングシステム)を動作させた上で、自分の書いたプログラムを内部で動作させます。そのため、プログラムはOSが扱えるものであればpythonやJava、C言語、HTMLなどの様々な言語を動作でき、画像処理やAIでの推論など様々なことができます。しかし、OS内で必要なソフトウェアの準備やOSそのものの準備、ソフトウェアのコンフィグファイルなどの知識や調査が必要になります。またプログラムはOS上でコンパイルまたはインタープリターで処理させるので少し時間がかかることがあります。
もともとは教育用パソコンが原点にありますので、もちろん教育という観点での使用もあります。
そのため、RaspberryPiはパソコンみたいに動作させることができます。
Arduinoの場合はArduinoが理解できるようにしたプログラムファイルを書き込んで動作させます。そのため、使用できるプログラムはArduinoの開発環境が扱えるC++相当のみのプログラムに限定されやすいです。またArduinoに書き込む必要があるのでパソコンでの作業が必要になります。Arduinoがすぐに理解できるファイルを扱うので動作が早く、またArduinoの開発環境で扱えるライブラリが充実しているので、つかい慣れる前にもいろいろなことができます。また、サードパーティーや扱えるチップの種類が豊富であるので様々なデバイスを扱うことができます。
もともとはアーティストのウェアラブルデバイスのプロトタイプを作成するというところが原点でありますで、アーティスト方で使用されている方も多くいらっしゃいます。
そのため、Arduinoは電化製品みたいなものが作れます。
では、具体的にみていきましょう!
それぞれのボードでできることは?
RaspberryPiでできること
RaspberryPiでできることについてここで少し整理してみましょう!
- 簡易的なサーバとして使用することができる
- ネットを利用したサービスを活用できる
- プログラムの変更が容易にできる
などです。
では、ちょっと図解にしてみましょう!
この図はあくまで一例でありますのでこれ以外にもできることがあります。
例えば、農業IoTの監視デバイスの一例を示してみましょう!
RaspberryPiはHDMIなどもありUSBのマウスやキーボードを接続すれば単体でもパソコンのように動作させることができます。
しかし、RaspberryPiはボード単体では動作することができず、オペレーティングシステム(OS)を載せたSDカードを挿入して設定をしていきます。またOSを搭載したSDカードだけでは動作しないので、動作をするアプリケーションをインストールする必要があります。
- 監視対象を目視確認するカメラを動作させるための”Motion”
- 取集データを蓄えて公開するためのNASシステムの”Samba”
- 各センサーモジュールのデータや入力出力の制御を自動で行うための”Node-RED”
などをインストールしてさらに自分が使えるように設定ファイルを編集していきます。
この設定を行うのはRaspberryPi単体でも可能ではありますが、VNCなどを使用することでRaspberryPiにアクセスをして先ほど述べたようなアプリケーションを遠隔から変更、設定することができます。
一見すると非常に汎用性が高いですが、初心者がつまずきやすい箇所が多くあります。
その一つに、
Linuxの動作をおさえておく必要がある。
ということです。特段、隅から隅までの知識が必要ではないのですが、インストールや設定を行うためにはコマンドラインで設定する必要があります。作業イメージとしてはこんな感じです。
いつものパソコンのアイコンをクリックという感じから少し遠いですが、
この”端末”の画面上でコマンドを入力しながら様々な設定をする必要があります。
この時に使用するコマンドはLinuxで使用するコマンドとほぼ同一であるのである意味こんなことも言えます。
サーバーの仕事についたことがある方は非常に入りやすい
ということです。
しかし、ローコード、ノーコードで設定することができるアプリケーションも登場しているので、必ずしもプログラムがガンガン書けるようなスキルが必要ではないかもしれません。
Arduinoでできること
Arduinoでできることについてここで少し整理してみましょう!
- 様々なセンサーを読み取ったりできる
- モジュールを使用して動作させることができる
- 消費電力が小さい
などです。
では、ちょっと図解にしてみましょう!
この図もあくまで一例で、これ以外にも出来る事があります。
例えば、扇風機を一例に進めていきます。
Arduinoはプログラムをパソコン上でIDEで作成して、Arduinoボードに書き込む作業が必要ですが、書き込んだ後はArduinoボード単体で動作することができます。
プログラムを書く上ではC++相当の言語で記載することができます。しかし、最近ではスクラッチのようにブロックで作成する方法もあります。
- スイッチ、ファンの回転数を入力回路から状態を読み取る
- Arduinoボードで入力データを処理する
- 信号を送信してアナログ回路でモーターを制御する。
- 信号を送信してデジタル回路で7セグLEDを制御してステータス表示する
などをプログラムファイルに書き、Arduinoボード上のマイクロコントローラ(マイコン)に読めるように変換したファイルをArduinoに書き込んで動作させます。そのため、パソコン上で直接やり取りするのはマイコンのみです。
マイコンで有名なものではマイクロチップ社のPICマイコンがあります。PICはPeripheral Interface Controllerの略で周辺機器の入出力制御を行う意味合いがあります。そのため、電子回路への親和性が高くなるようになっています。
初心者がつまずきやすいポイントは複数ありますが、
電子回路および部品の知識が必要
ということが大きいと思います。部品としては以下の部品を使ったりします。
普段から見る事のないものが多いですが、左からアルミ電解コンデンサ、炭素皮膜抵抗器、小信号用トランジスタといった具合にさまざまな部品の種類や基本的な使い方をおさえておく必要があります。その場合はネット記事やデータシートを読み解いて確認する必要がありますが少し大変です。
しかし、基本的な使いどころをおさえれば似たように使うことができます。
最近ではIoTというキーワードで電子部品や電子回路を扱うハードウェアエンジニアに注目があり、逆にこれから学習するということももちろんOK!!
ということで、
IoTデバイスの開発を進めていきたい方
におすすめです。
また、電子回路を一から設計しなくても温度センサモジュール、加速度センサモジュールというモジュール単体でセンサのデータをすぐに取り出せるようになっているものもあります。さらに、プログラムもライブラリが用意されている場合もあり、より簡単に設定やデータを取得することができます。
ここでも電子部品に関しての基本的な知識や使い方についてのページを順次用意してまいりますので、ぜひ参考にしてみてくださいね。
どこで入手できるの?
それぞれを入手できる先はいろいろなサイトがあります。
- Amazon
- 秋月電子通商
- マルツオンライン
Amazon
秋月電子通商
https://akizukidenshi.com/catalog/c/cmicon2/
https://akizukidenshi.com/catalog/c/csbcomp1/
マルツオンライン
https://www.marutsu.co.jp/GoodsListNavi.jsp?path=1100020001
https://www.marutsu.co.jp/GoodsListNavi.jsp?path=1100020007
では、詳しい使い方などはまた後日記載いたします。
それではつくりたいものを想像しながら、どちらを購入するか検討してみてくださいね。
それではまた!!