Windows 11 のワイヤレスディスプレイ(Miracast)で映像が止まる問題と回避策。原因は NVIDIA GPU の H.264 エンコーダー

はじめに

Windows 11 のワイヤレスディスプレイ機能(Win+K の「キャスト」、Miracast)で画面を無線投影すると、映像がフリーズして数十秒ごとにしか更新されない症状に悩まされていました。 投影先は RICOH Light Monitor 150BW(無線接続とタッチ操作に対応したモバイルモニター)です。 止まっている間もマウスやタッチの操作は PC に届くのですが、画面の更新は約 30 秒に一度、一瞬だけ進んで、また固まります。 同じモニターに Intel GPU のノート PC から投影すると、この症状は出ません。

調べた結果、原因は受信側のモニターではなく、送信側の PC にありました。 NVIDIA の GPU で映像を符号化(エンコード)すると、送り出す映像そのものに規格違反のフレームが混ざっていたのです。 この記事では、症状の原因と、NVIDIA の GPU を画面表示に使い続けたまま症状を回避する方法を 2 つ紹介します。

この記事は、手元の PC で起きた Miracast の不具合を、AI(Claude Code)と一緒に調べた記録です。 調査の進め方と本文の大部分は AI が生成したもので、実機での操作と確認は自分で行いました。 同じ症状で困っている人の役に立てばと思い、ほぼそのまま共有します。 手順にはレジストリや BIOS の変更を含むので、試す場合はバックアップを取り、自己責任で行ってください。

回避策は次の 2 つです。

  • BIOS の設定で、Miracast の送信を内蔵 GPU に任せる: 起動時の表示 GPU を内蔵 GPU にできるマザーボードで使えます。
  • レジストリで、NVIDIA の H.264 エンコーダーを Miracast から外す: マザーボードを問いません。送信は CPU でのエンコードになります。

確認できたのは、下記の 2 台の PC と、受信機 1 種類(150BW)の組み合わせです。 ほかの NVIDIA GPU や受信機で同じことが起きるかは確認していません。

続きを読む

Dactyl LightCycleの木製リストレストを製作した

f:id:otomon10:20220322012053j:plain

Dactyl LightCycle用の木製リストレストを作った。
マンション環境での木工作業は(騒音関連で)色々と大変だったので、参考までにビルドログを残しておく。

製作

木材の切断

型取りをして、端材を糸鋸で切断する。

f:id:otomon10:20220322001613j:plain
型取り

f:id:otomon10:20220322003954j:plain
クランプで固定する

手動の糸鋸でも振動音が大きので、作業台の足元に静音ゴムを付けるとかなり静かに作業できる。

f:id:otomon10:20220322004137j:plain
静音ゴムを作業代の足に付ける

糸鋸はAmazonで適当に購入した。

f:id:otomon10:20220322004257j:plain
糸鋸

曲線に沿って切るのは難しかったが、木材の切断作業できた。

f:id:otomon10:20220322004702j:plain
木材の切断完了

荒削り

木材側面に印をつけて、大きめの彫刻刀(24mmを使った)で荒削りする。
クランプで固定せずに手でおさえると、ケガする危険性があるので注意する。

f:id:otomon10:20220322004828j:plain
彫刻刀で荒削り

この段階で削りすぎるともとに戻せないので注意。細かい部分はヤスリで調整可能。

f:id:otomon10:20220322005146j:plain
荒削り完了

研磨

ヤスリで削っていく。#80、#240、#400の順番で削った。

f:id:otomon10:20220322005552j:plain
ヤスリで削る

f:id:otomon10:20220322010234j:plain
#400削り後

オイル仕上げ(完成)

無垢材でオイル仕上げにしたいので、ケンドリンガー メーベルポリチュアを塗って完成。
(蜜蝋は塗るとベタベタするのでメーベルポリチュアのみ)

f:id:otomon10:20220322010539j:plain
オイル仕上げで完成

材料

質の良いウォールナットで作りたかったので、マスターウォールの端材詰め合わせボックスを購入した。

www.masterwal.jp

工具

最初は効率を求めて電動工具を導入したのだが、すべて動作音が大きく、マンション環境では使用が難しかった。以下の工具は購入したが使用できずに売ってしまった。

  • 電動彫刻刀
  • ベルトサンダー
  • ジグソー

動作音が小さく、手動で扱える工具を主に使用した。

  • 糸鋸
  • クランプ
  • 作業台
  • 彫刻刀 浅丸型 24mm (三木章刃物本舗)
  • ベルトサンダー用のヤスリ(80~420番)
    生地が分厚いため耐久性が強く繰り返し使えて良い

使い心地

