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

4.6.1 フロー図

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

内部構造:

① 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の信号を受信すると、半分(最大値の)動きます。

Servoの周期は通常20msで、50Hzの周波数でパルスを生成します。ほとんどのServoは40〜200Hzで正常に動作します。
配線図:
Servoをio26に接続します。
注意:黄色をS(信号)、赤をV(電源)、黒をGNDに接続してください。逆に接続しないでください!

テストコード:
シリアルポートを初期化し、変数itemを80で定義します。

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

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

完全なコード:

テスト結果:
給餌箱はゆっくりと開閉し、制御可能です。
注:SG90サーボは180°回転できます。給餌箱が小さいため、100°の 回転で箱を完全に閉じるのに十分です。
80°:全開
120°:半開
180°:閉じる

注意
指を箱に入れないでください。挟まれる可能性があります!
Servoを損傷する可能性があるため、ドアを物で塞がないでください!
4.6.3 超音波センサー
説明:

回路図:

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

超音波モジュールは、圧電効果によって電気と超音波を相互に変換し、超音波を送受信します。
この種の波は、指向性、強い透過性、音響エネルギーの集中が容易という特徴があります。

この超音波測距システムでは、まずMCU(ESP32開発ボード)で40KHzのオリジナル方形波を生成し、超音波モジュールを駆動してそれを放出するようにプログラムします。すぐに、モジュールは増幅および整形された反射波(Echo)を受信した後、物体までの距離を計算します。ここで、放出と反射の持続時間を記録し、時間差に基づいて距離を計算します。
簡単に言えば、MCUはモジュールを制御して超音波を放出し、それが障害物に遭遇した後に跳ね返ってモジュールによって受信されます。それらの間の時間差は、距離を計算する上で重要な要素です(空気中の音速は340m/sです)。
配線図:
超音波モジュールのEchoをio13に、Trigをio12に接続します。
注意:黄色をS(信号)、赤をV(電源)に接続してください。逆に接続しないでください!

テストコード:
正しいピンを設定します:Trigをピンio12に、Echoをピンio13に。

テスト結果:
このキットでは、検出範囲は3〜8cm以内です。
シリアルモニターを開いて観察します。

4.6.4 スマート給餌システム
説明:
スマート給餌システムは、超音波モジュールとサーボを介して家禽にインテリジェントに給餌します。前者は動物までの距離を検出し、後者は給餌箱の開閉を制御します。ペットが箱の近くで検出されると、サーボが箱を開けて給餌します。
配線図:
超音波モジュールのEchoをio13に、Trigをio12に接続します。サーボをio26に接続します。
注意:黄色をS(信号)、赤をV(電源)、黒をGNDに接続してください。逆に接続しないでください!

テストコード:
コードフロー:

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

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

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

完全なコード:

テスト結果:
動物が検出されると、給餌箱が開きます。
注意
指を箱に入れないでください。挟まれる可能性があります!
Servoを損傷する可能性があるため、ドアを物で塞がないでください!
4.6.5 FAQ
Q: Servoが動作しません。
A: 底板を取り付ける際に、Servo自体またはワイヤーが引っかかっている可能性があります。取り付ける前に、Servoをまず180°に調整してください。方法については、取り付けガイドを参照してください。
Q: 検出距離が不正確です。
A: 検出する際は、送信ヘッドから測定してください。このモジュールは高精度検出器ではないため、誤差が生じる可能性があります。
