Comment développer et enregistrer une application Sota en Java

Nous avons résumé le flux de développement et d'enregistrement de l'application Sota à l'aide de Java. La source de l'application créée dans cet article se trouve sur GitHub.

Environnement de développement

Dans cet article, nous avons développé une application pour Intel (R) Edison version Sota (version développeur).

Comment développer l'application Sota

Dans la documentation officielle, il existe deux façons de développer l'application Sota:

VstoneMagic est un logiciel de programmation pour Sota qui développe des applications en connectant des blocs d'instructions pré-préparés. En tant qu'avantage de VstoneMagic, le document officiel décrit comment enregistrer l'application et vous pouvez exécuter l'application créée à partir de "Exécuter l'application" simplement en utilisant Sota lui-même. Cependant, il existe des restrictions sur le développement d'applications en raison des spécifications qui connectent les blocs d'instructions. Par conséquent, dans cet article, nous développerons une application en Java. La méthode d'enregistrement des applications développées en Java n'est pas écrite dans la documentation officielle, je vais donc vous expliquer comment le faire ci-dessous.

Préparation de l'environnement de développement

Tout d'abord, [Essayez de programmer avec Java](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% Suivez E3% 81% BF% E3% 82% 8B) pour exécuter l'exemple de programme. Dans ce qui suit, nous supposerons que vous avez Eclipse comme environnement de développement et `` SotaSample '' comme exemple de projet de programme.

Créer un nouveau projet

À partir de là, nous développerons des applications en Java. Dans cet article, Sota développera une application qui reconnaît ce que vous dites et vous le renvoie. C'est la même chose que SpeechRecSample.java '' dans SotaSample ''.

Tout d'abord, créez un nouveau projet à partir de "Fichier" -> "Nouveau" -> "Projet Java". Le nom du projet doit être `` SotaRepeat ''. Au fait, lors de la gestion avec GitHub, je pense que la coopération et le résumé de GitHub et Eclipse - Qiita sera utile.

Après avoir créé un nouveau projet, faites un clic droit sur le dossier src → "Nouveau" → "Package" pour créer un package. J'ai nommé le package `` com.example.sotarepeat '' (je ne sais pas comment nommer le package).

Implémentation du programme Java

Faites un clic droit sur le nom du package → "Nouveau" → "Classe" pour créer le fichier Java principal SotaRepeat.java et l'implémenter. Le déroulement de l'application est le suivant.

  1. Utilisez la reconnaissance vocale pour obtenir ce que vous dites sous forme de chaîne
  2. Laissez Sota prononcer la chaîne de caractères obtenue avec TextToSpeech
  3. Répétez les étapes 1 et 2 autant de fois que nécessaire

Le `` SotaRepeat.java '' implémenté est répertorié ci-dessous.

SotaRepeat.java


/* SotaRepeat.java
 *Une application qui renvoie le résultat de la reconnaissance vocale comme un perroquet avec TTS
 */

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 et prise de communication / classe d'accès mémoire
		CRobotMem mem = new CRobotMem();
		//Classe de contrôle de mouvement pour Sota
		CSotaMotion motion = new CSotaMotion(mem);
		SpeechRecog recog = new SpeechRecog(motion);
		MotionAsSotaWish wish = new MotionAsSotaWish(motion);

		if (mem.Connect()) {
			//Initialiser VSMD aux spécifications Sota
			motion.InitRobot_Sota();
			motion.ServoOn();

			for (int i=0; i<LOOP_NUM; i++) {
				//Reconnaissance vocale (prend en charge la voix jusqu'à 10 secondes)
				RecogResult result = recog.getRecognition(10000);
				if (result.recognized) {
					//TextToSpeech le résultat de la reconnaissance
					wish.Say(result.getBasicResult(), MotionAsSotaWish.MOTION_TYPE_TALK);
					//CPlayWave.PlayWave(TextToSpeechSota.getTTSFile(result.getBasicResult()),true);

					if(result.getBasicResult().contains("fin")){
						CPlayWave.PlayWave(TextToSpeechSota.getTTSFile("J'ai fini"),true);
						break;
					}
				}
				if (i == LOOP_NUM - 1) {
					CPlayWave.PlayWave(TextToSpeechSota.getTTSFile("Je suis fatigué alors j'ai fini"), true);
				}
			}
			motion.ServoOff();
		}
	}
}

Si Eclipse se fâche que cela n'existe pas lors de l'importation de jp.vstone.RobotLib.CPlayWave etc., cliquez avec le bouton droit sur SotaRepeat → "Build Path" → "External Archive" Depuis "Ajouter", spécifiez sotalib.jar dans le dossier lib dans SotaSample.

Créer un fichier jar

Créez un fichier jar pour enregistrer l'application développée dans Sota. Tout d'abord, faites un clic droit sur SotaRepeat → sélectionnez "Exporter" → "Fichier JAR". Assurez-vous que Sota Repeat est coché sur l'écran "JAR Export", spécifiez le fichier jar vers lequel exporter et cliquez sur "Next". Laissez les paramètres par défaut pour "Options du package JAR" et cliquez sur "Suivant". Pour «Spécifications du manifeste JAR», cochez «Enregistrer le manifeste dans l'espace de travail» comme indiqué dans l'écran ci-dessous et spécifiez le nom du fichier manifeste. Spécifiez également `` SotaRepeat '' comme classe principale. Et.. Voila".

jar_manifest_sample01.jpg

