HSEV3
16.04.2019, 10:20

LEGO EV3 - Programm für Greifarm

Hallo liebe Forenmitglieder,

in Form einer Schularbeit haben wir die Aufgabe einen LEGO EV3 mithilfe von Java zu programmieren.
Unser Projekt soll später ein Greifarm werden. Da unser Lehrer derzeit krank ist und wir unser Projekt zeitnah abgeben müssen brauchen wir eure Unterstützung.
Verwendet haben wir folgende Sensoren und Motoren:
Großer Motor auf A
Großer Motor auf B
Mittlerer Motor auf C
Farbsensor auf 1
Drucksensor auf 2

Hat schon einmal jemand von euch solch ein Programm geschrieben und könnte uns helfen?

Vielen Dank für eure Unterstützung



5 vorhergehende Beiträge sind ausgeblendet

Alle anzeigen Immer alle anzeigen Beitragsbaum

JuL
17.04.2019, 08:51

Als Antwort auf den Beitrag von Lok24

Re: LEGO EV3 - Programm für Greifarm

Saluton!

Lok24 hat geschrieben:

Vorab: Programmieren lernen ist für's Leben ungefähr so sinnvoll wie Kenntnisse in Astrophysik, es sei denn es gehört zum Beruf.

AAAAARRRRRGGGGG!!!!

(Na, ist wenigstens immer noch besser als wenn du's mit Wirtschaftswissenschaft
verglichen hättest.)

Ad LEGO!
JuL

P.S: Hm, der „> : (“-Smiley wird mir als „> “ angezeigt.


„Altgrau“ facere necesse est.
Wer Rechtschreibfehler findet, darf sie mir nennen. Ich lerne nämlich gerne dazu (ich bin allerdings „Altschreiber“).


Lok24
30.04.2019, 10:29

Als Antwort auf den Beitrag von HSEV3

+2Re: LEGO EV3 - Programm für Greifarm

... schade dass hier nichts mehr kommt, ich hatte mich fast zwei Stunden mit der Frage befasst....



Thomas52xxx , n3t3rb gefällt das


HSEV3
30.04.2019, 12:41

Als Antwort auf den Beitrag von Lok24

Re: LEGO EV3 - Programm für Greifarm

Hallo Lok24,

tut uns leid, wir hatten die letzten Wochen Ferien und konnten daher nicht an dem EV3 weiterarbeiten.

Motor C ist für die Rotation des Greifarms zuständig.
Der Touch-Sensor am Port 1, gibt Auskunft wie weit sich der Arm drehen darf (bei berühren muss der Motor C stoppen).


Motor B ist für die Auf- und Abbewegung des Greifarms zuständig.


Motor A öffnet und schließt den Greifer um Gegenstände aufzunehmen.
Wird der Touch-Sensor dann aktiviert soll Motor B den Greifarm öffnen, damit der Gegenstand in einen "Korb" fallen kann.

Der Farbsensor soll erkennen welche Farbe der Gegenstand hat.
Beispielsweise sollen nur blaue Gegenstände vom Greifer aufgenommen werden.

Grüße
HSEV3



Lok24
30.04.2019, 12:59

Als Antwort auf den Beitrag von HSEV3

Editiert von
Lok24
30.04.2019, 13:03

Re: LEGO EV3 - Programm für Greifarm

Hallo,

schön wieder von Euch zu hören, ihr seid ja jetzt ausgeruht.....

HSEV3 hat geschrieben:

Motor C ist für die Rotation des Greifarms zuständig.
Der Touch-Sensor am Port 1, gibt Auskunft wie weit sich der Arm drehen darf (bei berühren muss der Motor C stoppen).

Ja.

HSEV3 hat geschrieben:
Motor B ist für die Auf- und Abbewegung des Greifarms zuständig.

Ja.

HSEV3 hat geschrieben:
Motor A öffnet und schließt den Greifer um Gegenstände aufzunehmen.

Ja.

HSEV3 hat geschrieben:
Wird der Touch-Sensor dann aktiviert soll Motor B den Greifarm öffnen, damit der Gegenstand in einen "Korb" fallen kann.

Oh?

HSEV3 hat geschrieben:
Der Farbsensor soll erkennen welche Farbe der Gegenstand hat. Beispielsweise sollen nur blaue Gegenstände vom Greifer aufgenommen werden.

Oh? Oh!

Motoren sind ok, Touch auch.

Aber der Farbsensor? Schaut euch die Videos nochmal an.
In welche Richtung schaut der Sensor? Kann der die Farbe der Gegenstände erkennen, so wie er eingebaut ist?
Und was macht das Teil, das auf Seite 64 eingebaut wird?

Welchen "Ablauf" gibt es für den Greifer?
1.) Greifer auf
2.) Arm nach unten
3.) Greifer zu
4.) ?
5.) ?
6.) ?

