マイコン
マイコンとは
マイコン(マイクロコントローラ)は、CPU・メモリ・入出力機能を1つのチップに収めた小さなコンピュータです。炊飯器・エアコン・自動車・キーボードなど、身の回りの電子機器のほとんどに入っており、「機器を制御する」ことに特化しています。
PCのプロセッサが性能を追求するのに対し、マイコンは低価格・低消費電力・リアルタイム性を優先します。数十円のチップが電池で何年も動き、ボタン入力に即座に反応する — この割り切りがマイコンの本質です。
PCとの違い
| 観点 | マイコン | PC・サーバー |
|---|---|---|
| 構成 | CPU・メモリ・周辺機能が1チップ | 部品を組み合わせる |
| メモリ | KB〜MB単位 | GB単位 |
| OS | なし(ベアメタル)か小さなRTOS | [[Linux]] や Windows |
| 用途 | 機器の制御に専念 | 汎用的な処理 |
マイコンには [[OSの基礎]] で扱うようなフル機能のOSが載らないことが多く、電源投入と同時に書き込んだプログラム(ファームウェア)が直接動きます。複数の処理を時間制約付きでこなす場合は、FreeRTOSのようなRTOS(リアルタイムOS)を使います。[[プロセスとスレッド]] のような仕組みを、ごく小さなメモリで実現するイメージです。
開発の入り口
- Arduino — マイコンボードの定番。C++ベースの簡単なコードでLED点灯やセンサー読み取りを試せる
- Raspberry Pi Pico / ESP32 — 数百円で買える人気ボード。MicroPythonでも開発でき、ESP32はWi-Fi・Bluetooth内蔵
- 開発の基本は GPIO(汎用入出力ピン)の制御 — ピンの電圧をON/OFFしてLEDを光らせ、センサーの値を読む
なお、名前が似ている Raspberry Pi(無印)はマイコンではなく [[Linux]] が動くシングルボードコンピュータです。「OSが動くか」が両者を分ける分かりやすい境界線です。
初学者向けポイント
- IoTデバイスの実体はたいてい「センサー+マイコン+通信モジュール」。測定値を [[エッジコンピューティング]] やクラウドへ送る末端を担う
- Webエンジニアにとっても、キーボードやIoT家電のファームウェア更新など、マイコンは意外と身近な存在
- 制約の中でどう動かすかを考える組み込み開発は、メモリやCPUを意識する良い訓練になる
関連技術とのつながり
- [[OSの基礎]] — マイコンはOSなし(ベアメタル)や小さなRTOSで動く点がPCと対照的
- [[エッジコンピューティング]] — マイコンを載せたIoTデバイスはエッジ側の末端にあたる
- [[Linux]] — OSが動くシングルボードコンピュータとの境界を理解する対比先
- [[プロセスとスレッド]] — RTOSはタスク切り替えの仕組みを小さなメモリで実現している
Q: マイコンの説明として正しいのはどれ?
- [x] CPU・メモリ・入出力機能を1チップに収め、機器の制御に特化した小さなコンピュータ
- [ ] PCのCPUを小型化して性能を追求したプロセッサ
- [ ] クラウド上で動く仮想マシンの一種
解説: マイコンは性能よりも低価格・低消費電力・リアルタイム性を優先し、機器制御に専念する1チップのコンピュータです。
Q: マイコンとRaspberry Pi(無印)を分ける境界として本文で挙げられているのはどれ?
- [ ] チップの製造メーカーが違う
- [x] LinuxのようなOSが動くかどうか
- [ ] インターネットに接続できるかどうか
解説: Raspberry Pi(無印)はLinuxが動くシングルボードコンピュータで、OSなしや小さなRTOSで動くマイコンとは役割が異なります。
Q: ファームウェアの説明として正しいのはどれ?
- [ ] マイコンの周辺機能を拡張する外付け部品
- [ ] マイコン向けのクラウド管理サービス
- [x] マイコンに書き込まれ、電源投入と同時に直接動くプログラム
解説: フル機能のOSを持たないマイコンでは、書き込んだファームウェアが起動と同時に直接ハードウェアを制御します。