Inhaltsverzeichnis:

Einen dummen Rasenmäher-Roboter intelligenter machen - Gunook
Einen dummen Rasenmäher-Roboter intelligenter machen - Gunook

Video: Einen dummen Rasenmäher-Roboter intelligenter machen - Gunook

Video: Einen dummen Rasenmäher-Roboter intelligenter machen - Gunook
Video: Mähroboter – Review und Test der fleißigen Rasenmäher | Die Ratgeber 2024, Juli
Anonim
Einen dummen Rasenmäher-Roboter intelligenter machen
Einen dummen Rasenmäher-Roboter intelligenter machen

Also ich habe einen schönen, aber dummen Rasenmäherroboter (Das Bild ist von www.harald-nyborg.dk).

Dieser Roboter soll meinen Rasen schneiden, aber mein Rasen ist zu groß und zu komplex, um wirklich in die Ecken zu kommen.

Auf meinen Zeichnungen nicht abgebildet sind eine Vielzahl von Bäumen und eine Schaukel und so weiter und so weiter. Das Ergebnis ist, dass der Roboter viel zu viel Zeit damit verbringt, bereits gemähte offene Abschnitte zu überfahren, und zu wenig Zeit mit dem Mähen der harten Teile.

Also beschloss ich, etwas externe Intelligenz hinzuzufügen.

23-04-2020 EDIT: Der Sensor hat nicht ganz funktioniert, also habe ich ein paar Dinge geändert

Lieferungen

2 Außen-2-Wege-Schalter

ODER

1 alter USB-Router

1 USB-Relaiskarte

1 Digipark

1 USB-Hub

1 wasserdichte Elektronikbox

23-04-2020 BEARBEITEN:

OR1 alter USB-Router

1 USB-Relaiskarte

1 usb2serial Tll-Dinghy

1 USB-Hub

1 wasserdichte Elektronikbox

1 Dfrobot URM 37 v3.2 Ultraschallsensor (Sie könnten wahrscheinlich jeden Sensor verwenden =)

kmod-usb-seriell-cp210x

Schritt 1: Schritt 1: Manuelles Mehrbereichsschneiden

Schritt 1: Manuelles Mehrbereichsschneiden
Schritt 1: Manuelles Mehrbereichsschneiden
Schritt 1: Manuelles Mehrbereichsschneiden
Schritt 1: Manuelles Mehrbereichsschneiden

Das Bild zeigt, wie ich von einem Schneidebereich zu 2 Bereichen ging.

Mein Roboter startet jeden 2. Tag automatisch, also solange ich daran gedacht habe, ihn von einem Bereich zum anderen zu wechseln, hat dies gut funktioniert.

Ich habe 2 manuelle Schalter verwendet, wie Sie sie in einem Flur oder Treppenhaus verwenden würden.

Das hat funktioniert, außer dass die von mir verwendeten von zu schlechter Qualität waren, und deshalb krochen Fehler in sie hinein, die sie durcheinander brachten

Schritt 2: Schritt 2: die automatische Lösung

Schritt 2: die automatische Lösung
Schritt 2: die automatische Lösung
Schritt 2: die automatische Lösung
Schritt 2: die automatische Lösung
Schritt 2: die automatische Lösung
Schritt 2: die automatische Lösung
Schritt 2: die automatische Lösung
Schritt 2: die automatische Lösung

Also beschloss ich, etwas Automatisches zu tun.

Ich habe einen gebrauchten Netgear R6100-Router, ich habe diesen, weil er WLAN, USB und genügend Speicher hat, um Experimente über das Experimentieren zu machen, anstatt OpenWrt und Freunde darauf zu stopfen.

Ich habe einen ebays besten USB 2.0-Hub und eine 12-V-Relaiskarte.

Dann hatte ich einen Digispark aus einem früheren Projekt. 23-04-2020 EDIT: stattdessen ein usb2seriel-Ding verwendet

Ich habe die Relais anstelle der Schalter verkabelt. Ich habe Relais 3 und 4 verwendet

Dann habe ich OpenWrt installiert und Crelay, Picocom und coreutils-stty hinzugefügt.

23-04-2020 EDIT: xxk, kmod-usb-serial-cp210x auch hinzugefügt

12V an den Router und die Relaisplatine angeschlossen.

23-04-2020 EDIT: Verwendet einen Urm 37 v3.2 anstelle des Rests dieser Seite

Dann habe ich etwas "Spaßiges" gelernt. Das Relais-Board versucht, den USB-Hub einzuschalten, wodurch der Digispark daran gehindert wird, korrekt neu zu starten. Also schneide ich das Stromkabel im USB-Kabel von der Relaiskarte und dem USB-Hub ab.

Dann steckte ich den Digispark und die USB-Relaiskarte in den USB 2.0-Hub und den Hub in den Router.

Um fair zu sein, habe ich den Digispark programmiert, bevor ich ihn zum Router hinzugefügt habe

Im Digispark habe ich einen Button hinzugefügt, den ich zwischen P1 und Gnd verkabelt habe.

Dieser Knopf wurde platziert, damit der Roboter ihn aktiviert, sobald er in seiner Garage aufgeladen ist.

Ich musste der Aktivierung eine Feder hinzufügen, um einen guten festen Eingriff zu erzielen.

Schritt 3: Schritt 3: Software

Die Datei enthält ein Arduino-Ide-Programm für den Digispark.

Es wird in root/LawnSelector platziert.

Diese Datei benötigt ein paar Digispark-Bibliotheken, wie digiCDC und die Digispark-Boards, die der Arduino-Ide hinzugefügt wurden.

Dann gibt es die /root/GrassCtr/*-Dateien.

Dies sind die Dateien, die tatsächlich die Arbeit erledigen.

Kreds1 ändert die Relais zu area1

Kreds2 ändert die Relais zu area2

KredsStatus fragt das USB-Relais, welcher Bereich aktiv ist

23-04-2020 BEARBEITEN: Verwenden Sie UltraSoundSeriel anstelle von Digispark.

ReadDigiSpark, liest die Nachrichten jeden Dienstag.. Warte. Liest den Eingangszustand des Digisparks

GrassCtl denkt mit.

Hier ist, was es tut.

Wenn der Roboter länger als 10 Stunden IN ist, entscheidet er, dass der Roboter für die Nacht da ist, und dies aktiviert ein Flipflop, das ihn jedes zweite Mal in jedem Bereich starten lässt. Der Grund dafür ist, dass mein Roboter mit dem Schneiden der gesamten Kante beginnt und auf diese Weise jeden zweiten Tag die Kanten schneidet.

Sobald der Roboter mäht, zeigt der Sensor an, dass der Roboter draußen ist.

Jedes Mal, wenn der Roboter zum Aufladen des Akkus zurückkehrt (definiert als länger als 20 Minuten im Einsatz), wird der Bereich in den anderen Bereich geändert.

bitte beachten Sie. Die Software ist ein schreckliches Durcheinander, aber es funktioniert, also weiter und aufwärts

Schritt 4: Schritt 4: Aktivierung der Software

Um die Software auszuführen, müssen wir etwas tun.

Ich habe es zu einem cronJob hinzugefügt

*/5 * * * * /root/GrassStrg/GrassStrg

zur Datei

/etc/crontabs/root

Dann, um Cronjobs zu aktivieren, habe ich es getan

/etc/init.d/cron aktivieren

Soweit ich das beurteilen kann, wechselt der Roboter jetzt zwischen Mähbereich 1 oder 2 und wechselt jedes Mal, was gemäht wurde, wenn er die Batterien auflädt.

Und ja, jetzt bekommt es alles

Empfohlen: