Futaba S-BUS to USB-HIDコンバータの制作

きっかけ

Maker Faire Tokyo 2018には”自作ゲーミングデバイス”をメインに出展する予定だったので、一品物コントローラー以外にもこのお題で何か有料頒布できるものが欲しい、という訳であまり手が掛からず作れる物を探していました。

そこで昔は幾つかありましたが、近年のクルマゲー不振に伴いカー用プロポタイプのPC用コントローラーが最近まともな物が出てない。ということでラジコンプロポをPCに繋ぐアダプタを作ってみる事にしました。ソーラーボート用のプロポをラジコンカー用にしておけばデバッグ機材の出費も最小で済みますし。

あとソーラーボート用の設定ソフト、MissionPannerにPC上で挙動をシミュレーションするモードがあるのですが、仮想機体の操作にPCコントローラーを別途アサインする必要があります、「実機用のプロポ使わせてよ」というのも動機の一つです。ラジコンはゲームと違ってステートスイッチ、トグルスイッチが欲しいのです。

今時のラジコンプロポ事情

世界的にもフタバが寡占している、というのは既に昔の話で中国メーカーが台頭しています、FrSkyとかiRangeXなどが目につきますね。安価高機能で魅力的ですが技適を取っているモデルが非常に少ないので横目で見つつターゲットをフタバに絞ります。

今時のプロポ受信機はおなじみのサーボ信号以外にUARTで受信データを垂れ流しするのが普通らしく、各メーカーで差異はあるのですがこいつをUSB-HIDになれるマイコンで読めば簡単に実現できそうです。

Futaba S-BUS

フタバの場合はこのデジタル信号を”S-BUS”と呼ぶようです、解析している方は多いのですがネット上に転がっているデータは往々にして不正確なので、R314SB-Eの吐き出す信号をオシロとロジアナで実際に調べてみました。結果はこのようになりました。

  • 3.3V 負論理
  • 100000bps
  • data:8bit
  • stopbit:1.5
  • parity:even

ジャスト100kbpsというのが難点です、UARTはその名の通り非同期でbpsが僅かでもずれるとエラーレートが跳ね上がります。良く使われる115.2kbpsでは不安ですね、ネットで拾える作例では115.2kbpsで読んでパリティは無視している物が多いですが本格的な実用には耐えないでしょう。

NXP SC16IS762

レートが独特であれば外部クロックのUARTブリッジをマイコンに繋げば良い、という事で選んだのがNXPのSC16IS762です。FIFOも64バイトあるので十分でしょう、シングルチャネルのSC16IS750でも良いですが値段も大して変わらず、負論理に変換するゲートも2chなら丁度RX/TXで4つ使いきれるのでデュアルチャンネルの762にしてみました。

はじめてのリフロー

このプロジェクトを始めたもう一つの動機が自作リフローの導入です。ソーラーボートのパワーコントローラーを制作するのにSMDをどうしても使いたいのですが、最初から大型基板は無謀なので小型安価な頒布基板を沢山焼くついでにリフローの調整をしてしまおうという姑息なアイディアです。ヒーター本体は定番のNT-W50-Sを使います、中古で3000円です。

スイッチサイエンスさんのリフローキットはずっと品切れなのでArduinoUNOとMAX6675を使って制御部を作ります。SSRは昔自作した4chの物を流用です。

熱電対は最初このようにシース型を使ってみたのですが、応答が非常に遅く60秒以上遅延するのでこの用途には厳しいという判断になりました。

何パターンか試して基板に裸熱電対をカプトンテープで貼る方法に落ち着きました。

これなら応答時間は数秒といった所で制御は非常に楽です。スケッチはこちらを参考に新規で起こしてみたのですが、これプレヒートと本加熱の待機時間逆じゃないですかねぇ??

そんなこんながあり上手く焼けるようになってきました。

ターゲットマイコン

個人的な嗜好で頒布物は改造を前提とした物であるべき、というポリシーがあります。量産市販品と比べるとコストは圧倒的に悪いですし入手性信頼性etcetc…という訳で「回路もソースも公開されていて簡単に改造して遊べる」という点を推したいからです。これを踏まえてUSB-HIDにお手軽にコーディングできて入手性が良いということで選んだのがこちら、STM32F103Cボードです。BluePillが安価で有名ですが評判がよろしく無いのでRobotDynの通称BlackPillを選んでみました。BluePill程で無いにせよ$3と非常に安価なので頒布物に含める事にしてしまい、まとめて購入です。

アートワークと試作

フルSMDは初めてでしたが部品点数も少ないのでアートワークはスムーズに進みました。

ステンシルが要るのでelecrowに製造をお願いします。

出来てきました。

焼きました。

