第2回目は、そもそもマイコンとは何か、なかなか分かりづらいモノなんですが概要を説明します。
本シリーズ記事の内容を改訂して、基礎編、応用編、実践編として以下のリンクに公開しています。以下のシリーズはさらにいろいろなPICマイコンの機能をご紹介しています!
PICマイコン電子工作入門 〜基礎編〜
PICマイコン電子工作入門 〜応用編〜
PICマイコン電子工作入門 〜実践編〜
マイコンとは
「マイコン」は身の回りにかなり浸透しているのをご存じでしょうか。「マイコン」という言葉を知らなくても、実はほとんどの方が知らないうちにマイコンを使った製品を使用しています。例えば、テレビや洗濯機、炊飯器などの家電製品、またそれらのリモコンに使われています。さら複雑な制御が必要な製品では、例えば自動車では1台で数十個〜100個程度のマイコンが使われています。
ところで、マイコンって何をするものなのでしょうか。
一言でいえば「外部から入力の電気信号を受けて、それをマイコンの中でプログラムで何かの処理をして、その結果をマイコンの外に電気信号として出力する」というものです。そういわれても何だかさっぱり、結局何ができるの?って感じですよね。もうちょっと具体的に説明してみます。
まず、マイコンの外観はこんな感じになっています。
黒いマイコン本体から金属の端子のようなものが出ていますが、これらを「ピン」または「足」と呼んでいます。これらのピンはいろいろな役割があって、マイコン本体に電源を供給するための電源ピン、マイコンにプログラムを記憶させる(プログラムを書き込むともいいます)ためのピンなど、マイコンそのものを制御するピンがあります。また、先ほど説明したマイコンを動作させるためにとても重要な、電気信号を入力するピン、電気信号を出力するピンがあります。
まだ何ができるのかよくわからないと思いますが、まずはここまでの説明ではこんなイメージになります。
電気信号の入力・出力とは
上の説明で「電気信号」という言葉を使いましたが、具体的にはその信号は「電圧」になります。つまりマイコンは何ボルト、という電圧を入力ピンで受けて、プログラムで何らかの処理をして、何ボルト、という電圧を出力ピンに出力します。
ところで、マイコンへの電圧の入力と、マイコンからの電圧の出力は具体的にはどのようなものなのでしょうか。
まず入力としては、スイッチやいろいろなセンサがあります。例えばスイッチを押していないときはマイコンの入力ピンが0ボルト、スイッチを押すとその入力ピンが何ボルトかの電圧になるようにすれば、マイコンに対して、オンやオフの信号を入力することができます。
また、例えば温度を感知する温度センサというものがあります。これは温度に応じた電圧を得ることができる電子部品です。これをマイコンの入力にすると、マイコンは入力電圧が何ボルトかを調べることにより、現在の温度を知ることができます。なお、入力として使えるセンサには非常に多くのものがあります。センサで感知できるものは、明るさ、色、音、水分、圧力、ph(酸性/アルカリ性)、温度、湿度、位置(GPS)、高さ、傾き、加速度、方位、アルコール濃度、ガス濃度、距離、動き、ほこり、炎、衝撃、風、、、と多岐にわたっています。
次に出力ですが、例えばモーターを制御したり、音を鳴らしたり、電球を光らせたり、ということができます。実際にはマイコンの出力ピンを直接モーターに接続したり、100Vの電球に接続したりすることはできません。そのような場合には、それらを制御する回路をマイコンの出力ピンとの間にいれて制御することになります。また、赤外線を発する、赤外線発光ダイオード、というものがあります。この発光を制御すると、赤外線リモコンとして動作させることが可能となります。
これらの入力と出力を組み合わせると、いろいろなものを作ることができます。
例えば、身近にある家電製品のリモコンの中では何をしているかというと、
こんな感じになります。また、エアコンや炊飯器では温度センサを使って、そのセンサで検知した電圧をマイコンで読み取って、モーターを制御したり電熱器を制御したりして、空調したりご飯を炊いたりしています。
これらは結構直球的な使い方ですが、応用するといろいろと面白い使い方もできます。例えば、CQ出版社から発行されている「インターフェース」という雑誌があり、この雑誌の2013年6月号にとても面白いマイコンを使った製作記事がありました。
寝るときにベッドの片隅に置いておき、加速度センサを使用して寝返りの状態を検知して(入力)、もし寝返りが頻繁におこるようだったら不快と判断して(プログラム処理)、エアコンの温度を調整する(赤外線発光ダイオードからエアコン制御信号を出力)、というものです。私にはとても思いつかないですし、作れないと思いますが、いろいろとアイデアがあれば、面白いモノが作れるとても良い例だと思います。
PICマイコンとは
このシリーズでは「PICマイコン」というものを使います。マイコン、と一言でいっても、例えば自動車は多くの会社から多くの車種が販売されているように、マイコンも多くの会社から多くの種類が販売されています。
PICマイコンとは、Microchip社が製造販売しているマイコンで、個人ユースでも多く使用されているマイコンです。
そのほかにも、Atmel社のAVRマイコン、ルネサスエレクトロニクス社のH8マイコン、サイプレスセミコンダクタ社のPSoCマイコンなどがあります。(他にもいろいろありますので興味があればネットで調べてみてください。個人的にはPARALLAX社のPropellerというマイコンを一度使ってみたいと思っています)
PICマイコンを始め、これらのマイコンは基本的に1社が設計、製造していますが、ちょっと異質なマイコンがあります。ARMマイコンというものです。ARM社、という会社があるのですが、ARMマイコンはこのARM社では製造していないんです。まず、ARM社はARMマイコンのコアとなる仕様を作成します。次に、ARMマイコンを作りたい会社はARM社から仕様書とライセンスを購入し、ARMマイコンを設計、製造します。有名なところでは、iPhoneやiPadに搭載されているものはARMをベースだった時期がありました。現在はApple社自身で設計したものを使用しています。
なお自動車では、どのメーカ、どの車種でも運転方法はだいたい同じですが、マイコンは種類(PIC、AVRなどの単位)で使い方(開発の仕方)がかなり異なります。具体的には、PICマイコンの場合には、PICマイコン用のプログラムを開発するソフトウエア、PICマイコンにプログラムを書き込むためのツール、などが必要になります。これらのツールは他のAVRやH8マイコンなどには使用できません。ただ、どのマイコンも、個人ユースの開発ソフトウエアは無償、プログラム書き込みツールも数千円程度ですので、製作するものにあったマイコンを選ぶ、ということも可能だと思います。
高速プロトタイピング
これまで説明したような感じでマイコンを使用して製作する方法もありますが、これとは別に「高速プロトタイピング」という作り方もあります。
高速プロトタイピングとは、例えば、LED(発光ダイオードといって電池をつなげると光る部品)を何個かつけて、こんな感じで光らせた場合はどんな雰囲気になるか確認したいんだけど、とか「ちょっと試してみたい」ということがあります。このようなとき、マイコンを買ってきて、他に必要な抵抗や発光ダイオードで回路を作って、、、というのはやりたいことは簡単なのに、マイコンを買ってきて作るにはちょっと手間がかかります。また、もうちょっと複雑なものでは、例えばウェブサイトから天気予報のデータを取得して、その情報に応じた色の光で天気を知らせるものをつくりたい、というとき、マイコンを買ってきて、ゼロからネットワークまわりを作り込むのはかなり大変です(ネットワークそのものの勉強から始めないとダメそうですよね)。
いずれの場合も、ただ発光ダイオードを光らせたい、とか、ネットワークからちょっとデータを取得したい、という誰かが必ずやりそうなことをはじめから作るのはちょっともったいないですよね。
このように一般的なことをすぐに試せるように、予めマイコンと必要な回路、いろいろなソフトウエアを予め用意しているものが高速プロトタイピングと呼ばれているものです。
高速プロトタイピングとして代表的なものに「ラズベリーパイ(Raspberry Pi)」という製品があります。
このラズベリーパイは、電気信号を入力したり出力したりする部分や、ネットワークポートなどが装備されていて、それを操作するためのソフトウエアもすでにできています。先ほどの「ちょっとLEDを光らせてみたい」とか「ネットワークから情報を取りたい」という場合、すでに電気信号の入出力ピンやネットワークポートがありますので、それに必要なものを接続して、すでに用意されているソフトウエアをちょっと組み合わせれば、すぐに動作確認できます。
高速プロトタイピングは名前のとおり、短時間で試作する、という目的のものです。試作目的ですが、できたらそのまま製品にしてしまってもよいですし、高速プロトタイピングで実際にうまく動くか確認してから、実際に回路設計して製作する、という作り方もあります。
いろいろと紹介しましたが、高速プロトタイピングでは簡単にいろいろとできるので魅力的ですが、マイコンの細かい動作や電子回路の組み方なのどは必要ない分、なかなか身につかないです。
このシリーズでは、PICマイコン、という1つのマイコンを通して、マイコンの使い方や電子回路の組み方を一つずつ説明して、あとで応用が利くようにしたいと思っています。
更新履歴
日付 | 内容 |
---|---|
2015.9.14 | 新規投稿 |
2018.12.3 | 新シリーズ記事紹介追加 |