Ensuite, éditez le MANIFEST.MF '' créé. S'il est laissé tel quel, le chemin de classe n'est pas décrit, donc une erreur se produira lors de l'exécution de l'application. Si vous avez créé un fichier manifeste comme l'image ci-dessus, vous devriez voir MANIFEST.MF`` ressembler à ceci:

MANIFEST.MF


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

Ajoutez la description suivante ici.

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

Cela peut être inutile car il est ajouté au chemin de classe sans discrimination, mais c'est le miso que / home / vstone / lib / gson-2.6.1.jar est ajouté. Je ne l'ai pas écrit au début car il n'est pas inclus dans le dossier lib de SotaSample, mais quand je l'ai exécuté sur la console Sota, j'ai eu une erreur disant que gson était nécessaire, alors je l'ai ajouté.

Utilisez ce fichier manifeste pour créer un nouveau fichier jar. Créez un fichier JAR de la même manière que précédemment, mais cochez «Utiliser le manifeste existant dans l'espace de travail» dans «Spécifications du manifeste JAR» comme indiqué ci-dessous. Et.. Voila". jar_manifest_sample02.jpg

Transfert de fichiers jar

Transférez le fichier jar créé vers Sota. Pour le flux à partir d'ici, Comment enregistrer votre propre pot dans Sota --Qiita a été très utile. Ce qui est écrit est fondamentalement le même.

Dans mon environnement, je suis connecté à Sota via un LAN sans fil, je vais donc le transférer en utilisant WinSCP. Créez un répertoire SotaRepeat '' sous / home / vstone / vstonemagic / app / jar`` dans Sota, et placez-y le fichier jar créé.

Description du fichier de paramètres d'application

Le programme à exécuter depuis "Run App" de Sota est décrit dans le fichier de configuration `` / home / vstone / vstonemagic / app / jar / app.properties ''. Réécrivez ce fichier de paramètres comme suit.

app.properties


length=1              #Nombre d'applications
Debug=false
TimeZone=Asia/Tokyo

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

Assurez-vous que la valeur de longueur '' correspond au nombre d'applications. De plus, si vous développez une nouvelle application, ajoutez-la en tant que `ʻapp2.title = hogehoge. Maintenant que l'enregistrement est terminé, redémarrez Sota. Après le redémarrage, vous pouvez exécuter l'application développée en appuyant sur le bouton à l'arrière et en sélectionnant "Mode de configuration" → "Exécuter l'application".

Articles référencés

Recommended Posts

Comment développer et enregistrer une application Sota en Java
Comment convertir A en A et A en A en utilisant le produit logique et la somme en Java
Comment afficher une page Web en Java
Comment tester une méthode privée et la simuler partiellement en Java
Comment créer une application avec un mécanisme de plug-in [C # et Java]
Comment créer un environnement Java en seulement 3 secondes
Comment créer un URI de données (base64) en Java
Comment convertir un fichier en tableau d'octets en Java
Comment compresser un fichier JAVA CSV et le gérer dans un tableau d'octets
Comment créer un conteneur Java
[Forge] Comment enregistrer votre propre Entité et Entité Render dans 1.13.2
Comment apprendre JAVA en 7 jours
Comment stocker des chaînes de ArrayList à String en Java (personnel)
Que s'est-il passé dans «Java 8 to Java 11» et comment créer un environnement
Comment appeler et utiliser l'API en Java (Spring Boot)
Comment déployer une application kotlin (java) sur AWS Fargate
Comment utiliser les classes en Java?
Comment nommer des variables en Java
Comment simuler le téléchargement de formulaires post-objet vers OSS en Java
Différences dans la gestion des chaînes entre Java et Perl
Comment créer un tableau Java
Comment concaténer des chaînes avec Java
Comment développer dans un conteneur avec --privileged et / sbin / init passés dans VSCode Remote Containers
Comment implémenter un travail qui utilise l'API Java dans JobScheduler
Comment créer un nouveau projet Gradle + Java + Jar dans Intellij 2016.03
Comment faire fonctionner automatiquement un écran créé en Java sous Windows
Comment créer un résumé de calendrier Java
Comment implémenter le calcul de la date en Java
Comment implémenter le filtre de Kalman par Java
Prise en charge multilingue de Java Comment utiliser les paramètres régionaux
Comment changer le nom de l'application dans les rails
Comment insérer une vidéo dans Rails
Comment faire une conversion de base en Java
[Introduction à Java] Comment écrire un programme Java
[Java] Comment sortir et écrire des fichiers!
Créer une application TODO dans Java 7 Créer un en-tête
Comment appliquer les conventions de codage en Java
Comment intégrer Janus Graph dans Java
Créons une application de calcul avec Java
Comment obtenir la date avec Java
Comment publier une bibliothèque dans jCenter
De Java à C et de C à Java dans Android Studio
[Mémo personnel] Comment interagir avec le générateur de nombres aléatoires en Java
L'histoire de l'oubli de fermer un fichier en Java et de l'échec
Comment enregistrer JFR (Java Flight Recorder) et générer un fichier de vidage
Comment passer un proxy lors du lancement de REST avec SSL en Java
Comment obtenir le chemin absolu d'un répertoire s'exécutant en Java
[Java] [Pour les débutants] Comment insérer des éléments directement dans un tableau à deux dimensions
Comment créer votre propre annotation en Java et obtenir la valeur
[Java] Comment utiliser la classe FileReader et la classe BufferedReader
Deux façons de démarrer un thread en Java + @
Code pour échapper aux chaînes JSON en Java
Essayez de créer un babillard en Java
Comment obtenir une classe depuis Element en Java
Je voulais que (a == 1 && a == 2 && a == 3) vrai en Java