お手軽ワンボードコンピュータとして名高いラズパイと、激安ワンチップマイコンであるPICマイコンは、電子工作の世界の中でも対極にあるものだと思われがちです。本稿では、対極ではなく最強のコンビであるということを解き明かそうと思います。
ちょっとおさらい
それぞれどんなものか、ちょっとおさらいしてみましょう。どちらも「プログラミングで好きなように動かせる」「 安い」ところまでは同じですが、性格はまったく異なります。
ラズパイ(Raspberry Pi)は英国のラズベリーパイ財団が開発した手のひらサイズのワンボードコンピュータで、OS(Linux)上でアプリを動かします。バージョンがいくつかありますが、基本的には最新の機種(Raspberry Pi3Bやその簡易版のRaspberry Pi Zero W)を使います。パソコンと同じように、汎用的に使うことができ、LinuxマシンなのでWebサーバなどにも使えます。OSをSDカードに書き込み、電源とディスプレイ・キーボード・マウスをつなげばとりあえず動いてしまいます。
PICマイコンは、マイクロチップ・テクノロジー社が開発した、CPUやメモリ・I/O、タイマー、A/Dコンバータなどを1つのチップにつめこんだワンチップマイコンです。米粒大の6ピンのものから、100ピンのものまで、搭載している機能によってたくさん種類があり、目的に合わせて使うPICを選択します。OSは載っておらず、内蔵のROMにプログラムを書き込み、各種内蔵モジュールや、入出力ピン経由で外部の部品を制御します。PICマイコンだけでは動かせませんが、必要な部品をPICのピンにつなげて回路を作ることで動かすことができます。
得意分野・不得意分野
それぞれの長所・短所を表でまとめてみました。
ラズパイ PICマイコン
ネットワーク ◎ 超得意。Wi-Fiにも対応△ イーサネット内蔵のものもあるがお手軽ではない
マルチタスク ◎ Linuxだから得意△ 割り込みで擬似的にできないことはないかも
動画・音声 ◎ カメラが純正オプションで用意されていて、アプリも楽々 △ 動画まではちょっと荷が重い
HDMI ◎ ディスプレイをつなげるだけ× 無理
速度 △ OS動かしてるからmsec単位でしか動かない。リアルタイム制御は無理◎ μsec単位のリアルタイム制御、フィードバック制御もできる
外部入出力 △ アナログ信号は扱えない。PWM*も粗くしかできない◎ アナログ・PWMは超得意。サーボモータも滑らかに動かせる
リソース △ メモリもCPUもがっつり使うから消費電流も多い◎ ハードウェアリソースも消費電流も超少なくてすむ
起動・終了 △ 手続きがいろいろあり時間がかかる◎ 一瞬
※PWM: パルス幅変調のこと。オンオフのデジタル信号を使ってアナログ的な制御を行う。一定周期でオンオフを繰り返すパルス信号の、オンとなる時間を増減することでモータの回転数などを連続可変的に制御する。
表を眺めてみると、汎用的にいろいろこなせるようパッケージングされたラズパイと、制御に特化して高速に動作するPICマイコンということで、片方の長所は片方の短所となっていることがわかります。つまり、どちらかを選ぶのではなく、両方使って相互補完すると、なにかいいことが起こるような気がしてきます。
ラズパイとPICをGPIOで合体させる
ところでラズパイには、GPIOという汎用に使える入出力ピンがついています。ピンから3.3Vや5Vの電圧を出力したり、オンオフ信号やPWM、UARTやI2Cなどのシリアル通信など、各種のデジタル信号を入出力したりすることができます。もちろんPICのピンもそれらを入出力することができるので、ラズパイのGPIOとPICのピンとを直結すれば、ラズパイとPICを協調させて動かすことができるのです。
センサやスイッチ、モータなどの制御が得意なPICマイコンと、リッチコンテンツやネットワークが得意なラズパイを組み合わせれば、例えば「車載カメラを積んだリモコンカーを、スマホで動画を見ながら自由自在に操作する」なんてことも実現できます。
新刊の『PICと楽しむ Raspberry Pi活用ガイドブック 』では、カメラ付きリモコンカーやおしゃべり時計、インターネットラジオなどの製作を通して、「 Raspberry Piを電子工作の1つの部品として使う方法」を解説しています。本書で製作するデバイスのキットや組み立て済製品が、別途( 株) ビット・トレード・ワンから発売されますので、ハンダ付けはちょっとハードルが高いけれど、PICとラズパイを協調させてみたい方にもお勧めです。