1. 検出する
やスイッチが、光、音、力、位置などの変化を電圧や電気的なON/OFFへ変えます。
LESSON 01 ・ INPUT
入力装置は、人の操作や現実世界の変化を検出し、コンピュータが保存・計算できるデータへ変える「入口」です。
BIG PICTURE
ノイマン型コンピュータの5大機能では「入力」に当たります。装置が意味を判断するのではなく、検出した変化を決められた形式で渡します。
大切な区別:キーを押した事実、文字「G」、画面に描かれたGは別の段階です。入力装置、OS、アプリ、出力装置が順に役割を分担します。
INSIDE AN INPUT DEVICE
装置の形が違っても、検出から送信までの考え方は共通しています。
やスイッチが、光、音、力、位置などの変化を電圧や電気的なON/OFFへ変えます。
小さな信号を増幅し、不要な揺れを減らします。機械式スイッチでは、一度押しただけなのに細かくON/OFFするも除きます。
連続した電圧はA/D変換し、キーやボタンには識別番号を付けます。カメラなら画素ごとの明るさと色の値になります。
装置内のコントローラが値を一時保持し、USB、Bluetooth、内部バスなどの決められた通信方式でコンピュータへ送ります。
DEVICE TYPES
入力データの形、送る頻度、必要な正確さを比べると、各装置の違いが見えてきます。
| 装置 | 検出するもの | 主なデータ | 送られ方 |
|---|---|---|---|
| キーボード | キーのON/OFF | キーの識別情報、押す/離す | 変化が起きたとき |
| マウス | 移動、ボタン、ホイール | 移動量または位置、ボタン状態 | 短い間隔で繰り返す |
| タッチパネル | 触れた位置や圧力 | X・Y座標、指の数 | 触れている間、連続的 |
| マイク | 空気の振動 | 時刻ごとの音の大きさ | 一定の標本化周波数 |
| カメラ | 画素へ届く光 | 画素ごとの明るさと色 | 1秒に複数の画像 |
| 温度・加速度センサー | 温度、加速度、回転など | 測定値と時刻 | 定期的または変化時 |
マウスは「前回からどれだけ動いたか」という相対量、タッチパネルは「画面のどこか」という絶対位置を主に送ります。アプリはこの違いをOSから統一された入力イベントとして受け取れます。
ANALOG TO DIGITAL
音、光、温度のような量はなめらかに変化します。コンピュータで扱うには「いつ測るか」と「どの数値に丸めるか」を決めます。
一定の時間間隔で値を測ります。1秒に測る回数をと呼びます。
測った値を最も近い段階へ丸めます。8ビットなら通常256段階、16ビットなら65,536段階を表せます。
丸めた数値をビット列にします。装置の種類、値、時刻などを決められたデータ形式で送ります。
A/DはAnalog-to-Digital(アナログ・デジタル)変換の略です。値を細かく表すほどデータ量は増えますが、センサー自体の精度や雑音も結果に影響します。
SMALL EXPERIMENT
つまみを連続的に動かし、「測定」した瞬間の値が0〜255の整数と8個のビットへ変わる様子を見ます。
ここでは0%を0、100%を255へ対応させます。実際の装置では基準電圧、増幅、雑音除去なども必要です。
10進数:107 / 16進数:0x6B
42%に最も近い8ビット値として107を記録しました。
DEVICE TO APPLICATION
現在のコンピュータでは、複数の回路とソフトウェアが入力を安全で扱いやすい形へつなぎます。
FOLLOW ONE KEY
キーボードが最初から文字「G」を完成させて送るわけではありません。
HOW TO COMPARE
故障したセンサー、誤操作、不正なUSB機器、カメラやマイクのプライバシーなども考える必要があります。OSの権限確認や入力値の検査は、入力を安全に使うための重要な処理です。
入力装置はキーボードやマウスだけではありません。マイク、カメラ、温度計、ゲームコントローラ、ネットワークから受け取るデータも、システムにとっての入力です。また、タッチパネルのように入力と出力の両方を行う装置もあります。
CHECK
標本化は一定の時間間隔で音の信号を測り、量子化は測った大きさを有限個の数値のどれかへ丸めます。
キーボードは主にキーの位置と状態を送り、OSが配列、修飾キー、入力方式を使って文字や操作へ解釈するからです。
割り込みは入力の到着をCPUへ知らせます。DMAはカメラ画像などのまとまったデータを、CPUが1項目ずつ運ばずに主記憶へ転送します。
分解能は値を区別できる細かさ、遅延は現実の変化からプログラムへ届くまでの時間です。