工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

アコースティックバリオメーター(超高感度バロメーター)

コンポーネントと消耗品

> >
SparkFun Arduino Pro Mini 328-3.3V / 8MHz
× 1

このプロジェクトについて

はじめに:

飛行中にパイロットが使用する計器です (セイルプレーン、パラグライダー、ハングライダー、バルーンなど)サーマルのコアを見つけて、空気をどんどん上手に登るのに役立ちます。

簡単な説明:

音を発する非常に感度の高い気圧計です 登るとき(上がる)と沈むとき(下る)。音は、上昇中の単純なビープ音、毎秒、または毎秒2回以上です(上昇率が高い=ビープ音の頻度が高い):感度が非常に高いため、毎秒数センチメートル(!)の直後にビープ音が鳴り始めます。 ゆっくりと腕を上げてみてください ヴァリオを手に持って音を出します。沈下率の場合、-1m /秒以上で長い(連続的な)ビーイープを放出します。

コンポーネントリスト:

  • MCUとしてのArduinoPro Mini 3.3v 8 Mhz
  • GY-63(MS5611)気圧センサー3.3v
  • ディップスイッチ8
  • ブザー(内部発振器でアクティブ)
  • マルチプレクサ8x14051 3.3v
  • LiPoバッテリー1s3.7v 350mAh + 10cm赤/黒ワイヤーおよびM + Fコネクター
  • 電圧ステップアップモジュール+ USB LiPo充電器、AZDeliveryのTP5400;
  • いくつかの抵抗、8x4.7kのネットワーク抵抗、220、2x10k、およびコンデンサ47uF、470uF
  • リセット可能なヒューズ0.5A
  • 小さなプラスチック製のABSブラックボックス、サイズ78x39x22 mm
  • スライド式のオン/オフスイッチ
  • 6ピンヘッダーメスコネクタ(FTDI用)
  • 17ピンオス(2x、2x、2x、2x、2x、4x、1x、1x、1x)
  • Pセンサー回路用の4ピンオス90°
  • ジャンパーと接続用の30cmの硬質ワイヤー、プラスチックで覆われています
  • グリーンコード
<図>

上記のフリッツはすべてを示しています 回路を構築する必要があります。黒いスイッチのすぐ下にある茶色の「セラミックコンデンサ」は、代わ​​りにリセット可能なヒューズであることに注意してください(適切な設計が見つかりませんでした)。私が使用した8x抵抗の代わりに、単一のコンポーネントである抵抗ネットワークを使用しました。これには8 x 4.7Kオームが含まれ、すべてが内部にあります。次の写真を見て見つけてください。見つけるのは難しいです。青いディップスイッチの上部にある黒いピンです。9つのピンがあり、1つは共通で、他の8つは抵抗器用です。ダウンロード用のFritzing回路図面ファイルは以下から入手できます。

ディップスイッチの意味:

青いディップスイッチを使うのが好きでした 、Vario機能のパラメーターを選択および変更するための8つの非常に小さなオン/オフスイッチ(1つの色付きのケース)。これは、上記のこれらのパラメータの表であり、ここでは次のように説明されています。

  • 1-未使用
  • 2-音量が小さいまたは大きい
  • 3および4-沈下アラームm /秒:-999 -1 -2 -3
  • 5および6-ビープ音周波数Hz:+1 +1.5 +2 +3
  • 7および8-感度m /秒:+0.0 +0.1 +0.2 +0.5

ピン1は使用されません 、オンまたはオフのどの位置でも、何も変更されません。

ピン2は音量レベルを変更します ブザーの;電気的に動作します。ピンがオンになっていると、ブザーと直列に抵抗を短絡し、より多くの電流を流して、より大きなビープ音を鳴らします。

ピン3と4は沈下レベルを設定します (下がる)その下でVarioはbeeeeeeeepを再生します。ピンはバイナリコードとして使用され、2ビット、4つの設定:00 =0、01 =1、10 =2 11 =3;ピン3 =オフおよびピン4 =オフ(バイナリ00)で、沈下アラームを-999 m /秒(制限なし、ビープ音が鳴らないことを意味します)に設定できます。ピン3 =off / 4 =on、3 =on / 4 =off、3 =on / 4 =onを使用して、他の値をそれぞれ-1、-2、または-3 m / secに設定できます。たとえば、位置2では、Varioは-2 m /秒を超える沈下速度でのみビープ音を鳴らします。テストするには、エレベーターを使用してみてください... 3階から0階まで降りるか、はしごの階段をすばやく走ります...

ピン5と6はビープ音の頻度を設定します 、他の2つのピンについて上で説明したように、これらはバイナリコードとして一緒に機能します。同じ上昇速度で、+ 2Hzに設定すると、+ 1Hzよりも速くビープ音が鳴ります。ゆっくりとビープ音を鳴らし、「ストレス」を少なくしたい人もいます:-)

