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