Wir haben den Entwicklungs- und Registrierungsfluss der Sota-App mit Java zusammengefasst. Die Quelle der in diesem Artikel erstellten App finden Sie unter GitHub.
In diesem Artikel haben wir eine Anwendung für die Intel (R) Edison-Version Sota (Entwicklerversion) entwickelt.
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.
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.
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).
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.
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.
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".
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".
Ü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.
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.
Recommended Posts