Example 2022.8.19

Flag Game Ver.2 旗揚げゲーム Ver.2

旗揚げゲームを自動出題させよう! 旗揚げゲームを自動出題させよう!

使っているVIVIWARE Cell VIVIWARE Cell

  • Core
  • Button
  • Servo Driver

その他使っているもの Other Parts

  • 付属の大サーボLarge Servo (Included in the set)
  • 付属の電池ボックスBattery Box (Included in the set)
  • 単3電池(4本)AA Batteries (4 pcs)
  • のりGlue
  • ケース
  • 3Dプリンター
  • 付属の大サーボLarge Servo (Included in the set)
  • 付属の電池ボックスBattery Box (Included in the set)
  • 単3電池(4本)AA Batteries (4 pcs)
  • のりGlue

はじめに

03.旗揚げゲーム

今回は、この作例を元にタブレットに問題を読み上げてもらって、判定までしてくれるようにしようと思います!

 

仕組みを考える

ざっとこんな感じにプログラミングができたら良さそうな感じに構成。

いざプログラム

まず完成した全体。

機能ごとに分けるとこんな感じ。

各機能紹介

プレイヤーの入力、サーボモーターの駆動

VIVIWARE Cell Button(以降、Button Cell)のON/OFFをサーボモーターの2つの向きに割り当てられるように変換します。

問題生成

今回は「色」「セリフパターン」の2項目をランダム生成します。

メモ:読み上げのパターンとしては4通りあるけれど、上げている時に「上げて」と言われるのは不自然なので没としました。

旗の状態記録、正誤判定

現在の旗の状態から生成された問題を合成した答えとなる旗の向きと、Button Cellから入力された状態を比較して正誤判定します。

正誤判定のタイミングは、読み上げが終わった後に信号を受け取った時です。

文章生成

読み上げるための文章を生成します。

問題生成では「上げ下げ」ではなく、「変更の有無」を生成するので、現在の状態を元に「上げ下げ」に変換して文章を生成します。

例えば、現在「赤が上がっている」ならば「変化あり」の場合、「赤下げて」を生成します。

 

正誤判定までの時間

問題数が増えると、読み上げてから正誤判定までの時間が短くなって、難しくなるようにしました。

ケースに収納

サーボモーターをいい感じに固定したい・・・

21. デジタルでアナログな時計 その2

そこで!

過去に作ったこの時計のケースをそのまま流用することにします!

使いたいのは右の2つのサーボモーターなので、左の穴は隠すように表面の紙を作ります。

さらに旗を3Dプリント。

適当な赤と白の素材を貼って、旗の完成!

旗の間が寂しいのでいらすとやから拝借。

後で貼り替えられるように、マスキングテープでちょっと工夫します。

これで完成!!

 

動画

プロジェクトシェア

おわりに

文章生成や、正誤判定に普段あまり使わないXOR モジュールを使いました。
こんな使い方もいいですね!

「赤下げないで白上げる」などの表現は複雑なので今回は保留しました。(残骸がある)

また、この記事を書いているときに、ボタンを連打したときのデバッグをしていないことに気づいてしまいました。
今のプログラムだと、ボタンを連打すると大変なことになると思うのでお気を付けください・・・

他にも、現在の問題数を表示したりできたらいいかもしれないですね!

ではまた!

(Created by Kazuhiro Maeda)

はじめに

03.旗揚げゲーム

今回は、この作例を元にタブレットに問題を読み上げてもらって、判定までしてくれるようにしようと思います!

仕組みを考える

ざっとこんな感じにプログラミングができたら良さそうな感じに構成。

いざプログラム

まず完成した全体。

機能ごとに分けるとこんな感じ。

各機能紹介

プレイヤーの入力、サーボモーターの駆動

VIVIWARE Cell Button(以降、Button Cell)のON/OFFをサーボモーターの2つの向きに割り当てられるように変換します。

問題生成

今回は「色」「セリフパターン」の2項目をランダム生成します。

メモ:読み上げのパターンとしては4通りあるけれど、上げている時に「上げて」と言われるのは不自然なので没としました。

旗の状態記録、正誤判定

現在の旗の状態から生成された問題を合成した答えとなる旗の向きと、Button Cellから入力された状態を比較して正誤判定します。

正誤判定のタイミングは、読み上げが終わった後に信号を受け取った時です。

文章生成

読み上げるための文章を生成します。

問題生成では「上げ下げ」ではなく、「変更の有無」を生成するので、現在の状態を元に「上げ下げ」に変換して文章を生成します。

例えば、現在「赤が上がっている」ならば「変化あり」の場合、「赤下げて」を生成します。

正誤判定までの時間

問題数が増えると、読み上げてから正誤判定までの時間が短くなって、難しくなるようにしました。

ケースに収納

サーボモーターをいい感じに固定したい・・・

21. デジタルでアナログな時計 その2

そこで!

過去に作ったこの時計のケースをそのまま流用することにします!

使いたいのは右の2つのサーボモーターなので、左の穴は隠すように表面の紙を作ります。

さらに旗を3Dプリント。

適当な赤と白の素材を貼って、旗の完成!

旗の間が寂しいのでいらすとやから拝借。

後で貼り替えられるように、マスキングテープでちょっと工夫します。

これで完成!!

動画

プロジェクトシェア

おわりに

文章生成や、正誤判定に普段あまり使わないXOR モジュールを使いました。
こんな使い方もいいですね!

「赤下げないで白上げる」などの表現は複雑なので今回は保留しました。(残骸がある)

また、この記事を書いているときに、ボタンを連打したときのデバッグをしていないことに気づいてしまいました。
今のプログラムだと、ボタンを連打すると大変なことになると思うのでお気を付けください・・・

他にも、現在の問題数を表示したりできたらいいかもしれないですね!

ではまた!

(Created by Kazuhiro Maeda)

Share

share
close

Share