癒し系'ネコロボ'を楽器でかまっちゃおう!

visibility493
visibility493

toioで動く息子作「癒やし系ネコロボ」、父作「楽器等繋げるシステム」のコラボです。
楽器等でいろいろかまって高評価 or ゴールでクリア、とゲーム仕立てにしていきます。

link https://protopedia.net/prototype/edit/5185
動画
開発素材

ガジェット

ツール

システム構成
system image

◆概要

  • MIDI楽器の演奏を受けてScratch 3 MIDI Extensionで解析処理し結果をtoioDoに送信
  • toioDoで、その他アクションの読み取り、'ネコロボ'の動作や反応を制御します。
  • 息子向けプログラミングパートは分かりやすくtoioDoで完結
  • アプリ間通信はWS(WebStack)ローカルサーバを活用
  • 直接外部通信機能ないtoioDoやScratchのため、ブラウザのコンソールへJS流し込みで通信実現
  • 電波影響を受けにくいようUSB接続基本、無線必要なところはWifiでなくBLEを使用
  • 持ち運び用にChromeBook使用、家デスクトップPC(WIN)でも同じ環境構築、2人同時開発!

※MakerFaireTokyo2024応募作品です(落選)


◆息子:プログラミング

◇ネコロボ

  • toioを安定動作させるためtoioDoを選択、鋭意製作中!
  • toioプレイマットで位置情報楽々取得、かまってやると、いろいろアクションを行います。
  • 他との通信機能はWSで、文字列変数一つブロードキャストと、受信文字列をキー入力に変換と、簡単実装
  • のせたM5Stackから画像や音がでます

◇ゲーム部分

  • 鋭意製作中!

◆父:プログラミング

◇MIDI受信・解析

  • Scratch+MIDI:USB-MIDIを受けて、コマンド送信(基本機能完成)
  • MIDIはScratch 3 MIDI Extension(機能拡張)つかってます
  • キーボードやフィンガードラム、ウィンドシンセの演奏を受け、BPM解析したりして、なんかいい感じにコマンドを送信(BPMそれらしい解析完成/その他開発中)

◇ネコロボに載せて、画面と音を出すM5stack

  • UIFlow+M5stack(BLE接続):コマンド送受信、画面切り替えやボタン操作に(通信機能完成/その他作成中)

◇各プログラムを繋げるローカルサーバ

  • ws: a Node.js WebSocket library 等々使ってローカルサーバを構築_参考(基本機能完成)
  • BLEはWebBluetoothAPIつかってます ※1分で切断するときはOS設定のファストペアリングOFF!

◆開発環境

  • 息子がVisualプログラミングしかできないので、彼のプログラミングパートをtoioDoだけで完結しました。
  • 父もコードあまり書きたくないので、Visualプログラミング多め(Scratch3/UIFlow)です。
  • ローカルサーバは、ws: a Node.js WebSocket library等Javascript。VisualCode とGithubでコード作成環境構築しました。

◇PC

  • 各種デモで持ち運びしやすいよう、家で一番性能良いモバイル、ChromeBook(Core i3)をメインに構成しました
  • 家のデスクトップPCでも、同じ環境を構築したので2台体制(父&息子)で開発ができて便利です。

◇無線通信

  • 電波影響を受けにくいよう極力有線(USB)、無線必要箇所をBLEにし、トラブルが予想されるWifiをつかわない構成にしました

◇アプリ間通信

  • WebStackを活用(参考)。それぞれが4文字ブロードキャストして、受信側でデコード
  • "T000"=MIDI楽器の演奏状態(BPM)を送信、"T000"だと演奏停止
  • "M000"=M5stackへのコマンドを送信、百の位:予約、十の位:鳴らす音の番号、一の位:表示する画像の番号、0は変更なし
  • "B000"=M5stackで押されたボタン番号を送信、B001-B003で左から順
  • toioDo&Scratchは外部通信機能ないですが、コンソールからJavascriptコードを流し込んで実行で、WebStack機能実現 ※ブラウザのメモリ消費が早いので定期的な再起動お勧め
  • M5stackは無線化するため、WebStackの内容をBLEで送受信してます

ストーリー

◆内容

  • いろいろかまうことで反応する「癒やし系'ネコロボ'」と、それを実現する「楽器等繋げるシステム」です。
  • ゲーム仕立てで一定時間内に'ネコロボ'がゴールに到達するか、'ネコロボ'の高評価を得ることでクリアとなります。

※MakerFaireTokyo2024応募作品です(落選)



◇経緯

  • 以前参加したワークショップで息子が作ったペットロボット'ネコロボ'が好評だったのでそれを元に制作しています。
  • これを見学楽しかったMakerFaireTokyoで自分たちも出展したい!と活動を開始しました。
  • 息子がデザインとペットの動きや基本制御をtoioDoでビジュアルプログラミングしています。
  • 父が、それ以外を、なんやかんやで頑張っています。
  • 父が以前otoone氏のMakerFaireTokyo出展を手伝った縁で、仲良くコラボ、楽しいものができないか画策中


◆Phase-00

  1. 「AI(機械学習)おもちゃ」開発ワークショップ」あるけど、何かしたい?と息子に問う
  2. 息子曰く「癒やし系ペットロボット」つくりたいというので、参加申し込み
  3. とりあえず、アイテム変更できたらいいんじゃね?と、toioの磁石センサーでアイテム判別できるように板に磁石をはっつけて、息子に渡す
  4. 息子プログラミング&工作準備する
  5. 息子ワークショップ参加、M5stack(xMod)をBLE経由で音声出す機器として借用し、現場でそれらしく完成
  6. 参加者の皆様から、好評を得る

◇DEBRIEFING

  1. 何回か見に行ったMakerFaireTokyoに出展どうよと息子に問う
  2. 息子曰く「やりたい」

◆Phase-01

  1. どうせなら楽器をつなげたいと、試行錯誤開始 
  2. Scratch3+Scratch 3 MIDI Extension(機能拡張)が、つかえた!
  3. toioDoはMIDI使えないので、上記と連動させる手があれば・・・
  4. あった!WebSocletを使えば、いけるですと!

  1. PCで環境作成、プロトタイプ動くように!
  2. ChromeBookで環境移植-参考、プロトタイプ動くように
  3. 旧知の仲のotoone氏との仲良し作戦発動
  4. 出展カテゴリ第1希望「20.ミュージック/サウンド」に確定!2023出展の皆様

◇SCRAMBLE!!

  1. もうGWだ、!締め切りまで時間ないぞ、動画とるから息子よ準備だ!
  2. GW終了だ!、動画&このページ公開できた!(動画編集はMS Clipchamp)
    11.05/09 MakerFaireTokyo2024応募完了!

◆Phase-01b

  1. toioにM5Stack乗せる台座を3Dプリンタで制作、何とかなりそう
  2. メモリが足りない問題解決のためM5Stack Core S3+UIFlow2での運用テスト実施。microSD保存のwav再生はOK、画像再生手段は内蔵メモリのみ?振動&8Encoderユニットの使いこなしは難しそう。
  3. 長期運用用に、BASE_AAA乾缶電池動作を模索。結果、5V給電しないか、USB-C給電からの特殊起動しかないと結論

◆Maker Faire Tokyo 2024

1.[締切]5月16日(木)13:00

2.[結果]6月20日(木)までに可否をメール連絡⇒落選!

3.[本番]9月21日(土)、22日(日)⇒見学!


◆いったんの中断

  • M5Stack Core S3+UIFlow2~ビジュアルプログラミング等について、小6の息子でも使えるような環境を整えたいと考えていたが、なかなか難しい
  • 息子の興味も他にいろいろあるのと、Maker Faire Tokyo 2024の落選もあり、いったん、本プロジェクトは中断します。
メンバー
  • user
    miyabixs @miyabixs

関連リンク

同じニオイがする作品
  • event 【簡単スマート管理システム】スマぽち
  • event visuax 〜サクソフォーン初心者を対象とした ロングトーン練習支援システム〜
  • event Boundary Blur:球体型ロボットと複合現実を活用したマルチエージェントシステム
  • event Music Derby - 音楽で動物を競争させる

Proto lovers ♥
user

作品を登録しよう

モノづくりしている人に、つくった作品を見てもらえ、リアクションがもらえるかも?

close

目次


Proto lovers ♥
user