UfoCtrlでは出来ない緻密なランダム制御を実現するプロジェクト
今までU.F.O. TW、U.F.O. SA、A10サイクロンSA +PLUS(プラス)、バッハスマート、ROCKET+1Dなどの+1D対応グッズを便利にコントロールするためにUfoCtrlというAndroid野良アプリを丸10年以上に渡って開発し続けてきたわけですが、+1D対応グッズは新製品が出なくなって久しいということもあり筆者は2025年に『DIYグッズコントローラー』、略して『DGC』の開発プロジェクトを本格始動し、既にメジャーな汎用品の組み合わせで小型軽量なDGCを4例ほど作成してその作成方法やマイクロコントローラに書き込むプログラム等を配布してきました。
2025年でのDGCの立ち位置は+1D対応グッズの制御部分を代替出来る、という互換的な位置付けに加えて制御対象となるグッズの動作電圧範囲に合わせてDGCの出力もチューニング出来るように作成し、さらに昇圧回路も組み込み可能ということで幅広いグッズに対して+1D対応グッズのようなランダムコントロールをすることを可能としました。(ただし勿論ですがグッズ側にDGCと接続出来るように改造が必要となります。)
この辺りこちらのブログ上では過去記事
『DGCSet Ver1.00 DIYグッズコントローラーの設定値を調整、変更、動作確認できるツールアプリ』
『昇圧回路基板を追加して5V以上のグッズに対応するDIYグッズコントローラーを作成』
『マイクロコントローラーSeeed Studio XIAO nRF52840とモータードライバTB6612を組み合わせてUfoCtrlで制御できる小型軽量なグッズコントローラーを作成する』
『U.F.O. SAコントローラーからの脱却 バッテリー容量不安からの開放 小型軽量DIYコントローラーで反応も改善』
『汎用品を組み合わせて作るオリジナルグッズコントローラーの動作確認』
『なぜ今グッズコントローラーをDIYしようとするのか』
『宇宙からの帰還を考える』
等で紹介しておりますので気になる方はご参照ください。(具体的な作業およびプログラム等は開発支援してくださっている方と共有しています。)
2026年に入ってから、筆者は初めて既製品の振動系グッズで感銘を受ける製品と出会いました。
その製品は過去記事『某AliExpressで購入したニップルローター2品 実使用レビュー (乳首責めグッズ)』にてレビューしておりますが、その後過去記事『Aliニップルローターの制御をUfoCtrlに取り込めるか?』にてその制御について解析を行っています。
その結果、筆者が感銘を受けた制御は今まで開発を続けてきたUfoCtrlでは実現不可能であることが判明しました。
これは+1D対応機器を制御するという仕組みに乗っかっている以上不可能である、ということでして、+1D対応機器ではBLE通信にてモーターへの出力強度指示を受けることでモーターの動きを変化させるというシンプルな構造になっており、モーターの動きを変化させたいときには必ずBLE通信をする必要があるわけですが、残念ながらというか処理能力や消費電力等の都合もあって仕方が無いことなのですがBLE通信を短い間隔で連続して発生させてしまうと+1D対応機器は反応しきれなくなってしまいます。
またAndroid側でも機種によっては安定した通信が持続しないといったケースも散見されたため、BLE通信を連発して緻密な制御をしようとする方向性には無理を感じました。
残念ながら+1D対応機器では上記以外に任意でモーターを制御出来る方法がありませんので、今現在公開を続けているUfoCtrl以上に緻密なランダムコントロールは不可能となります。
しかし、DGCは汎用のマイクロコントローラを使用していて、そのプログラムも筆者が自作しているわけです。
BLE通信の頻度を極端に上げることなく、ユーザーが自由に変更し設定したいパラメタ等はAndroidアプリ側で担保し、実際にそこから指示を受け取って緻密に制御する部分はマイクロコントローラ側だけで完結するように作れれば、自由度の高さと緻密なランダムコントロールを両立出来るはず。
というわけで開発支援していただいている方には既にこういう方向で動いていますよという報告はさせていただいていたわけですが、2026年の筆者はせっかく2025年に実用化に漕ぎ着けたDGCを活用して、+1D対応機器では実現出来なかったより緻密なランダムコントロールの実現を目指して活動しております。
具体的には、UfoCtrlは200msを基本的なBLE通信の最小間隔としていました。これは設定で100msまで短縮出来ますが、実際には100msでBLE通信を連発してしまいますと多くの機器で通信を取り零す、のみならず、数秒間無応答に陥ってしまったりしますので通信間隔を狭めると却って実用性が低下してしまいます。
一方で、DGC向けのCtrl、つまりはDGCCtrlですが、基本的には1000ms以上のBLE通信間隔となる一方、DGC側では10ms単位でモーターへの出力指示を変更出来ることを目標としています。
そのための仕組みをずっと考え、現時点ではようやく『Android側ではこう動くつもり』という動作指示状況を確認出来るツールであるDGCCtrlTester Ver0.10α を作成しました。
マイクロコントローラ側のプログラムがまだ着手出来ていないため、このままAndroid側がこれでFixとはならないかと思いますし、色々と考えながら作業していく中で『こうした方がもっと良いな』ということがちょいちょい発生しますので、あくまでもプロトタイプと思っていただければと思います。
そのDGCCtrlTester Ver0.10α ですが、当然のようにUfoCtrlばりに複雑な説明が必要となりますので、ここに連続して書いてしまうと分かりづらくなると思いますので記事を分けたいと思っております。
アプリのファイルは既に開発支援してくださっている方と共有しています。
仕様説明の公開までもう少々お待ちください。