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

ラズベリーパイで雷を検出する

さまざまな方法を使用して雷を検出できます。通常、ストライキによって生成された電磁放射を感知する必要があります。ほとんどの人は、おそらくある時点で、AMラジオの静的な、パチパチという音、ポップな音としてこれを聞いたことがあるでしょう。一部の検出器は、日光のために人間の目で通常見ることができない日中であっても、雲の中で生成された光の閃光を拾うことができます。時折、稲妻がガンマ線の短いパルスを放出します。これは、国際宇宙ステーションに搭載された新しい機器が研究するように設定されています。

この投稿では、RaspberryPiを使用して、ams(Austria Mikro Systeme)のAS3935フランクリンライトニングセンサーICをインターフェースする方法について説明します。 AS3935は、最大40km離れた場所での雷活動を検出できるプログラム可能なセンサーです。独自のハードワイヤードアルゴリズムを使用して、ノイズと人工の「妨害物質」を除去し、嵐の前縁までの距離を推定します。プログラム可能な検出レベル、しきい値設定、およびアンテナ調整があります。また、以前の多くの地上雷センサーとは異なり、雲から地面への雷活動と雲内の雷活動の両方を検出できます。

詳細

特定のコンポーネントを少量に切り上げ、PCBをレイアウトし、かなり小さい(4x4mm)MLPQ-16パッケージを手はんだ付けするのではなく、EmbeddedAdventuresのMOD-1016ブレイクアウトボードを使用しました。 AS3935には、2.4〜5.5Vの電源電圧範囲が必要です。これは、RaspberryPiの3.3vGPIOロジックレベルで完全に機能します。 SPIまたはI2Cを介してインターフェースできます。デフォルトでは、MOD-1016はI2Cを使用するように構成されていますが、ボード上の2つのはんだジャンパーを介してSPIを使用するように簡単に切り替えることができます。私のセットアップでは、デフォルトのI2C構成を使用します。

このプロジェクトは、私にとってI2Cプロトコルの優れた入門書として役立ちました。以前、DS18B20温度センサーのインターフェースに1-Wireプロトコルを使用していましたが、I2Cの方がはるかに広く使用されているため、このプロトコルに飛び込むことができてうれしかったです。この投稿では、I2Cを介してRaspberryPiからAS3935と通信するために必要な詳細について説明しますが、詳細が必要な場合は、ByteParadigmがI2CとSPIのすばらしい紹介を提供します。

I2Cプロトコルを使用するようにRaspberryPiをまだ構成していない場合は、いくつかのパッケージをインストールし、いくつかのカーネルモジュールをロードする必要があります。 Adafruitにはすばらしいガイドがありますが、基本的には python-smbus をインストールするだけです。 および i2c-tools パッケージを作成し、 i2c-bcm2708 をロードします および i2c-dev カーネルモジュール。 Raspbianディストリビューションでこれを行うと、次のようになります。

  ###パッケージをインストールします〜$ sudo apt-get install python-smbus〜 $ sudo apt-get install i2c-tools ###カーネルモジュールをロードします〜$ sudo modprobe i2c-bcm2708〜 $ sudo modprobe i2c-dev ###モジュールが起動時にロードされることを確認してください〜$ echo "i2c-bcm2708i2c-dev" | sudo tee -a / etc / modules  

MOD-1016をRaspberryPiに配線するのは比較的簡単です。 I2Cを使用すると、複数のデバイスと通信するために必要なのは、電源とアース以外に2本のワイヤ(SDAとSCL)だけです。 AS3935は割り込みを発行してマイクロコントローラーにイベントを警告するため、そのために1本の追加のワイヤーが必要になります。標準のブレッドボードとAdafruitのRaspberryPiCobblerを使用して、回路をモックアップしました。 MOD-1016(AS3935)は、RaspberryPiにそのまま接続します。

MOD-1016 RaspberryPi
GND グラウンド
VCC 3.3v(ピン1)
IRQ GPIO 17(ピン11)
SCL SCL(ピン5)
SDA SDA(ピン3)

I2Cについて注意すべきことの1つは、チップ間通信用に設計されていることです。多くの場合、同じPCB上にある集積回路間で行われます。 I2Cでは、ラインはプルアップ抵抗によってハイに保持され、反対の状態を示すためにローにプルされます。ラインをVCCに戻すのにかかる時間は、プルアップ抵抗の値とバス容量によって異なります。 I2C仕様では、最大静電容量が400pFに制限されています。これにより、通常、実際の距離は数メートル以内に制限されます。必要に応じて最大長を延長する方法があります。最も明白なのはI2Cバスエクステンダーです。クロックレートを遅くすると、最大距離を伸ばすこともできます。また、I2C接続にCAT-5のようなツイストペアケーブルを使用する場合は、同じツイストペア上でSCLラインとSDAラインを一緒に配線しないように注意してください。別々のペアを使用し、各ペアのもう一方の線をアースに接続します。