Mein Verständnis von dem Ding ist derzeit ein anderes als Eures.
Was Du schreibst: ist das Eure Interpretation oder die Vorgabe des Lehrers?

Grüße

Werner



HSEV3
07.05.2019, 09:55

Als Antwort auf den Beitrag von Lok24

Re: LEGO EV3 - Programm für Greifarm

Hallo,

ja das Problem mit dem Farbsensor haben wir auch schon erkannt, wir werden ihn noch umbauen und zwar direkt an den Greifer

Welchen "Ablauf" gibt es für den Greifer?
1.) Greifer auf
2.) Arm nach unten
3.) Greifer zu
4.) Arm hoch
5.) Arm zur Seite (über den Korb)
6.) Greifer auf (Gegenstand in den Korb fallen lassen)
7.) In Ausgangsposition zurückfahren

Das was wir schreiben ist die Vorgabe unseres Lehrers.

Grüße

HSEV3-Team



Lok24
07.05.2019, 09:59

Als Antwort auf den Beitrag von HSEV3

Editiert von
Lok24
07.05.2019, 10:00

Re: LEGO EV3 - Programm für Greifarm

Moin,

Ah, der Lehrer.

Nun, das wird so nicht funktionieren

Bitte: denkt nochmal drüber nach, was der Sensor im Original für eine äußerst wichtige Funktion hat.
Dann müssen wir uns überlegen, wie wir das mit den Anforderungen des Lehrers in Einklang bringen.

Nur wenn ihr wirklich verstanden habt, was das Ding mechanisch macht könnt ihr ein gutes Programm schreiben.



HSEV3
07.05.2019, 10:06

Als Antwort auf den Beitrag von Lok24

Re: LEGO EV3 - Programm für Greifarm

Hallo,

leider wissen wir nicht was der Sensor für eine Funktion hat, kannst du uns dieses bitte mitteilen?

Die Vorgabe unseres Lehrers ist das der Roboter nachher funktioniert.



Lok24
07.05.2019, 10:26

Als Antwort auf den Beitrag von HSEV3

Editiert von
Lok24
07.05.2019, 10:28

Re: LEGO EV3 - Programm für Greifarm

Hallo,

so, es wird ja Zeit mal was zu programmieren.
Wie wir gleich sehen werden bekommt das Programm durch die geplante Änderung auch auch plötzlich eine andere Programmstruktur.

Wir werden also mal mit dem Drehen des Arms anfangen.

Generell kann man die Motoren in verschiedenen Modi betreiben:
Drehen bis Stop-Befehl kommt....
Drehen für n sec ....
Drehen der Achse um x°

So: Batterien einlegen, der Roboter steht irgendwo, drehen um 847°, das kann das komplette Ding zerlegen, weil es nicht aufhört, wenn es am Ende der mechanisch vorgegeben Möglichkeiten ist.
Ebenso bei x Sekunden

Wir müssen also beim Einschalten(=Starten des Programms) langsam bis zum Anschlag drehen.
Das kommt also in den Konstruktor.

