EduSpectro Project

EduSpectro 公式ガイド


「高校の理科室に、当たり前のように分光器を」

EduSpectroプロジェクトの公式ドキュメントサイトへようこそ! このサイトでは、自作分光器の作り方を詳しく解説します。授業での活用方法まで広がれば良いですね。

はじめに

分光器は「光を分ける」だけでなく、その背後にある物質の性質を読み取るツールです。スペクトルを目視で定性的に観察するだけではなく、データに基づいて現象を深く理解することができます。

分光器を自作?

浜松ホトニクス社の分光センサー C12880MA は高度な半導体製造技術により340〜850nmの波長を15nmの分解能で測定することができます。EduSpectro4X は、この分光センサーと高機能なマイコンRP2350を使用することで高度な光学設計を行うことなく、安定的に分光データを出力することができます。透過や吸収を測定する場合は、光源、サンプル、分光センサーのスリットを正確に配置する必要がありますのでそれらを一体的に収めた装置が必要となります。EduSpectroStation はコンパクトな白色半導体投光器を内蔵し遮光に配慮して設計した分光光度計です。 電子工作レベルの知識と3Dモデリングで分光器が自作できるのです。

EduSpectro Stationの構成

EduSpectro Station

EduSpectro Lab

分光データの取得と解析はProcessingというプログラム言語で作成したEduSpectroLab を使用します。Windows, Mac, Linux問わず使用することができます。露光時間の制御、繰り返し測定による平均化とピクセル方向の移動平均などのデータ処理、参照データのオーバーレイや透過・吸収測定での誤差の大きい波長領域の表示機能といった測定支援も行います。

EduSpectro Labの例

オープンソース

回路図、マイコンのファームウェア(Arduino IDE)、3Dモデル(STLファイル)、測定解析プログラム(Processing)は各リポジトリにMITライセンスと記載しています。無保証ですが、自由にカスタマイズしてお使いください。


EduSpectro4Xについて

PCにUSBで接続し、露光時間設定とデータコマンドを受け、データを出力します。EduSpectroLabはProcessingプログラムで書かれていますが、他の言語でもシリアル入出力ができるものであれば通信が可能です。 回路について簡単な説明を行い、その後、RP2350のプログラムについて説明します。

回路の概説

分光器の中核は分光センサーC12880MAです。仕様については 浜松ホトニクスのWebサイト をご覧ください。 RP2350マイコンから200kHzのクロックパルスと測定ごとのスタートパルスを入力すると、ビデオ端子から0-5Vの分光データを出力します。ビデオ端子の消費電流を抑えるためにバッファアンプを使用します。バッファアンプから抵抗で分圧してRP2350マイコンの12ビットADCに入力しています。 透過・吸収測定に使用する白色LEDは販売終了となっている豊田合成の手持ち在庫を使用しています。無くなり次第Seoul Semiconductor Inc.の「LED SUNLIKE COOL WHT 5000K 3030」に変更予定です。定電流素子を使用して光量の安定化を図っています。

EduSpectro4Xの回路

RP2350プログラムの概説

RP2350はラズベリーパイ財団が開発したマイコンで前世代のRP2040でバグのあった12ビットのアナログ入力の精度が改善されています。また、PIOというCPUを介さずに高速かつ正確なタイミングでI/Oピンを制御できるハードウェアを備えています。この機能を使って分光センサー用のクロックパルスを作成しています。 10回累積計測して出力することでノイズの軽減を行なっています。また、分光センサーC12880MAは288画素ですが、Catmull-Rom3次補間により本来のサンプリング点(4点に1点の生データ)を維持しつつ、視覚的に自然で、ピーク位置を特定しやすい 1149 点のデータを生成します。

Arduinoプログラム

通信プロトコル(他言語開発用)

PythonやC#、LabVIEWなど、他のプログラミング言語でも本機を制御できるように、通信仕様を公開します。 シリアル設定: 230,400 bps / 8-bit / parity none / stop bit 1 制御コマンド: (テキスト形式、末尾に \n) send: 計測を開始し、データを1パケット返送するように要求します。 exp:xxxx: 露光時間を xxxx ミリ秒に設定します。 (例: exp:1000 で1秒) データ形式 (Binary Packet): 本機は1パケットにつき以下の構成でデータを送出します。

  1. Header (4 bytes): 0x00, 0x00, 0xFF, 0xFF
  2. Payload (2298 bytes): 1149点のデータ。各点は 16bit 符号なし整数 (Little Endian)。
  3. Footer (4 bytes): 0x0F, 0x0F, 0x0F, 0x0F