ピン7と8は機器の感度を設定します :+0.0は、上昇動作での最大感度を意味し、ビープ音を鳴らすのに必要な速度は10cm /秒未満です。この位置では、機器がビープ音を鳴らし、その場で安定していても、非常に小さな圧力変化をキャッチすることがあります(つまり、部屋のドアを閉じると、気圧が少し上がる可能性があります)。通常の電気的な「ノイズ」もキャッチしますが、かなり安定していて便利です。 4番目の位置では、+ 0.5 m /秒の感度があり、気圧の変化に対する感度が大幅に低くなります。ビープ音を鳴らすには、高度を上げるために「はるかに」速い速度が必要です。テストには、エレベーターを使用してみてください... 0階から3階まで...

電子回路の観点から、ピン1と3-8は、マルチプレクサ4051チップを介してアナログ的に読み取られ、ソフトウェアは、オンかオフか、値が512を超えるかどうかを判断します。1つのコモンに8つの入力があります。入力としてArduinoに接続されたポート。ディップスイッチのオン/オフ位置を読み取る8つのポートのどれを選択するために、MCU(Arduino)は、動作することがわかっている出力に3ビットを設定します:000、001、010、011、100、101、110、 111(0、1、2、3、4、5、6、7 =8ポート=8オン/オフスイッチ)。 「readDIPswitch()」関数のコードを見てください。

バッテリーに注意してください:

2つの10k抵抗と47uFコンデンサは、バッテリ電圧をテストするための分圧器として機能します。 LiPoは3.3v未満で放電すると重要であることが知られています このため、10秒ごと(BATTinterval)に関数「checkBATT()」が呼び出され、低電圧の場合、ブザーが1秒間に6回の短いビープ音で通知します。電源を切るのに時間がかかりすぎないようにして、すぐに充電してください!

<図>

センサーの圧力変化のために空気を通過させるために、ボックスに少なくとも1つの穴を開けることを忘れないでください。写真のように2つの穴を開けました。1つはブザーのビープ音を聞くためのもので、もう1つはマイクロUSBケーブルと充電器に接続したときに導かれる充電状態を確認するためのものです。そうそう、それはマイクロUSBのもう一つの穴でもあります。穴が開いていると、バリオメーターは防水ではなくなります...

<図> <図>

緑のコードは、ボード上のどこかに安全に引っ掛けるためのものです。絶対に緩めたくないのです!

<図>

PCB:

そのため、いくつかのワイヤージャンパーを含める必要があったため、片面PCBを使用しました (点線のもの)回路全体のルートを解きます。ここではコンポーネント面をたどりますが、下にはファイル、コンポーネント、はんだ面の両方がミラーリングされており、レーザープリンターを使用して「黄色」または「青色」のシートにダウンロードおよび印刷できます。私は黄色のものを使用しましたが、彼らは青い方が良いと言っています(価格が高いです)。印刷するときは、トナー節約設定を無効にすることを忘れないでください。代わりに1200 dpiの解像度を使用して、真の深みのある黒の結果を得ることができます。マジックシートからPCBへのトナー転写プロセスは、ホットアイロンを使用して行われます...両方のPCB面を印刷すると、プロジェクトが「プロフェッショナル」になります。

数十本のArduinoピンが使用されています。 未使用のピンをはんだ付けする必要はありません 必須ではありません:それらを解放します。 Mini Proの上面に6ピンのメスヘッダーを配置して、将来必要に応じて、ソフトウェアをさらに更新するためにFTDIインターフェイスを接続できるようにします。

USB昇圧電源回路 逆さまに配置されます。それを所定の位置に保持するには、2つの強力なピンを使用します。Arduinoに使用される通常のオスピンですが、プラスチックベルトはありません。「PowerUSB」と書かれているUSBコネクタの横にあります。はんだを使用してすべてをまとめます。2つのピンとUSBコネクタです。 3本のワイヤーでGnd-、Batt +、Out +端子をこの回路に接続します。

<図>

気圧センサー:

GY-63(MS5611)気圧センサー(PCB上のPセンサー)は小さな回路基板に囲まれており、Arduinoはi2cバスを介してそれと通信します。使い方は簡単で、使ったことのない温度センサーも付いています。

プログラムは、ソフトウェアのコアである「readPSensor()」関数を呼び出します。必要なのは相対的な変化です 高度、関数は何度も読み取ります 1秒あたり、PrexTotalに収集します。 0.5秒ごと(PrexInterval)に、高度の平均変化を計算し、ビープ音を鳴らします または、ディップスイッチの設定を考慮して長いビープ音を鳴らします。データをフィルタリングするためのこの簡単な方法で十分です。私は興味深いカルマンフィルターの方法を試しましたが、このプロジェクトの目的には大きなメリットがなく、複雑なマジウィックとマホニーのフィルターアルゴリズムも試しました。

更新/ヒント:

以上です。 このプロジェクトは本当に楽しかったです!それもやりなさい! :-)

マルコゾンカ

コード

  • 音響バリオメーターコード