Wir bauen uns also eine Klasse, die Drehmotor und Touch-Sensor beinhaltet. Als Parameter übergeben wir ... Was meint ihr? ich komme auf vier Parameter .
Außerdem hat sie einen Konstruktor und eine Methode "drehe um x°.
Und merkt sich die vier Parameter in Variablen.

public class xxx {

public xxx() { // Konstruktor
Drehe Motor bis Schalter geschlossen wird
merke die Übergeben Parameter
}

Public yyyy
{
drehe um motor um x °
}
}

Am Ende sollte ihr eine Klasse haben, deren Konstruktor vier(?) Parameter liest, und ein Main-Programm, das aus zwei Zeilen besteht:

ein neues Objekt der Klasse erzeugen
mit dem Objekt eine Drehung um x° ausführen.

Ihr könnt den Code hier posten.
Und bevor ihr den EV3 einschaltet:
Was müsst ihr bei den Parametern bedenken (Werte)?
Und immer den Finger auf dem Knopf links oben haben, um das Programm sofort zu unterbrechen.


Grüße

Werner



Lok24
07.05.2019, 10:33

Als Antwort auf den Beitrag von HSEV3

Editiert von
Lok24
07.05.2019, 10:36

Re: LEGO EV3 - Programm für Greifarm

Aloha,

zusammen mit dem weißen Winkel oben in dem Arm (das Teil bei 64):
Der schiebt sich immer näher an den Sensor und meldet wenn der Arm seinen oberen Punkt erreicht hat, er sorgt also, wie der Touch-Sensor beim Drehmotor, für eine Normierung der Bewegung des Arms!
Er wird hier nicht als Farb-, sondern als Abstandsensor eingesetzt.
Das ist nicht meine Interpetation, es gibt zu dem Modell auch ein Programm von LEGO, da kann man das ablesen.

Wie sollte man sonst wissen, wo der Arm gerade steht?

Auf dem Viedo sieht man das ganz gut.

Da denken wir nachher drüber nach.
Baut erstmal die Klasse zum Drehen, dann kommen noch zwei, aber das ist Copy & Paste



HSEV3
07.05.2019, 10:41

Als Antwort auf den Beitrag von Lok24

Re: LEGO EV3 - Programm für Greifarm

Hallo,

dann hier mal unser Versuch.

package org.lejos.ev3.projects.gruppe4;
import java.awt.Color;

import lejos.hardware.BrickFinder;
import lejos.hardware.Button;
import lejos.hardware.Sound;
import lejos.hardware.lcd.Font;
import lejos.hardware.lcd.GraphicsLCD;
import lejos.utility.Delay;
import lejos.hardware.motor.*;
import lejos.hardware.port.MotorPort;
import lejos.hardware.port.SensorPort;
import lejos.hardware.port.UARTPort;
import lejos.hardware.sensor.EV3ColorSensor;
import lejos.robotics.RegulatedMotor;

public class EV3HelloWorld
{
public static void main(String[] args)
{
RegulatedMotor motor3 = new EV3LargeRegulatedMotor(MotorPort.A); //Hoch- und Runter
RegulatedMotor motor4 = new EV3LargeRegulatedMotor(MotorPort.D); //links rechts
EV3TouchSensor sensor1 = new EV3TouchSensor (SensorPort.S1); //Farbsensor 1
motor3.backward();
Delay.msDelay(1000);
motor4.backward();
Delay.msDelay(150);
motor3.stop();
motor4.stop();
Delay.msDelay(1000);
motor4.forward();
Delay.msDelay(200);
motor3.forward();
Delay.msDelay(1250);
motor3.close();
motor4.close();

}
}



Mit diesem Code lässt sich der Greifarm bereits drehen und auf- und abbewegen.
Leider wissen wir nicht wie wir den Sensor ansteuern können.



4 nachfolgende Beiträge sind ausgeblendet

Alle anzeigen Immer alle anzeigen

Gesamter Thread: