●フォトトランジスタ さて、次に紹介するデバイスはフォトトランジスタだ。これは光を測定するトランジスタだ。 これを用いて僕は部屋の光量を測定している。ここに影を作ってやると信号が変わるのがお分かりになるだろう。 つまり、僕はどれだけの量の光がこのデバイスに降り注ぐのかを測定しているんだ。 これらのセンサはどのようにして機能するのだろうか。これはバイポーラトランジスタなんだけれども、電源供給側にプルアップ抵抗器を追加する。こちらはグランドに接続して、残りはプロセッサに接続する。この状態で、光がこのデバイスに到達すると、フォトトランジスタを流れる電流値が変化する。つまり、抵抗にかかる電圧が降下するのだ。 フォトトランジスタは信号を増幅することができる。だから、一般的にフォトセンサやフォトダイオードよりも、フォトトランジスタが好まれる。それはいつだってそうなんだ。フォトトランジスタにはこの抵抗器の値があるのだからね。
●基板
さて、基板を見てみると、フォトトランジスタがあって、プルアップ抵抗器があるね。僕はこの基板上で電圧を測定しようとしているんだ。 このC言語プログラムでは、今お見せしているコードは今まで見てきたものと極めて似ているだろう。 これは不平衡接続による測定方法だ。差圧測定ではなくてね。 そして、僕はフレーミングを送信し、電圧を読み込み、そして低位バイトと高位バイトを送信する。 ●同期検波 さらに面白いのはお次にお見せするモノだ。それは、この例において僕は僕の指からの反射光を測定している。 ここで、もしも僕が単純に光を測定しているだけであるならば、室内の光と僕の指からの反射光との区別がつかない。 そこで、僕はここで同期検波(syncronys detection)と呼ばれるテクニックを用いている。 これは、連続的に光をオンオフしているんだ。君たちが認識するよりも高速にね。フォトトランジスタを見てみると、室内のバックグラウンドの光が変化している。一方で、上の方にはオンとオフを繰り返している反射光からの信号がある。 そして、それぞれのサイクルを加算したり減算したりすることで、僕は部屋の光という反射光を区別することができるんだ。 さらに、これはもうちょっとばかりトリッキーだ。コードのこの部分を見たまえ。
僕は入ってくる光を個別に測定している。つまり、光が出て行っているときに、入ってくる光はオフだ。そして、光があるオンの時に入ってくる光を測定する。 僕はこれらをどちらも送信する。すると、ホストプログラムは、僕は光がオンになっている時と、オフになっている時とで、別々に値を読み込んでいるんだ。 そして、これらの別々の値を蓄積することによって、室内の光を差し引いてやることで反射光のデータを得ることができるというわけだ。 また、この例においては、基板上にフォトトランジスタの他に光源が搭載されている。 (この後、通信が途切れたため、この項の説明はここまでで終了する) (つづく) 講義の目次は 【和訳版】FabAcademy 2016 からご覧ください。 ※この記事は FabAcademy 2016 におけるニール・ガーシェンフェルド教授(MIT)による講義動画をもとに作成しました。正確な訳ではないので間違っていたら指摘いただけるとありがたいです。