前回、マイコンとは何者か?ということを簡単に説明しました。
そもそも、「なんでプログラムで機械が操作できるの?」と疑問に思われる方はこちらをご参照ください↓
マイコンはプログラムで好きなように動き(入出力)をコントロールすることができるICのことでした。
しかしこのブログを検索された方は「何でも出来るんだったら何でこんなに種類が多いの?」と疑問に思って検索されたことでしょう。
それはそれぞれに得意分野があるからです。
現在、初心者の電子工作で主流なのがArduino(アルディーノ)というマイコンボードとRaspberryPi(ラズベリーパイ)というマイコンボードを扱ったものです。「電子工作 初めて」で検索すると必ずArduinoがヒットします。
マイコンボードは、マイコンチップを扱い易くするために基盤に載せたものです。
少し前にはPIC(ピック)というマイコンも流行りました(現在ではArduinoに初電子工作の座を奪われていますが「電子工作 マイコン」で検索すると必ず出て来ます)。
ということで今回はArduino、RaspberryPi、PICの3種類の得意分野に触れてみることにします。(というのも僕が上記3つしか使った事がないというだけですが。)
先ず、厳密にはArduinoとRaspberryPiはマイコンボードと呼ばれているもので、マイコンそのものではありません。マイコンと最低限必用な装備を基盤に載せたものです。
最低限の装備を予め載せてあるので電源さえ繋げばいきなりコンピュータとして機能します。手軽なプログラミングの練習機や動作確認用として重宝されています。
【Arduino】
得意分野はロボット等の機械制御、パソコンとの通信、簡単な回路テスト。
USBに繋げば電源が入りパソコンにArduinoIDEというプログラム開発環境をインストールすることでいきなりプログラミングを開始することが出来ます。
また、書き込んだマイコンを取り外し、自前で回路を組んでAVRマイコンとして利用することも出来ます。(Arduinoに載っているAVRマイコンには予めArduinoとして動くようブートローダーというプログラムが書き込んであります)
動作速度は基本的に16MHz固定。
<画像クリックで詳細ページ>
- 初期設定が非常に簡単、USBのみで機能して省エネ。
- プログラムもサンプルソースが多数あるので複雑なことをしなければすごく簡単。
- サイズ違いなど種類も豊富でハードに一貫性があるのでプログラムの使い回しも容易。
- アナログ入力が可能。
- 電源も入出力も5Vで扱いやすい。
- 入出力端子に番号や記号が書いてある親切な設計。
- 「シールド」と呼ばれている基盤が豊富でを追加することで回路を考えなくてもイロイロなセンサーを組み立てることが可能。
- プログラム言語はArduinoオリジナルの「Arduino言語」と呼ばれている「C++言語」を扱い易くした言語が用いられている。
Arduinoを使った電子工作の実例を紹介しています↓
【RaspberryPi】
得意分野はサーバー構築、単体コンピュータ、家電IOT機器化。
SDカードにOS(基本的にRaspbianというDebian(Linuxの種類の1つ)をベースにRaspberryPi用にカスタムしてあるOS)をインストールする必用がありますが映像出力、サウンド出力、USB、LANといった装備を備えており電源さえ入れればコンピュータとして機能するようになっています。(単体で動かすならHDMIモニター、USBキーボドが必用)
USB機器が使えるのでカメラ等のパソコン用機材の接続も容易(ドライバは必用)
マイコンを取り外しての単体利用は出来ません。
プログラム言語はLinuxパソコンで扱えるものほぼ全般。「アセンブラ」「C言語」「Java」「Ruby」「Python」の他、ゲーム感覚でプログラムが組める「Scratch」もOS(Raspbian)に標準インストールされているのも特徴。
動作速度はマイコンとしては高速の約1GHzで駆動(比較としてArduinoは16MHz駆動なので62.5倍!)するがOS上でプログラムを走らせているのでナノ秒単位の「厳密」な動作は不得意(赤外線リモコン通信なんかではタイミング合わせに苦労する)。そういう場合はUSBにArduinoを繋いじゃう!なんて回りくどい手も使えます。
<画像クリックで詳細ページ>
- OSをインストールして周辺機器さえ繋げばLinuxコンピュータとして機能する。(OS無しのベアメタル駆動させるマニアもいる)
- プログラム用のパソコン要らずでRaspberryPi単体でプログラム環境を構築することが出来る。
- 消費電力は他のマイコンに比べると大きいもののLINUXマシンとしては省エネ。
- アナログ入力不可。
- 外部機器は3.3V入出力のものを選ぶ必用がある。(電源は5Vなので要注意)
- RaspberryPi用センサーモジュールが豊富。
RaspberryPiを使った電子工作の実例を紹介しています↓
dreamerdream.hateblo.jp
dreamerdream.hateblo.jp
【PIC】【ArduinoのAVRマイコン単体】
得意分野は回路の最小構成や基盤の自由な部品配置設計。
マイコン単体ですのでそのままでは何も出来ません。電源も自分で準備しないといけません。電源を入れるだけでも電源ノイズ対策のコンデンサを自分でマイコン周囲に設置する必用があります。
基本定には電源以外に、発振器(クリスタルやセラロックというMHz単位のクロックを刻む部品)、リセットスイッチが必用ですが、それさえプログラム内で端折ってしまえる種類もあります(マイコンの内部に発振回路が含まれている)。
PICやAVRはマイコン単体のことですので一番何にでもなり得る、最も説明が難しいものです。
(AVRはArduino用のブートローダーを書き込むことでArduinoとして機能しますが、PICもPICSYSフレームワークというPICをArduino化するというものが存在します。)
1つの価格が安い(数百円程度)ので回路自体を安く仕上げられ、設計次第で超低消費電力機器にもなります。
また単品でプログラムは不可能ですから必ず「ライター」と呼ばれる書き込み機が必用で、ライターも書き込むマイコンの種類に応じた物を使う必用があります。
プログラム言語は「アセンブラ」「C言語」が主流です。
動作速度は任意に設定(内部発振の4MHz〜外部発振40MHzまで幅広く設定)出来るが、基本的に早くなるほど電力消費は多くなります。
何度もプログラムを書き直せるEEPROM式のものが現在は主流ですが、その昔は紫外線を当ててプログラムをリセットするものが主流でした。
大量生産品で書き直す予定が無い物は格安のワンタイム品という一度きりの書き込みタイプがあり製造コストを削減することが出来ます。
一般製品に型番を表示せずに搭載していることもあるようですのである意味プロ仕様ともいえます。
<画像クリックで詳細ページ>
- 単体では電源を繋いでも何も出来ないただのICチップ。
- 必用な入出力数に応じてマイコンを選別する。
- プログラムを書き込むためには書き込み機が必用、消費電力は回路設計、プログラミング次第。
- プログラムはマイコンの種類別に設定項目や機能が違うのでプログラムの使い回しは互換性のある種類以外は困難。
- アナログ入力対応機もある。
- センサー類は自前で回路を設計するので機器の最小構成が出来る。
PICを使った電子工作の実例の動画です↓
動画は電源管理機能の無いRaspberryPIの電源管理をPICで行なっています。
簡単なプログラムなら開発費を抑えてコンパクトに実装することが出来ます。
初心者が使いやすいマイコンは?
現時点では上記3つのうち、一番始めに「電子工作」として初心者が手軽に使えるのは間違いなくArduinoと言えるでしょう。何せシールド(拡張ボード)の豊富さは他のマイコンと桁が違います。
また、初心者向けの書籍も数が多いので本の通りに進めていけば初めてでも難なく始められること間違い無しでしょう。
さらに、Arduinoは用途に応じて種類も豊富な上、亜種ともいえるマイコンも多種存在し、どれもArduinoのプログラム環境であるIDEでArduino言語を用いてプログラミング出来るのもすごいところです。
例えば、ESP32開発ボードはUSB接続端子搭載で小型の低価格ボードなうえ、WiFi/Bluetooth搭載で最大160MHz駆動というバケモノマイコンボードです。↓
ESP32を単三電池2本で動かしてWiFi機能を使った電子工作の例です↓
このようにArduioの亜種も沢山ありますが、最初に手がけるArduinoの種類に迷ったらまずは最も基本型となるUNOで慣れてみてください。
困ったときもWebでの情報が豊富ですしオススメです。
<Arduino Uno>
Arduinoは「純製品」と「互換品」があり、互換品が安く出ています。2つの違いはUSBドライバのインストールが必用か否かぐらいで大差ありませんが純正品は永久保証が付いていますので安心です。
ちなみに、RepRap系3Dプリンター(自作3Dプリンターや格安の家庭用3Dプリンター)の基盤としてもArduinoが使われていてMarline等の3Dプリンター制御専用ファームウェアを書き込む事で3Dプリンターの制御ボードとして機能します。
(3Dプリンターで使われているArduino基盤はMegaと呼ばれるポート数の多いタイプの物です。)
そして、その3DプリンターはなんとRaspberryPiで制御することが出来るのです。
dreamerdream.hateblo.jp
マイコン、なかなかすごいでしょ?
Arduinoの学習キット、これで学習を進めていけば自動水やり装置など実用的なものを実際に作りながら学習が出来ますのでお勧めしておきます。