Raspberry PiとArduinoの違いを説明します。
何かを作ってみようとRaspberry PiとArduinoのどちらから始めるかを悩んでいる人にオススメの記事です。
OSの有無について
Raspberry PiとArduinoは、どちらもマイコンがのっているボードです。
しかし、両者の間にはとても大きな違いがあります。
Raspberry Piは、いうなればGPIOという端子がついたパソコンです。LinuxというOSの上で、プログラムが動作します。一方、ArudinoにはOSがありません。このOSがのっているかのっていないかが大きな違いになります。
Raspberry Piは、汎用のLinuxというOSをもっていることで、Linuxライブラリをできるという大きな恩恵を受けることができます。公開されているライブラリを利用することで、思い描く処理を簡単に実現することができます。Linuxは特にネットワーク周りのライブラリが充実しているため、つながるものづくりには最適です。
Arudinoは、OSがのっていないため、汎用OSがのっているRaspberry Piほどの恩恵は受けることができません。しかし、機能を実現するためのArudino向けのライブラリは多いです。OSがのっていないため、OSによる制限を受けることがないため、ハードウェアの機能をフルに使うことができます。また、OS制御によるタスクの切り替えがないため、リアルタイム性が確保しやすです。
リアルタイム性の確保について
Linuxがプログラムを高速で切り替えることで、同時に動いているように見えています。このOSがプログラムの動作を切り替えることで、メリットも生まれますが、切り替えに時間がかかり、処理が遅れるといったデメリットも生じます。テレビと電話をしながら作文を書くと、作文だけを書くことに集中するより遅れるようになるようなものです。
一方、Arduinoは、1つのタスクしか動かすことできません。
Arduinoは、1つしかタスクが動かないため、そのタスクの実行時間が分かり、それが処理時間内に収まっているならば、リアルタイム性を保証することできます。Raspberry Piは多数のタスクが動くため、1つのタスクの時間が分かっても、実際に動かすと他のタスクとの兼ね合いで、リアルタイム性を保証するのが難しくなります。
上記では、Raspberry Piがリアルタイム性が確保できないように書かれていますが、もとめられた時間さえ満たしているならばリアルタイム動作していると言えます。
そのため、ArduinoはRaspberry Piより制御系のリアルタイム性が厳しいシステムに向いています。
どんな人に向いているのか?
上記までの特徴を踏まえ、Raspberry Pi,Arduinoはこんな人に向いています。
Raspberry Pi
・やりたいことをすぐ実現したい人向け
・ネットワーク接続したい人向け
・Webサーバや、メールを使いたい人向け
ソフト主体で、とにかく何か作りたいと言う人は、Raspberry Piが向いています。
Arduino
・組み込みの勉強をしたい人向け
・電子回路も勉強したい人向け
・モーター制御をしたい人向け
ハードウェアや制御を勉強したい人は、Arduinoが向いています。
もっともオススメなのは2つを使い分けることです。
制御など単純で高速な処理や、リアルタイム性を保証したい処理は、Arduino。
ネットワークを経由での操作や、リッチな表現を行いたい場合は、Raspberry Pi。
それぞれでそれぞれの得意な分野の実装を行い、Raspberry PiとArduinoを接続し、通信することでそれぞれの力を発揮することができます。