How to BTK: 基本プログラム

by Jun Toyoda

ベゼリーおしゃべりキット(BTK)の基本プログラムについて説明します

Instructions

Step 1

「ベゼリーおしゃべりキット」の基本スケッチは、公式ページ(bezelie.com/blog/?page_id=357)からダウンロードしてください。

Step 2

// から行末まではコメントです。

Step 3

ベゼリーには3つのサーボが使われていますが、首の縦振りをPitch、首の横回転をRoll、体の横回転をYawと呼んでいます。

Step 4

ここで3つのサーボの中心角度を決めています。基本は90度ですが、サーボをセンタリングしてもベゼリーの体が傾いている場合は調整してみてください。

Step 5

変数destP、destR、destYはそれぞれサーボ動かす時、目的角度を設定するために使います。設定できる値の範囲はここに書いてありますので参考にしてください。

Step 6

変数spdはサーボを動かす際、速度を指定するために使います。0を指定すると最速で、遅くしたいときは大きな値にしてください。

Step 7

void setup() { }には起動後1回だけ実行する処理を書きます。

Step 8

声の質を設定しています。SetAccentはアクセントの強さで最弱0標準64最強255。SetPitchは声の高さで最高0標準64最低255。SetSpeedは発話速度で最遅50標準100最速300。

Step 9

atp.Synthe()はAquesTalk pico LSIを喋らせるための関数ですが、#J、または#Kを指定するとチャイム音を鳴らすことができます。

Step 10

delay()は何も処理をせず待つための関数です。値は1000分の1秒で指定するので、1000なら1秒、500なら0.5秒待ちます。

Step 11

void loop() { }には何度も繰り返し実行する処理を書きます。

Step 12

Studuino miniの場合アナログ入力ピン6(A6)には照度センサーが取り付けられてます。ここでは明るさが200以上の場合のみ下記の処理を行えと記述しています。暗い場合は処理を行いません。

Step 13

サーボを動かすにあたって速度を指定しています。動きが遅いと思ったらこの数字を小さく、速いと思ったら大きくしてください。

Step 14

ここで体を反時計回りに横回転させています。変数destYにY軸の目標角度を代入し、servoMove()関数を呼べばサーボが回転します。

Step 15

続いて体を時計回りに回転させたあと、正面に戻しています。

Step 16

一瞬、動きを止めるため、delay関数を入れています。値は500なので、0.5秒待ちます。

Step 17

atp.Synthe()はAquesTalk pico LSIに喋らせる関数です。カッコの中の文字を変えれば、喋る言葉を変えることができます。

Step 18

ここではベゼリーにお辞儀をさせています。いったん下に向かせ、0.5秒待ったあと、水平に戻しています。

Step 19

ここでは顔を左右に回転させ、最後に元に戻しています。ちょっと速く動かしたいので、spdを5に設定しています。

Step 20

最後にちょっと長めの待ち時間を入れています。

Step 21

ここでデジタルIOにサーボを割り当てています。

Step 22

以上です。自分なりにいろいろ変えてみましょう。分からないことがあったら、facebookの「ベゼリー開発グループ」(www.facebook.com/groups/bezel…)で質問してみてください。

Step 23

音声合成LSI「AqeusTalk pico LSI」仕様書(http://www.a-quest.com/download/manual/atp3011_datasheet.pdf)