Inhaltsverzeichnis:
Video: Roomba mit MATLAB - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
Dieses Projekt verwendet MATLAB und einen programmierbaren Roboter iRobot Create2. Indem wir unser MATLAB-Wissen auf die Probe stellen, sind wir in der Lage, den Create2 so zu programmieren, dass er Bilder interpretiert und Signale erkennt. Die Funktionalität des Roboters hängt hauptsächlich von der MATLAB Mobile App und einem Raspberry Pi Kameramodul ab.
Schritt 1: Teile und Materialien
1. iRobot Create, Version 2
- Dies ist ein programmierbarer Roboter, der wie ein Roomba aussieht. Beachten Sie, dass dieses Produkt von iRobot kein Vakuum ist. Es ist für die benutzerdefinierte Programmierung durch den Benutzer vorgesehen.
2. MATLAB 2017a
- Die meisten älteren Versionen sind mit dem unten verwendeten Code kompatibel. MATLAB erkennt einen Befehl, der nicht mit Ihrer Version kompatibel ist, und schlägt einen am besten geeigneten Befehl vor.
3. Raspberry Pi 3 Modell B, Version 1.2
- Prüfen Sie, welcher Raspberry Pi mit Ihrem iRobot kompatibel ist. Weitere Unterstützung finden Sie unter diesem Link: https://www.irobotweb.com/~/media/MainSite/PDFs/A… Diese Anleitung geht davon aus, dass Sie mit einem vorprogrammierten Raspberry Pi arbeiten. Bitte beachten Sie, dass Sie mit einem vorprogrammierten Pi arbeiten müssen, damit die folgenden Schritte funktionieren. Die Verwendung eines vorprogrammierten Pi ermöglicht es Ihnen, Ihre gesamte Codierung in MATLAB allein durchzuführen.
4. Kameramodul V2 (für Raspberry Pi)
- Sie könnten überrascht sein; Trotz seiner Größe ist das Raspberry Pi Kameramodul von sehr guter Qualität. Es ist die billigste und kompatibelste Option für dieses Projekt.
Optional: 3D-gedruckter Ständer. Dies dient zur Stabilisierung der Kamera. Es hat keinen Einfluss auf die Funktionalität des Roboters, aber es hilft Ihnen bei der Codierung, wenn Sie Bilddaten für die Farb- und/oder Objekterkennung verwenden möchten.
Schritt 2: Konfiguration
1. Raspberry Pi und Kameramodul verbinden (Hardware)
- Um den Raspberry Pi mit Strom zu versorgen, müssen Sie einen Micro-USB-Stecker mit dem weiblichen Stromanschluss des Mikrocontrollers verbinden. Optional: Ein Spannungsregler kann verwendet werden, um sicherzustellen, dass die Spannung 5 V nicht überschreitet. Nachdem Sie den Raspberry Pi mit Strom versorgt haben, können Sie ihn an Ihren Roboter anschließen, indem Sie das männliche Ende USB a vom Motherboard zum USB-Port A des Mikrocontrollers führen.
- Nach dem Anschließen des Pi an den Roomba kann die Kamera installiert werden. Das Kameramodul wird viel kleiner sein, als Sie erwarten. Beachten Sie, dass das Objektiv an einem Sensor befestigt ist und ein weißes Band von der Kamera ausgeht. Das Farbband NICHT entfernen oder zerreißen! Dies ist das Kabel, das Sie benötigen, um es mit dem Raspberry Pi zu verbinden. Halten Sie zuerst das Ende des Bandes und suchen Sie die silbernen Anschlüsse und das blaue Kabel. Diese befinden sich auf gegenüberliegenden Seiten. Suchen Sie als Nächstes den Steckplatz zwischen den Ethernet- und HDMI-Anschlüssen Ihres Raspberry Pi. Beachten Sie, dass es ein kleines weißes Schloss bedeckt. Heben Sie das Schloss langsam an, aber entfernen Sie es nicht aus dem Steckplatz, da es sonst einrastet und dauerhaft beschädigt wird. Sobald Sie das Schloss angehoben haben, greifen Sie das Band und richten Sie die silbernen Stecker zum HDMI-Anschluss. Die blaue Seite zeigt zum Ethernet-Port. Schieben Sie das Farbband langsam in den Schlitz, während es noch entriegelt ist. Sie müssen es nicht mit Gewalt in den Steckplatz schieben. Drücken Sie nach dem Einsetzen die Verriegelung wieder nach unten. Wenn Ihre Kamera richtig befestigt ist, sollten Sie (sanft) am Farbband ziehen und Spannung spüren können. Das Farbband darf nicht locker sein. Nachdem Sie Ihre Kamera an den Pi angeschlossen haben, stellen Sie möglicherweise fest, wie locker sie ist. Aus diesem Grund haben wir eine 3D-gedruckte Halterung verwendet, um sie zu stabilisieren. Sie haben die Wahl, welche Materialien Sie verwenden möchten, um Ihre Kamera für eine hochwertige Bildgebung ruhig zu halten.
2. Installieren der richtigen Dateien und Verbinden von Roomba mit Ihrem Computer Nachdem Ihre gesamte Hardware konfiguriert ist, können Sie nun mit der Installation von MATLAB zusammen mit den zugehörigen M-Dateien fortfahren, die Ihnen die Kommunikation mit dem Roboter ermöglichen. Öffnen Sie dazu MATLAB und erstellen Sie einen neuen Ordner, um alle zugehörigen Dateien zusammenzuhalten. Verwenden Sie dieses Skript, um die erforderlichen Dateien zu installieren/aktualisieren:
- Alle Dateien sollten jetzt in Ihrem erstellten Ordner angezeigt werden. Klicken Sie mit der rechten Maustaste in das Fenster "Aktueller Ordner" und wählen Sie "Add to Path", um diesen Pfad zur Liste der Verzeichnisse hinzuzufügen, in denen MATLAB nach Dateien sucht. Stellen Sie sicher, dass sich alle Ihre Dateien im richtigen Pfad befinden.
3. Sobald die Dateien installiert sind, können Sie jetzt mit der Verbindung zu Ihrem Roboter beginnen. Beginnen Sie damit, Ihren Roboter einzuschalten und ihn direkt nach dem Start hart zurückzusetzen (vergessen Sie nicht, Ihren Roboter jedes Mal vor und nach dem Gebrauch hart zurückzusetzen). Zweitens verbinden Sie sowohl Ihren Roboter als auch Ihren Laptop mit demselben WLAN-Netzwerk. Danach sprechen wir über MATLAB mit dem vorprogrammierten Raspberry Pi, indem wir den Roomba mit seinem Vornamen und der Funktion roomba aufrufen. Zum Beispiel würde ich mich mit Roboter 28 verbinden, indem ich die folgende Zeile verwende: R = roomba(28).
- Beachten Sie, wie ich das Objekt einer Variablen R zugewiesen habe. Ich kann jetzt aus der Installationsdatei auf die zugehörigen Roomba-Funktionen zugreifen, indem ich die Variable R wie eine Struktur behandle.
- R.turnAngle(90) Wenn alles gut gelaufen ist, sollte ein Musikton abgespielt werden, der die Verbindung bestätigt.
Schritt 3: MATLAB-Logik
Das PDF-Dokument am Ende dieses Schritts ist ein detailliertes logisches Flussdiagramm für unseren Codierungsprozess in MATLAB. Wir haben die Klippen-, Licht- und Lichtstoßsensoren aktiviert, damit der Roboter mit uns kommunizieren kann, wenn er ein Objekt in seiner unmittelbaren Nähe erkennt. Wenn sich der Roboter beispielsweise vorwärts bewegt, scannen seine Lichtsensoren entsprechend dem Vektor, mit dem er sich bewegt, nach Objekten in seiner Bahn. Wir haben eine Distanzschwelle für den Roboter gewählt, damit er bei Annäherung an ein Objekt umkehrt, anstatt mit ihm zu kollidieren. Unser Roboter ist auch mit Twitter konfiguriert, das wir in unserem Codierungsprozess festgelegt haben (dies wird unten gezeigt).
Um das Erlebnis zu verbessern, haben wir die MATLAB-Anwendung auf unseren Mobilgeräten verwendet, sodass wir die Bewegungen des Roboters einfach durch Neigen unserer Telefone steuern können. Dies ist eine optionale Aktivität, da Sie den Roboter sicherlich bewegen lassen können, indem Sie stattdessen den Befehl moveDistance im MATLAB-Codesegment verwenden. Denken Sie daran, dass die Verwendung von MATLAB-Befehlen zur Steuerung Ihres Roboters bevorzugt wird, wenn es Ihr Ziel ist, präzise zu sein. Wenn Sie Ihren Roboter so ausrichten möchten, dass die Kamera ein Bild an einer bestimmten Stelle aufnimmt, ist es möglicherweise besser, die Bewegungen des Roboters in MATLAB zu codieren. Die Verwendung der MATLAB-Anwendung zur Steuerung Ihres Roboters ist zwar unterhaltsam, aber aus Gründen der Genauigkeit nicht wünschenswert.
Der Code befiehlt dem Roomba, eine grundlegende Einrichtung durchzuführen und dann in einer Endlosschleife fortzufahren. Zunächst stellt der Laptop mit dem Roomba()-Befehl eine Verbindung zum Roomba her. Es richtet auch die Twitter-Verbindung mit dem Befehl webwrite() in MATLAB ein. Die Schleife enthält fünf logische Hauptflüsse, abhängig von der Umgebung des Roomba. Zuerst sucht der Roomba nach Hindernissen und verstellt sich nach hinten, wenn er behindert wird. In diese Schleife eingebettet ist der zweite Pfad, der Benutzer warnt, wenn der Roomba weggetragen wird. Ein wichtiges Dienstprogramm in der rauen Marskriegszone. Nachdem der Roomba festgestellt hat, dass seine Position sicher ist, schaut er auf das Mobilgerät, um seine nächste Bewegung zu bestimmen. Wenn das Mobilgerät nach vorne geneigt ist, berechnet es eine Basisgeschwindigkeit in Abhängigkeit von der Schwere der Wankmessung und passt dann die einzelnen Radgeschwindigkeiten an, um basierend auf dem Neigungsgrad zu drehen. Das Telefon kann den Roomba auch rückwärts bewegen. Ein neutraler Zustand des mobilen Geräts sperrt die letzten beiden Pfade. Ein ruhender Roomba sucht nach einer Alien-Flagge und warnt den Benutzer entsprechend.
Unten ist unser Code (abgeschlossen in MATLAB 2017a)
%inputs: Orientierungsdaten von einem per WLAN verbundenen Gerät, Kamera
%Informationen, Sensordaten
%Ausgänge: Die Bewegung wird durch das mit dem WLAN verbundene Gerät und die Bewegung gesteuert
% wird durch das Lesen von Sensordaten sicherheitsgeprüft. Wenn die Kamera erkennt, % eine Alien-Flagge, dann antwortet der Roomba, indem er die feindliche Flagge twittert
% wurde entdeckt.
%Zweck: Unser Gerät lebt ohne Zweck, außer um diejenigen zu schützen, die
% hat es erstellt, es dient seinem Schöpfer und tut es
% genau das, was es erzählt.
%Usage: Im Wesentlichen läuft das Programm alleine.
alles löschen, alles schließen, clc
%Initialisieren von Objekten und Variablen
r = roomba(28);
m=mobiledev;
%use response = webwrite(Hostname, Daten)
hostname = 'https://api.thingspeak.com/apps/thingtweet/1/statuses/update';
API='SGZCTNQXCWAHRCT5';
tweet='RoboCop ist betriebsbereit…wartet auf Befehl';
data = strcat('api_key=', API, '&status=', tweet);
Antwort=webwrite(Hostname, Daten);
% ständig laufende Schleife
während 1==1
%Strukturen mit Relavent-Daten
o=m. Orientierung; %Ausrichtung des Mobilgeräts
light=r.getLightBumpers(); %Light-Bumper-Werte
a = r.getCliffSensors(); %CLiff-Sensorwerte
Stoß = r.getBumpers(); %Stoßfängersensoren
%stoßstangen prüfen
wenn stoß.rechts==1 || stoß.links==1 ||stoß.vorne==1
r.moveDistance(-.2,.2);
%check Lichtsensoren
elseif hell.links>60 || Licht.linksVorn>60 || hell.linksMitte>60 || hell.rechts>60 || hell.rechtsvorne>60 || hell.rechtsMitte>60
r.moveDistance(-.2,.2);
%check Klippensensoren
%Anti-Diebstahl-Signal und Benachrichtigung
elseif a.left<300 && a.right<300 && a.leftFront<300 && a.rightFront<300
r.stop();
r.beep();
tweet='RoboCop wurde aufgehoben!'
data = strcat('api_key=', API, '&status=', tweet);
Antwort=webwrite(Hostname, Daten);
%Normaler Vorgang zur Vermeidung von Klippen
elseif a.left<300 || a.rechts<300 || a.linksvorne<300 || a.rechtsFront<300
r.moveDistance(-.2,.2);
%Roomba hat die Prüfungen bestanden und läuft nun im Normalbetrieb.
%Anfangs wird die Rolle des Geräts gemessen und wird zu einer Basis
%Geschwindigkeit, die dann zur Berechnung der Radgeschwindigkeit verwendet wird
%Vorwärtsbewegung
Sonst o(3)>=0 && o(3)<=60
baseVel = (–.5/60)*(o(3)–60);
if o(2)>=-70 && o(2)<0
r.setDriveVelocity(baseVel+(.3/50)*abs(o(2)), baseVel-(.3/50)*abs(o(2)));
sonst o(2)=0
r.setDriveVelocity(baseVel-(.3/50)*abs(o(2)), baseVel+(.3/50)*abs(o(2)));
sonst r.stop
Ende
%Rückwärtsbewegung
Sonst o(3)>100 && o(3)<150
r.setDriveVelocity(-.2, -.2)
r.beep();
r.beep();
%resting roomba sucht nach der als Leuchtstoff markierten Alien-Flagge
%grünes Stück Papier
anders
r.stop
img=r.getImage(); %bild aufnehmen
Schwellenwert=grauschwelle(img(200:383,:, 2))+.1; %calc Grünwert
wenn Schwellwert>.42
tweet='Feind gesichtet!!'
data = strcat('api_key=', API, '&status=', tweet);
Antwort=webwrite(Hostname, Daten);
anders
r.stop
Ende
Ende
Ende
Schritt 4: Fazit
Denken Sie daran, dass Sie das oben geschriebene Skript verwenden können, es jedoch jederzeit an Ihre Bedürfnisse anpassen können. Es muss nicht von Ihrem Telefon gesteuert werden! (Es macht jedoch mehr Spaß.) Wählen Sie aus, welche Methode Sie zur Steuerung Ihres Roboters bevorzugen. Fahren Sie mit Ihrem Roboter herum und genießen Sie!
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
So erstellen Sie mit MATLAB einen Hörtest für Erwachsene – wikiHow
So erstellen Sie einen Hörtest für Erwachsene mit MATLAB: HAFTUNGSAUSSCHLUSS: Unser Test ist KEINE medizinische Diagnose und sollte nicht als solche verwendet werden. Um das Gehör genau zu messen, wenden Sie sich bitte an einen Arzt. Mit Materialien, die wir bereits hatten, führte unsere Gruppe einen Hörtest durch. Unser Test ist nur für Erwachsene und Jugendliche bestimmt
Roomba-Projekt: 5 Schritte (mit Bildern)
Roomba-Projekt: Dieses instructable wurde in Erfüllung der Projektanforderung des Makecourse an der University of South Florida (www.makecourse.com) erstellt. Dieses instructable deckt alle notwendigen Schritte und Komponenten ab, die zum Zusammenbau meines Roomba-Projekts erforderlich sind