So entwickeln und registrieren Sie eine Sota-App in Java

Wir haben den Entwicklungs- und Registrierungsfluss der Sota-App mit Java zusammengefasst. Die Quelle der in diesem Artikel erstellten App finden Sie unter GitHub.

Entwicklungsumgebung

In diesem Artikel haben wir eine Anwendung für die Intel (R) Edison-Version Sota (Entwicklerversion) entwickelt.

So entwickeln Sie die Sota App

In der offiziellen Dokumentation gibt es zwei Möglichkeiten, die Sota-App zu entwickeln:

VstoneMagic ist eine Programmiersoftware für Sota, die Apps durch Verbinden vorbereiteter Anweisungsblöcke entwickelt. Als Vorteil von VstoneMagic beschreibt das offizielle Dokument, wie die App registriert wird, und Sie können die aus "App ausführen" erstellte App ausführen, indem Sie Sota selbst bedienen. Aufgrund der Spezifikationen, die Befehlsblöcke verbinden, gibt es jedoch Einschränkungen bei der Anwendungsentwicklung. Daher werden wir in diesem Artikel eine Anwendung in Java entwickeln. Die Registrierungsmethode für in Java entwickelte Apps ist nicht in der offiziellen Dokumentation enthalten, daher werde ich im Folgenden erläutern, wie dies funktioniert.

Vorbereitung der Entwicklungsumgebung

