Inhaltsverzeichnis:

Der RADbot: 7 Schritte
Der RADbot: 7 Schritte

Video: Der RADbot: 7 Schritte

Video: Der RADbot: 7 Schritte
Video: Zeche Radbod 1994-1995 2024, November
Anonim
Der RADbot
Der RADbot

Ein Projekt von Jackson Breakell, Tyler McCubbins und Jakob Thaler für EF 230

Auf dem Mars sind Astronauten einer Vielzahl von Gefahren ausgesetzt, die von extremen Temperaturen bis hin zu Staubstürmen reichen. Ein Faktor, der jedoch oft übersehen wird, ist die Gefahr, die von starken Radioisotopen ausgeht, die sich auf der Oberfläche des Planeten befinden. Der RADbot bietet Unterstützung bei der Erforschung von Astronauten auf der Marsoberfläche, indem er Gesteinsproben mit hoher Aktivität während seiner Reise identifiziert auf dem gnadenlosen Mars-Gelände. Neben der Warnung von Astronauten vor möglichen radioaktiven Gefahren an der Oberfläche könnte die Funktion zur Lokalisierung radioaktiver Proben des Roboters als Werkzeug zur Identifizierung von Bereichen eingesetzt werden, die große Vorkommen von Uran und anderen Aktiniden enthalten könnten. Astronauten könnten diese Elemente abbauen, ausreichend anreichern und in Kernreaktoren und thermoelektrischen Generatoren verwenden, die dazu beitragen könnten, eine dauerhafte, sich selbst erhaltende Kolonie auf dem Planeten mit Energie zu versorgen.

Im Gegensatz zum typischen Mars-Rover bietet unser Design serienmäßige Komponenten und einen angemessenen Preis. Vorausgesetzt, Sie haben das Geld und die Lust, können Sie sogar selbst eine bauen, indem Sie dieser Anleitung folgen. Bitte lesen Sie weiter, um zu erfahren, wie Sie Ihren eigenen RADbot erstellen.

Schritt 1: Erwerben Sie die erforderlichen Teile und Materialien

Erwerben Sie die erforderlichen Teile und Materialien
Erwerben Sie die erforderlichen Teile und Materialien
Erwerben Sie die erforderlichen Teile und Materialien
Erwerben Sie die erforderlichen Teile und Materialien
Erwerben Sie die erforderlichen Teile und Materialien
Erwerben Sie die erforderlichen Teile und Materialien

Was Sie für den Anfang benötigen (Bilder in der Reihenfolge ihrer Auflistung)

1. Ein Roomba (jedes neuere Modell)

2. Ein Geiger-Müller-Zähler

3. Ein Himbeer-Pi

4. Eine Board-Kamera mit USB-Anschluss

5. Ein Micro-USB-zu-USB-Kabel

6. Ein USB-zu-USB-Kabel

7. Eine radioaktive Probe ausreichender Aktivität (~5μSv oder höher)

8. Ein Computer mit installiertem Matlab

9. Kleber (vorzugsweise Klebeband für einfache Entfernbarkeit)

Schritt 2: Konfigurieren der Kamera und des Geiger-Müller-Zählers

Kamera und Geiger-Müller-Zähler konfigurieren
Kamera und Geiger-Müller-Zähler konfigurieren

Nachdem Sie nun über alle erforderlichen Materialien zum Erstellen des RADbots verfügen, platzieren wir zunächst einfach die Kamera, damit sie die Aktivität auf dem Zähler lesen kann. Platzieren Sie den Geiger-Müller-Zähler so nah wie möglich am Ende des Roomba und stellen Sie sicher, dass sein Sensor nicht blockiert ist. Befestigen Sie die Theke fest mit dem von Ihnen gewählten Kleber und fahren Sie mit der Montage der Kamera nach vorne fort. Platzieren Sie die Kamera so nah wie möglich am Display des Zählers, um zu verhindern, dass externe Eingaben das Programm beeinträchtigen, und befestigen Sie sie, sobald Sie sich wohl fühlen. Wir empfehlen Ihnen jedoch, die Sicherung der Kamera als letztes aufzuheben, denn wenn Ihr Code fertig ist, können Sie ein Bild von der Kamera auf Ihrem Computer anzeigen und die Kamera basierend auf ihrem Sichtfeld positionieren. Sobald sowohl die Kamera als auch der Zähler fest angebracht sind, stecken Sie die Kamera mit dem USB-zu-USB-Kabel in einen der USB-Eingänge des Raspberry Pi und stecken Sie den Raspberry Pi mit dem Micro-USB-zu-USB-Kabel in den Roomba.

Schritt 3: Verbinden Sie sich mit Ihrem Roomba und erstellen Sie den Lichtsensorcode

