データシートの読み方 オーケー。ここで、話を前に戻そう。僕たちが取り組んでいることは、完了するのに何週間もかかる。 君たちにまずやってほしいことは、AVRのデータシートを読むことだ。そして、AVRの内部で何が起こっているのか、ということに慣れ親しんで欲しいんだ。 ここで、部品を見てみよう。例えば、センサの値を知るために電圧値を読みたいということがある。そして、データシートにはアナログ/デジタル変換器について書いてある。データシートのこの部品の項目を参照してみよう。これは君たちの多くが使おうと思っているだろうセンサの電圧値を読むことができる。 変換器そのものは、ひとつのマシンだ。ここ(データシートの変換器の項目)に書いてあるのは、変換器の全ての部品だ。これから数回の間に、僕たちはこいつにお目にかかるだろう。その時に、僕たちはピンを選んで電圧の範囲、データ配列、そしてゲインを選択することになる。
そして、データシートにはそれをどのようにセットアップすれば良いのかも書いてある。そして、例えばどのピンから読み込むのかとか、アンプで増幅されるまで時間がかかるか、などを記載した表がある。それを読み終えると、僕たちは抵抗器に関する記述に辿り着く。ここにも実際にセットアップなどの項目が書いてあるね。プロセッサへの入力に関する項目や、どのようにセットアップするかについても書いてある。 君たちはソフトウェアライブラリを用いるかもしれない。ソフトウェアライブラリというのは、詳細から君たちを遠ざけるものだ。しかし、これらの詳細が現実なのだ。詳細を隠してしまうことによって、君たちが真の意味でソフトウェアライブラリを理解できなくなってしまっている。ハードウェアがどのような動作を行なっているかを理解しない限りは理解できない。 だから、データシートがその理解の基礎になるんだ。ここには、ハードウェアが実際にどのように動作するのかが記載されている。
君たちは抵抗器と直接通信することもできるだろう。もしくは、C言語のプログラムを用いることで、現実から離れることができるだろう。もっと言えば、詳細を覆い隠すライブラリを用いてC言語のプログラムを書くことによって、現実から遠ざかることもできるし、インタープリタを用いてさらに遠ざかることもできる。 しかし、いずれにせよ、このデータシートに書かれていることが、実際に起こることなんだ。だから、現実に慣れ親しむことが重要だというのは、そういう理由からなんだ。 ライブラリによって、このような現実が覆い隠される前に、データシートを読んでみてほしい。
(つづく)
講義の目次は 【和訳版】FabAcademy 2016 からご覧ください。 ※この記事は FabAcademy 2016 におけるニール・ガーシェンフェルド教授(MIT)による講義動画をもとに作成しました。正確な訳ではないので間違っていたら指摘いただけるとありがたいです。