Inhaltsverzeichnis:
- Schritt 1: Erwerben Sie die erforderlichen Teile und Materialien
- Schritt 2: Konfigurieren der Kamera und des Geiger-Müller-Zählers
- Schritt 3: Verbinden Sie sich mit Ihrem Roomba und erstellen Sie den Lichtsensorcode
- Schritt 4: Bumper-Code erstellen
- Schritt 5: Erstellen Sie Code zum Lesen des Zählerbildschirms, interpretieren Sie ihn und ziehen Sie sich von der Quelle zurück
- Schritt 6: Erstellen Sie einen Cliff-Sensor-Code
- Schritt 7: Fazit
Video: Der RADbot: 7 Schritte
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:19
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
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
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
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
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
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
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
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:
Verwenden der Brustverlängerung von Hope, um unvollständige Tempelverordnungen in Ihrem Stammbaum bei der Familiensuche zu finden - Gunook
Verwenden der Brusterweiterung von Hope, um unvollständige Tempelverordnungsarbeit in Ihrem Stammbaum bei der Familiensuche zu finden: Der Zweck dieser Anleitung besteht darin, zu zeigen, wie Sie Ihren Stammbaum in der Familiensuche nach Vorfahren mit unvollständiger Tempelverordnungsarbeit mit der Brusterweiterung der Hoffnung durchsuchen können. Die Verwendung von Hopes Truhe kann Ihre Suche nach inkomp
Schrittmotor mit D-Flip-Flops und 555-Timer; der erste Teil der Schaltung der 555 Timer - Gunook
Schrittmotor mit D-Flip-Flops und 555-Timer; der erste Teil der Schaltung der 555-Timer: Der Schrittmotor ist ein Gleichstrommotor, der sich in diskreten Schritten bewegt. Er wird oft in Druckern und sogar in der Robotik verwendet. Ich werde diese Schaltung in Schritten erklären. Der erste Teil der Schaltung ist ein 555 Timer. Es ist das erste Bild (siehe oben) mit einem 555-Chip w
Erste Schritte mit der Heimautomatisierung: Home Assistant installieren: 3 Schritte
Erste Schritte mit der Hausautomation: Home Assistant installieren: Wir starten jetzt die Hausautomationsserie, in der wir ein Smart Home erstellen, das es uns ermöglicht, Dinge wie Licht, Lautsprecher, Sensoren usw. über einen zentralen Hub zusammen mit einem Sprachassistent. In diesem Beitrag erfahren Sie, wie Sie in
Sputnik 1 alias der erste Satellit, der 1957 von der Sowjetunion in den Orbit gebracht wurde - Gunook
Sputnik 1 alias der 1. Satellit, der 1957 von der Sowjetunion in den Orbit gebracht wurde: Die Geschichte des Sputnik 1 hat mich schon immer fasziniert, weil er das Weltraumrennen ausgelöst hat. Am 4. Oktober 2017 haben wir das 60-jährige Jubiläum gefeiert des Starts dieses russischen Satelliten, der Geschichte schrieb, denn es waren die ersten
DER EINFACHSTE WEG, EIN KOMPAKTES LICHT ZU MACHEN!! 3 EINFACHE SCHRITTE !!: 3 Schritte
DER EINFACHSTE WEG, EIN KOMPAKTES LICHT ZU MACHEN!! 3 EINFACHE SCHRITTE !!: Was Sie brauchen - Zinnfolie 1 AA-Batterie (einige AAA-Batterien funktionieren) 1 Mini-Glühbirne (Glühbirnen werden für die meisten Taschenlampen verwendet; siehe Bild) Lineal (falls erforderlich)