今回の学び技術: 電動カート改造、回路ハッキング
はじめに(作成動機)
歩けない息子が自分の意志で自由に動ける様になるための練習用電動移動機器を作りたいというのが動機です。
電動移動機器を小さな子供のうちから慣れる事は子供の好奇心・成長に大きな効果があるとの研究もあり、息子の将来の可能性を考えると少しでも早く試したい!
本当は電動車椅子でやりたかったのですが、お値段が高く購入には踏み切れないので、まずは子供用おもちゃで操作練習をする事にしました。
しかし、自分で一から作るとなると時間がかかってしまう…(特に子供の体重に耐える強度のものを作ろうとすると金属加工等のノウハウがいるため手をこまねいていました)
という事で、まずは既製品をベースにちょい変更。
目を付けたのが、
子供用電動移動乗り物「mottoy」!!e-akros.com
本機の特徴は、子供用乗り物としては珍しい左右のタイヤが別々に動く独立二輪
つまり、前後だけでなく左右旋回も出来るので小回りも効き、車タイプの乗り物に比べて移動自由度が高い! 電動車椅子の移動感に近いので、これは練習にうってつけ!
という事で、さっそく購入!
しかし、、、残念ながら、操作レバーが左右2つ別々に付いている。例えば、右側旋回する場合、左レバーは前、右レバーは後ろに倒すイメージですが、、、知的発達も遅れている息子にはまずこの操作インターフェースは扱いきれない……。
という事で、このMottoyをベースに、息子に適した操作インターフェースに変更できる様なモビリティベースに改造したいと思う!
要求仕様① 息子が簡単に操作できるジョイスティックでモビリティを操る
(コントローラの置き場所は自由に変更できる事)
要求仕様② ジョイスティック以外の手段でも操作可能。簡単に交換できる事
※改造はあくまで自己責任ですので、ご注意ください(^^;
完成品
完成動画はこちら
電動車椅子練習に向けた息子用モビリティのハック成功! 自作の無線LEDリモコンから自由に操作可!
— おぎ-モトキ (@ogimotoki) October 21, 2018
オリィフェスで見た電動車椅子の物理ハックにしようとしたが、息子が触って壊さない様に回路ハックに変更
リモコンは様々に変更可能なので、息子に適したモノを随時開発予定#家族のためのモノ作り pic.twitter.com/a42V94QBLZ
先日に改造したモビリティを息子に使ってもらった。「前に動くよー!」みたいな予告音のお陰なのか、大きなモノが動く事自体は怖くなさそう~
— おぎ-モトキ (@ogimotoki) November 3, 2018
ただ、まだ実際に自分が乗る事は苦手のようです…… 座居固定も課題なので、ここも自作で補う必要ありそう。やることたくさん!#家族のためのモノ作り pic.twitter.com/v8KImeaEne
既製品を改造したおかげで、開発期間は約10日間
なお、コントローラ側は以前の記事で開発した
「LEDが光るジョイスティックコントローラ」です。
ogimotokin.hatenablog.com
ちなみに、ジョイスティック以外にも簡単に置き換えれる様にしてみた応用例として、Nintendo LABOのバイクToy-Conで操作してみました。
息子用モビリティの操作リモコンを好きなモノに入れ換えた事例。
— おぎ-モトキ (@ogimotoki) October 21, 2018
Nintendo LABOバイクToy-Con (らしきもの)でモビリティを操作してみた。先日のオリィフェス(@origamicat)で体験したNintendo LABO車椅子が面白かったので、我が家にも導入!
残念ながら子供用なので、自分で乗車体験が出来ないオチ(笑) pic.twitter.com/E3oAGfRxAl
なお、Nintendo LABOのバイクToy-Conでの操作方法は過去記事を参照ください。
(過去記事の対応から、今回向けに通信ルールを変更したのみです)
ogimotokin.hatenablog.com
ベース機体分析 (分解/ハッキング検討)
まずは制御マイコン部を見てみます。座席部分のフタをあけてみると、制御回路&バッテリーが収まっていました。
意外とスカス…もといシンプルに収まっている。これなら何とか回路構成を追えそうだ。
ネジを外して、基板部分を取り出してみます。
これもまた結構シンプル。両面基板なので配線の流れが追いやすいね。
そんな感じで、簡易回路図+ブロック図に起こしたのが下記図
一部間違いなどあるかもしれませんので、その場合はご容赦を ^^) _
ハック構想検討
どの様にハックするか? オリィ研究所で製作された「Nintendo LABOで動く車椅子」を先日体験させて頂きました。
https://twitter.com/Takeru_FTX/status/991267031520460800
それは電動車椅子のハンドルを物理サーボモータ×2で外部から物理ハックするものでした。同様の方法で、本Mottoyもハンドル部分を物理ハックしようと企んでましたが、残念ながら息子が触って壊す可能性があるため、今回はボツ。
なので、少し考え方を変えて、ハンドル部分に配線されているスイッチ自体をハックする「スイッチ回路ハック方式」に変更しました。
注目したのは、マイコンボードとスイッチ間を接続している10Pinのハーネス。
ここを分離/延長して、別途ハッキングマイコンに経由させて必要な信号のみをハッキングする方式を考えました。
ハックするのは、左右のレバー操作と繋がっている4本の信号(黄/緑/橙/青)。どうやら、モーターON時は L(GND)に、OFF時はOpenにする仕様なので、
トランジスタによるオープンドレイン回路を構築して、マイコンからモータ制御方向情報に応じたON/OFF情報を通知してもらえばOKそうですね。
必要部品
① M5stack : ESP32 Dev Kitでもよかったが、「動作事前通知(動きを事前に音声でお知らせ)」をやりたかったので簡単にスピーカ再生ができるM5stackを選択
② M5stack プロトタイプモジュール
③ 圧着コネクタ XHP-10 & ハウジング (分岐用ハーネスを作成するため)
④ M5stack電源用 6V→5Vレギュレータ
L7805CV STMicroelectronics | Mouser 日本
⑤ NPNトランジスタ×4個
ハードウェア改造
改造後の全体イメージは以下。
元の基板とハーネスの間に、自作追加延長ハーネスを追加して、その一部の信号をM5stackにつなげます。
こうすれば、もし将来的に誰かに譲渡する場合、元の市販品の状態に戻す事が出来ます。(Mottoy自体のハードウェアには手を加えていないため)
苦戦したのはモータ左後回転。他信号同様にNPNトランジスタ経由でGPIO制御する改造を試みましたが、何故かここだけ制御できませんでした。原因を追っていくと、黄色信号の電圧が特殊であった事でした。 他の端子はOpen時は3.3V電位なのですが、黄色信号のみなぜか 1.0Vのため、M5stackからのGPIO(3.3V)をトランジスタ ベースに接続してもONできない。
ここから、ベース電圧 > コレクタ電圧 になり ベース→コレクタ方向に電流が流れる(トランジスタがPNダイオードとして動作してしまう)事が原因と推定しました。
しかし、トランジシタVf特性上 ベース電圧は0.7V以上である必要がある。悩んだ結果、ベース電圧を抵抗分圧により コレクタ電圧と同程度(1.0V)にする事で無事にON/OFF出来る様になりました。
ソフトウェア制作
ソフトウェアについては、ざっと以下の図の思想で作成しています。
① コントローラ部とモビリティ部を無線で接続 (どちらかをAP設定にする)
② コントローラ部で得られた操作命令(「前」とか「右」とか)をUDP通信でモビリティに通知。この時、独自で通信コマンドルール(プロトコル)を決めておく
③ ②に応じて、制御モータ量を調整
②のコマンドルールを合わせておけば、モビリティ側は変更する事なく好きなコントローラをどんどん開発&入れ替えする事が出来る、という訳ですね♪
Nintendo LABOのバイクToy-Conによるモビリティ操作も、実は以前に作ったものからコマンドルールのみ改良する作業のみ(1時間程度)で開発できたので、さっと作るには便利な考え方です!
コマンドルール等ソフト設計の詳細はまた別記事に置きたいと思います。
(現状のコードがあまりに突貫すぎて、一部上記思想からずれているので、今後に向けて少しメンテナンスしたいと思います)
まとめと今後
今回息子向けにモビリティをひとまず作ってみましたが、残念ながら搭乗しながらモビリティを動かすとおびえて泣き出してしまうので、幣息子に向けてという観点では、まだまだ改良が必要という事が分かりました。
・安定して座席に座れないので座位固定方法が必要
→専用シート&ベルトを作る予定)
・コントローラも筐体固定が必要
・動き出しのスピードが速いので、ゆっくり動き出す制御を追加
→ 残念ながらベース機体の回路では不可なので、モータドライバから作り替えが必要そう
ただ、今回の取り組みで、
電動車椅子を購入しなくても簡単に当人に応じたカスタマイズ電動カートを改造作成できるという事が分かりましたので、これから色々と応用可能性が期待できそうです!
引き続き、改良していきたいと思います!