Zunächst [Programmieren mit Java versuchen](http://www.vstone.co.jp/sotamanual/index.php?Java%E3%81%A7%E3%83%97%E3%83%] AD% E3% 82% B0% E3% 83% A9% E3% 83% 9F% E3% 83% B3% E3% 82% B0% E3% 82% 92% E3% 81% 97% E3% 81% A6% Folgen Sie E3% 81% BF% E3% 82% 8B), um das Beispielprogramm auszuführen. Im Folgenden wird davon ausgegangen, dass Sie Eclipse als Entwicklungsumgebung und SotaSample als Beispielprogrammprojekt haben.

Erstellen Sie ein neues Projekt

Von hier aus werden wir Apps in Java entwickeln. In diesem Artikel entwickelt Sota eine App, die Ihre Aussagen erkennt und an Sie zurücksendet. Es ist dasselbe wie "SpeechRecSample.java" in "SotaSample".

Erstellen Sie zunächst ein neues Projekt aus "Datei" -> "Neu" -> "Java-Projekt". Der Projektname sollte "SotaRepeat" sein. Übrigens denke ich bei der Verwaltung mit GitHub, dass Zusammenarbeit und Zusammenfassung von GitHub und Eclipse - Zusammenfassung - Qiita hilfreich sein wird.

Klicken Sie nach dem Erstellen eines neuen Projekts mit der rechten Maustaste auf den Ordner src → "Neu" → "Paket", um ein Paket zu erstellen. Ich habe das Paket "com.example.sotarepeat" genannt (ich weiß nicht, wie ich das Paket benennen soll).

Implementierung des Java-Programms

Klicken Sie mit der rechten Maustaste auf den Paketnamen → "Neu" → "Klasse", um die Haupt-Java-Datei "SotaRepeat.java" zu erstellen und zu implementieren. Der Ablauf der Anwendung ist wie folgt.

  1. Verwenden Sie die Spracherkennung, um das, was Sie sagen, als Zeichenfolge abzurufen
  2. Lassen Sie Sota die mit TextToSpeech erhaltene Zeichenfolge sprechen
  3. Wiederholen Sie die Schritte 1 und 2 beliebig oft

Die implementierte SotaRepeat.java ist unten aufgeführt.

SotaRepeat.java


/* SotaRepeat.java
 *Eine App, die das Spracherkennungsergebnis als Papagei mit TTS zurückgibt
 */

package com.example.sotarepeat;

import jp.vstone.RobotLib.CPlayWave;
import jp.vstone.RobotLib.CRobotMem;
import jp.vstone.RobotLib.CSotaMotion;
import jp.vstone.sotatalk.MotionAsSotaWish;
import jp.vstone.sotatalk.SpeechRecog;
import jp.vstone.sotatalk.SpeechRecog.RecogResult;
import jp.vstone.sotatalk.TextToSpeechSota;

public class SotaRepeat {
	static final String TAG = "SotaRepeat";
	static final int LOOP_NUM = 10;

	public static void main(String[] args) {
		//VSMD und Kommunikationssocket / Speicherzugriffsklasse
		CRobotMem mem = new CRobotMem();
		//Bewegungssteuerungsklasse für Sota
		CSotaMotion motion = new CSotaMotion(mem);
		SpeechRecog recog = new SpeechRecog(motion);
		MotionAsSotaWish wish = new MotionAsSotaWish(motion);

		if (mem.Connect()) {
			//Initialisieren Sie VSMD gemäß den Sota-Spezifikationen
			motion.InitRobot_Sota();
			motion.ServoOn();

			for (int i=0; i<LOOP_NUM; i++) {
				//Spracherkennung (unterstützt Sprache bis zu 10 Sekunden)
				RecogResult result = recog.getRecognition(10000);
				if (result.recognized) {
					//TextToSpeech das Erkennungsergebnis
					wish.Say(result.getBasicResult(), MotionAsSotaWish.MOTION_TYPE_TALK);
					//CPlayWave.PlayWave(TextToSpeechSota.getTTSFile(result.getBasicResult()),true);

					if(result.getBasicResult().contains("Ende")){
						CPlayWave.PlayWave(TextToSpeechSota.getTTSFile("ich bin fertig"),true);
						break;
					}
				}
				if (i == LOOP_NUM - 1) {
					CPlayWave.PlayWave(TextToSpeechSota.getTTSFile("Ich bin müde, also bin ich fertig"), true);
				}
			}
			motion.ServoOff();
		}
	}
}

Wenn Eclipse wütend wird, dass es beim Importieren von jp.vstone.RobotLib.CPlayWave usw. keine solche Möglichkeit gibt, klicken Sie mit der rechten Maustaste auf SotaRepeat → "Build Path" → "External Archive". Geben Sie unter "Hinzufügen" "sotalib.jar" im Ordner "lib" in "SotaSample" an.

JAR-Datei erstellen

Erstellen Sie eine JAR-Datei, um die entwickelte App in Sota zu registrieren. Klicken Sie zuerst mit der rechten Maustaste auf SotaRepeat → wählen Sie "Exportieren" → "JAR-Datei". Stellen Sie sicher, dass Sota Repeat im Bildschirm "JAR-Export" aktiviert ist, geben Sie die JAR-Datei an, in die exportiert werden soll, und klicken Sie auf "Weiter". Behalten Sie die Standardeinstellungen für "JAR-Paketoptionen" bei und klicken Sie auf "Weiter". Aktivieren Sie für "JAR-Manifestspezifikationen" "Manifest im Arbeitsbereich speichern" und geben Sie den Namen der Manifestdatei an, wie im folgenden Bildschirm gezeigt. Geben Sie außerdem SotaRepeat als Hauptklasse an. Und fertig".

jar_manifest_sample01.jpg

Bearbeiten Sie als Nächstes das erstellte MANIFEST.MF. Wenn es unverändert bleibt, wird der Klassenpfad nicht beschrieben, sodass beim Ausführen der Anwendung ein Fehler auftritt. Wenn Sie eine Manifestdatei wie das obige Bild erstellt haben, sollte "MANIFEST.MF" folgendermaßen aussehen:

MANIFEST.MF


Manifest-Version: 1.0
Sealed: true
Main-Class: com.example.sotarepeat.SotaRepeat

Fügen Sie hier die folgende Beschreibung hinzu.

Class-Path: . /home/vstone/lib/core-2.2.jar /home/vstone/lib/javase-2.2.jar /home/vstone/lib/jna-4.1.0.jar /home/vstone/lib/opencv-310.jar /home/vstone/lib/sotalib.jar /home/vstone/lib/SRClientHelper.jar /home/vstone/lib/gson-2.6.1.jar

Es kann unnötig sein, weil es wahllos zum Klassenpfad hinzugefügt wird, aber es ist das Miso, dass / home / vstone / lib / gson-2.6.1.jar hinzugefügt wird. Ich habe es zuerst nicht geschrieben, weil es nicht im Ordner "lib" von "SotaSample" enthalten ist, aber als ich es auf der Sota-Konsole ausführte, bekam ich eine Fehlermeldung, dass gson benötigt wurde, also fügte ich es hinzu.

Verwenden Sie diese Manifestdatei, um eine neue JAR-Datei zu erstellen. Erstellen Sie eine JAR-Datei auf die gleiche Weise wie zuvor, aktivieren Sie jedoch "Vorhandenes Manifest im Arbeitsbereich verwenden", wie unten unter "JAR-Manifestspezifikationen" gezeigt. Und fertig". jar_manifest_sample02.jpg

Übertragung von JAR-Dateien

Übertragen Sie die erstellte JAR-Datei nach Sota. Für den Ablauf von hier war So registrieren Sie Ihr eigenes Glas in Sota - Qiita sehr hilfreich. Was geschrieben steht, ist im Grunde das gleiche.

In meiner Umgebung bin ich über WLAN mit Sota verbunden, daher werde ich es mit WinSCP übertragen. Erstellen Sie in Sota ein SotaRepeat-Verzeichnis unter / home / vstone / vstonemagic / app / jar und legen Sie die erstellte JAR-Datei darin ab.

Beschreibung der Anwendungseinstellungsdatei

Das von "Run App" von Sota auszuführende Programm ist in der Einstellungsdatei "/ home / vstone / vstonemagic / app / jar / app.properties" beschrieben. Schreiben Sie diese Einstellungsdatei wie folgt um.

app.properties


length=1              #Anzahl der Apps
Debug=false
TimeZone=Asia/Tokyo

app1.title=SotaRepeat
app1.workingdir=SotaRepeat/
app1.jar=SotaRepeat.jar
app1.type=app
app1.trigger=
app1.triggeroption=

Stellen Sie sicher, dass der Wert von length mit der Anzahl der Apps übereinstimmt. Wenn Sie eine neue App entwickeln, fügen Sie sie als "app2.title = hogehoge" hinzu. Starten Sie Sota nach Abschluss der Registrierung neu. Nach dem Neustart können Sie die entwickelte App ausführen, indem Sie die Taste auf der Rückseite drücken und "Einstellungsmodus" → "App ausführen" auswählen.

Artikel, auf die verwiesen wird

Recommended Posts

So entwickeln und registrieren Sie eine Sota-App in Java
So konvertieren Sie A in a und a in A mit logischem Produkt und Summe in Java
So zeigen Sie eine Webseite in Java an
So testen Sie eine private Methode und verspotten sie teilweise in Java
So erstellen Sie eine App mit einem Plug-In-Mechanismus [C # und Java]
So erstellen Sie eine Java-Umgebung in nur 3 Sekunden
So erstellen Sie einen Daten-URI (base64) in Java
So konvertieren Sie eine Datei in ein Byte-Array in Java
So komprimieren Sie eine JAVA-CSV-Datei und verwalten sie in einem Byte-Array
So erstellen Sie einen Java-Container
[Forge] So registrieren Sie Ihre eigene Entität und Ihr Entity Render in 1.13.2
Wie man JAVA in 7 Tagen lernt
Speichern von Zeichenfolgen von ArrayList zu Zeichenfolge in Java (Personal)
Was ist in "Java 8 bis Java 11" passiert und wie wird eine Umgebung erstellt?
Aufrufen und Verwenden der API in Java (Spring Boot)
So stellen Sie eine Kotlin (Java) -App auf AWS fargate bereit
Wie verwende ich Klassen in Java?
So benennen Sie Variablen in Java
So simulieren Sie das Hochladen von Post-Object-Formularen in OSS in Java
Unterschiede im Umgang mit Zeichenfolgen zwischen Java und Perl
So erstellen Sie ein Java-Array
So verketten Sie Zeichenfolgen mit Java
Entwicklung in einem Container mit --privileged und / sbin / init, der in VSCode Remote Containers übergeben wurde
So implementieren Sie einen Job, der die Java-API in JobScheduler verwendet
So erstellen Sie ein neues Gradle + Java + Jar-Projekt in Intellij 2016.03
So bedienen Sie automatisch einen in Java unter Windows erstellten Bildschirm
So erstellen Sie eine Java-Kalenderzusammenfassung
So implementieren Sie die Datumsberechnung in Java
So implementieren Sie den Kalman-Filter mit Java
Mehrsprachige Unterstützung für Java Verwendung des Gebietsschemas
So ändern Sie den App-Namen in Rails
So fügen Sie ein Video in Rails ein
So führen Sie eine Basiskonvertierung in Java durch
[Einführung in Java] So schreiben Sie ein Java-Programm
[Java] Wie man Dateien ausgibt und schreibt!
Erstellen Sie eine TODO-App in Java 7 Create Header
So erzwingen Sie Codierungskonventionen in Java
Einbetten von Janus Graph in Java
Lassen Sie uns eine Taschenrechner-App mit Java erstellen
So erhalten Sie das Datum mit Java
So veröffentlichen Sie eine Bibliothek in jCenter
Von Java nach C und von C nach Java in Android Studio
[Persönliches Memo] Interaktion mit dem Zufallszahlengenerator in Java
Die Geschichte, zu vergessen, eine Datei in Java zu schließen und zu scheitern
So zeichnen Sie JFR (Java Flight Recorder) auf und geben eine Dump-Datei aus
So übergeben Sie einen Proxy, wenn Sie REST mit SSL in Java auslösen
So ermitteln Sie den absoluten Pfad eines in Java ausgeführten Verzeichnisses
[Java] [Für Anfänger] So fügen Sie Elemente direkt in ein zweidimensionales Array ein
So erstellen Sie Ihre eigene Anmerkung in Java und erhalten den Wert
[Java] Verwendung der FileReader-Klasse und der BufferedReader-Klasse
Zwei Möglichkeiten, einen Thread in Java + @ zu starten
Code zum Escapezeichen von JSON-Zeichenfolgen in Java
Versuchen Sie, ein Bulletin Board in Java zu erstellen
So erhalten Sie eine Klasse von Element in Java
Ich wollte (a == 1 && a == 2 && a == 3) in Java wahr machen