Verbinden Sie sich mit Ihrem Roomba und erstellen Sie einen Lichtsensorcode
Verbinden Sie sich mit Ihrem Roomba und erstellen Sie einen Lichtsensorcode

Laden Sie zuerst die Roomba-Toolbox von der EF 230-Website herunter und stellen Sie sicher, dass Sie sie in den angegebenen Ordnern ablegen. Um eine Verbindung zu Ihrem Roomba herzustellen, verweisen Sie einfach auf den am Raspberry Pi angebrachten Aufkleber und geben Sie "r=roomba(x)" in das Befehlsfenster ein, ohne die Anführungszeichen, wobei x für die Nummer des Roomba steht. Der Roomba sollte eine Melodie spielen und der Clean-Button sollte einen grünen Ring um ihn herum anzeigen. Beginnen Sie Ihren Code mit einer "while"-Anweisung und beziehen Sie sich auf die Lichtsensoren, wie sie in der Sensorliste erscheinen. Öffnen Sie die Sensorliste, indem Sie im Befehlsfenster "r.testSensors" eingeben.

Basierend auf der Farbe unseres Objekts, die bestimmt, wie viel Licht reflektiert wird, legen Sie die Anforderungen für die Ausführung der while-Anweisung als > Funktion fest. In unserem Fall haben wir den vorderen Lichtsensor so eingestellt, dass er den Code in der while-Anweisung ausführt, wenn der Messwert auf dem linken oder rechten mittleren Lichtsensor > 25 war. Stellen Sie für die ausführbare Anweisung die Geschwindigkeit des Roomba so ein, dass er langsamer wird, indem Sie "r.setDriveVelocity(x, y)" eingeben, wobei x und y die Geschwindigkeiten des linken bzw. rechten Rads sind. Fügen Sie eine "else"-Anweisung ein, damit der Roomba bei unspezifizierten Werten nicht langsamer wird, und geben Sie den Befehl zur Einstellung der Fahrgeschwindigkeit erneut ein, außer mit einer anderen Geschwindigkeit. Beenden Sie die while-Anweisung mit einem "end". Dieses Codesegment lässt den Roomba sich dem Objekt nähern und verlangsamen, sobald er eine bestimmte Reichweite erreicht, um die Auswirkungen zu minimieren.

Im Anhang ist ein Screenshot unseres Codes, aber Sie können ihn gerne bearbeiten, damit er Ihren Missionsparametern am besten entspricht.

Schritt 4: Bumper-Code erstellen

Bumper-Code erstellen
Bumper-Code erstellen

Wenn der Roomba langsamer wird, minimiert er die Auswirkungen auf das Objekt, jedoch nicht so sehr, dass der physische Stoßfänger nicht ausgelöst wird. Beginnen Sie für dieses Codesegment erneut mit einer "while"-Schleife und setzen Sie den Ausdruck auf true. Setzen Sie für die Anweisung die Variable T gleich der Ausgabe des Stoßfängers, entweder 0 oder 1, für falsch und wahr. Sie können dafür die "T=r.getBumpers" verwenden. T wird als Struktur ausgegeben. Geben Sie eine "if"-Anweisung ein und setzen Sie ihren Ausdruck für die Unterstruktur T.front gleich 1 und setzen Sie die Anweisung so, dass entweder die Antriebsgeschwindigkeit mit "r.setDriveVelocity(x, y)" oder "r.stop. auf 0 gesetzt wird ". Geben Sie eine "Pause" ein, damit sich der Roomba bewegen kann, nachdem die Bedingung im nächsten Code erfüllt ist. Fügen Sie ein "else" hinzu und setzen Sie seine Anweisung, um die Fahrgeschwindigkeit auf die normale Reisegeschwindigkeit des Roomba einzustellen.

Im Anhang ist ein Screenshot unseres Codes, aber Sie können ihn gerne bearbeiten, damit er Ihren Missionsparametern am besten entspricht.

Schritt 5: Erstellen Sie Code zum Lesen des Zählerbildschirms, interpretieren Sie ihn und ziehen Sie sich von der Quelle zurück

Erstellen Sie Code zum Lesen des Zählerbildschirms, interpretieren Sie ihn und ziehen Sie sich von der Quelle zurück
Erstellen Sie Code zum Lesen des Zählerbildschirms, interpretieren Sie ihn und ziehen Sie sich von der Quelle zurück

