マイコン/CPU
ディジタル回路とコンピュータ
ディジタル回路は,もともと微分方程式を解くための「計算機」すなわち「コンピュータ」を作るための要素技術として発展しました.コンピュータの基本動作は「プログラムに書かれた手順どおりに計算処理を行う」というものであり,プログラム次第で様々な仕事をさせることができます.この非常に高い汎用性により,現在は通信機(PCやスマートフォンも含む),自動車,ロボット,家電,ゲーム機など幅広い機器で利用されています.
マイコンと組み込みシステム
コンピュータの本来の用途は技術者の設計を助ける「数値計算」ですが,単に「プログラムのとおりに動く回路」として使われることも少なくありません.ユーザのボタン入力を受け付けるキーボードやマウスの制御回路や,ユーザに対して情報を出力するLEDや液晶ディスプレイの制御回路など,いわゆる「ユーザ・インターフェース回路」(UI)は代表的な利用例の1つです.
機器の中に組み込む小規模な制御回路を作る場合,「コンピュータの回路本体」と「コンピュータと連携して動作する補助回路」を1つのチップに詰め込んだ物があると便利です.こうして作られたのが「マイクロ・コントローラ」(MCU,Micro Controller Unit)あるいは「マイクロ・プロセッサ」(MPU,Micro Processor Unit)と呼ばれる電子部品で,一般的には「マイコン」と呼ばれます.PIC,AVR,STM32,ESP32,RL78などの様々なマイコンが各社から発売されており,安価かつ手軽に使えるので電子工作でもよく利用されています.マイコンを使った小規模から中規模の制御回路は,「組み込みシステム」などと呼ばれます.
ディジタル回路とアナログ回路
ディジタル回路では,電圧が低い状態を “0”,電圧が高い状態を “1” として扱います.しかし,これはあくまで形式的な話であり,物理的な実体である電子回路としては電圧や電流などが連続的に変化します.つまり,ディジタル回路は「アナログ回路の一種」です.よって,コンピュータなどを含むディジタル回路を設計するためには,「アナログ電子回路」の知識が必要不可欠です.特に,最近のコンピュータは非常に高速なので,「高周波アナログ回路」の知識がないと不具合を出す可能性が高まります.これはコンピュータ本体の設計に限らず,コンピュータとデータをやりとりする周辺機器を扱う場合にも当てはまります.
コンピュータとプログラム
コンピュータの動作を指示する命令を書き並べたものを「プログラム」といい,プログラムを書くことを「コーディング」などといいます.プログラムの実体は “1” と “0” のデータの羅列(機械語)ですが,これを人間が直接コーディングするのは困難なので,英語に似た形式の「プログラミング言語」(高級言語)を使うのが一般的です.プログラミング言語にはC,C++,Basic,Java,Python,PHP,JavaScriptなど,動かすコンピュータの種類や用途によって様々なものがあります.これらの文法については「ソフトウェア」の項目で扱います.
コンピュータを使う上で重要なのはプログラム自体というよりも,「プログラムを使ってどれだけ価値を生み出すか」です.
コンピュータと数学
コンピュータの本来の用途は数学や物理の問題を解くための「数値計算」であり,そのために作られたプログラムは「ソルバ」や「シミュレータ」などと呼ばれます.ソルバやシミュレータを開発・利用してコンピュータを最大限に活用するためには,「数学」の知識が不可欠です.また,最近話題になっている「人工知能」(AI)の本質は確率・統計を中心とした数値計算です.AIをまともに開発・利用するためには,コンピュータやソフトウェアの知識に加えて,数学に対する理解も欠かせません.
コンピュータを実際に作る
実際に「コンピュータ」の電子回路を作りながら,プログラムを読み込む仕組みや演算処理の原理を学びます.