シルクでWII_CNとなっているのはWiiのコントローラーです。信号はI2Cである事は以前から知っていましたが、AliExpressでコネクタを発見したので載せてみました。

S-BUSブリッジコードの制作…そして

そしてS-BUSから流れて来るデータを処理するコードを書いてみたのですが…45バイト15mSec周期、ロジアナで見てみるとこれI2Cでデータ受けてUSBで再送信すると1chでも間に合わなくない?収まらくない?というか全然足りないですねはい、ええ。

そんなこんなの事前調査不足でこの企画は見直しとなりました、さらに良く調べるとSTM32F10xのUARTは非常に高機能で実はUARTブリッジ要らないんじゃない?という疑惑が発生してしまいました。

BlackPill売ります

宙に浮いてしまったBlackPillを有償で引き取って頂ける方を募集します、Maker Faire会場で。

SC16IS762の方が高価ですが流石に居ないですよねぇ、小さいので一応持っていきますけど。

ぼくのかんがえたさいきょうのゲーミングデバイスつくろうとしてグダってしまったおはなし

はじまり

2018年の初頭、年の始まりといえばCESですが興味深い製品が発表されました。

HP Z 3D CAMERA

3Dスキャナは過去にも色々発売されていますが、デモ動画を見る限りそれらとは一線を画す性能のようです。早速米国Amazonで予約を入れ、到着してからの用途を考えます。PBR用のマップも出せるのでUnity辺りにモデルを持ってくるだけでも面白そうですがベースメッシュの解像度も高そうな印象です。もしかして…

“手”をキャプチャしてFusion360にインポートしてモデリングすれば今流行りの自作キーボードなんかを超ジャストサイズで作れるのでは?というのが始まりです。というのも私は手が小さく大抵の入力デバイスはサイズが合わないのです。

キーボードは調べた所キーキャップのサイズバリエーションが実質無く、キャップを3Dプリンタで出力するのも不向きであまりインパクトも出しにくそうなので、対象を高い効果が望めそうなゲーミングデバイス、スティック辺りが良いのでは??よし!これで今年のMaker  Faireに出てみよう、ということでノギスで手のサイズを計測し、Fusion360でササっとエルゴノミクスっぽいケースを作成し、3Dプリント、部品を組み込んで写真撮影。Maker  Faire事務局に出展申請を入れたのでした、その後の顛末も知らずに。

Maker:L,Date:2017-9-28,Ver:5,Lens:Kan03,Act:Kan02,E-Y

延期延期!

暫くして出展許可が出たのですが、一方のHP Z 3D Cameraの発売が延期につぐ延期、別ネタは進めていましたが出展概要にはゲーミングデバイスで出しているので、当初3月末発売の予定が2回伸びた後の6月末もさらに流れてしまい焦り始めます。やヴぁいこれ…

そんな訳で急遽”手”をそこそこの精度で3Dキャプチャする方法を模索します。最初に試したのがこれ、DMMいろいろレンタルで借りてきたSense 3D Scannerです。

早速手のキャプチャを試してみるもどうにも上手く行かないので、理想的な条件でこのスキャナが最も得意としているサイズの物をキャプチャしてみます。

モーター付き回転台を使って定速で回します、流石にこの理想条件ならそこそこの結果が得られるでしょうと結果を見た所うーーーん。1日目でそそくさと返却してしまいました。

次に試したのがZephyrです。こちらは多数の画像データから特徴点抽出を行い3次元形状の推測を行いますが、スチル撮影も面倒ですし入力のサポートもあるのでシャッタースピードを上げた動画をカメラを回転させながら撮影し放り込む作戦を試します、対象が手では長時間同じポーズは無理ですし。そして家にある物を駆使してこのような撮影冶具をでっち上げてみました。

Senseの件もあるので特徴点抽出しやすそうな物で最初は試します。

厳しいかぁ…

俯角も変化させないとダメらしいけど撮影対象が”手”だと正確に回せるのはせいぜい1周だしこれ以上は無駄と判断しました。

開き直った結果が悪く無い

全て諦めてカンと経験でモデリング…申請時に出した左右分割式は実際のプレイでは非常に使い勝手が悪かったのです。ま、一般的な形状ですよねートホホ。

自宅の3Dプリンタは幅230mmまでなので分割し、接着して仕上げます。

中身は自宅に転がっていたPS360ですが今はUSB-HIDデバイスになるマイコンは色々あるので特筆する点は無いと思います。

はいできました、さっくり作った割には悪く無い操作感なのがまた悲しい。キーボードと違って3Dプリンタ一つでかなりの自由度が出せますし自作キーボードも流行ってるので自作ゲーミングデバイスも流行れッ!!ということで締めたいと思います。

ほんとごめんなさい。