Herzstück unseres Projekts ist der Geiger-Müller-Zähler und anhand des folgenden Codesegments wird mit der Kamera ermittelt, was die Daten auf dem Bildschirm bedeuten. Da der Bildschirm unseres Zählers die Farbe basierend auf der Aktivität der Quelle ändert, werden wir die Kamera so einstellen, dass sie die Farbe des Bildschirms interpretiert. Starten Sie Ihren Code, indem Sie eine Variable gleich dem Befehl "r.getImage" setzen. Die Variable enthält ein 3D-Array von Farbwerten des aufgenommenen Bildes in Rot, Grün und Blau. Setzen Sie Variablen gleich den Durchschnittswerten dieser jeweiligen Farbmatrizen, indem Sie den Befehl "mean(mean(img1(:,:, x)))" verwenden, wobei x eine ganze Zahl von 1 bis 3 ist. 1, 2 und 3 repräsentieren Rot, Grün und blau bzw. Verwenden Sie wie bei allen referenzierten Befehlen keine Anführungszeichen.

Lassen Sie das Programm mit "pause(20)" für 20 Sekunden pausieren, damit der Zähler einen genauen Messwert der Probe erhält, und beginnen Sie dann mit einer "if"-Anweisung. Wir ließen unseren Roomba mehrmals piepen, indem wir "r.beep" benutzten, bevor er ein Menü mit dem Text "Radioisotope found! Achtung!" Dies kann mit dem Befehl "waitfor(helpdlg({'texthere'})" erfolgen. Nachdem Sie auf ok geklickt haben, folgt Roomba dem Rest des Codes in der "if"-Anweisung. Lassen Sie den Roomba das Beispiel mit herumfahren eine Kombination der Befehle "r.moveDistance" und "r.turnAngle". Achten Sie darauf, Ihre if-Anweisung mit einem "end" zu beenden.

Im Anhang ist ein Screenshot unseres Codes, aber Sie können ihn gerne bearbeiten, damit er Ihren Missionsparametern am besten entspricht.

Schritt 6: Erstellen Sie einen Cliff-Sensor-Code

Erstellen Sie einen Cliff-Sensor-Code
Erstellen Sie einen Cliff-Sensor-Code

Um einen Code zu erstellen, der die eingebauten Klippensensoren des Roomba nutzt, beginnen Sie mit einer "While"-Schleife und setzen Sie den Ausdruck auf "true". Setzen Sie eine Variable auf "r.getCliffSensors", und dies führt zu einer Struktur. Starten Sie eine "if"-Anweisung und setzen Sie die Variablen "X.leftFront" und "X.rightFront" aus der Struktur so, dass sie größer als ein vorbestimmter Wert sind, wobei "X" die Variable ist, auf die Sie den Befehl "r.getCliffSensors" gewählt haben gleich sein. In unserem Fall haben wir 1000 verwendet, da ein Stück weißes Papier verwendet wurde, um eine Klippe darzustellen, und als sich die Sensoren dem Papier näherten, stiegen die Werte auf weit über 1000 an, um sicherzustellen, dass der Code nur ausgeführt wird, wenn eine Klippe erkannt wird. Fügen Sie danach den Befehl "break" hinzu und fügen Sie dann eine "else"-Anweisung ein. Für die "else"-Anweisung, die ausgeführt wird, wenn keine Klippe erkannt wird, setzen Sie die Fahrgeschwindigkeit für jedes Rad auf die normale Reisegeschwindigkeit. Wenn Roomba eine Klippe erkennt, wird der "Break" ausgeführt und dann der Code außerhalb der while-Schleife ausgeführt. Nachdem Sie das "Ende" für die "if"- und "while"-Schleife platziert haben, stellen Sie den Roomba mit dem Befehl Abstand bewegen so ein, dass er sich rückwärts bewegt. Um Astronauten vor einer nahen Klippe zu warnen, stellen Sie die Antriebsgeschwindigkeiten jedes Rades x und y im Antriebsgeschwindigkeitsbefehl auf a und -a ein, wobei a eine reelle Zahl ist. Dadurch dreht sich der Roomba und macht den Astronauten auf die Klippe aufmerksam.

Im Anhang ist ein Screenshot unseres Codes, aber Sie können ihn gerne bearbeiten, damit er Ihren Missionsparametern am besten entspricht.

Schritt 7: Fazit

Abschluss
Abschluss

Das ultimative Ziel des RADbot auf dem Mars ist es, Astronauten bei ihrer Erforschung und Kolonisierung des roten Planeten zu unterstützen. Durch die Identifizierung radioaktiver Proben auf der Oberfläche hoffen wir, dass der Roboter oder in diesem Fall der Rover die Astronauten wirklich schützen und dabei helfen kann, Energiequellen für ihre Basis(n) zu identifizieren. Nachdem Sie alle diese Schritte befolgt haben und vielleicht mit etwas Versuch und Irrtum, sollte Ihr RADbot betriebsbereit sein. Platzieren Sie die radioaktive Probe irgendwo in Ihrem Testbereich, führen Sie Ihren Code aus und beobachten Sie, wie der Rover tut, wofür er entwickelt wurde. Viel Spaß mit Ihrem RADbot!

-Das EF230 RADbot-Team

Empfohlen: