
Petoi Bittle 入門 (17) - 頭をなでたら喜ぶようにする
「Petoi Bittle」で頭をなでたら喜ぶようにする方法をまとめました。
前回
1. センサーからのスキル実行
「頭をなでたら喜ぶ」とは、具体的には、「タッチセンサー」がタッチを感知した時、挨拶の「スキル」を実行するという処理になります。この時、なで続けて、連続して「タッチイベント」が発動すると困るので、「1フレーム前のタッチ状態がOFF かつ 現フレームのタッチ状態がON」の時のみ、発動するようにします。
2. OpenCat.inoの編集
どんな「イベント」が発動した時に、どんな「スキル」を実行するかは、「OpenCat.ino」で記述します。
(1) グローバル変数に「preTouch」に追加。
1フレーム前のタッチ状態(0 or 1)を保持します。
int preTouch = 0;
(2) IRリモコンとシリアル通信の入力処理の下に、タッチセンサーの入力処理を追加。
// IRリモコンの入力
if (irrecv.decode(&results)) {
<省略>
}
// シリアル通信の入力
if (Serial.available() > 0) {
<省略>
}
// タッチセンサーの入力
int touch = digitalRead(6);
if (touch == 1 && preTouch == 0) {
strcpy(newCmd, "hi");
token = 'k';
newCmdIdx = 2;
}
preTouch = touch;
IRリモコンの入力のコードを参考に、挨拶のスキルを実行するコードを追加しました。具体的には、newCmdに"hi"、tokenに'k'、newCmdIdxに2を指定しました。newCmdIdxは0以上を指定すれば良く、ビープ音が変わるのみのようです。
3. 実行
(1)「Bittle」に「タッチセンサー」を接続
4番目のソケットのD6とD7を使用します。
(2) お腹のバッテリーをOFFした後、アップローダーを繋いで、「OpenCat.ino」を書き込む。
(3) アップローダーを抜いて、お腹のバッテリーをON。
(4) 「タッチセンサー」を「Bittle」の頭にテープで貼り付けて、頭をなでて、挨拶することを確認。