タイトルの通りです。
デジタル回路とアナログ回路についての授業を受けているときに、ふと思い立ちました。
なので、パラシュート放出用のトビラの電装をロジックICを駆使して作れないか考えてみました。
動作はとってもシンプルです。
フライトピンが抜けたことを検知して、何秒後かにサーボモータの角度が変わる回路を作ることができたらOK!
Arduiunoでやるとこんな感じのプログラム。
※フライトピンとは:機体が外部に出ていて、抜き差しでHIGHかLOWになるスイッチのようなもの。離床で抜ける。
いつもはここに加速度計をつかった離床検知と気圧計を使った機体の下降検知があるけど、今回は割愛。
しかも、delay関数を一切使わないこだわり付き!
一応、加速度の判定をする回路は思いついたので、最後にちょっとだけ紹介します。
で、初めて触るLTspiceに苦戦しながら、紆余曲折いろいろあって完成した回路がこれです。
動作としては、フライトピンが抜けたことをフリップフロップで記憶、タイマIC555でdelay、delay終了後アナログスイッチが切り替わり555が作るPWMが変化するという感じです。
結構シンプルにできたと思います。というか私にはこれが限界orz
とりあえず、それぞれの動作を説明します。
まずはサーボモータを動かす部分について。
ここはこのサイトを参考にしたので、詳しくはそっちをみてください。
LTspice上では波形が見やすいようにTHRSのコンデンサを10 µFにしています。
サーボの角度を変えるのに参考サイトでは半固定抵抗を使っているところを、こっちではアナログスイッチ(4066)の切り替えを使っています。
画像は右からサーボのPWMをつくるところ、切り替え部、切り替え前後での波形の変化です。
14 sあたりで波形が変化しているのがわかると思います。
次に回路の始めの部分についてです。
赤で囲った部分はフライトピンのチャタリング対策です。NOTゲートICが74HC04になっていますが、シュミットトリガインバータ(74HC14)の方がいいかも。
緑で囲った部分はワンショット回路で、タイマー開始のトリガーとフリップフロップのセットへの入力として使います。なんでNANDじゃなくてANDの後にNOTをつけているのかは、手元にANDが余っていて、基板にしたときに使いたいからです。
ワンショット回路についてはこのサイトをみてね。
全体の動作としてはフライトピンが抜ける(0 Vになる)と数秒だけ0 V(LOWパルス)が出力される回路になっています。
次にタイマー部分です。
ここは555のワンショット動作を使用しています。
ワンショット動作についてはこれの8.2.1 単安定モードでの LED の点滅をみてね。
LOWパルスが入力されることで、指定した時間だけ555のOUTがHIGHになります。そしてこのOUTからの出力(青の波形)をサーボの角度を変えるアナログスイッチの切り替えの信号として使います。
しかしこのままでは、LOWパルスが入力されてから数秒間だけサーボの角度が変わる回路になってしまいます。LOWパルスが入力される前も青の波形をHIGHにしたい!
そこで、フリップフロップとアナログスイッチを使います。
フリップフロップ(74HC74)はRSフリップフロップとして使い、LOWパルスでセットされて、Qの出力がLOWからHIGHに変わるようにします。Qの出力が変わると同時にアナログスイッチも切り替わり、電源と繋がっていたサーボの角度を変えるアナログスイッチのCTRLが555のOUTと繋がります。
そうすると、LOWパルスが入力される前もHIGHになり、555のワンショット動作をdelayとして使えるようになる!
パルス入力時に一瞬だけLOWになるけど、たぶん問題ない。
これで動作説明は以上です。
一応最後に加速度の判定の回路についてです。
アナログ出力の加速度計をコンパレータで比較し、一定値に達したらそれを記憶し離床検知とする、というものです
誰でも思いつきそうなので、参考になるものを探したいですね。
締まりが悪いですが加速度計の回路以外はブレッドボードに組んで、動作確認ができたのでまた文章にしようと思います。
ちなみにこのままの回路では上手くいきませんでしたorz
最後まで読んでくださりありがとうございます。
コメントをお書きください