ArduinoとRaspberry Pi どちらを選ぶ?

はじめに

現在あなたが購入することができる手軽なコンピューターはたくさんあります。

その中で一番有名なのは

  • Arduino
  • Raspberry Pi 

でしょう。

これらは表面上では同じように見えるでしょう。

ではこれら代表的なボードの選び方について紹介していきたいと思います。

Arduino

一区切りにArduinoといっても様々な種類があります。

https://store.arduino.cc/usa/

今回の紹介では代表としてArduino Unoを紹介します。

Arduino Uno はATmega328  を搭載しています。

ATmega328には次のような機能があります。

  • RAM:2kbyte
  • Flash:32Kbyte
  • タイマー
  • シリアル通信
  • i2c
  • spi

また ATmega328 の周囲には、電源レギュレータや、USBシリアル変換、IOポートなどがあります。

これらは ATmega328を利用する上で必要な部品でとてもシンプルな設計です。

Arduinoのソフトウェアはとても単純です。

プログラムされたただ一つのコードが実行されます。

プログラム言語で書かれたコードは機械語にコンパイルされます。

機械語にされたプログラムが Arduinoで動作します。

Arduinoには、インタプリタ、オペレーションシステム、ファームウエアがありません。

Raspberry Pi 

Raspberry Pi はシングルボードコンピューター(SBC)と呼ばれるものです。

一見すると Raspberry PiはArduinoのように見えます。

しかし実際にはそうではありません。

Raspberrypiはあなた持っているようなコンピューターとArduinoより多くの共通点があります。

Raspberrypi ではハードウエアを制御するコードを書く代わりに、オペレーション内で動作するプログラムを書きます。

pi@raspberrypi:~$ vim hello.py
pi@raspberrypi:~$ cat hello.py 
print("hello")
pi@raspberrypi:~$ python3 hello.py 
hello
pi@raspberrypi:~$ uname
Linux

そしてそのオペレーションシステムは大抵はLinuxです。

Arduinoはマイクロコントローラ、

Raspberry Pi はマイクロプロセッサです。

これらの違いは何でしょうか。

どちらもCPUがあり、タイマー、メモリ、I/Oがあります。

マイクロプロセッサはそれ単体で周辺機器を制御することができる強いI/Oを持つ傾向があり、

マイクロプロセッサでは周辺機器を制御するために、トランジスタで増幅しなければいけない弱いI/Oを持つ傾向があります。

またマイクロプロセッサの方が計算能力が高い傾向にあります。

ではお互いの仕様を見てみましょう。

Arduino Raspberry Pi3
プロセッサATmega328
BCM2837
周波数16MHz 1200MHz
レジスタサイズ8bit64bit
RAM2k1024MB
GPIO2040
I/Oピン最大電流40mA15mA?
消費電力約100mW約5000mW
オペレーションシステムなしlinux ・その他

これを見ると、明らかに Raspberry Piのほうが優れていると言えます。

しかし、実際に選択する上で考えるべき点は、仕様だけではありません。

ArduinoとRaspberry Pi どちらを選ぶ?

ではどちらを選べばよいのか?これに答えるのは簡単ではありません。

しかし、私のやりたいことのためにどちらを選べばよいか

と考えると簡単になるでしょう。

LCD、モーター、センサーといったものを主に利用するのであれば、Arduinoが適しているでしょう。

カメラの画像や動画、数学、ディスプレイ制御はRaspberry Piが適しているでしょう。

どちらのボードも完璧ではありません。また、すべての用途で適切であるわけでもありません。

あなたが物理的な制御を目的としているなら、 Arduino

沢山のデータを処理するのであれば Raspberry Piが適していると言えます。

参考動画