第2回目は、そもそもマイコンとは何か、どんなことができるのか、概要を説明します。マイコンとは「マイコン」は身の回りにかなり浸透しているのをご存じでしょうか。「マイコン」という言葉を知らなくても、実はほとんどの方が知らないうちにマイコンを使った製品を使用しています。テレビや洗濯機、冷蔵庫や炊飯器などの家電製品、またそれらのリモコンに使われています。さら複雑な制御が必要な製品では、例えば自動車では1台で数十個〜100個程度のマイコンが使われています。ところで、マイコンって何をするものなのでしょうか。一言でいえば「外部から電気信号を入力として受けて、それをマイコンの中のプログラムで何らかの処理をして、その結果をマイコンの外に電気信号として出力する」というものです。それではこれから具体的に説明していきます。マイコンの外観はこんな感じになっています。黒いマイコン本体から金属のようなものが出ていますが、この金属の部分を「ピン」または「足」と呼んでいます。これらのピンはいろいろな役割があって、マイコンに電気信号を入力するピンや、マイコンから電気信号を出力するピンなどがあります。マイコンは電気で動きますので、マイコン本体に電源を供給するための電源ピンなどもあります。マイコン本体内ではプログラムが動作して何らかの処理をします。いっても、まだ何ができるのかよくわからないと思いますが、まずはここまでの説明でこんなイメージが描ければOKです。電気信号の入力・出力とは?上の説明で「電気信号」という言葉を使いましたが、具体的にはその信号は「電圧」になります。マイコンは先ほど説明したピンで電圧を読み取って、プログラムで何らかの処理をして、ピンに電圧を出力します。マイコンの外観を見るとピンがたくさんありますよね。このようにピンがたくさんあるのは、入力、出力ともに複数のピンが必要なケースが多いので、用途に合わせていろいろなタイプのマイコンが用意されています。ところで、マイコンへの電圧の「入力」と、マイコンからの電圧の「出力」は具体的にはどのようなものなのでしょうか。「入力」としては、スイッチやいろいろなセンサがあります。スイッチを押していないときはマイコンの入力ピンが0V(ボルト)、スイッチを押すとその入力ピンが5Vの電圧になるように、マイコンの入力ピンにスイッチを接続すれば、この電圧を読み取ることにより、スイッチのオンやオフの信号をマイコンに入力することができます。(スイッチをどのようにマイコンに接続すればよいかは、この入門シリーズで詳しく説明します)また、例えば温度を感知する「温度センサー」というものがあります。このセンサーは温度に応じた電圧を出力することができる電子部品です。外観はこんな感じです。高精度IC温度センサ(秋月電子通商)これをマイコンの入力ピンに接続すると、マイコンは入力電圧が何ボルトかを調べることにより、現在の温度を知ることができます。入力として使えるセンサには上にあげた温度センサー以外にも、非常に多くのものがあります。多岐にわたっています。これらのセンサーをマイコンの入力ピンに接続すると、知りたい状態がわかるわけです。次に出力ですが、例えばモーターを制御したり、スピーカーを鳴らしたり、電球を光らせたり、ということができます。実際にはマイコンの出力ピンの電圧は5V程度で電力も小さいので、直接モーターに接続したり、100Vの電球に接続したりして制御することはできません。そのような場合には、モーターや電球を制御する電子回路をマイコンの出力ピンに接続して制御することになります。出力については他にも赤外線を出すことのできる「赤外線LED」というものがあります。最近のリモコンはカバーが付いている製品が多くてなかなか気づかないですが、このようなリモコンの信号送信部を見たことがあるのではないでしょうか。わかりやすいリモコンが手元にありましたので、こちらもご紹介します。この赤外線LEDをマイコンで出力制御すると赤外線リモコンとして動作させることができます。ところで赤外線LEDってかなり特殊な部品のような気がしますが、電子部品を扱うショップでしたら普通に扱っていますので、家の中の家電を全て制御する自分用の家電コントローラも作れるかもしれませんね。赤外線LED(秋月電子通商)これまで説明してきましたさまざまな入力と出力を組み合わせると、いろいろなものを作ることができます。身近にある家電製品のリモコンの動作をもう一度考えてみます。リモコンの中では何をしているかというと、こんな感じになります。エアコンや炊飯器では温度センサーを使って、そのセンサーの電圧をマイコンで読み取って、温度の応じてエアコンの運転を制御したり炊飯器の電熱器を制御したりして、空調したりご飯を炊いたりしています。これらは結構直球的な使い方ですが、応用するといろいろと面白い使い方もできます。CQ出版社から発行されている「インターフェース」という雑誌があり、この雑誌の2013年6月号にとても面白いマイコンを使った製作記事がありました。「エアコン快適コントローラの製作」という記事なのですが、寝るときにこの装置をベッドの片隅に置いておき、加速度センサを使用して寝返りの状態を検知して(入力)、もし寝返りが頻繁におこるようだったら不快と判断して(プログラム処理)、エアコンの温度を調整する(赤外線LEDからエアコン制御信号を出力)、というものです。私にはとても思いつかないですが、いろいろとアイデアがあれば、面白いモノが作れるとても良い例だと思います。ここでご紹介したセンサーや出力の組み合わせをいろいろ考えて、オリジナル作品を想像してみてください。PICマイコンとはこのシリーズでは「PICマイコン」というものを使います。マイコン、と一言でいっても、例えば自動車がは多くの自動車メーカーから多くの車種が販売されているように、マイコンも多くの会社から多くの種類が販売されています。Technology社が製造販売しているマイコンで、個人ユースでも多く使用されているマイコンです。そのほかにも、あまり耳にしたことはないと思いますが、ルネサスエレクトロニクス社のH8マイコン、サイプレスセミコンダクタ社のPSoCマイコンなどがあります。(他にもいろいろありますので興味があればネットで調べてみてください)PICマイコンを始め、これらのマイコンは基本的に1社が設計、製造していますが、ちょっと異質なマイコンがあります。ARMマイコンというものです。ARM社、という会社があるのですが、ARMマイコンはこのARM社では製造していないんです。ARM社はARMマイコンのベースとなる仕様を作成します。次に、ARMマイコンを作りたい会社はARM社から仕様書とライセンスを購入し、ARMマイコンを設計、製造します。有名なところでは、iPhoneやiPadに搭載されているプロセッサはARMをベースだった時期がありました。現在はApple社自身で設計したものを使用しています。自動車は、どのメーカーのどの車種でも運転方法はだいたい同じですが、マイコンは種類によって使い方(開発の仕方)がかなり異なります。具体的には、PICマイコンの場合には、PICマイコン用のプログラムを開発するソフトウエア、PICマイコンにプログラムを記憶させるためのツールなどが必要になります。これらのツールは他のマイコンには使用できません。どのマイコンも、個人ユースの開発ソフトウエアは無償、プログラム書き込みツールも数千円程度ですので、製作するものにあったマイコンを選ぶ、ということも可能だと思います。高速プロトタイピングこれまで説明したような感じでマイコンを使用して製作する方法もありますが、これとは別に「高速プロトタイピング」という作り方もあります。ここで、高速プロトタイピングについて簡単に説明しておきます。LEDを何個かつけて、こんな感じで光らせた場合はどんな雰囲気になるか確認したいんだけど、とか「ちょっと試してみたい」ということがあります。このようなとき、マイコンを買ってきて、必要な回路を作って、、、というのはやりたいことは簡単なのに、マイコンで作るにはちょっと手間がかかります。複雑なものでは、例えばウェブサイトから天気予報のデータを取得して、その情報に応じた色のLEDを光らせて天気予報を知らせるものをつくりたい、というとき、マイコンを買ってきて作るのも大変です。いうのはマイコンはネットワークに接続する機能は持っていないので、ゼロからネットワークまわりを作り込むのはかなり大変になってしまうためです(というよりそもそもネットワークそのものの勉強から始めないとダメそうですよね)。いずれの場合も、ただLEDを光らせたいだけ、とか、ネットワークからちょっとデータを取得したいだけ、という誰かが必ずやりそうなことなんですが、それを各自で始めから作るのは時間がちょっともったいないですよね。このように一般的なことだったらすぐに試せるように、予めマイコンと必要な回路、いろいろなソフトウエアが予めすでに作られていて簡単に利用できるようになっているシステムを高速プロトタイピングシステムと呼んでいます。Pi)」という製品があります。Piこのラズベリーパイは、電気信号を入力したり出力したりする部分や、ネットワークポート、USBポートなどが装備されていて、それを操作するためのソフトウエアもすでにできています。先ほどの「ちょっとLEDを光らせてみたい」とか「ネットワークから情報を取りたい」という場合、すでに電気信号の入出力ピンやネットワークポートがありますので、それに必要なものを接続して、すでに用意されているソフトウエアをちょっと組み合わせれば、すぐに動作確認できます。「Arduino」という製品を聞いたことがあるかもしれません。Piと同様に、よく使われる機能がコンパクトに収まっています。最近のArduinoで使用しているマイコンは、先ほどご紹介したARMベースのマイコンです。高速プロトタイピングは名前のとおり、短時間で試作する(プロトタイピング)、という目的のものです。試作目的ですが、できたらそのまま製品にしてしまってもよいですし、高速プロトタイピングで実際にうまく動くか確認してから、実際に回路設計して製作する、という作り方もあります。ご紹介しましたが、高速プロトタイピングでは簡単にいろいろとできるので魅力的ですが、一方でマイコンの細かい動作や電子回路の組み方などの知識や作業は必要ない分、電子工作の深いところの知識はなかなか身につかなかったりします。