Dieser Artikel richtet sich an diejenigen, die mit ev3 in Java arbeiten möchten. Dieses Mal möchte ich den Motor auf verschiedene Arten steuern.
◯ ev3 (intelligenter Block) ◯ L Motor / M Motor ◯ PC (Sonnenfinsternis) ◯ bluetooth ◯ microSD ◯ API-Dokumentation (Es wird empfohlen, fortzufahren, während Sie dies ansehen.)
◯ Das diesmal verwendete Programm ist ungefähr so. Lassen Sie uns zunächst über diese Form sprechen.
templete.java
//Bereiten Sie die Materialien für das Programm vor
import package.Class;
//Erstellen Sie eine Klasse
öffentliche Klasse Klassenname{
//Erstellen Sie eine statische Methode
public static void main(String[] args) {
//Instanzgenerierung
Klassenobjekt=neue Klasse();
//Verwenden Sie die Methode
Objekt.Methode();
}
}
Point :import
Es dient zur Beschaffung der für die Programmierung erforderlichen Materialien (eine Reihe von Codes). Schreiben Sie als import package.Class
.
Zum Beispiel bedeutet "import lejos.hardware.motor.EV3LargeRegulatedMotor", die Klasse "EV3LargeRegulatedMotor" im Paket "lejos.hardware.motor" zu beziehen.
Punkt: ** Klasse ** Eine Sammlung verwandter Felder und Methoden. (Beispiel)
Mensch der öffentlichen Klasse{
//Feld
Schwimmerhöhe;
Schwimmergewicht;
Float-Gesangsfähigkeit;
//Methode
öffentlicher leerer Schlaf(){};
öffentliche Leere essen(){};
öffentliche Leere sprechen(){};
öffentliche Leere singen(){};
}
Punkt: ** statische Methode ** ** Eine Methode (Funktion), die aufgerufen werden kann, ohne eine Klasse zu instanziieren.
Referenzartikel Erläuterung der Hauptmethode, ihrer Argumente (Argumente) und des Rückgabewerts Erklären Sie sorgfältig Javas statische Methode! Lassen Sie uns gemeinsam Anwendungsbeispiele und -ideen lernen!
Punkt: ** Instanz ** Es ist eine Materialisierung (Objekt) der Klasse. Die Instanz verfügt über ** Felder und Methoden, über die die Klasse verfügt **. Sie können mehrere Instanzen aus einer Klasse erstellen.
Punkt: ** Instanz erstellen ** Erstellen eines Objekts aus einer Klasse. Erstellen Sie eine Instanz wie folgt.
Klassenobjekt=neue Klasse(Konstrukteur)
Machen. Mit dem Konstruktor können Sie aus einer Klasse ein Objekt mit Individualität erstellen.
** (Beispiel) ** Takeshi Gouda aus Klassenleuten machen
Takeshi Gouda=neuer Mensch(Höhe= 157,Körpergewicht= 70,Geschicklichkeit als Sänger= 0);
[Referenzartikel]: Implementierte Schnittstelle! Verwendung von Geräten in Java
Punkt: ** Punkt (.) ** Der Punkt (.) Bedeutet ** hineingehen **. Mit Punkten können Sie auf Felder und Methoden innerhalb eines Objekts zugreifen.
Takeshi Gouda.singen();
◯ Programmieren Sie, um den L-Motor zu drehen und 5 Sekunden lang anzuhalten
lmotor00.java
//Dinge notwendig(Material)Importieren
import lejos.hardware.motor.EV3LargeRegulatedMotor;
import lejos.hardware.port.MotorPort;
import lejos.robotics.RegulatedMotor;
import lejos.utility.Delay;
//Erstellen Sie eine Klasse
public class lmotor00 {
//Erstellen Sie eine statische Methode
public static void main(String[] args) {
//Instanzgenerierung
RegulatedMotor l_a = new EV3LargeRegulatedMotor(MotorPort.A);
//Stellen Sie eine Geschwindigkeit ein, die sich um 720 Grad pro Sekunde dreht
l_a.setSpeed(720);
//Den Motor nach vorne drehen
l_a.forward();
//5000 Millisekunden(5 Sekunden)bereithalten=Verarbeitung fortsetzen
Delay.msDelay(5000);
//Stoppen Sie den Motor
l_a.stop();
}
}
Punkt: ** Klasse. Methode ** msDelay () ist eine ** statische Methode **, sodass Sie sie ohne Verwendung einer Instanz verwenden können.
[Referenzartikel] Erklären Sie sorgfältig Javas statische Methode! Lassen Sie uns gemeinsam Anwendungsbeispiele und -ideen lernen! Was sind die Vorteile statischer Methoden
Point : setSpeed() Eine Methode, die die Drehzahl des Motors bestimmt. Geben Sie im Argument den Winkel an, den Sie in 1 Sekunde drehen möchten.
Point : forward() Ein Verfahren zum Drehen des Motors in die positive Richtung. Wenn es keine Methode zum Stoppen gibt, dreht sie sich weiter.
◯ Programm zum Drehen des Motors um 1080 Grad
lmotor01.java
//Dinge notwendig(Material)Importieren
import lejos.hardware.motor.EV3LargeRegulatedMotor;
import lejos.hardware.port.MotorPort;
import lejos.robotics.RegulatedMotor;
//Erstellen Sie eine Klasse
public class lmotor01 {
//Erstellen Sie eine statische Methode
public static void main(String[] args) {
//Instanzgenerierung
RegulatedMotor l_a = new EV3LargeRegulatedMotor(MotorPort.A);
//Stellen Sie eine Geschwindigkeit ein, die sich um 360 Grad pro Sekunde dreht
l_a.setSpeed(360);
//Drehen Sie den Motor um 1080 Grad in die negative Richtung
l_a.rotate(-1080);
}
}
Point : rotate() Um den im Argument angegebenen Winkel drehen Die Drehung stoppt, wenn die Verarbeitung abgeschlossen ist
◯ Es ist ein Programm, das den L-Motor allmählich beschleunigt.
lmotor02.java
//Dinge notwendig(Material)Importieren
import lejos.hardware.motor.EV3LargeRegulatedMotor;
import lejos.hardware.port.MotorPort;
import lejos.robotics.RegulatedMotor;
//Erstellen Sie eine Klasse
public class lmotor02 {
//Erstellen Sie eine statische Methode
public static void main(String[] args) {
//Instanzgenerierung
RegulatedMotor l_a = new EV3LargeRegulatedMotor(MotorPort.A);
//Geschwindigkeit auf Maximum einstellen
l_a.setSpeed((int) l_a.getMaxSpeed());
//Stellen Sie die Beschleunigung auf 100 ein(Die Anfangsgeschwindigkeit ist langsam und beschleunigt)
l_a.setAcceleration(100);
l_a.rotate(7200);
//Stellen Sie die Beschleunigung auf 9000 ein(Sofort beschleunigen)
l_a.setAcceleration(9000);
l_a.rotate(-7200);
}
}
Punkt: ** Beschleunigung ** Die Beschleunigung ist ** die Änderungsrate der Geschwindigkeit pro Zeiteinheit **. Die Einheit ** Grad / s / s ** des Arguments der Methode setAcceleration () gibt an, um wie viel sich die Winkelgeschwindigkeit [Grad / s] in ** 1 Sekunde [s] ** ändert. (Beispiel) Beim Ändern um 100 Grad pro Sekunde
Zeit[s] | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|---|
Winkelgeschwindigkeit[degrees/s] | 0 | 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800 | 900 | 1000 |
Beschleunigung[degrees/s/s] | 0 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 | 100 |
Point : getMaxSpeed() Eine Methode, die den Höchstgeschwindigkeitswert zurückgibt. Die Höchstgeschwindigkeit hängt auch von der Ladungsmenge ab.
Point : setAcceleration() Eine Methode, die den Beschleunigungsgrad bestimmt. Je kleiner der Wert, desto langsamer die Beschleunigung.
◯ Ein Programm, das die Geschwindigkeit alle 2 Sekunden erhöht
lmotor03.java
import lejos.hardware.motor.EV3LargeRegulatedMotor;
import lejos.hardware.port.MotorPort;
import lejos.robotics.RegulatedMotor;
import lejos.utility.Delay;
//Erstellen Sie eine Klasse
public class lmotor03 {
//Erstellen Sie eine statische Methode
public static void main(String[] args) {
//Instanzgenerierung
RegulatedMotor l_a = new EV3LargeRegulatedMotor(MotorPort.A);
//i <Erhöhen Sie i um 100, während Sie 1000 füllen
for(int i = 10 ; i < 1000 ; i += 100) {
//Stellen Sie die Geschwindigkeit auf i ein
l_a.setSpeed(i);
l_a.forward();
Delay.msDelay(2000);
}
//Stoppen Sie den Motor nach dem Verlassen der for-Schleife
l_a.stop();
}
}
Punkt: ** für Schleife ** Wiederholen Sie den Vorgang, während "i <Schwelle" wahr ist. Bei jeder Verarbeitung wird i addiert (subtrahiert).
for(int i =Ursprünglicher Wert;i <Schwelle; i +=Erhöhen verringern){
wird bearbeitet
}
◯ Es ist ein Programm, das den L-Motor alle 2 Sekunden beschleunigt.
lmotor04.java
import lejos.hardware.motor.EV3LargeRegulatedMotor;
import lejos.hardware.port.MotorPort;
import lejos.robotics.RegulatedMotor;
import lejos.utility.Delay;
//Erstellen Sie eine Klasse
public class lmotor04 {
//Erstellen Sie eine statische Methode
public static void main(String[] args) {
//Instanzgenerierung
RegulatedMotor l_a = new EV3LargeRegulatedMotor(MotorPort.A);
//Definieren Sie eine Ganzzahlvariable s
int s = 0;
//s <Während des Treffens 1000{}Wiederholen Sie den Vorgang im Inneren
while(s < 1000) {
//Geschwindigkeit auf s einstellen
l_a.setSpeed(s);
l_a.forward();
Delay.msDelay(2000);
//s = s + 100
s += 100;
}
//Stoppen Sie den Motor nach dem Verlassen der while-Schleife
l_a.stop();
}
}
Punkt: ** while-Schleife ** Es ist ein Mechanismus, um eine Bedingung festzulegen und den Vorgang zu wiederholen, während die Bedingung erfüllt ist.
while(Bedingungen){
wird bearbeitet;
}
◯ Es ist ein Programm, das den L-Motor alle 2 Sekunden beschleunigt. Wenn jedoch ** die Taste in der Mitte des intelligenten Blocks gedrückt wird **, endet die Schleife.
lmotor05.java
import lejos.hardware.Button;
import lejos.hardware.motor.EV3LargeRegulatedMotor;
import lejos.hardware.port.MotorPort;
import lejos.robotics.RegulatedMotor;
import lejos.utility.Delay;
//Erstellen Sie eine Klasse
public class lmotor05 {
//Erstellen Sie eine statische Methode
public static void main(String[] args) {
//Instanzgenerierung
RegulatedMotor l_a = new EV3LargeRegulatedMotor(MotorPort.A);
//Definieren Sie eine Ganzzahlvariable s
int s = 0;
//s <Während des Treffens 1000{}Wiederholen Sie den Vorgang im Inneren
while(s < 1000) {
//Wenn die mittlere Taste gedrückt wird
if(Button.getButtons() == 2) {
//Schleifenverarbeitung beenden
break;
//Wenn die mittlere Taste nicht gedrückt wird
}else {
//Geschwindigkeit auf s einstellen
l_a.setSpeed(s);
l_a.forward();
Delay.msDelay(2000);
//s = s + 100
s += 100;
}
}
//Stoppen Sie den Motor nach dem Verlassen der while-Schleife
l_a.stop();
}
}
Point : if,else Wenn die Bedingung erfüllt ist, wird Prozess 1 ausgeführt, andernfalls wird Prozess 2 ausgeführt.
if(Bedingungen){
Prozess 1;
}else{
Prozess 2;
}
Andere Anweisungen, die if verwenden, lauten wie folgt.
if(Bedingungen){
wird bearbeitet;
}
if(Bedingung a){
Prozess 1;
}else if(Bedingung b){
Prozess 2;
if(Bedingung a){
Prozess 1;
}else if(Bedingung b){
Prozess 2;
}else{
Prozess 3;
}
Point : Button.getButtons()
Eine statische Methode, die den ganzzahligen Wert zurückgibt, der der gedrückten Taste entspricht.
Jeder Taste im intelligenten Block wird ** eine Nummer zugewiesen **.
Entsprechungstabelle zwischen Schaltflächen und ganzzahligen Werten
if (Button.getButtons () == 2)
bedeutet **, wenn die mittlere Taste ** aus der Korrespondenztabelle gedrückt wird **.
Point : break Dies ist eine Anweisung zum Beenden der Schleife.
Es ist dasselbe wie der L-Motor, außer dass er die EV3MediumRegulatedMotor-Klasse verwendet.
//Instanzgenerierung
RegulatedMotor m_a = new EV3MediumRegulatedMotor(MotorPort.A);
Danke fürs Lesen! !! Das nächste Mal möchte ich über die Steuerung mehrerer Motoren schreiben!
Ich möchte einen besseren Artikel machen ◯ Das ist leichter zu verstehen ◯ Das ist schwer zu verstehen ◯ Das ist falsch ◯ Ich möchte, dass Sie hier mehr erklären Wir freuen uns über Ihre Meinungen und Vorschläge.
Recommended Posts