OGIMOノート

6歳の娘と、4歳の息子(脳性麻痺)を持った父親エンジニアの備忘録。自作の電子工作おもちゃ/リハビリ器具の製作記録、勉強記録を残していきます

【自作リハビリ器具/電子工作】歩くと効果音の鳴るメロディ靴 Ver.3 を作ってみた

はじめに

以前に息子のリハビリのモチベーション向上&歩こうとする意欲を上げるために、『靴に体重を乗せると効果音の鳴るメロディ靴』を作ってみた。

ogimotokin.hatenablog.com

このコンセプト自体はよかった様で、最初は息子も「なんだなんだー?」と興味を持ってくれていたのですが、残念ながら長続きせず。
原因を分析したところ、
 ・靴とスピーカーボックスが有線ケーブルでつながっていて、足をケーブルに絡めてしまったりで運用に難色あり
 ・音だけだと息子の興味が長続きせず。。。

そんな中、先月に娘が「Nintendo LABOで弟が歩く練習が出来る靴を作ろう!」という事で、Nintendo LABOで『靴に体重を乗せると効果音の鳴るメロディ靴 Ver.2』を父娘合作で発明してみた。

これの反応はなかなか良好でした。良好だったポイントとしては
 ・足をフリフリすると靴も振動する(バイブレーション)
 ・足のフリフリに応じて、タブレット画面も光る&音が鳴る(音は娘チョイス)
でした。振動もさる事ながら、タブレットに大きく光が音と同時に見えるのがうけたみたい!

じゃあ、これを実際に運用していこうとしていたが、これも長続きせず。。。。

原因はというと、
妻&娘が毎日Nintendo Switchで別ゲームを遊び続けるので、リモコンが確保できない事!!!(笑)

まぁ、これだけが要因ではないのですが、せっかくなら専用で新たにメロディ靴を起こそうと思った訳です。

要求仕様

①靴部とスピーカ部はケーブルレス
 (可能ならスピーカも靴に入れたいが、まだそこまで至れず)
②スピーカ部はVer.1のものをできる限り流用する事
 (スピーカをもう一回作るのは面倒くさいので)
③靴に体重をかけた際に、靴を光らせる&振動させる
 (足を動かす事への興味を引き付ける目的)
④靴を光らせる際の体重量(閾値)は簡単に変更できる様にする
 (息子の成長に柔軟に対応できる様に)
⑤足が当たる事が懸念されるので靴部分のモジュールは壊れにくく作る
 (ちゃんとした外装をつける)

そんな完成品は以下。なお、靴部のモジュールは3Dプリンタで外装設計した筐体に収めてみた。
f:id:motokiinfinity8:20180715020713j:plain

TWELITE DIP導入

そもそもどうやってケーブルレスを実現するか、という事で、無線モジュールを検討開始。

WifiはAPが必要になるから宅外に持っていくとソフト書換えが発生して面倒やなぁ、
Bluetoothは親1対子2みたいな通信が簡単に構築できるか不安だなぁ、
と悩んでいた時、たまたま見つけたTWELITE DIPに注目!

TWELITEはモノワイヤレス株式会社のZigbee(2.4GH)無線モジュール。
消費電力が低い、簡単にネットワークが構築できる事、モジュールがコンパクトである事が特徴だ。

個人的に一番気に入ったのは、子機の入出力信号(デジタル/アナログ)が親機の入出力信号にミラーリングされる点。
つまり、無線接続であるのにあたかも有線でつなげている様な感覚で使える!

超簡単!標準アプリ(App_Twelite) - MONO-WIRELESS.COM

子機へのデジタル入力(4本)→親機からのデジタル出力(4本)
子機へのアナログ入力(4本)→親機からのデジタルPWM出力(4本)
親機へのデジタル入力(4本)→子機からのデジタル出力(4本)
親機へのアナログ入力(4本)→子機からのデジタルPWM出力(4本)

要求仕様で上げていた「スピーカー部はVer1(有線)と共用できる事」も実現できそう!
うまくやればソフト開発なしで出来る気がしてきた!!
という事で TWELITEを導入してみる事に。

全体ハードシステム

Ver1(有線版)と 今回のVer.3(TWELITE無線版)のシステム比較が以下の図。

f:id:motokiinfinity8:20180715010926j:plain