下の画像は、ブレッドボードにブレッドボードされたMOD-1016ブレッドアウトと、EmbeddedAdventuresのMS5611気圧センサーおよびAdafruitのFTDIフレンドを示しています。

すべてが配線されたら、コマンド i2cdetect を使用できます I2Cが機能していて、センサーと通信できるかどうかを確認します。古いRaspberryPi(256MBのRAMを搭載)を使用している場合は、I2CバスIDを0にして次のようにコマンドを実行します。新しいRaspberryPiを使用している場合は、代わりに1を使用します。以下の出力では、AS3935(0x03)とMS5611(0x76)が正しく検出されていることがわかります。

 〜$ sudo i2cdetect -y 0 0 1 2 3 4 5 6 7 8 9 abcde f00:03 --- --- --- --- --- --- --- -10:--- --- --- --- --- --- --- --- --- 20:--- --- --- --- --- --- --- --- --- --30:---- --- --- --- --- --- --- ---- ---- 40:---- --- --- --- --- --- --- --- --- 50:--- --- ---- --- --- --- --- --- --- 60:--- --- --- --- --- --- --- ---- --- --70:---- --- --76- 

センサーを実際に使用するには、センサーと対話できる必要があります。これは、チップ内のレジスタの読み取りと書き込みによって行われます。レジスタは、構成や入出力などのビットを格納するために使用されるメモリ位置です。ある意味では、それらはデジタルDIPスイッチのようなものであり、ビットまたは一連のビットを使用してさまざまな状態を示したり設定したりします。たとえば、AS3935では、3番目のレジスタ(0x02)の7番目のビット(ビット6)を切り替えることで、アルゴリズムによって構築された統計をクリアできます。レジスタの位置と機能を説明するテーブルとマッピングは、デバイスのデータシートにあります。たとえば、

ほとんどの言語とプラットフォームには、I2Cでの作業に使用できるツールまたはライブラリがあります。たとえばLinuxの場合、 i2c-tools パッケージは、 i2cdetect、i2cget、などのユーティリティを提供します i2cdump 、および i2cset コマンドラインから使用できます。 Pythonの場合、 python-smbus によって提供されるSMBusモジュール パッケージは、I2Cバスにアクセスするために必要なバインディングを提供します。多くの場合、個々のレジスタの操作の詳細を抽象化するデバイスで利用可能な高レベルのライブラリがあります。多くの場合、どのビットをどのレジスタに読み書きするかを知る必要はなく、クラスをインスタンス化してメソッドを呼び出し、特定のデバイスと対話することができます。

PythonでAS3935を操作するために、PhilFenstermacherによって作成されたRaspberryPi-AS3935ライブラリを利用できます。インストール手順はGitHubページにあります。便利なメソッドと、起動して実行するための優れたデモスクリプトを提供します。使用可能なメソッドとその引数を確認するには、RPi_AS3935.pyファイルを確認してください。

AS3935は、アンテナとして並列RLC回路を使用しており、500kHz±3.5%の共振周波数に調整する必要があります。変動を補償するために、8pFのステップでアクティブ化できるチューニングコンデンサを介して、内部で最大120pFが利用可能です。 AS3935は、レジスタ設定を通じてIRQピンに共振周波数を出力できるため、外部デバイスで共振周波数を測定し、必要な調整コンデンサをアクティブにしてアンテナを適切に調整できます。幸い、Embedded AdventuresのMOD-1016ブレイクアウトには、帯電防止バッグの外側に表示されるチューニングコンデンサの値が付属しています。これにより、キャリブレーションルーチンがはるかに簡単になります。上記のライブラリを使用する場合は、 calibrate()を呼び出すだけです。 メソッドと引数としてチューニングコンデンサの値を渡します。アンテナ設計の詳細については、AS3935AMSハードウェア設計ガイドを参照してください。

詳細:RaspberryPiを使用した雷の検出


製造プロセス

  1. RaspberryPi温度ロガー
  2. DS18B20で温度を読み取る|ラズベリーパイ2
  3. RASPBERRYPIによる温度測定
  4. ラズベリーパイで温度を監視する
  5. センサーデータとRaspberryPiマイクロプロセッサーの統合
  6. SensorflareとRaspberryPiを備えた433MHzスマートホームコントローラー
  7. tコブラープラス付きラズベリーパイ2ウォーターアラーム
  8. ThingSpeak Temperature Monitor with Raspberry Pi
  9. RaspberryPiを使用した簡単なDIY赤ちゃん泣き検出器
  10. ラズベリーパイによるパン/チルトフェイストラッキング
  11. Raspberrypiを使用してGPIOを介してボタンが押されたことを検出する