音響バリオメーターコード Arduino
 / *このスケッチは、パラグライダー用のバリオメーターとして機能します。MarcoZonca、2020 Arduino MiniPro 3.3、CPU、GY-63(MS5611)気圧センサー、8 xディップスイッチ、ブザー、Mux 4051、lipo 1s 3.7v 350mA、3.7 v-> 5v電圧ステップアップ+リポusb充電器; DipSwitch:1 =未使用2 =hw低/高ブザー音量3 =\シンクアラーム:OFF -1.0 -2.0 -3.0 m / sec 4 =/ 5 =\ビープ音の周波数:+1.0 +1.5 +2.0 +3.0 Hz 6 =/ 7 =\感度:+0.0 +0.1 +0.2 +0.5 m / sec 8 =/ * /#include  #include  const int muxIOpin =15; const int vbattPin =14; const int muxbit0 =4; const int muxbit1 =5; const int muxbit2 =6; const int buzzerPin =7; const int DIPSWinterval =5000; const int BATTinterval =10000; const int PrexInterval =500; const boolean isDebug =false; float sensibility [5 ]; floatfrequency [5]; float sinkalarm [5]; long n =0; boolean dipswitch [9]; String dips; unsigned long prevDIPSWmillis =0; unsigned long prevBATTmillis =0; float n1 =0; float n2 =0; float SensorVBatt =0; double referencePressure =0; unsigned long prevPrexMillis =0; unsigned long currPrexMillis =0; double realPressure =0; float AbsoluteAltitude =0; float relativeAltitude =0; float avgAltitude =0; float avgPrev Altitude =0; long PrexCounter =0; float PrexTotal =0; float PrexVario =0; boolean isFirstCalc =true; MS5611 psensor; //圧力センサーvoidsetup(){Serial.begin(9600); pinMode(muxbit0、OUTPUT); pinMode(muxbit1、OUTPUT); pinMode(muxbit2、OUTPUT); pinMode(buzzerPin、OUTPUT); sensibility [4] =0; sensibility [3] =0.5; sensibility [2] =0.2; sensibility [1] =0.1; sensibility [0] =0.0;頻度[4] =0;頻度[3] =3.0;頻度[2] =2.0;頻度[1] =1.5;頻度[0] =1.0;シンカラム[4] =0;シンカラム[3] =-3.0;シンカラム[2] =-2.0;シンカラム[1] =-1.0;シンカラム[0] =-999.9; readDIPswitch(); psensor.begin(); referencePressure =psensor.readPressure(); if(isDebug ==true)Serial.println( "Vario is on"); NewTone(buzzerPin、4); delay(750); noNewTone();} // setup()void loop(){readPSensor();を終了しますif((prevDIPSWmillis + DIPSWinterval) =PrexInterval){avgAltitude =PrexTotal / PrexCounter; //平均if(isFirstCalc ==true){avgPrevAltitude =avgAltitude; isFirstCalc =false; } PrexVario =(avgAltitude-avgPrevAltitude)*(1000 / PrexInterval); // vario mSec if((PrexVario <=sensibility [4])&&(PrexVario> =thinkalarm [4])){noNewTone(); } if((PrexVario> sensibility [4])){//ビープ音を上げる+ NewTone(buzzerPin、((int)(PrexVario + frequency [4]))); } if((PrexVario  512)dipswitch [n] =false; //選択したポートを読み取りますelsedipswitch [n] =true; if(isDebug ==true){if(dipswitch [n] ==false)Serial.print( "0"); else Serial.print( "1"); }} //終了if(isDebug ==true)Serial.println( ""); s =0; if(dipswitch [7] ==true)s =s + 2; if(dipswitch [8] ==true)s =s + 1; sensibility [4] =sensibility [s]; if(isDebug ==true){Serial.print( "Sensibility ="); Serial.println(sensibility [4]); } s =0; if(dipswitch [5] ==true)s =s + 2; if(dipswitch [6] ==true)s =s + 1;頻度[4] =頻度[s]; if(isDebug ==true){Serial.print( "Frequency ="); Serial.println(周波数[4]); } s =0; if(dipswitch [3] ==true)s =s + 2; if(dipswitch [4] ==true)s =s + 1;シンクアルム[4] =シンクアルム[s]; if(isDebug ==true){Serial.print( "SinkAlarm ="); Serial.println(sinkalarm [4]); }} // readDIPswitch()void checkBATT(){//リポ/リチウムバッテリー電圧をチェックn1 =analogRead(vbattPin); n2 =(((6.60 * n1)/ 1023.00)); SensorVBatt =(n2 +((n2 * 0.0)/ 100)); //任意の修正(非アクティブ=0.0%)if(SensorVBatt <=3.4){NewTone(buzzerPin、6,1000); } if(isDebug ==true){Serial.print( "VBatt ="); Serial.println(SensorVBatt); }} // checkBATT()
を終了します

カスタムパーツとエンクロージャー

回路図

vario_R1XzPifiX4.fzz

製造プロセス

  1. シークレットマネージャーで機密データを保存および管理する
  2. 高感度電圧検出器
  3. アネロイドバロメーター
  4. トランジスタの欠陥を検出するための高感度な方法
  5. 超薄型で高感度のひずみセンサー
  6. 宇宙用の高感度光受信機
  7. Amstrong® ウルトラ 650MC
  8. Amstrong® ウルトラ 650MCT
  9. Amstrong® ウルトラ 700MC
  10. Amstrong® ウルトラ 700MCT
  11. 超高純度クロム (UHP Cr)>99.95%