Ver.1では、靴からの感圧センサー値を見て、ある閾値以上の値になればスピーカ出音& LED制御という仕組みが入っていたので、その制御仕様をそのまま使えそうな事が確認できた。LED+振動モータをスピーカ部から制御せず、靴部内で完結させる案も考えたが将来的な仕様拡張性を優先して、スピーカ部で制御を集約する仕様とした。
(例えば、左足に体重をかけた後、右足に体重をかけた後でないと、左足のLED+振動モーターがONにならない様な仕様に変更する場合、左右両方の状態が分かるスピーカ部で制御する様がやりやすいから)

TWELITE設定

「超簡単!標準アプリ(App_Twelite)」モードを使うので、特に購入時からソフトの書き換えの必要はなし。ただし、1対2通信を行うため、設定値のみ変更を行った。
変更方法は下記参照
設定変更(インタラクティブ)モード - MONO-WIRELESS.COM

・a: set Application ID を変更 (なんでもよいが、全モジュールで統一させる)
・z: PWM周波数 を10KHzに変更 (LPF回路でリップル成分を減らすため)

回路設計(子機側)

コンパクトにしたいため、電源としてはボタン電池を採用。振動モーター等を動かすので電流容量は必要と思ったので、CR3023を使用。1個当たり3Vだが、TWELITE DIPは3.3V駆動でやや不安が残るため、「CR3023×2 (6V) → LDOで3.3V電圧駆動」とした。LEDは10mA程度でも十分光量が確保できそうなため、端子に直接(抵抗経由で)接続した。ただし、振動モーターは同程度の電流をひっぱる懸念があったため端子は別に分けた。

回路設計(親機側)

親機側はスピーカ部と有線接続する形とした。スピーカ部のマイコン端子電圧は5V、TWELITE DIP端子電圧は3.3Vなので、両者の接続のためレベルシフタICを間に挟んだ。注意すべきは、子機から来る感圧センサー値。子機側ではアナログ値で取得して、親機ではPWM値で来るため、5Vへのレベルシフト後にRCフィルタでLPFを形成してアナログ電圧にしてやる必要がある。
フィルタ計算に使ったサイトは以下。

CRローパス・フィルタ計算ツール

手元にある部品で極力カットオフ周波数を落とせる組み合わせが、C=1uF/R=510Ω であった。これでカットオフ周波数は約312Hz。1kHzのPWMに対してはかなり原信号成分が残ってしまうため、PWM周波数をdefaultから一桁分変更する事にした。まぁ、趣味なのでこの程度で良いだろう。

出来上がった回路は以下。
f:id:motokiinfinity8:20180715014607j:plain


なお、ブレッドボード図は、Fritzingで作成している。
Fritzing Download

外装設計

コンパクトに設計すべき子機側をくみ上げてみた。ユニバーサル基板にうまく積層できたのではなかろうか。


f:id:motokiinfinity8:20180715021012j:plain



ここまで来たら、筐体も付けたくなる!
ちょうど良い勉強の機会なので、自力で3D-CADで筐体設計もしてみた。

使用するソフトは fusion360
参考書を読みながら、試行錯誤しながら作ってみた。

3D-CADでの出来上がりはこんな感じ。サイズ感が分からないので、ユニバーサル基板や電池パックも書いてみた。
このおかげでかなり仕上がりのイメージがつかめた!やはり、視覚化するってとても大事。

f:id:motokiinfinity8:20180715014909j:plain

そして、3Dプリンタを所有する友人にお願いして作ってもらったのが以下。

f:id:motokiinfinity8:20180715020820j:plain


完成動画

マリオのコイン音の場合


息子の好きなピタゴラスイッチ音の場合

やはり、好きな音楽になると食いつきが違う!母の手を引っ張ってきて、「押してー!」とアピールしている様子が見える。
この様に、その時の好みに応じて柔軟に対応できるのが、このメロディ靴の良いところ。

LEDと振動モータをつけたのも良い傾向ですが、LEDを靴につけた分、下向きの姿勢になってしまうのが残念だった。
やはりLEDは体の正面にする必要がありそうですね。失敗したなぁ(>_<)
こりゃあ、さらに改良版が必要そうだ。

先は長いなぁ~ 頑張ろう!