4.6 プロジェクト:スマート給餌システム

このプロジェクトでは、超音波モジュールが動物が給餌エリアにいるかどうかを検出し、Servoが自動的に家禽用の給餌箱を開きます。さらに、IoTを組み込むことで、このような給餌システムのリモート監視が可能になり、非常に便利になります。

全体として、自動化とリモート操作により、このシステムの給餌プロセスが最適化されます。

img


4.6.1 フロー図

image-20230607085516167


4.6.2 Servo

説明:

Servoは、RC Servo Deviceとも呼ばれ、フィードバック付きのモーターです。一般的に、Servoは正確な位置制御と高いトルクを出力し、ロボットプロジェクト、RCカー、飛行機、航空機で最もよく使用されます。

img


内部構造:

img

  • ① Signal(S): マイクロコントローラーからの制御信号を受信します。

  • ② Potentiometer: Servoのフィードバック部分。出力軸の位置を測定します。

  • ③ Embedded board (Internal controller): Servoのコア。外部制御信号と位置のフィードバック信号を処理し、Servoを駆動します。

  • ④ DC motor: 実行部分。速度、トルク、位置を出力します。

  • ⑤ Gear system: モーターからの出力を、特定の伝達比に応じて最終出力角度にスケーリングします。


Servoの駆動:

Signal(S)はPWMを受信してServoの出力を制御し、出力軸の位置はPWMのデューティサイクルに直接依存します

例えば:

  • パルス幅1.5msの信号をServoに送ると、その軸(ホーン)は中央位置(90°)に回転します。

  • パルス幅が0.5msの場合、軸は最小(0°)に回転します。

  • パルス幅が2.5msの場合、軸は最大(180°)に回転します。

注:最大角度はServoの種類によって異なります。170°のものもあれば、90°のものもあります。それにもかかわらず、Servoは通常、パルス幅1.5msの信号を受信すると、半分(最大値の)動きます。

img

Servoの周期は通常20msで、50Hzの周波数でパルスを生成します。ほとんどのServoは40〜200Hzで正常に動作します。


配線図:

Servoをio26に接続します。

注意:黄色をS(信号)、赤をV(電源)、黒をGNDに接続してください。逆に接続しないでください!

img


テストコード:

  • シリアルポートを初期化し、変数itemを80で定義します。

img

  • itemをServoの角度80°から180°に設定し、15msごとに1°回転させます。

img

  • Servoは15msごとに1°回転し、180°から80°まで動きます。

img

完全なコード:

img

テスト結果:

給餌箱はゆっくりと開閉し、制御可能です。

注:SG90サーボは180°回転できます。給餌箱が小さいため、100°の 回転で箱を完全に閉じるのに十分です。

  • 80°:全開

  • 120°:半開

  • 180°:閉じる

img


注意

指を箱に入れないでください。挟まれる可能性があります!

Servoを損傷する可能性があるため、ドアを物で塞がないでください!


4.6.3 超音波センサー

説明:

img

回路図:

img


人間が聞くことができる音波の周波数は20Hz〜20KHzですが、超音波はその範囲を超えています。

超音波:

img

超音波モジュールは、圧電効果によって電気と超音波を相互に変換し、超音波を送受信します。

この種の波は、指向性、強い透過性、音響エネルギーの集中が容易という特徴があります。

img

この超音波測距システムでは、まずMCU(ESP32開発ボード)で40KHzのオリジナル方形波を生成し、超音波モジュールを駆動してそれを放出するようにプログラムします。すぐに、モジュールは増幅および整形された反射波(Echo)を受信した後、物体までの距離を計算します。ここで、放出と反射の持続時間を記録し、時間差に基づいて距離を計算します。

簡単に言えば、MCUはモジュールを制御して超音波を放出し、それが障害物に遭遇した後に跳ね返ってモジュールによって受信されます。それらの間の時間差は、距離を計算する上で重要な要素です(空気中の音速は340m/sです)。


配線図:

超音波モジュールのEchoをio13に、Trigをio12に接続します。

注意:黄色をS(信号)、赤をV(電源)に接続してください。逆に接続しないでください!

img


テストコード:

正しいピンを設定します:Trigをピンio12に、Echoをピンio13に。

img

テスト結果:

このキットでは、検出範囲は3〜8cm以内です。

シリアルモニターを開いて観察します。

img


4.6.4 スマート給餌システム

説明:

スマート給餌システムは、超音波モジュールとサーボを介して家禽にインテリジェントに給餌します。前者は動物までの距離を検出し、後者は給餌箱の開閉を制御します。ペットが箱の近くで検出されると、サーボが箱を開けて給餌します。


配線図:

超音波モジュールのEchoをio13に、Trigをio12に接続します。サーボをio26に接続します。

注意:黄色をS(信号)、赤をV(電源)、黒をGNDに接続してください。逆に接続しないでください!

img


テストコード:

コードフロー:

img

コード:

  • シリアルポートを初期化します。変数を定義し、180を割り当てます。

img

  • ピンを正しく設定し、受信した値を表示します。

img

  • 検出された距離値を判断します。2cm〜7cm以内であれば、給餌箱が開きます。

img

完全なコード:

img

テスト結果:

動物が検出されると、給餌箱が開きます。


注意

指を箱に入れないでください。挟まれる可能性があります!

Servoを損傷する可能性があるため、ドアを物で塞がないでください!


4.6.5 FAQ

Q: Servoが動作しません。

A: 底板を取り付ける際に、Servo自体またはワイヤーが引っかかっている可能性があります。取り付ける前に、Servoをまず180°に調整してください。方法については、取り付けガイドを参照してください。


Q: 検出距離が不正確です。

A: 検出する際は、送信ヘッドから測定してください。このモジュールは高精度検出器ではないため、誤差が生じる可能性があります。

img