EduSpectro4Xファームウェアと回路図のダウンロードはEduSpectro4Xから行います。
EduSpectro4X(duSpectro4Xファームウェアと回路図)はこちら



もちろんラズベリーパイ Pico2とブレッドボードで動作を確認してみるのも良いことだと思います。
その時はClockやSTを配線しやすいピンに変更するのも良いでしょう。
ブレッドボード

EduSpectroLabについて

RP2350マイコンに書き込まれたArduinoプログラムと通信をして露光時間の設定と測定データを受け取ります。露光時間の設定や繰り返し測定による平均化やピクセル間の移動平均などのデータ処理の設定はオートモードで波形を見ながら行うことができます。測定モードとして、太陽光やLEDなどのスペクトルを測定するエミッションモード、透過率を測定するトランスミッタンスモード、吸光度を測定するアブソーバンスモードがあります。 Processingはプログラムをアプリケーションとしてエクスポートする機能があります。アプリケーションにすれば起動が早くなり誤ってプログラムを変更してしまうこともなくなります。

ポート選択

プログラムを起動するとシリアルポート選択画面が表示されます。EduSpectoro4Xを接続すると新たにEduSpectoro4Xのポートが現れますので選択します。

通信ポート選択

データ設定

“AUTO MODE ON”の状態で出力が表示されます。下の画面は光が入っていない状態ですが、4500カウントぐらいのダーク出力があります。測定するサンプルの波形を観察しながらSAMPLING(Avg)で平均化回数、EXPOSUREで露光時間、SMOOTHINGでピクセル間の移動平均の設定を行います。露光時間が長すぎると飽和して波形が歪みますので注意して設定します。


オートモード

測定モード

“AUTO MODE ON”のボタンを押して”AUTO MODE OFF”にして”MODE:EMISS”(エミッションモード)で”MEASURE”ボタンを押すと測定データが表示されます。これは”DARK CALIB”(ダーク補正)が行われていない状態です。

エミッションダーク補正なし
光を入れない状態で”DARK CALIB”(ダーク補正)ボタンを押し、光を入れて”MEASURE”ボタンを押すとダーク補正が効いた状態でデータが表示されます。

エミッションダーク補正あり

“MODE:TRANS”(透過モード)と”MODE:ABS”(吸収モード)では”REF CALIB”で基準とする参照光のデータを登録します。これらのモードでは参照光との比を計算しますので、参照光の出力が低い領域では測定精度が低下します。そのような注意すべき領域をピンクで表示しています。

参照光キャリブレーション
“REF CALIB”を行ったのちにサンプルを入れて、透過・吸収測定を行います。緑茶の測定例です。


透過

吸収

ファイル保存

“SAVE CSV”ボタンを押すと生データとともに測定データが保存されます。 1行目には使われている分光センサーのシリアル番号とメーカー添付の波長補正データが表示されます。EduSpectroLabでは分光センサーのデータを”calibration_coefficients.txt”として保存してあり、センサーを変更した時にはユーザーがこのファイルを書き換えることができます。 2行目は測定条件です。 4行目以降がデータ部分です。4, 8, 12, ,,, がセンサーの測定データでそれらに挟まれた3個ずつのデータは3次補間したデータです。特に生データを処理したい時には容易に復元することができます。 A列が校正済みの波長データ、B列が測定データ、C列が測定時の生出力、D列がダーク補正の生出力、E列が参照光の生出力です。

データファイル



EduSpectroLab計測解析アプリケーションのダウンロードはEduSpectroLabから行います。 
EduSpectroLab(計測解析アプリケーション)はこちら



EduSpectroStationについて

分光センサーのスリット中心をキュベット底面から15mm(Zディメンジョン)として、投光器を含む光軸の高さをそろえています。

内部の構成

ベースプレートに投光器、キュベットホルダー、基板の位置決めのためのサポート部材を差し込んで固定しています。基板は太さ3mm長さ10mmのなべタッピングネジ2本で固定しています。

3Dモデル

また、分光センサーの開口の直近に遮蔽版を設けて遮光を行なっています。カバーはベースプレートの外側に立ち上げた壁の内側に嵌め込むことで遮光性を向上させています。固定は太さ3mm長さ12mmのさらタッピングネジ3本で行なっています。 遮蔽版

3Dプリントする10個の部品はSTLファイルでダウンロードできます。投光器のレンズは直径10.3mm 高さ4.2mmのアクリル(PMMA)平凸レンズを使用しています。(価格は1個70円程度)

STLファイルからプリント

3DモデルデータのダウンロードはEduSpectroStationから行います。 
EduSpectroStation(筐体・光学系設計データ)はこちら



活用事例(準備中)

問い合わせなどは下記からお願いします

Discussions