RaspberryPiのHC-SR04超音波距離センサー
以前のチュートリアルでは、温度検知、PIRモーションコントローラー、ボタンとスイッチの概要を説明しました。これらはすべて、RaspberryPiのGPIOポートに直接接続できます。 HC-SR04超音波距離計は非常に使いやすいですが、ラズベリーパイを損傷しないように、出力する信号を5Vから3.3Vに変換する必要があります。このチュートリアルでは、各ステップを説明するために、いくつかの物理学と電子工学を紹介します。
必要なもの:
HC-SR04
1kΩ抵抗
2kΩ抵抗
ジャンパー線
超音波距離センサー
音は、媒体(空気など)を通過する振動波で構成され、ピッチは、周波数として定義される、これらの波の相互の近さによって決定されます。 「音響」範囲として定義される、音のスペクトル(音波周波数の範囲)の一部のみが人間の耳に聞こえます。アコースティックより下の非常に低い周波数の音は「超低周波音」と定義され、上の高周波数の音は「超音波」と呼ばれます。超音波センサーは、レーダーと同様に超音波反射を使用して物体の近接または距離を感知し、センサーと固体物体の間で超音波を反射するのにかかる時間を計算するように設計されています。超音波は主に、人間の耳には聞こえず、短距離では比較的正確であるために使用されます。もちろん、この目的でアコースティックサウンドを使用することもできますが、ノイズの多いロボットが数秒ごとにビープ音を鳴らします。 。 。 。
基本的な超音波センサーは、1つまたは複数の超音波送信機(基本的にスピーカー)、受信機、および制御回路で構成されます。送信機は高周波の超音波を発し、近くの固形物に当たって跳ね返ります。その超音波ノイズの一部は、センサーの受信機によって反射および検出されます。次に、その戻り信号は制御回路によって処理され、送信される信号と受信される信号の間の時間差が計算されます。その後、この時間を巧妙な計算とともに使用して、センサーと反射物体の間の距離を計算できます。
このチュートリアルでRaspberryPiに使用するHC-SR04超音波センサーには、アース(GND)、エコーパルス出力(ECHO)、トリガーパルス入力(TRIG)、および5V電源(Vcc)の4つのピンがあります。 Vccを使用してモジュールに電力を供給し、GNDを使用して接地し、Raspberry Piを使用して入力信号をTRIGに送信します。これにより、センサーがトリガーされて超音波パルスが送信されます。脈波は近くの物体に当たって跳ね返り、一部は反射してセンサーに戻ります。センサーはこれらの戻り波を検出し、トリガーと戻りパルスの間の時間を測定してから、ECHOピンに5V信号を送信します。
エコーパルスを受信したときにセンサーがトリガーされるまで、ECHOは「ロー」(0V)になります。リターンパルスが検出されると、ECHOはそのパルスの持続時間中「ハイ」(5V)に設定されます。パルス持続時間は、センサーが超音波パルスを出力してから、センサーレシーバーによってリターンパルスが検出されるまでのフルタイムです。したがって、Pythonスクリプトはパルス持続時間を測定してから、これからの距離を計算する必要があります。
重要。 HC-SR04のセンサー出力信号(ECHO)の定格は5Vです。ただし、Raspberry PiGPIOの入力ピンの定格は3.3Vです。保護されていない3.3V入力ポートに5V信号を送信すると、GPIOピンが損傷する可能性があります。これは避けたいことです。センサーの出力電圧をRaspberryPiが処理できる値まで下げるには、2つの抵抗で構成される小さな分圧回路を使用する必要があります。
分圧器
分圧器は、入力電圧(Vin)に直列に接続された2つの抵抗(R1とR2)で構成されており、出力電圧(Vout)に下げる必要があります。私たちの回路では、VinはECHOになり、5Vから3.3VのVoutに下げる必要があります。
次の回路と簡単な式は、電圧を下げる必要がある多くのアプリケーションに適用できます。技術的な知識を習得したくない場合は、1x1kΩと1x2kΩの抵抗をつかんでください。
重要なのは分割比であるため、数学の側面に深く入り込むことなく、実際に1つの抵抗値を計算するだけで済みます。入力電圧(5V)と必要な出力電圧(3.3V)がわかっているので、抵抗の任意の組み合わせを使用して低減を実現できます。たまたま余分な1kΩ抵抗がたくさんあるので、回路でこれらの1つをR1として使用することにしました。
回路を組み立てる
このプロジェクトでは、RaspberryPiで4つのピンを使用します。GPIO5V[ピン2]; Vcc(5V電源)、GPIO GND [ピン6]; GND(0Vグラウンド)、GPIO 23 [ピン16]; TRIG(GPIO出力)およびGPIO 24 [ピン18]; ECHO(GPIO入力)
1.次のように4本のオス-メスジャンパー線をHC-SR04のピンに差し込みます。 Vcc、青; TRIG、イエロー; ECHOとブラック; GND。
2. Vccをブレッドボードのプラスのレールに差し込み、GNDをマイナスのレールに差し込みます。
3. GPIO 5V [ピン2]をプラスのレールに接続し、GPIO GND [ピン6]をマイナスのレールに接続します。
4. TRIGをブランクレールに接続し、そのレールをGPIO 23 [ピン16]に接続します。 (必要に応じて、TRIGをGPIO 23に直接接続できます)。個人的には、ブレッドボードですべてを行うのが好きです!
5. ECHOをブランクレールに接続し、R1(1kΩ抵抗)を使用して別のブランクレールをリンクします
6. R2(2kΩ抵抗)を使用して、R1レールをGNDレールにリンクします。 2つの抵抗器の間にスペースを空けてください。
7. GPIO 24 [ピン18]をR1(1kΩ抵抗)でレールに追加します。このGPIOピンはR1とR2の間に配置する必要があります
それでおしまい! HC-SR04センサーはRaspberryPiに接続されています!
Pythonによるセンシング
超音波センサーをPiに接続したので、距離を検出するためにPythonスクリプトをプログラムする必要があります!
超音波センサー出力(ECHO)は、トリガーされない限り常にロー(0V)で出力されます。トリガーされた場合は、5V(分圧器で3.3V!)を出力します。したがって、センサーをトリガーするための出力として1つのGPIOピンを設定し、ECHO電圧の変化を検出するための入力として1つのGPIOピンを設定する必要があります。
まず、Python GPIOライブラリをインポートし、タイムライブラリをインポートして(Piをステップ間で待機させます)、GPIOピン番号を設定します。
RPi.GPIOをGPIOとしてインポート
インポート時間
GPIO.setmode(GPIO.BCM)
詳細:ラズベリーパイのHC-SR04超音波距離センサー
製造プロセス