第5章:電子回路とフライトコントローラ - 地味な戦い
ロケット本体の形状と推進系の方向性がざっくりと定まり、次に手をつけるべきは「電子回路とフライトコントロール」だ。ロケットはただ飛ぶだけじゃダメで、ある高度に達したらパラシュートを展開し、安全に回収しなければならない。そのためには高度計、加速度センサー、GPSトラッカー、そして電子的な開傘制御システムが必要になる。
放課後の科学部部室。夏が近いせいか、窓を開けても少し蒸し暑い。誠人は机にSpread基板、配線用ワイヤー、Arduino互換マイコンボードみたいなものを並べて頭を抱えている。樹は工具箱を開いてラジオペンチやニッパーを手に、「おい、この部品小さすぎないか?」とぼやいている。その横で、莉香がスマホ画面を覗き込みながらメモを取っていた。
「こちらが高度計用のセンサー候補です。気圧センサーと加速度センサーを組み合わせることで、かなり正確な高度推定が可能とされています。」
莉香がそう言い、わたしにスマホの画面を見せる。海外のモデルロケット愛好家フォーラムらしく、使用例や回路図が添付されている。
「へえ、気圧計測と加速度積分で高度を出すのか。でも、気圧は天候変化でも変わるから誤差出ない?」
「その点は、二重の計測で補正するようなプログラムを書けば精度が上がるはずです。誠人先輩は、そういったプログラミングも可能でしょうか?」
「うーん……やろうと思えばやるけどよ。」
誠人は微妙な顔だ。彼は電子工作好きなはずだが、プログラム調整や細かいデバッグは面倒くさいと常々言っている。
「誠人、頼むよ。誰も他にできないんだもん。」
わたしが笑顔で言うと、彼は「あー、わかったよ」と観念した様子で半ば投げやりに頷く。
「ただし、まずは部品がないと話にならん。高度計センサーはAliexpressで輸入とかAmazonで買うとか? 予算あるの?」
「予算か……」
また予算問題が顔を出す。まだ文化祭でのスポンサー集めは先の話だし、今はポケットマネーや部費の残りでやりくりするしかない。
「先輩、簡易センサーキットがいくつか日本の通販サイトで売っていました。1つ2000円くらいからありますが、精度や反応速度、サイズでピンキリです。」
莉香が実直に報告する。2000円程度なら今の手持ちから出せなくもない。精度を妥協すればもう少し安くなるかもしれないが、パラシュート展開を誤るとロケットは墜落、全損の可能性もある。それは避けたい。
「精度を優先しよう。どうせ試験打ち上げも何回かやるから、安物買って精度不足で無駄にモータを浪費するよりマシだ。」
誠人は気の進まない顔をしつつもうなずく。「じゃあ俺が後で注文しとくから、そっちで清算してくれよ。」
「オッケー、わたしが立て替えるよ。」
仕方ない、ここは投資だと思って払うことにする。後で文化祭でスポンサーでも見つかれば補填できるかもしれない。
「GPSはどうしますか、先輩?」莉香が尋ねる。
GPSモジュールはロケット着地後の探索に必須だ。風に流されれば100m、200mもずれるらしいから、どこに落ちたか分からなくなってしまう。
「GPSモジュールも必要だよね。精度は数メートル単位で取れる簡易なものでもいいけど、更新頻度が速い奴がいいな。ロケットは打ち上げと落下で結構動くし。」
「安いGPSだと更新頻度が1秒に1回ぐらいのもあります。高度変化が激しいとちょっと遅れる可能性も。」
「じゃあ、少し高くても更新頻度と精度がある程度いい奴にしよう。どうせGPSは何度も使い回せるしね。」
「了解しました。ではGPSは1万円以内で購入可能な範囲で調べておきます。」
費用がどんどん積み重なるが、ここでケチると後悔するはずだ。電子機材は後から回収も効くし、何よりデータが取れなければ計画そのものが成立しない。わたしたちはこれまで以上にシビアな金銭感覚が求められるだろう。
「ところで、パラシュート展開はどうするんだ?」樹が話題を変える。「何か火工品みたいなものを使ってガスでパラシュートを押し出す仕組みが一般的って聞いたぞ。」
「点火器で黒色火薬少量を燃焼させて内圧を上げ、ノーズコーンを外してパラシュートを押し出すのが基本らしいね。誠人、この点火回路も組まないといけないよ。」
「うへぇ、火薬系か。法律とか平気か?」
「コンテスト公認のモデルロケット用イグナイターを使えば問題ないはず。まあ、点火は高度計が一定値を検出したらマイコンから電流を流す感じだな。」
誠人はやれやれという風に背伸びをする。「つまり高度計と加速度センサーで高度が一定値超えたと判断したら、頂点近くでパラシュート展開用イグナイターに電流を通して点火……ってフローか。ロジック面倒くさそうだな。」
「すみません先輩、わたしがロジック設計のお手伝いをします。理論的なフローチャートを考えれば、プログラミングも楽になるかと。」
莉香がフォローを入れる。これで誠人も多少はやる気を出すだろう。
「それにしても、調整が地味に大変そうだなぁ。」わたしは苦笑する。
「高度計が誤作動おこして下手なタイミングでパラシュート開いたらどうなる?」
樹が不安そうに聞いてくる。
「高度100mもないうちからパラシュート開いて減速したら、予定高度に達しないかもしれない。もっと極端に低い高度で開いちゃうと、ロケットバランスが崩れて変な方向に飛ぶ可能性も。」
「つまり、絶対に間違えられないポイントってことだな。」誠人は頭をかく。「ならテストが必須だな。地上で仮想打ち上げシミュレーションして、偽の加速度データとか与えてプログラムを試す手もある。」
「なるほど、それなら打ち上げ前にある程度動作確認できるね。」
わたしは感心する。「やっぱり誠人、アイデアあるじゃん。」
「まあな。実機テストなしでいきなり空飛ばすとか無謀すぎる。」
さらに問題となるのは、配線の煩雑さ。狭いロケット筒内に高度計、加速度センサー、GPS、バッテリー、イグナイター、アンテナなどをどう収めるか。
「先輩、このロケットの直径で、これだけの機材をどう収納しますか?」莉香が心配そうに筒の概略寸法図を見る。
「内部を段階構造にして、上段に高度計、下段にバッテリーとGPS、イグナイターは別室で保護する感じかな。狭いけど、一応モデルロケット用フライトコントローラを自作する人もいるし、できるはず。」
「なら、プリント基板を極力小型化する必要があるな。」誠人は真顔になる。「ブレッドボードで仮組みはできるけど、本番はもう少しコンパクトな基板にまとめる。SMD(表面実装)部品も検討しようか。」
「おお、プロっぽいね。」樹が皮肉まじりに笑う。
「学校にSMDはんだ付け設備なんてあったか?」
「ないだろ。細かい実装はどうすんだ?」
わたし達は顔を見合わせる。また問題発生だ。
「ここも柾さんに相談してみる? 工場で基板実装までやってるかは分からないけど。」
「いや、SMD実装は専門外だろ。ネットで小ロット実装サービスあるし、部費で払える範囲なら委託する手もある。」誠人が考え込む。
「ただ、納期がかかるよね。間に合う?」
「まずは試作段階はスルーホール部品で組んで、サイズは妥協。後で本番前に小型化する手もある。」
「なるほど。大きめの基板で動作確認してから、最終版をコンパクトにまとめるんだね。」
こうして電子回路設計は、想像以上に複雑だとわかった。安易に「Arduinoでやりゃいいじゃん」などと思っていたが、現実には狭い空間と厳しい制約の中で、多機能なシステムを組まねばならない。データログを記録するSDカードや、電源管理回路も考えなきゃならないかもしれない。
「先輩、バッテリーは何をお使いになりますか? Li-Poバッテリーなど軽量なものがいいですが、取り扱い注意ですよね。」
「小型Li-Poがいいだろうな。軽くてエネルギー密度が高いし、電流供給も安定してる。ショートや過放電には気をつけなきゃだけど、ほかに選択肢はあんまりない。」
誠人が決める。「Li-Poバッテリーは小さなドローン用とかで売ってるはず。一緒に注文しよう。」
「助かる。バッテリー駆動時間は長くなくてもいいから、小さいやつで十分かも。」
わたしはホワイトボードに「電子系ToDoリスト」を書き出す。
電子系ToDoリスト:
1. 高度計・加速度センサーの発注
2. GPSモジュールの選定・発注
3. Arduinoまたは互換マイコン基板準備
4. イグナイター制御回路設計
5. Li-Poバッテリー調達・充電管理
6. プログラムロジック策定(莉香と誠人で)
7. 仮想打ち上げシミュレーション環境構築
8. 最終的な基板小型化方法検討
こう箇条書きしただけで、目が回りそうだ。でも、一つずつ片付けるしかない。
「忙しくなりそうね。」
わたしが苦笑すると、誠人は呆れた調子で「今さら何言ってんだよ」と返す。樹は頭をかきながら「でもまあ、こういう面倒くささがロケット制作の醍醐味かもな」とつぶやく。
莉香はメモを整え終えて、「先輩方、もしよろしければわたし、Arduinoの基礎的なコードは書けますので、センサー入力の平均化やノイズ除去など、基本的な処理から始めてみましょうか?」と申し出る。
「おお、すごい!莉香、コード書けるんだ!」
わたしは目を輝かせる。
「はい、独学ですが、センサー値を処理する程度なら可能です。誠人先輩がさらに複雑なロジックを組んでくだされば、2人で分担できると思います。」
誠人は意外そうな顔をして「まじか、助かるわ。じゃあ初歩的なセンサーリードとフィルタリングは莉香に任せるよ。」
莉香は「はい、任せてください」と微笑む。
みんなが少しずつ役割を持ち、それぞれが前へ進もうとしている。少なくとも、部室での空気は以前より活気づいている。ロケットという大きな目標があることで、みんなが自然に協力し合えるのは嬉しいことだ。
夕方、校舎裏で風が吹く。部室の窓の外にはまだ青みが残る空が広がっている。
「今日はこの辺かな。部品は後で注文して、届くまでにロジック整理を進めよう。樹はノーズコーン試作品をウレタンフォームで作ってみて、誠人と莉香は基本コード書き始めて。わたしは予算計画とコンテストの規則確認、あとスポンサー案内文でも考えておく。」
「了解。」
「はい、先輩。」
「しょうがねえな。」
雑務やら苦労やら、やるべきことは膨大だが、確実に前進している気がする。
わたしたちのロケットはまだ姿すらないけれど、その中枢となる「頭脳」にあたる電子回路と制御装置は、こうして少しずつ形になりつつある。
部室を後にして廊下に出ると、遠くから運動部の掛け声が聞こえた。ボールの音や笑い声が、青春のエネルギーを感じさせる。わたしたちの青春は機械油や基板、数式やコードにまみれているけれど、それでもこれも立派な挑戦だ。実績のない科学部だって、頑張ればロケットを空に届けられるかもしれない。
帰り道、頭の中でパラシュート展開のタイミングをシミュレーションする。高度計が目標値を示し、加速度が減速方向に転じたら、そこが頂点付近だ。プログラムはそこでイグナイターを点火し、パラシュートがふわりと開く……うまくいくかどうかは、これからの努力次第だ。
「絶対、成功させよう。」
わたしは夕暮れの空を見上げて決意を新たにする。あの星たちはまだ遠いけれど、少なくともわたしたちは地上で着実に準備を進めている。それがロケット打ち上げへの一歩だ。
明日もまた、地味な戦いが待っている。次は配線問題、センサーデータのノイズ、バッテリーの管理……問題だらけだけど、少しずつクリアしていけばいい。
やるべきことは明確だ。それが分かっているだけ、わたしたちは幸せなのかもしれない。
そう思いながら、微笑みを浮かべて家路につく。