Inhaltsverzeichnis:
- Schritt 1: EINKAUFSLISTE
- Schritt 2: MECHANISCHES DESIGN
- Schritt 3: HERSTELLUNG VON TEILEN
- Schritt 4: ELEKTRONIK
- Schritt 5: PROGRAMMIERUNG
- Schritt 6: MONTAGE
- Schritt 7: EXPERIMENTE
- Schritt 8: LETZTER TEST
- Schritt 9: WAS HABEN WIR BEI DIESEM PROJEKT GELERNT?
- Schritt 10: Wie bringt man den Roboter dazu, Menschen zu folgen?
Video: PFLANZENROBOTER - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
Jeder genießt es, Pflanzen zu Hause zu haben, aber manchmal finden wir in unserem geschäftigen Leben nicht die Zeit, sie gut zu pflegen. Aus diesem Problem entstand eine Idee: Warum nicht einen Roboter bauen, der das für uns übernimmt?
Dieses Projekt besteht aus einem Pflanzenroboter, der sich um sich selbst kümmert. Die Pflanze ist in den Roboter integriert und kann sich selbst bewässern und Licht finden, während sie Hindernissen ausweicht. Möglich wurde dies durch den Einsatz mehrerer Sensoren am Roboter und an der Anlage. Dieses Instructable soll Sie durch den Prozess der Erstellung eines Pflanzenroboters führen, damit Sie sich nicht jeden Tag um Ihre Pflanzen kümmern müssen!
Dieses Projekt ist Teil von Bruface Mechatronics und wurde realisiert von:
Mercedes Arévalo Suárez
Daniel Blanquez
Baudouin Cornelis
Kaat Leemans
Marcos Martinez Jiménez
Basile Thisse
(Gruppe 4)
Schritt 1: EINKAUFSLISTE
Hier ist eine Liste aller Produkte, die Sie benötigen, um diesen Roboter zu bauen. Für jedes unterstrichene Stück ist ein Link verfügbar:
3D-gedruckte Motoren unterstützen X1 (in 3D kopieren)
3D gedruckte Räder + Rad-Motor-Verbindung X2 (Kopie in 3D)
AA Nimh-Batterien X8
Schleifpapierrolle X1
Arduino Mega X1
Kugellaufrad X1
Batteriehalter X2
Steckbrett für Tests X1
Steckbrett zum Löten von X1
Gleichstrommotoren (mit Encoder) X2
Scharniere X2
Hygrometer X1
Lichtabhängige Widerstände X3
Männlich-männliche & männlich-weibliche Pullover
Motorschirm X1
Anlage X1 (das liegt bei Ihnen)
Pflanztopf X1
Pflanzenstütze X1 (3D gedruckt)
Kunststoffrohr X1
Widerstände mit unterschiedlichen Werten
Kratzpapier X1
Schrauben
Scharfe Sensoren X3 (GP2Y0A21YK0F 10-80 cm)
Schalter X1
Wasserpumpe X1
Wasservorratsbehälter (kleine Tupperware) X1
Drähte
Bitte beachten Sie, dass diese Auswahl aus Zeit- und Budgetgründen (3 Monate und 200 €) resultiert. Andere Entscheidungen können nach eigenem Ermessen getroffen werden.
ERKLÄRUNG DER VERSCHIEDENEN AUSWAHL
Arduino Mega über Arduino Uno: Zunächst sollten wir auch den Grund erklären, warum wir Arduino überhaupt verwendet haben. Arduino ist eine Open-Source-Elektronik-Prototyping-Plattform, mit der Benutzer interaktive elektronische Objekte erstellen können. Es ist sowohl bei Experten als auch bei Neulingen sehr beliebt, was dazu beiträgt, viele Informationen darüber im Internet zu finden. Dies kann nützlich sein, wenn Sie ein Problem mit Ihrem Projekt haben. Wir haben uns für einen Arduino Mega gegenüber einem Uno entschieden, da er mehr Pins hat. Tatsächlich bot ein Uno für die Anzahl der Sensoren, die wir verwenden, nicht genügend Pins. Ein Mega ist auch leistungsstärker und könnte hilfreich sein, wenn wir einige Verbesserungen wie ein WIFI-Modul hinzufügen.
Nimh-Akkus: Eine erste Idee war, wie in vielen Roboterprojekten LiPo-Akkus zu verwenden. LiPo haben eine gute Entladerate und sind leicht wiederaufladbar. Aber wir merkten schnell, dass LiPo und Ladegerät zu teuer waren. Die einzigen anderen Batterien, die für dieses Projekt geeignet sind, sind die Nimh. Tatsächlich sind sie billig, wiederaufladbar und leicht. Um den Motor mit Strom zu versorgen, benötigen wir 8 davon, um eine Versorgungsspannung von 9,6 V (entladen) bis 12 V (voll geladen) zu erreichen.
Gleichstrommotoren mit Encodern: In Anbetracht des Hauptziels dieses Aktuators, den Rädern Rotationsenergie bereitzustellen, haben wir zwei Gleichstrommotoren anstelle von Servomotoren gewählt, die eine Begrenzung des Drehwinkels haben und für spezifischere Aufgaben ausgelegt sind, bei denen die Position definiert werden muss genau. Die Tatsache, dass Encoder vorhanden sind, bietet auch die Möglichkeit, bei Bedarf eine höhere Genauigkeit zu erzielen. Beachten Sie, dass wir die Encoder schließlich nicht verwendet haben, weil wir festgestellt haben, dass die Motoren ziemlich ähnlich waren und wir den Roboter nicht brauchten, um genau einer geraden Linie zu folgen.
Es gibt viele Gleichstrommotoren auf dem Markt und wir haben nach einem gesucht, der zu unserem Budget und Roboter passt. Um diese Einschränkungen zu erfüllen, halfen uns zwei wichtige Parameter bei der Auswahl des Motors: das zum Bewegen des Roboters erforderliche Drehmoment und die Geschwindigkeit des Roboters (um die erforderliche Drehzahl zu ermitteln).
1) Berechnen Sie die Drehzahl
Dieser Roboter muss die Schallmauer nicht durchbrechen. Um dem Licht zu folgen oder jemandem in einem Haus zu folgen, erscheint eine Geschwindigkeit von 1 m/s oder 3,6 km/h sinnvoll. Um es in U/min zu übersetzen, verwenden wir den Durchmesser der Räder: 9cm. Die U/min sind gegeben durch: U/min = (60*Geschwindigkeit(m/s))/(2*pi*r) = (60*1)/(2*pi*0,045) = 212 U/min.
2) Berechnen Sie das benötigte maximale Drehmoment
Da sich dieser Roboter in einer flachen Umgebung entwickelt, ist das maximale Drehmoment dasjenige, das benötigt wird, um den Roboter in Bewegung zu setzen. Wenn wir bedenken, dass das Gewicht des Roboters mit der Anlage und jedem Bauteil etwa 3 kg beträgt und die Reibungskräfte zwischen den Rädern und dem Boden verwendet werden, können wir das Drehmoment leicht ermitteln. Unter Berücksichtigung eines Reibungskoeffizienten von 1 zwischen Boden und Rädern: Reibungskräfte (Fr) = Reibungskoeffizient. * N (wobei N das Gewicht des Roboters ist) ergibt uns Fr = 1 * 3 * 10 = 30 N. Das Drehmoment für jeden Motor kann wie folgt ermittelt werden: T = (Fr * r)/2 wobei r das. ist Radius der Räder also T = (30*0,045)/2 = 0,675 Nm = 6,88 kg cm.
Dies sind die Eigenschaften des von uns gewählten Motors: bei 6V 175 U/min und 4 kg cm bei 12V 350 U/min und 8 kg cm. In dem Wissen, dass es durch eine lineare Interpolation zwischen 9,6 und 12 V mit Strom versorgt wird, scheint es klar, dass die oben genannten Einschränkungen erfüllt werden.
Lichtsensoren: Wir haben uns für lichtabhängige Widerstände (LDR) entschieden, da sich ihr Widerstand mit Licht schnell ändert und die Spannung am LDR leicht durch Anlegen einer konstanten Spannung an einen Spannungsteiler mit dem LDR gemessen werden kann.
Scharfe Sensoren: Sie werden verwendet, um Hindernissen auszuweichen. Sharp Distanzsensoren sind kostengünstig und einfach zu bedienen, was sie zu einer beliebten Wahl für die Objekterkennung und Entfernungsmessung macht. Sie haben in der Regel höhere Aktualisierungsraten und kürzere maximale Erkennungsbereiche als Sonar-Entfernungsmesser. Auf dem Markt sind viele verschiedene Modelle mit unterschiedlichen Reichweiten erhältlich. Da sie in diesem Projekt zur Erkennung von Hindernissen verwendet werden, haben wir uns für die mit einer Reichweite von 10-80 cm entschieden.
Wasserpumpe: Die Wasserpumpe ist eine einfache leichte und nicht zu leistungsstarke Pumpe, die mit dem Spannungsbereich der Motoren kompatibel ist, um für beide die gleiche Ernährung zu verwenden. Eine andere Lösung, um die Pflanze mit Wasser zu versorgen, bestand darin, eine vom Roboter getrennte Wasserbasis zu haben, aber es ist viel einfacher, eine am Roboter zu haben.
Hygrometer: Ein Hygrometer ist ein Feuchtigkeitssensor, der in den Boden eingelassen wird. Dies ist notwendig, da der Roboter wissen muss, wann der Topf trocken ist, um Wasser zu senden.
Schritt 2: MECHANISCHES DESIGN
Grundsätzlich besteht das Design des Roboters aus einer rechteckigen Box mit drei Rädern an der Unterseite und einem Deckel, der sich an der Oberseite öffnen lässt. Die Pflanze wird oben mit dem Wasserreservoir platziert. Der Pflanztopf wird in die Pflanztopffixierung gestellt, die auf die obere Planke des Roboters geschraubt wird. Der Wasserbehälter ist ein wenig auf der oberen Planke des Roboters zerkratzt und die Wasserpumpe ist auch im Boden des Wasserbehälters zerkratzt, sodass beim Nachfüllen der Tupperware mit Wasser alles leicht entfernt werden kann. In den Deckel des Behälters wird ein kleines Loch gebohrt, weil der Wasserschlauch in den Pflanztopf und die Ernährung der Pumpe in den Kasten gelangt. So wird in der oberen Planke der Box ein Loch gebohrt, durch das auch die Kabel des Hygrometers geführt werden.
Erstens wollten wir, dass der Roboter ein attraktives Design hat, deshalb haben wir uns entschieden, den elektronischen Teil in einer Box zu verstecken und direkt außerhalb der Anlage und des Wassers zu lassen. Dies ist wichtig, da Pflanzen ein Teil der Dekoration des Hauses sind und den Raum optisch nicht beeinträchtigen sollten. Die Komponenten in der Box werden durch einen Deckel auf der Oberseite leicht zugänglich sein, und die Seitenabdeckungen werden die notwendigen Löcher haben, um zum Beispiel den Roboter einfach einzuschalten oder den Arduino mit einem Laptop zu verbinden, wenn wir wollen neu zu programmieren.
Die Komponenten in der Box sind: der Arduino, der Motorcontroller, die Motoren, der LDR, die Stapelhalter, das Steckbrett und die Scharniere. Der Arduino ist auf kleinen Säulen montiert, damit seine Unterseite nicht beschädigt wird und der Motorcontroller oben auf dem Arduino montiert ist. Die Motoren werden an die Motorbefestigungen geschraubt und die Motorbefestigungen werden dann an die Bodenplanke der Box geschraubt. Die LDR sind auf ein kleines Stück Steckbrett gelötet. Auf dieses Steckbrett werden Mini-Holzbretter geklebt, um es an den Seitenflächen des Roboters zu verschrauben. Es gibt einen LDR vorne, einen auf der linken Seite und einen auf der rechten Seite, damit der Roboter die Richtung mit der höchsten Lichtmenge erkennen kann. Die Stapelhalter sind an der Unterseite der Box angekratzt, um sie leicht zu entfernen und die Stapel zu wechseln oder aufzuladen. Dann wird das Steckbrett mit kleinen dreieckigen Säulen mit Löchern in der Form der Ecke des Steckbretts an die untere Planke geschraubt, um es zu stützen. Abschließend werden die Scharniere auf der Rückseite und der Oberseite verschraubt.
Auf der Vorderseite werden drei scharfe Haken direkt aufgeschraubt, um Hindernisse bestmöglich zu erkennen und zu vermeiden.
Obwohl das physikalische Design wichtig ist, dürfen wir den technischen Teil nicht vergessen, wir bauen einen Roboter und er sollte praktisch sein und wir sollten den Raum so weit wie möglich optimieren. Dies ist der Grund, sich für eine rechteckige Form zu entscheiden, es war der beste Weg, um alle Komponenten anzuordnen.
Schließlich verfügt das Gerät für die Bewegung über drei Räder: zwei standardmäßige motorisierte hinten und eine Kugelrolle vorne. Sie werden in Dreiradantrieb, Konfiguration, Frontlenkung und Heckfahrt angezeigt.
Schritt 3: HERSTELLUNG VON TEILEN
Das Aussehen des Roboters kann je nach Interesse geändert werden. Technische Zeichnungen werden zur Verfügung gestellt, was als gute Grundlage für die eigene Entwicklung dienen kann.
Lasergeschnittene Teile:
Alle sechs Teile, aus denen das Gehäuse des Roboters besteht, wurden lasergeschnitten. Als Material wurde dabei recyceltes Holz verwendet. Diese Box könnte auch aus Plexiglas sein, was etwas teurer ist.
3D-gedruckte Teile:
Die beiden Standardräder, die auf der Rückseite des Roboters platziert sind, wurden in PLA in 3D gedruckt. Der Grund dafür ist, dass die einzige Möglichkeit, Räder zu finden, die alle Anforderungen (Passung in die DC-Motoren, Größe, Gewicht…) erfüllten, darin bestand, sie selbst zu entwickeln. Auch die Motorfixierung wurde aus Budgetgründen in 3D gedruckt. Dann wurden die Blumentopfhalterung, die Säulen, die das Arduino tragen, und die Ecken, die das Steckbrett tragen, auch 3D-gedruckt, weil wir eine bestimmte Formgebung in unserem Roboter brauchten.
Schritt 4: ELEKTRONIK
Scharfe Sensoren: Die scharfen Sensoren haben drei Stifte. Zwei davon dienen der Ernährung (Vcc und Ground) und der letzte ist das gemessene Signal (Vo). Für die Ernährung haben wir die positive Spannung, die zwischen 4,5 und 5,5 V liegen kann, also verwenden wir die 5 V vom Arduino. Vo wird mit einem der analogen Pins des Arduino verbunden.
Lichtsensoren: Die Lichtsensoren brauchen einen kleinen Stromkreis, um funktionieren zu können. Der LDR wird in Reihe mit einem 900-kOhm-Widerstand geschaltet, um einen Spannungsteiler zu bilden. Die Masse ist mit dem Pin des nicht mit dem LDR verbundenen Widerstands verbunden und die 5V des Arduino sind mit dem Pin des LDR verbunden, der nicht mit dem Widerstand verbunden ist. Der Pin des Widerstands und des LDR, die miteinander verbunden sind, wird mit einem analogen Pin des Arduino verdrahtet, um diese Spannung zu messen. Diese Spannung variiert zwischen 0 und 5 V, wobei 5 V volles Licht und nahe Null der Dunkelheit entsprechen. Dann wird die gesamte Schaltung auf ein kleines Stück Steckbrett gelötet, das in die seitlichen Bretter des Roboters passt.
Batterien: Die Batterien bestehen aus 4 Stapeln zwischen 1,2 und 1,5 V jeweils zwischen 4,8 und 6 V. Durch die Reihenschaltung von zwei Pfahlhaltern haben wir zwischen 9,6 und 12 V.
Wasserpumpe: Die Wasserpumpe hat einen Anschluss (Strombuchse) des gleichen Typs wie die Stromversorgung des Arduino. Der erste Schritt besteht darin, die Verbindung zu trennen und den Draht zu entblößen, um den Draht für Masse und den Draht für positive Spannung zu haben. Da wir die Pumpe steuern möchten, werden wir sie mit einem stromsteuerbaren Transistor in Reihe schalten, der als Schalter verwendet wird. Dann wird eine Diode parallel zur Pumpe geschaltet, um Rückströme zu verhindern. Der untere Schenkel des Transistors ist mit der gemeinsamen Masse von Arduino/Batterien verbunden, der mittlere mit einem digitalen Pin des Arduino mit einem 1kOhm-Widerstand in Reihe, um die Spannung des Arduino in Strom umzuwandeln und der obere Schenkel mit dem schwarzen Kabel von die Pumpe. Dann wird das rote Kabel der Pumpe mit der positiven Spannung der Batterien verbunden.
Motoren und Schirm: Der Schirm muss gelötet werden, er wird ungelötet geliefert. Sobald dies geschehen ist, wird es auf dem Arduino platziert, indem alle Header des Shields in die Pins des Arduino gesteckt werden. Das Schild wird mit den Batterien versorgt und dann wird das Arduino mit Strom versorgt, wenn ein Jumper eingeschaltet ist (orange Stifte in der Abbildung). Achten Sie darauf, den Jumper nicht zu setzen, wenn das Arduino mit einem anderen Mittel als dem Schild betrieben wird, da das Arduino dann das Schild mit Strom versorgen würde und die Verbindung verbrennen könnte.
Steckbrett: Alle Komponenten werden nun auf das Steckbrett gelötet. Der Boden eines Pfahlhalters, des Arduino, des Motorcontrollers und aller Sensoren wird auf einer Reihe gelötet (auf unseren Steckbrettreihen haben die Reihen das gleiche Potenzial). Dann wird das schwarze Kabel des zweiten Pfahlhalters in der gleichen Reihe wie das rote des ersten Pfahlhalters gelötet, dessen Masse bereits angelötet ist. Ein Kabel wird dann in der gleichen Reihe wie das rote Kabel des zweiten Pfahlhalters entsprechend den beiden in Reihe gelötet. Dieses Kabel wird mit einem Ende des Schalters verbunden und das andere Ende wird mit einem auf dem Steckbrett in einer freien Reihe gelöteten Draht verbunden. An diese Reihe wird das rote Kabel der Pumpe und die Stromversorgung des Motorcontrollers angelötet (der Schalter ist in der Abbildung nicht dargestellt). Dann werden die 5V des Arduino in einer anderen Reihe gelötet und die Versorgungsspannung jedes Sensors wird in derselben Reihe gelötet. Versuchen Sie, wenn möglich, einen Jumper auf das Steckbrett und einen Jumper auf das Bauteil zu löten, damit Sie sie leicht trennen können und die Montage der elektrischen Komponenten einfacher wird.
Schritt 5: PROGRAMMIERUNG
Programmablaufplan:
Das Programm ist mit dem Begriff der Zustandsvariablen recht einfach gehalten. Wie Sie im Flussdiagramm sehen können, führen diese Zustände auch zu einer Vorstellung von Priorität. Der Roboter überprüft die Bedingungen in dieser Reihenfolge:
1) Im Zustand 2: Hat die Pflanze mit der Funktion Feuchte_Niveau genügend Wasser? Wenn der vom Hygrometer gemessene Feuchtigkeitsgehalt unter 500 liegt, wird die Pumpe betrieben, bis der Feuchtigkeitsgehalt über 500 steigt. Wenn die Pflanze genug Wasser hat, geht der Roboter in den Zustand 3 über.
2) In Zustand 3: Finden Sie die Richtung mit dem meisten Licht. In diesem Zustand hat die Pflanze genug Wasser und muss der Richtung mit dem meisten Licht folgen, während sie Hindernissen ausweicht. Die Funktion light_direction gibt die Richtung der drei Lichtsensoren an, die das meiste Licht empfangen. Der Roboter steuert dann die Motoren, um dieser Richtung mit der Funktion follow_light zu folgen. Wenn die Lichtstärke über einem bestimmten Schwellenwert (genug_light) liegt, stoppt der Roboter, um dem Licht zu folgen, da er an dieser Position (stop_motors) genug hat. Um Hindernissen unter 15 cm beim Verfolgen des Lichts auszuweichen, wurde eine Funktion Hindernis implementiert, um die Richtung des Hindernisses umzukehren. Um Hindernisse richtig zu umgehen, wurde die Funktion Avoid_obstacle implementiert. Diese Funktion betreibt den Motor und weiß, wo sich das Hindernis befindet.
Schritt 6: MONTAGE
Die Montage dieses Roboters ist eigentlich ziemlich einfach. Die meisten Komponenten sind mit der Box verschraubt, damit sie ihren Platz behalten. Dann werden der Pfahlhalter, der Wasserbehälter und die Pumpe zerkratzt.
Schritt 7: EXPERIMENTE
Normalerweise läuft es beim Bauen eines Roboters nicht rund. Viele Tests mit folgenden Änderungen sind erforderlich, um das perfekte Ergebnis zu erhalten. Hier ist ein Exponat des Prozesses des Pflanzenroboters!
Der erste Schritt bestand darin, den Roboter mit Motoren, Arduino, Motorcontroller und Lichtsensoren mit einem Prototyping-Steckbrett zu montieren. Der Roboter fährt einfach in die Richtung, in der er das meiste Licht gemessen hat. Es wurde eine Schwelle festgelegt, um den Roboter zu stoppen, wenn er genug Licht hat. Als der Roboter auf dem Boden rutschte, fügten wir Schleifpapier auf die Räder, um einen Reifen zu simulieren.
Dann wurden die scharfen Sensoren der Struktur hinzugefügt, um zu versuchen, Hindernissen auszuweichen. Anfänglich wurden zwei Sensoren auf der Vorderseite platziert, aber ein dritter wurde in der Mitte hinzugefügt, da die scharfen Sensoren einen sehr begrenzten Erfassungswinkel haben. Schließlich haben wir zwei Sensoren an den Enden des Roboters, die links oder rechts Hindernisse erkennen, und einen in der Mitte, um zu erkennen, ob sich ein Hindernis vor Ihnen befindet. Die Hindernisse werden erkannt, wenn die Spannung an der Spitze einen bestimmten Wert überschreitet, der einem Abstand von 15 cm zum Roboter entspricht. Wenn sich das Hindernis auf einer Seite befindet, weicht der Roboter aus und wenn sich ein Hindernis in der Mitte befindet, stoppt der Roboter. Bitte beachten Sie, dass Hindernisse unterhalb der scharfen Kanten nicht erkennbar sind, sodass Hindernisse eine bestimmte Höhe haben müssen, um umfahren zu werden.
Danach wurden die Pumpe und das Hygrometer getestet. Die Pumpe fördert solange Wasser, wie die Spannung des Hygrometers unter einem bestimmten Wert liegt, der einem trockenen Topf entspricht. Dieser Wert wurde gemessen und experimentell durch Prüfung mit trockenen und feuchten Topfpflanzen bestimmt.
Schließlich wurde alles gemeinsam getestet. Die Pflanze prüft zuerst, ob sie genügend Wasser hat und beginnt dann, dem Licht zu folgen, während sie Hindernissen ausweicht.
Schritt 8: LETZTER TEST
Hier sind Videos, wie der Roboter endlich funktioniert. Hoffe es gefällt euch!
Schritt 9: WAS HABEN WIR BEI DIESEM PROJEKT GELERNT?
Obwohl das Feedback zu diesem Projekt insgesamt großartig ist, weil wir viel gelernt haben, waren wir beim Bau aufgrund der Fristen ziemlich gestresst.
Aufgetretene Probleme
In unserem Fall hatten wir während des Prozesses mehrere Probleme. Einige davon waren einfach zu lösen, zum Beispiel als sich die Lieferung der Komponenten verzögerte, suchten wir einfach nach Geschäften in der Stadt, wo wir sie kaufen konnten. Andere erfordern etwas mehr Nachdenken.
Leider wurde nicht jedes Problem gelöst. Unsere erste Idee war es, die Eigenschaften von Haustieren und Pflanzen zu kombinieren und das Beste aus jedem herauszuholen. Für die Pflanzen, die wir tun könnten, können wir mit diesem Roboter eine Pflanze haben, die unsere Häuser schmückt und wir müssen uns nicht darum kümmern. Aber für die Haustiere haben wir keine Möglichkeit gefunden, das Unternehmen zu simulieren, das sie machen. Wir haben uns verschiedene Möglichkeiten überlegt, wie wir es Leuten folgen lassen können, und wir haben mit der Implementierung begonnen, aber uns fehlte die Zeit, um es fertig zu stellen.
Weitere Verbesserungen
Obwohl wir gerne alles bekommen hätten, was wir wollten, war das Lernen mit diesem Projekt erstaunlich. Vielleicht könnten wir mit mehr Zeit einen noch besseren Roboter bekommen. Hier schlagen wir einige Ideen vor, um unseren Roboter zu verbessern, die vielleicht einige von Ihnen ausprobieren möchten:
- Hinzufügen von LEDs in verschiedenen Farben (rot, grün, …), die dem Benutzer mitteilen, wann der Roboter aufgeladen werden sollte. Die Messung des Akkus kann mit einem Spannungsteiler mit einer maximalen Spannung von 5V bei vollständig geladenem Akku erfolgen, um diese Spannung mit einem Arduino zu messen. Dann wird die entsprechende LED eingeschaltet.
- Hinzufügen eines Wassersensors, der dem Benutzer mitteilt, wann der Wasserbehälter nachgefüllt werden sollte (Wasserhöhensensor).
- Erstellen einer Schnittstelle, damit der Roboter Nachrichten an den Benutzer senden kann.
Und natürlich dürfen wir das Ziel nicht vergessen, es dazu zu bringen, den Leuten zu folgen. Haustiere sind eines der Dinge, die die Menschen am meisten lieben, und es wäre schön, wenn jemand erreichen könnte, dass der Roboter dieses Verhalten simuliert. Um es zu erleichtern, werden wir hier alles zur Verfügung stellen, was wir haben.
Schritt 10: Wie bringt man den Roboter dazu, Menschen zu folgen?
Wir haben herausgefunden, dass dies der beste Weg wäre, drei Ultraschallsensoren, einen Sender und zwei Empfänger, zu verwenden.
Sender
Für den Sender möchten wir ein Tastverhältnis von 50% haben. Um dies zu tun, müssen Sie einen 555-Timer verwenden, wir hatten den NE555N verwendet. Auf dem Bild sehen Sie, wie die Schaltung aufgebaut sein sollte. Sie müssen jedoch am Ausgang 3 einen zusätzlichen Kondensator hinzufügen, zum Beispiel 1µF. Die Widerstände und Kondensatoren werden mit folgenden Formeln berechnet: (Bilder 1 & 2)
Da ein Tastverhältnis von 50 % wünschenswert ist, sind t1 und t2 gleich. Bei einem 40-kHz-Sender sind t1 und t2 also gleich 1,25*10-5 s. Wenn Sie C1 = C2 = 1 nF nehmen, können R1 und R2 berechnet werden. Wir nehmen R1= 15 kΩ und R2= 6.8 kΩ, stellen Sie sicher, dass R1>2R2!
Als wir dies in der Schaltung auf dem Oszilloskop getestet haben, haben wir folgendes Signal erhalten. Die Skala beträgt 5 µs/div, so dass die Frequenz in der Realität etwa 43 kHz beträgt. (Bild 3)
Empfänger
Das Eingangssignal des Empfängers ist zu niedrig, damit das Arduino genau verarbeiten kann, daher muss das Eingangssignal verstärkt werden. Dies geschieht durch die Herstellung eines invertierenden Verstärkers.
Für den Operationsverstärker haben wir einen LM318N verwendet, den wir mit 0 V und 5 V vom Arduino versorgt haben. Dazu mussten wir die Spannung um das schwingende Signal erhöhen. In diesem Fall ist es logisch, sie auf 2,5 V zu erhöhen. Da die Versorgungsspannung nicht symmetrisch ist, müssen wir auch einen Kondensator vor dem Widerstand platzieren. Auf diese Weise haben wir auch einen Hochpassfilter hergestellt. Bei den von uns verwendeten Werten musste die Frequenz höher als 23 kHz sein. Bei einer Verstärkung von A=56 würde das Signal in die Sättigung gehen, was nicht gut ist, also haben wir stattdessen A=18 verwendet. Dies wird noch ausreichen. (Bild 4)
Da wir nun eine verstärkte Sinuswelle haben, benötigen wir einen konstanten Wert, damit der Arduino ihn messen kann. Eine Möglichkeit, dies zu tun, besteht darin, eine Spitzenwertdetektorschaltung herzustellen. Auf diese Weise können wir anhand eines konstanten Signals, das proportional zur Intensität des empfangenen Signals ist, erkennen, ob der Sender weiter vom Empfänger entfernt ist oder sich in einem anderen Winkel befindet als zuvor. Da wir einen Präzisionsspitzendetektor benötigen, haben wir die Diode 1N4148 in den Spannungsfolger gesteckt. Dadurch haben wir keinen Diodenverlust und haben eine ideale Diode geschaffen. Für den Operationsverstärker haben wir den gleichen wie im ersten Teil der Schaltung und mit der gleichen Stromversorgung 0 V und 5 V verwendet.
Der Parallelkondensator muss einen hohen Wert haben, damit er sich sehr langsam entlädt und wir immer noch den gleichen Spitzenwert wie den tatsächlichen Wert sehen. Der Widerstand wird auch parallel geschaltet und nicht zu niedrig gewählt, da sonst die Entladung größer wird. In diesem Fall reichen 1,5µF und 56 kΩ. (Bild 5)
Auf dem Bild ist die Gesamtschaltung zu sehen. Wo ist die Ausgabe, die in den Arduino gehen wird. Und das 40-kHz-Wechselstromsignal wird der Empfänger sein, wo das andere Ende mit Masse verbunden wird. (Bild 6)
Wie bereits erwähnt, konnten wir die Sensoren nicht in den Roboter integrieren. Aber wir stellen die Videos der Tests zur Verfügung, um zu zeigen, dass die Schaltung funktioniert. Im ersten Video ist die Verstärkung (nach dem ersten OpAmp) zu sehen. Auf dem Oszilloskop ist bereits ein Offset von 2,5 V vorhanden, das Signal liegt also in der Mitte, die Amplitude variiert, wenn die Sensoren die Richtung ändern. Wenn die beiden Sensoren einander zugewandt sind, ist die Amplitude des Sinus höher, als wenn die Sensoren einen größeren Winkel oder Abstand zwischen beiden haben. Auf dem zweiten Video (dem Ausgang der Schaltung) ist das gleichgerichtete Signal zu sehen. Auch hier ist die Gesamtspannung höher, wenn sich die Sensoren gegenüberstehen, als wenn sie es nicht sind. Das Signal ist wegen der Entladung des Kondensators und wegen der Volt/Div nicht ganz gerade. Wir konnten ein konstant abnehmendes Signal messen, wenn der Winkel oder der Abstand zwischen den Sensoren nicht mehr optimal war.
Die Idee war dann, dass der Roboter den Empfänger und der Benutzer den Sender hat. Der Roboter konnte sich selbst drehen, um zu erkennen, in welcher Richtung die Intensität am höchsten war, und konnte in diese Richtung gehen. Ein besserer Weg könnte sein, zwei Empfänger zu haben und dem Empfänger zu folgen, der die höchste Spannung erkennt. links oder rechts).