3月8日から10日に種子島で行われた第14回 種子島ロケットコンテストに参加してきました.
その振り返りということで大会の結果や機体の紹介をしたいと思います.
技術発表会とワークショップで使用したスライドは以下で公開しています.
種子島ロケットコンテストとは
種子島ロケットコンテストは毎年3月上旬に鹿児島県 種子島で行われる大会で,自作したモデルロケットの打ち上げやCanSat(カンサット)と呼ばれる小型模擬人工衛星を使った競技が行われます.
僕の所属する鹿児島大学 SATSUMAロケット研究会はロケット部門に3チーム,CanSat部門に1チーム出場しました.
僕が出場したのはCanSat部門でチームメンバーは3人でした.
例年では初日に機体審査,2日目に競技と交流会,最終日にワークショップというスケジュールで行われますが,今年は強風のため雨天スケジュールとなり最終日に競技が行われました.
CanSat部門について
CanSat部門を簡単に説明すると,CanSatと呼ばれる小型模擬人工衛星を高度50メートル前後から投下,あらかじめ決められた目標地点へ飛行または走行して最終的にどれだけゴールに近づけたかを競う競技です.
また,機体とパラシュート合わせて,直径154mm,高さ300mmの円筒に収まるサイズで,質量1050g以内にする必要があります.
詳しいルールはここで確認できます.
機体の紹介
機体はつくる担当の@jj_springsがメインで製作しました.
僕たちのチームはコンセプトとして,
- 100円ショップで手に入る商品を使う
- 特殊な加工技術(CNCフライスや3Dプリンタ)を使わない
- 簡単な制御プログラムにする
という点を掲げています.
その名も「100均SAT」!!!
上記のコンセプトを守りつつ,今年の機体は1機体100g程度の重さにすることで一度に複数機体を投下できるようにしました.
製作する機体数は,昨年6機同時投下を行ったチームがいたのでそれを超える8機としました.
まあ,頭おかしいですね…
複数機の利点として,どれか一つはうまくいくだろうという点が挙げられます.
CanSat競技ではパラシュートが開かない,パラシュートがタイヤに絡まる,機体がぬかるみや穴にはまって動けなくなるなど様々なトラブルがよく起こります.
どれか一つはうまくいくだろうという考えは,複数機にすることでそのようなトラブルを吸収するという作戦になります(某えだまめさん風に言うなら下手な鉄砲も数撃ちゃ当たるということですね).
一方,複数機にすることの欠点として,レギュレーションのサイズに収めるために機体1つ1つのサイズが小さくなってしまう点が挙げられます.
つまり「機体サイズが小さい=車輪径が小さい」ということになり走破性能が落ちてしまいます.
そのような欠点を克服するため,車輪を展開することを考えました.
1機体100g程度を目指していたので複雑な展開機構は搭載できず,試行錯誤した結果メジャーを使った展開車輪を考えました.
メジャーを使うことで,収納時にはガチャガチャのカプセルでコンパクトに収納でき,展開時にはキャリア径より大きい200mmの車輪を実現しました.
はい,ガチャサットの誕生です.
今回は軽くすることを考えていたのでメジャーをそのまま使いましたが,手に当たると痛い(下手するとスパッと切れて血が出る)のでビニールテープなどを巻くと良いです.
そのほか100g程度に収める工夫として機体本体をプラ板にしたり,ねじによる固定をタイラップに変更したりしました.
回路・制御
回路と制御は僕がメインとなり,制御アルゴリズムと電熱線回路を1年生が手伝ってくれました.
回路はKiCADでプリント基板を設計してELECROWに発注しました.
最終的に発注した基板が春節に間に合わず大会3日前に届いたので大変でした.予備含めて10枚分はんだ付けしてくれたつくる担当に感謝です.
リレーを使った電熱線回路だけはプリント基板に実装していなくて,ユニバーサル基板にはんだ付けしたものを機体の下部に設置してました.
基板の説明です.
マイコンにはSTM32F303K8T6を使用し,センサーにGPSセンサ(GYSFDMAXB)と9軸+気圧センサ(AltIMU-10 v5)が載っています.
贅沢に9軸センサを載せましたが使用したセンサは地磁気センサだけでした.
また,競技後に制御ログの提出が必要なので,microSDカードスロットをつけて制御ログをmicroSDに保存できるようにしました.
無線通信にはTWE-Liteを使用する予定でしたが,ブレッドボード上で実験した際にTWE-Lite DIPで出来ていた書込みがプリント基板で出来なかったので,今回無線通信はあきらめました(原因わかる人いたら教えて欲しい…).
モータの制御にはpololuのデュアルモータドライバを使用,PWM制御用のピンをマイコンに繋がなかったことはちょっと後悔.
制御について説明します.開発にはMbed Compilerを使用しました.
使用したマイコンのフラッシュROMが64kバイトで,mbedのSDFileSystemライブラリを使用するとそれだけで書き込むプログラムのサイズが50kバイトを超えてしまい焦りました.
マイコンはしっかり選定したほうがよさそうです.STMマイコン使ってみたい→秋月で単品売ってるやつでいいや だったので…
CanSatは投下後,気圧センサの値から地上2m以下になると電熱線用のI/OピンをHIGHにしてテグスを焼き切りパラシュートを切り離すようになってます.
パラシュート分離後,少し前進して(パラシュート絡まり回避のため)その場で回転,地磁気センサのキャリブレーションを行います.
キャリブレーションが終わるとGPSセンサで現在地を所得して,あらかじめ入力しておいた目標地点との距離,方角を計算します.
あとは地磁気センサの値をもとに機体の向きを目標地点のある方角に旋回して向けて前進,目標地点との距離が5メートル以内になるまで旋回と前進を繰り返します.
制御面ではほかに,起動時とゴール時に圧電ブザーからドレミの音階を鳴らしたり,LEDを点滅させたりすることでCanSatの状態をわかりやすくしました.
競技結果
8機すべてのパラシュート開傘までは成功しましたが,その後のパラシュート切り離しに失敗したため走行できず無念のリタイアとなりました.
競技後,microSDに保存された気圧センサー値のログを見ると気圧が減少しているところまでは記録できていたので,気球で機体が上昇している状態までは確認できました.しかし,そのあとのデータが記録できていませんでした.
原因はわかりませんが,競技直前に追加したタイマーによるパラシュート切り離しのプログラムが良くなかったのかもしれません.
大会前に本番に近い状況でのパラシュート切り離し実験は行えていなかったので,事前に十分な実験を行うべきだと思いました.
まとめ
今回でCanSat競技は3回目の参加となりました.
1年目はどんな競技なのかもよく知らないまま参加し,それなのに2機同時投下して見事に機体破損しました.
2年目はしっかり動く機体をつくろうと思い作成したものの走行できず悔しい結果に…
そして今回8機同時投下できる機体をつくったまではいいものの結局走行できませんでした.
結果は残念でしたが,今年は初めてプリント基板をつくったり,STMマイコンを使ってみたりできて面白かったです.
できるなら来年また参加して次こそ走行までしたいと思います.