作ってみたったら作ってみた。
2011年6月4日に自分たちで作ったロケットを伊豆大島で打ち上げてきた。
詳しいことは別のページに書くことにして、久々に面白い(exciting)作業ができたのでブログにしてみる
自分たちが作ったロケットがどのように飛行したのか、どこまで飛んだのか、機体にどのような変化があったか、これらがわかるとただ単に打ち上げて楽しかっただけではなく工学的な面白さが出てくる。
ということで慣性計測ユニットを作ってみた。
諸々の都合があって、開発にかけられる時間は非常に限られていた。
今回書く慣性計測ユニットだけではなくパラシュート分離機構用のタイマー作りや普段の研究室生活、ロケット打ち上げまでの事務一般、ロケット本体の仕上げなどの作業をしながら2週間弱しか開発期間がなかった。無給のブラック企業を素でいくぐらいの忙しさだった。
このため、開発の工数を少なくして、新しく勉強することを最小限にしながら自分が満足できるクオリティのものを作ることをコンセプトにした。
マイコン
AVRのATMEGA328PにArduinoのブートローダを書きこんでDIPのマイコン単体でArduinoとして動かした。
28ピンのAVRのICに3端子レギュレータから5VのVccとGNDと16MHzのセラロック(発振子)だけを付けてやればArduinoとして動く。
ピンの役割などはATMEGAのデータシートを見ながら動かした。
3.3Vの電源が取れないだけでそれ以外はArduinoとして動くのでロケットに積むために小型化したい要求と開発が早くて簡単だという要求を満たしていた。
ブートローダの書き込みはここを参考にして、書いてあるとおり行った。
搭載センサ
センサによっては3.3V駆動だったり入出力がRS232Cレベル(3.3V)だったりするのでセンサへの入力になる部分は分圧抵抗を入れて5V→3.3Vにした。
気圧センサSCP1000
秋月で買える気圧センサで測定範囲300hPa~1200hPaで2Hz程度で出力が取れるので高度計として使用した。
大気圧1013hPaとしてざっくりと10mで1hPaの変化があるのに分解能が1.5Paあるということで理論的には分解能15cmぐらいがわかるはずと思って採用した。
実際はノイズがあったり、風が当たると動圧で気圧が変化するなどがあり、建物1階の高さの判別ができる程度だった。つまり、3mの違いはセンサから読み取れる。
SPI通信で値が出てきてくれるのも使いやすかった。
3軸加速度+3軸ジャイロセンサ
SparkfunのIMUフュージョンボードを使用した。
IMU3000(3軸ジャイロセンサ)とADXL345(3軸加速度センサ)を合わせたもので、両方の値がI2Cで取得できる。
レジスタを最初にいじれば最大加速度などを変えられる。値段が少し高いが5G以上の加速度を取得したく、勉強する時間がない、実装をいかに早くできるかが勝負という今回の目的に非常によく合っていた。すごく小さいし。
最初はわけわからなかったが、データシートをしっかり読みこんだら使えた。
GPSモジュール
秋月のGPSモジュールGT-723Fを買ってたが、逆起電圧をかけてしまったのか、何時まで経っても衛星を補足してくれないただの金属片になってしまったので泣く泣くその場にあったGT-720Fを使用した。
RS232Cレベルの出力だったがArduinoのピンにそのまま接続して大丈夫だった。
入力部分は分圧抵抗で3.3V近くまで落としている。
ArduinoにTinyGPSというライブラリがあったので複雑になりがちなGPSの出力を比較的簡単に扱えた。
温度計LM35
ロケットエンジンの酸化剤周りは充填中と点火後にそれなりの温度変化があるのでどの程度なのかがわかると酸化剤の蒸気圧から燃焼圧だったりがわかる。
その目的のために秋月で買えるLM35をAnalogINのピンに繋げて使った。
これはA/D変換するだけで温度がわかるので一番簡単だった。
キャリブレーションはするヒマが無かったが見た感じは何もしなくてもそこそこの精度の値は出てる気がした。
SDカード
データを保存したかったのでSDカードを付けた。
SPI通信の口が1つしか無かったのでデータロガー用の2つ目のATMEGA328Pを用意し、一つ目とシリアル通信しながら貯めたデータをマイクロSDカードに保存するようにしたかった。
SDカードになんでもないデータを書きこむことは出来たが、最後までデバッグが間に合わなくて目的は達成できなかった。根本的に勉強不足すぎてよくわからないままだった。
結局AVRの内部のEEPROMに打ち上げから2分のデータを保存するようにして対処した。
デバッグ用のLCD
1つ目のセンサの読み取り用のマイコンにはセンサの値がすぐわかるように16×2のLCDキャラクタディスプレイを外付けで取り付けられるようにした。
プログラム
プログラムはArduinoのサンプルスケッチやセンサの型番でググって出てくるサンプルコードをほとんどそのまま組み合わせる形で書いた。
こういうことができるのがArduinoのいいところ。
値段
6軸の加速度・ジャイロセンサとGPSモジュールが高かったがそれ以外は秋月・千石で買えば安く作れた。
1.5万円ぐらいで全部作れた計算になる。実際は余分な部品を買ったりで3万円ぐらい使って開発したので金欠な自分にはキツい出費だった。
基板
学校にあった基板切削機という機械で基板を作った。
初めてだったのであまり上手とはいえない設計になったが非常に楽しく基板を作れた。
画像はmbeというソフトで設計した基板
精度とか校正とか試験とか
これがすごく重要なのだが開発の期間が短すぎて手がつかなかった。これが心残り。
完成したところ
今までLEDチカチカさせて喜んだり、小物を作って満足したりしてたぐらいの電子工作経験だった。その段階から一気に本格的に趣味としての電子工作が出来たので心底満足した。これでもまだプロトタイプみたいな完成度なのであんまり外に出せるようなものではない。
打ち上げ後回収を失敗し、機体が大破してしまったので夏の終わりまでに作り直してver.2の進化したものを作りたいと思った。
尊敬するfenrirさんが作っているような慣性航法装置が理解できるようになるまでは続けたいところです。
ロケットの打ち上げご苦労様でした。
回収に失敗したのは非常に残念ですが、それにしても素晴らしい装置だと思います!
正直言って、うちの大学のハイブリッドロケットに積載してる装置より優れています。
僕は機体の設計をやっているので、計測装置関係はほとんど関与してない(本当は計測装置設計をするうえで機体設計者として共に携わるべきなのだろうけど)のですが、モデルロケットの趣味かたわらこのような計測装置を作りたく、電子工作の試行錯誤してます。
僕もそのうち大学のロケットに載せてみたいって思ってます。まだまだ先でしょうがねー。
6軸のセンサ良さげですね。
僕もちょっとチャレンジしてみます。
お疲れ様です。ずいぶん楽しめたようでなによりです。
次回もこりずにがんばってください! どうやら鳥界隈ではIMUブームのようですのでw
>PEZ さん
自分も計測装置作る予定がなかったんですけど、作りたくなったから作りましたw
ロケット製作に関わってる人数が少なすぎて自分担当になったでけですけどw
加速度ジャイロは自分で素子から始めるとすごく大変なのでパッケージになってると簡単でした。
お互いにいいものが出来たら情報交換できるといいですねー。
>fenrir さん
鳥界隈のIMUブームを見ててうずうずしてたので乗っかれて楽しいですw
IMUはちゃんとやりだしたら良い意味でも悪い意味でもハマリそうですw