FunnyGeek

Home > This page

「ラピロ」Windowsのソリティアみたいなノリで、プチゲームを搭載してみる。

ゴール設定(ディスプレイの無いAIロボットでも遊べる山手線(古今東西)ゲーム)

AIロボットになることを夢見るラピロ(RAPIRO)にはRaspberry PI3を搭載しています。音声認識と音声合成で会話が出来るようになったAIロボットと一緒にみんなで遊べるゲームって何でしょう。せっかく手足があるから、じゃんけん?あっちむいてホイ?一瞬であきちゃうし、一人でしかプレイできない。あ、そうだ!みんなで順番に参加できて、会話だけで楽しめるゲーム、「しりとり」「山手線ゲーム」があった。iPhoneのSiriに聞いたら「しりとり」には付き合ってくれたけれど、山手線ゲーム(古今東西)は遊び方を説明するだけで、一緒に遊んでくれなかった。Siriがやらないなら、うちのラピロに実装してみよっと。山手線の駅名だけなら、簡単なSQLデータベースを使う練習にもなるし、データを入れ替えれば、古今東西、いろんなテーマで遊べるはずです。このゲームなら、いま話題の新しいAIスピーカーにも搭載できるかな。

ラズパイ(Raspberry Pi):ディスプレイの無いAIロボットで遊べる山手線(古今東西)ゲーム

「山手線ゲーム」を作る。

ゲームの流れ

「山手線、出発」という音声コマンドを受け付けると、ラピロが「ちゃん、ちゃん。品川新駅」と喋ってスタートします。最初にAさんが「xx駅」と山手線の駅名を答えると、正解か不正解(回答済み)かを判定し、正解ならラピロも「xx駅」と答えます。次の人に交代してBさんが「xx駅」と回答することで、大勢でもゲームに参加できます。全ての駅名を答えるか、3回間違えると終了です。

ラピロ(Rapiro):ディスプレイの無いAIロボットで遊べる山手線(古今東西)ゲーム

工夫した点

駅名のリストは、回答済み/未回答のフラグを追加できるようにSQLデータベース化した。山手線の駅は、新品川を追加して全部で30個なのでこの程度のデータならテキストファイルでも良かったけれど、今回はSQLも使ってみたかっただけ。ライブラリは「SQLite」。

動作パラメータを簡単に作る工夫

12個もあるサーボモーターの位置を確認して、テストコマンドやファームウェアの書式に毎回書き直すのは大変なので、モーター角度を入力したら自動でpythonコマンドやArduino配列データに変換するExcelファイルを作ったので、デバックにかかる時間を大幅に短縮できた。

改造後のサンプルコード

私のラピロでの設定値です。最初に組み立てたときのサーボモーターの位置合わせで初期の角度調整が必要です。

a
  

まとめ

少し根気が必要ですが、ラピロのArduinoファームウェアの動作パターンを変更するだけで、独自の動作に改造できます。例えば、左右に振り替えるときも、腕の動きが加わるだけですごく自然な動作に見えます。目指したのは赤い彗星並みに動作性能1.3倍。ラピロのサンプル動作は、少しぎこちないので、カッコいい動作をみんなで公開できるといいなーと思いました。

▲上に戻る