【自作量子コンピュータ NMRQCP】量子コンピューターの制御
こんにちは!自作の地球磁場NMR(EFNMR)方式で量子コンピューターの開発に挑戦している高専生です。
これまで個別に作ってテストしてきた「分極用のMOSFET回路」と「受信用のオペアンプ回路」ですが、今回はついにこの2つを統合し、「M5Stack CoreS3 Lite」で全自動コントロールするためのプログラム(シーケンス構築)についてお話しします!
絶対に間違えられない「3つの手順」
EFNMRシステムを動かすには、以下の順序で正確に回路を切り替える必要があります。
- 1. 分極フェーズ:受信回路を完全に切り離し、コイルに大電流を流す。
- 2. 切り替え(サージ保護)フェーズ:電流を遮断し、コイルの逆起電力が減衰するのを数ミリ秒待つ。
- 3. 受信フェーズ:微小なFID信号を拾うため、コイルとオペアンプを接続する。
もし、分極中の大電流やサージ電圧が残っている状態で受信回路を繋いでしまうとどうなるか?…はい、あの超低歪オペアンプが瞬時に煙を吹いて破壊されます(過去のトラウマですね)。
これを防ぐために、「M5Stack用ミニリレーユニット」による物理的な絶縁(切断)と、プログラム上の「ディレイ(デッドタイム)」を組み合わせた制御ロジックを構築しました。
オペアンプの命を救う、魔法の「50ミリ秒」
実際にArduino IDEで書いた、MOSFETのゲート電圧とリレーユニットを連動させるステートマシン(状態遷移)のコードがこちらです。
// 2. サージ減衰フェーズ (Dead Time) ★超重要★
// ==========================================
// MOSFETをOFFにして電流を遮断
digitalWrite(MOSFET_PIN, LOW);
M5.Display.println("2. Surge Waiting...");
// コイルの逆起電力が還流ダイオードを通じて消滅するのを待機
// ※このディレイがないと受信回路が破壊される危険がある
delay(50);
// ==========================================
// 3. 受信フェーズ (Receiving / FID)
// ==========================================
// サージが消えた後、受信回路をリレーで接続する
digitalWrite(RELAY_PIN, HIGH);
プログラムの中で一番重要なのが、分極が終わってから受信を始めるまでの間にある delay(50); というコードです。
これは「50ミリ秒(0.05秒)だけ待機する」という命令ですが、このわずかな時間が命綱になります。リレーで受信回路を切り離したままこの時間を設けることで、コイルからの強烈な逆起電力が消滅するのを安全にやり過ごすことができるのです。
M5Stackがカチッ、カチッとリレーの音を鳴らしながら、分極(5秒)→待機(50ミリ秒)→受信(3秒)のサイクルを自動で繰り返す姿を見ると、ついに「システムが統合された!」という実感が湧いてきます。
ハードウェアを壊すことなく安全に実験を回すための、自作量子コンピューターの「自動制御システム」が完成しました!
- 日々の実験メモやコード: GitHubリポジトリ(nmr-qc-project) に公開中
- リアルタイムの開発風景・オシロスコープ波形: X(旧Twitter) でポスト中
「本当に動くのか?」「どうやって波形を出すのか?」など、気になった方はぜひブログのブックマークやXのフォローをお願いします!
コメント
コメントを投稿