人の特殊感覚の中でも視覚や聴覚ほどは取り扱われるケースが多くなく、マイナーな嗅覚。まだ解明されてないことも多いらしく、説明している書籍も多くはない。においのセンシングを検討しているが、本格的には研究所レベルの設備が必要になるため、簡易的にガスセンサーで測定してみる。
においを感じる仕組み
まず人の嗅覚について整理してみる。においの正体は空気中の微量の分子で、これらの微量の分子を鼻の奥の嗅細胞の表面にある受容体で感知する。人には約400個の受容体があり、それらの情報を組み合わせることで数万種類のにおいを判別できる。においの情報は判別できるだけでなく、扁桃体に送られることで主観的な好き嫌いという情報が加えられ、また海馬に送られることで新しいにおいかどうかなどの情報も加えられて記憶される。(それに加えて対象のものの情報も統合されていると思う。例えば、職場で仕事をやりづらい人がつけているきつい香水のにおいとか。。)
嗅覚の情報は、他の視覚などの特殊感覚の情報と異なり、脳に直接送られる。これは過去の原始的な部分の名残りで、危険をいち早く察知するための構造らしい。アフリカゾウは2000個近い受容体がある。身近なところではイヌは800個ほどで人の約倍ぐらいの嗅覚受容体を持っている。
嗅覚は味わいにも影響し、鼻が詰まっているときには味を感じなくなったりする。食べ物の味わいは、味覚からの5つの情報(甘味、塩味、酸味、苦味、うま味)だけでなく、嗅覚からの情報も統合されて脳で処理されているからだ。
においの測定
においを測定する環境を構築してみた。センサーはフィガロ社のにおい検知用ガスセンサーのTGS2602を使用。このセンサーは、エタノール/硫化水素/アンモニア/VOC(揮発性有機化合物:トルエンや酢酸エチルなど)を検知できる。相対値の検出なので、ある標準の状態を作って、そこからの変化を検出する形になる。検出信号はアナログ値で出力されるが、ラズパイはアナログ入力ができないので、今回はArduinoを使用。Arduinoのはラズパイと違い、アナログ入力ができて制御用のマイコンとして使える一方、OSが搭載できないので、マルチタスクなど複雑な処理はできない。
実際に構築した環境は以下のような感じで、容器の中に検出対象を入れて蓋をすれば、容器内に充満するにおいが検知できる仕組みにした。
- メインボード:Arduino UNO
- におい検知センサー:TGS2602搭載ボード(写真の左のボードで、金属の円柱形がセンサー)

測定対象は、レモンポッカ、コーヒー、麦茶、野菜ジュース、ミルク、日本酒。対象を御猪口に入れて、そのまま測定容器に入れてみる。

結果は以下のグラフのようになった。これは測定した各値に対して、初期値を割ったものをプロットしたグラフ(横軸は秒)。アルコールを含む日本酒の変化量が大きい。レモン汁など匂いのきついものも高めの値が出ており、妥当な結果が得られている。コーヒーが少し興味深く、匂いの検知度が徐々に上がって入っている。コーヒーは800種類以上の揮発性の香気成分が含まれているらしい。

においを検知できるようになったが、これはセンサーが出した値でどういったにおい成分がどれぐらいの強さで反応しているかまではわからない。例えるなら、複数の分子を一つの嗅覚受容体で反応した強さが表れているのと同じだけなので、ここからにおいの種類や良し悪しを表現するということはできない。あくまでにおいを検知して定量的に見れただけで、においの質がつかめるわけではなく、このあたりが嗅覚を再現することの難しさだと思う。
参考
Arduinoでのアナログ信号のモニター方法
https://deviceplus.jp/hobby/arduino_f07/