やはり木製のリストレストほうが、ジェルやタオル生地のものと比較して安定感がある。
無垢材なのでオイルメンテナスは必要になるが、使い込むほどに経年変化で風合いが増していくことに期待したい。

f:id:otomon10:20220322012256j:plain

Dactyl LightCycleをカスタムビルドした

お椀型形状の左右分離型キーボード Dactyl LightCycle をビルドした。
初めての自作キーボードだったこともあり、悩んで苦労したことや作りながら分かることが多かったので、この記事がこれからDactylをビルド&カスタムする人の参考になれば嬉しい。

なお、Dactyl LightCycleのビルドは2回行っている。1回目はElite-Cを使った有線タイプで、特にケースをカスタマイズせずにそのままPLAで印刷した。2回目はBLE Micro Proを使った無線タイプで、ケースをカスタマイズしてABSで印刷し、パテ埋めで積層痕消したり塗装を行った(PCBは1回目のものを流用)。

ビルドに使った部品は、部品リストにまとめている。

続きを読む

ROS2について

ROS2について知りたかったので、日本語の書籍を購入した。

ROS2ではじめよう 次世代ロボットプログラミング

ROS2ではじめよう 次世代ロボットプログラミング

  • 作者:近藤 豊
  • 発売日: 2019/08/13
  • メディア: 単行本(ソフトカバー)

(所感)

ROS1は研究開発向けだから、今後世の中に出てくるロボディクス製品はROS2を採用したものが主流になりそう。ただ、書籍出版時点で自己位置推定等のナビゲーションパッケージは一応は動作するけど、製品レベルの品質に達していないようで、GitHubで開発が進行しているとのこと。動作計画パッケージもGithubで開発進行中とのこと。シミュレーションのGazeboはIgnition Acropolisに置き換わるみたい。
今は過渡期だけど、ROS1の資産もある程度は使いまわせるし、これから新規モノ作る場合はROS2を使っておいたほうが移行がスムーズかな。

また、抽象化API層によって通信仕様がオープン化されたのは興味深い。OSSとか営利企業等から各種実装が出てきそうだ。

USB PDトリガー ZYPDS

f:id:otomon10:20191115223407j:plain

AliExpressでUSB PDトリガーを購入した。注文から届くまで1ヶ月程度かかった。購入したのは以下の5個目のやつ(色: 5)、1000円程度。

ja.aliexpress.com

PDトリガーはAVHzYを使っていたが、毎回ボタンを押してトリガー電圧を決めるのが面倒だったので、繋ぐだけで動作するものを探していたところ、上記デバイスを発見した。

今使っているJetsonのOrbittyキャリアボードは14V推奨だが、ピーク19Vまで対応している。ZYPDSはトリガー電圧として15Vと、20Vに対応している。届いた時点では、ハンダ付けがされており20V設定になっていたので、ハンダを吸い取って15V設定にして使うことにする。

f:id:otomon10:20191116120554j:plain

テスター(ミヨシ MCO USB Type-C専用USB電流テスター STE-02/BK)で確認したところ約15.5Vで引き出せていた。しばらく使ってみて様子を見てみる。

f:id:otomon10:20191116205105j:plain

余ってたDCコネクタの端を切って、熱収縮チューブで保護した。バッテリーには短めのUSB Type Cケーブルで接続する。

RPLIDAR A1M8でセンシング

左右のモーターの速度からロボットの位置を推定する方式(Wheel Odometry)で、オドメトリを作成した。 先日購入したLIDARセンサをロボットの位置や角度に合わせて表示することができた。

f:id:otomon10:20191022190453g:plain

gmappingで地図作成もできた。

f:id:otomon10:20191022231444g:plain

Jetson TX1でRPLIDAR A1M8を使う

マップ作成用にLIDARセンサを購入した。

RPLIDAR A1M8の動作確認

JetsonにCP210x USBシリアルコンバーターのドライバをインストールしておく必要がある。

クロスコンパイルが面倒だったので、L4Tカーネル向けにビルド済みのドライバがあったので利用した。

Install USB to Serial Converter Kernel Modules - L4T 28.1 - JetsonHacks

GitHub - jetsonhacks/installACMModule: Install the CDC ACM and USB to Serial Modules for the Jetson TX1 or Jetson TX2 Development Kit

ROSパッケージビルドは以下。

https://github.com/slamtec/rplidar_ros

http://wiki.ros.org/rplidar

筐体設計見直し

RPLIDARを載せるため、筐体設計を見直した。ざっくり配置だけ考えたいので、Unityでお絵かき。

f:id:otomon10:20191015231637p:plain

工作中…。

f:id:otomon10:20191015232238p:plain