4.6 Projekt: Intelligentes Fütterungssystem

In diesem Projekt erkennt das Ultraschallmodul, ob sich Tiere im Fütterungsbereich befinden, und der Servo öffnet automatisch die Futterbox für Geflügel. Darüber hinaus ermöglicht die Integration von IOT die Fernüberwachung solcher Fütterungssysteme, was viel Komfort bietet.

Insgesamt optimieren die Automatisierung und der Fernbetrieb den Fütterungsprozess für dieses System.

img


4.6.1 Flussdiagramm

image-20230607085516167


4.6.2 Servo

Beschreibung:

Ein Servo, auch RC Servo Device genannt, ist ein Motor mit Rückmeldung. Üblicherweise führt ein Servo eine präzise Positionsregelung durch und liefert ein hohes Drehmoment, was am häufigsten in Robotikprojekten, RC-Autos, Flugzeugen und Luftfahrzeugen vorkommt.

img


Interne Struktur:

img

  • ① Signal (S): Es empfängt das Steuersignal vom Mikrocontroller.

  • ② Potentiometer: der Rückmeldeteil des Servos. Es misst die Position der Abtriebswelle.

  • ③ Eingebettete Platine (Interner Controller): der Kern des Servos. Es verarbeitet externe Steuersignale und das Rückmeldesignal der Position und steuert den Servo.

  • ④ Gleichstrommotor: der Ausführungsteil. Er liefert Geschwindigkeit, Drehmoment und Position.

  • ⑤ Getriebesystem: Es skaliert die Ausgaben des Motors auf den endgültigen Ausgangswinkel gemäß einem bestimmten Übersetzungsverhältnis.


Den Servo ansteuern:

Signal (S) empfängt PWM, um die Ausgabe des Servos zu steuern, und die Position der Abtriebswelle hängt direkt vom Tastverhältnis des PWM ab.

Zum Beispiel:

  • Wenn wir ein Signal mit einer Pulsbreite von 1,5 ms an den Servo senden, dreht sich seine Welle (Horn) in die Mittelposition (90°);

  • Wenn die Pulsbreite = 0,5 ms ist, dreht sich die Welle auf ihr Minimum (0°);

  • Wenn die Pulsbreite = 2,5 ms ist, dreht sich die Welle auf ihr Maximum (180°).

HINWEIS: Der maximale Winkel variiert je nach Servotyp. Einige sind 170°, während andere nur 90° betragen. Trotzdem bewegen sich Servos normalerweise um die Hälfte (des Maximums), wenn sie ein Signal mit einer Pulsbreite von 1,5 ms empfangen.

img

Die Periode eines Servos beträgt normalerweise 20 ms und er erzeugt Impulse mit einer Frequenz von 50 Hz. Die meisten Servos arbeiten normal bei 40–200 Hz.


Schaltplan:

Verbinden Sie den Servo mit io26.

Achtung: Verbinden Sie Gelb mit S (Signal), Rot mit V (Strom) und Schwarz mit GND. Nicht vertauschen!

img


Testcode:

  • Initialisieren Sie den seriellen Port und definieren Sie eine Variable item mit dem Wert 80.

img

  • Stellen Sie item auf den Winkel des Servos von 80° bis 180° ein, wobei sich der Servo alle 15 ms um 1° dreht.

img

  • Der Servo dreht sich alle 15 ms um 1°, von 180° auf 80°.

img

Vollständiger Code:

img

Testergebnis:

Die Futterbox wird langsam geöffnet und dann geschlossen, was steuerbar ist.

HINWEIS: Der SG90-Servo kann 180° drehen. Da die Futterbox klein ist, reichen 100° Drehung aus, um die Box vollständig zu schließen.

  • 80°: vollständig geöffnet

  • 120°: halb geöffnet

  • 180°: geschlossen

img


ACHTUNG

Stecken Sie Ihre Finger nicht in die Box, um ein Einklemmen zu vermeiden!

Blockieren Sie die Tür nicht mit etwas, um eine Beschädigung des Servos zu vermeiden!


4.6.3 Ultraschallsensor

Beschreibung:

img

Schaltplan:

img


Die Frequenz von Schallwellen, die der Mensch hören kann, liegt zwischen 20 Hz und 20 KHz, während Ultraschallwellen außerhalb dieses Bereichs liegen.

Ultraschall:

img

Das Ultraschallmodul wandelt Elektrizität und Ultraschallwellen durch den piezoelektrischen Effekt ineinander um und sendet und empfängt auch Ultraschallwellen.

Diese Art von Welle zeichnet sich durch Richtwirkung, starke Durchdringung und leichte Konzentration der Schallenergie aus.

img

In diesem Ultraschall-Entfernungsmesssystem programmieren wir zunächst den MCU (ESP32-Entwicklungsplatine), um eine ursprüngliche Rechteckwelle bei 40 KHz zu erzeugen und das Ultraschallmodul anzutreiben, diese auszusenden. Unmittelbar danach berechnet das Modul die Entfernung zum Objekt, nachdem es die reflektierte Welle (Echo) empfangen hat, die durch die Schaltung verstärkt und geformt wurde. Hierbei wird die Dauer der Emission und Reflexion aufgezeichnet und die Entfernung gemäß der Zeitdifferenz berechnet.

Einfach ausgedrückt steuert der MCU das Modul, um Ultraschallwellen auszusenden, die nach dem Auftreffen auf Hindernisse zurückgeworfen und vom Modul empfangen werden. Die Zeitdifferenz zwischen ihnen ist ein wichtiger Faktor bei der Berechnung der Entfernung (die Schallausbreitungsgeschwindigkeit in der Luft beträgt 340 m/s).


Schaltplan:

Verbinden Sie den Echo des Ultraschallmoduls mit io13 und Trig mit io12.

Achtung: Verbinden Sie Gelb mit S (Signal) und Rot mit V (Strom). Nicht vertauschen!

img


Testcode:

Stellen Sie den korrekten Pin ein: Trig an Pin io12; Echo an Pin io13.

img

Testergebnis:

In diesem Kit liegt der Erfassungsbereich zwischen 3 und 8 cm.

Öffnen Sie den seriellen Monitor und beobachten Sie.

img


4.6.4 Intelligentes Fütterungssystem

Beschreibung:

Das intelligente Fütterungssystem füttert Hausgeflügel intelligent über ein Ultraschallmodul und einen Servo. Ersteres erkennt die Entfernung zu Tieren, während Letzteres das Öffnen oder Schließen der Futterbox steuert. Wenn ein Haustier in der Nähe der Box erkannt wird, öffnet der Servo diese zum Füttern.


Schaltplan:

Verbinden Sie den Echo des Ultraschallmoduls mit io13 und Trig mit io12; verbinden Sie den Servo mit io26.

Achtung: Verbinden Sie Gelb mit S (Signal), Rot mit V (Strom) und Schwarz mit GND. Nicht vertauschen!

img


Testcode:

Codefluss:

img

Code:

  • Initialisieren Sie den seriellen Port. Definieren Sie eine Variable und weisen Sie ihr den Wert 180 zu.

img

  • Stellen Sie den Pin korrekt ein und geben Sie den empfangenen Wert aus.

img

  • Bestimmen Sie den erkannten Abstandswert. Liegt er zwischen 2 cm und 7 cm, öffnet sich die Futterbox.

img

Vollständiger Code:

img

Testergebnis:

Wenn ein Tier erkannt wird, öffnet sich die Futterbox.


**ACHT