SotaでHelloWorld

Sotaがうちの子になったので、とりあえず定番のHelloWorldをSotaに言わせてみる。
![IMG_20161118_200657.jpg](https://qiita-image-store.s3.amazonaws.com/0/141310/d54c0134-c032-e63d-c580-69210f2d6f4f.jpeg)

アプリ開発ができるのは、今のところデベロッパー版のみ。
法人向けだけど、下記から購入可能。
https://sota.vstone.co.jp/home/

開発環境としてVstoneMagicが提供されているので、基本的はそれを使う。
VstoneMagicはWindows版のみ。
Sotaコミュニティからダウンロードできる。
https://sota.vstone.co.jp/sota/index.php

PCはWindows10 x64。
今回のSotaのバージョンは1.4.0。
VstoneMagicのバージョンは1.0.6047.29447(VstoneMagic_update20160803)。
VstoneMagicが使用するSotaライブラリのバージョンはSotaに合わせて1.4.0。

# ワークスペースの新規作成
ワークスペースとはプロジェクトのこと。
メニューの
`ファイル > ワークスペースの新規作成`
からワークスペースの新規作成をする。
![001.png](https://qiita-image-store.s3.amazonaws.com/0/141310/38c629f5-e171-6853-c935-ee7364fdf12c.png)

テンプレートはSotaのままで、名前、作成先を入力する。
![002.PNG](https://qiita-image-store.s3.amazonaws.com/0/141310/1d03a7d2-b18e-e948-686b-b15d3cb11f66.png)

# 発話ブロックの追加
VstoneMagicはブロックベースで実装を行う。
なので、HelloWorldと言わせたいなら、発話ブロックを配置して、発話内容を設定すればいい。

エクスプローラのmymain.javaをダブルクリックする。
mymain.javaのブロックが表示される。
![003.PNG](https://qiita-image-store.s3.amazonaws.com/0/141310/b21df28c-3fa8-753b-e432-28c757159798.png)

ツールボックスから
`対話 > 発話`
を見つける。
![004.PNG](https://qiita-image-store.s3.amazonaws.com/0/141310/b8456cbd-915c-6676-5d3f-8b6b7c7e5892.png)

それをmainというメソッドブロックの中にD&Dで入れる。
入れるときに、メソッドブロックの右の「＞」に重ねる感じにすると、「＞」がオレンジ色に変わる。オレンジ色になって離すと紺色に変わり、ブロックが連結される。
![005.PNG](https://qiita-image-store.s3.amazonaws.com/0/141310/808d2ac9-c4cb-c384-77f4-8b8725e1e6e9.png)

もし連結されていない場合は、発話ブロックの左の「＞」は赤色になっている。
この場合は、メソッドブロックの右の「＞」に発話ブロックの左の「＞」を当ててやって、オレンジ色になったら離す。

# 発話内容の設定
発話ブロックをダブルクリックする。プロパティダイアログが表示される。
発話内容は、say_wordsの値になる。
![006.PNG](https://qiita-image-store.s3.amazonaws.com/0/141310/a364e5c1-851c-388c-7442-06bf8797f5e6.png)

say_wordsの値(デフォルトでは「(String)"こんにちは"」)をダブルクリックする。
say_wordsの値の設定ダイアログが表示される。
定数入力:Stringの値を「ハローワールド」にする。
![007.PNG](https://qiita-image-store.s3.amazonaws.com/0/141310/7cd19323-869a-2df3-2034-0b0ed18dc0af.png)

Sotaは基本的に日本語しか話せないので、英単語の場合、期待する発話にならないことがある。
今回だと「Hello」は大丈夫なんだけど、「World」がうまく発話できていない。

# 接続先の設定
Sotaと通信するために、接続先の設定を行う。
`設定/通信 > 接続設定`
を選択する。
![008.png](https://qiita-image-store.s3.amazonaws.com/0/141310/90f26d8e-6fdb-b66e-8017-9a807456878a.png)

ロボットの設定ダイアログのリストの一番上の行を選択し、下部の設定変更ボタンを押下する。
リストの一番上の行(ユーザ名がroot)はEdison版のデフォルト設定になっている。
![010.PNG](https://qiita-image-store.s3.amazonaws.com/0/141310/1836b55c-e25d-9fb7-2e60-49fd601aa7a6.png)

ネットワークの設定ダイアログで、hostにSotaのIPアドレスを設定し、OKボタンを押下する。
![011.PNG](https://qiita-image-store.s3.amazonaws.com/0/141310/1f9ad0d2-1c01-78d9-ffea-e68d648ebd0c.png)

ロボットの設定ダイアログで、下部の接続ボタンを押下してしばらく待つと、PCアイコンが水色に変わる。
![012.png](https://qiita-image-store.s3.amazonaws.com/0/141310/26e56875-fc9c-f40d-3953-33a188d3a191.png)

接続できなかった場合はPCアイコンに×がつく。
切断状態だと黒色になっている。
![009.png](https://qiita-image-store.s3.amazonaws.com/0/141310/484f1172-6009-cca1-ade8-235ec3b2f45d.png)

一度設定すれば、このPCアイコンをクリックすることで、接続/切断ができるようになる。

# 実行
接続できたところで、実行してみる。
再生アイコンをクリックすると実行される。
![013.png](https://qiita-image-store.s3.amazonaws.com/0/141310/12c2ebd9-a979-f5ac-294d-e77bc0f38693.png)

実行するとこんな感じで発話する。
[![IMAGE ALT TEXT HERE](http://img.youtube.com/vi/KebZhTUE9os/0.jpg)](http://www.youtube.com/watch?v=KebZhTUE9os)

…かわいい！
ちなみに発話時の動作はランダムになっている。

# Sotaにアプリを登録する
この「HelloWorld」アプリをSotaに登録してみる。
メニューの
`設定/通信 > アプリケーションの管理`
を選択する。
![014.png](https://qiita-image-store.s3.amazonaws.com/0/141310/359c343c-8cc6-d9a8-f4cd-f6a8ac799366.png)

AppPropertiesダイアログが表示される。
![015.PNG](https://qiita-image-store.s3.amazonaws.com/0/141310/622d1777-8849-9fa5-7379-15c6693936b2.png)

AppTitleを任意のアプリ名にする。これはSotaが設定モードからアプリの実行を選択したときに、発話するタイトルになる。
左下部の「アプリケーションを登録・更新」ボタンを押下する。(僕のマシンの解像度の影響で一部文字が隠れている)
右のリストに追加されていれば、右下の「設定を本体に送信」ボタンを押下すれば、送信される。

今回のソースはGithubにあげた。
https://github.com/scarviz/SotaHelloWorld