2026年4月1日水曜日

小ネタ



 昨年末に、Frameworkの拡張カードを使ったモジュラーUSBハブがあれば便利なんじゃね、というようなことを書いたけど、実際にそういうのを作っている人がいるらしい。




 ターボプロップエンジンの高圧軸と低圧軸それぞれに電動機を接続するコンセプト。HP/LP双方から発電したり、LPで発電してHPにエネルギーを与えたり、航空機のバッテリで各軸を駆動したり、いろいろな使い方ができるよ、とのこと。

 よほど大電力のバッテリーやモーターを積んでいればそりゃ色々な使い方ができるようになるだろうけど、重量に見合うメリットがあるかなぁ……

 自動車だとターボチャージャーに電動モーターを追加して、アクセルを踏み込んだときの立ち上がり(ターボラグ)を改善する、みたいなコンセプトはあった気がするので、ジェットエンジンも同じように、オンボードのバッテリーからタービンを加速したり、スロットルを絞るときも回生してバッテリーで吸収したりと、レスポンスの悪いタービンエンジンの操作性を改善するみたいなことは可能だろうけど、とはいえ重量が(ry 軽量化圧力の強い航空機で、加減速だってそう多くないし。

 同軸で高圧/低圧軸を用意してそれぞれ発電機をつけて、とかやるくらいなら、ガスジェネ+タービンでカリカリに最適化した発電機を作って、プロペラはそれとLIBでブン回せばいいんじゃないのって気がするけど。でもまあシリーズハイブリッド100%で組むよりはターボプロップのほうが効率は良いんだろうな。発電機だって胴体に埋め込むわけには行かないから、主翼にぶら下げなきゃいけないし、ポッドをぶら下げるならプロペラも一緒においたほうが効率的だし、同じ場所にあるならわざわざ電気を経由しなくたって、高温ガスのまま使ったほうが効率がいいだろうし。

 低圧軸を電動で駆動できるなら、地上滑走中はAPUで発電して電動でプロペラを回して、滑走路に近づいたらメインエンジンのコアに火を入れる、みたいな使い方もできるかもしれないけど。WheelTugみたいに100%デッドウエイトになるわけじゃないから、こういう方式のほうが環境性能は良さそう(APUの熱効率がどれくらいあるのか知らないけど)。


 確かホンダの空飛ぶクルマ的なコンセプトがシリーズハイブリッド的な感じだったような……?? ある程度小さいなら取り回しやスケーリングがしやすいシリーズハイブリッドのほうが便利とか、推力が多少大きくなるとターボプロップのほうが優位とか、もっとデカくなるとターボファンや、さらに進んでギヤードターボファン、みたいな感じで、それぞれの構成ごとに最適な大きさが違うんだろうか。



 LDM #451: Interrogator AN/TPX-54(V) Part 1: Receiver - YouTube

 IFFのインテロゲーターの受信機。受信機ではあるけど、内部で1030MHzも作っているんだそうだ。これをローカルにして、1090MHzから60MHzのIFを作る。あと、変調してテスト信号にもしているのかな?



 FH6のcoast spaceport、ふむ? 沿岸部にある宇宙関係の場所で車で走って面白そうな場所、かつ関東・関西あたりの一帯…… 加えて言えば、同じコンセプトでコンテナヤードとスキーリゾートがあるなら、それとは別のベクトルの場所。メタ的に言えば、FH6で採用するに足る設備であること。うーん、思いつかんなぁ。

 spaceportってアラスカとか共産圏を除けばたいてい沿岸部にあるしなぁ。そらそうやろ、というような情報しかない。平地なら種子島、山岳地なら内之浦、ただし山岳地はスキーリゾートとコンセプト被り。順当に行けば種子島かな。FH6のマップは実際の地理よりもっと広い場所から景観を持ってきているっぽいし、種子島はありそう。コンテナヤードはタイトなコース、スキーリゾートは起伏の激しい場所、と考えれば、主に平坦な場所はありえそうだし。あるいは、臼田宇宙空間観測所になにか架空要素を追加してspaceportと言い張るという可能性もあるけど、でもそこってスキーリゾートでは……



 アメリカで一般消費者向けのルーターが輸入できなくなる、みたいな話で、アメリカ政府が指定したバックドアが入っていない製品は売れなくなる、アメリカ国民の通信の自由の侵害だ、みたいな話、なんだかなぁ、って感じがする。

 彼らは「アメリカ政府のバックドアがあるルーター」と「アメリカ以外の国で作られた自由なルーター」を比べているのかもしれないけど、でも実際には「アメリカ政府のバックドアがあるルーター」と「中国政府のバックドアがあるルーター」の選択なんじゃないの?って気がする。あるいは、中国製のルーターにバックドアなんてあるわけがない、という話なら、じゃあアメリカ製にバックドアがあると考える理由は一体何なのか。アメリカ政府が信用できないというなら、なぜ中国政府は信用できるのか。

 あるいは、ヨーロッパから買えばいいだろ、みたいなことなのかもしれないけど。



 某組織(ほとんど文科省の予算頼り、最近は予算不足でクラファン活用)の、要約すれば「この分野で開発した技術は市民生活に役に立つ部分もある。積極的に(公的)資金を投入してほしい」みたいな発言、裏を返せば「生活に役に立つ可能性がない分野に資金を入れる必要はない」になるし、あなた達の研究分野の大部分は生活に役立たないような分野(むしろいくつかの研究分野では文明的な生活で悪影響を受ける、市民生活を規制しないと成立しない研究)だし、そういうことはあまり大声で言うべきじゃないと思うのだが。

「うちの研究で生まれた技術が一般生活に役立つこともあるよ」とはいっても、おそらく微々たる量だろうし、じゃあおまえらに突っ込んでる予算(年間数百億円規模)を全部別の("実用的"な)研究に突っ込めばもっと便利な社会になるだろ、と言われたら、どう反論するんだろうか。

 海の物とも山の物とも知れぬような実用になるかわからない基礎研究こそが大事なのだ、というのであれば、じゃあ「うちの研究は社会に役立ちます!」とか言ってるのと矛盾するわけで。

 彼らの研究が大事であるということに異論はないけど、アピールの仕方がなんだかなぁ、って。

 彼らの研究の一分も(全体の予算で言えば微々たるものとはいえ)、例えば防衛省ファンディングで予算を取れるような内容もあるはずだし、他の予算(補助金制度)も活用すればもう少しやりようもあるだろうに。彼らは文科省以外の予算は違法である、みたいな考え方だからなぁ。じゃあクラウドファンディングだってどうなんだよ。文科省を通さなくても、民間の営利企業経由で国民から金を受け取るのはいいのかよ? (国が配分する予算を文科省以外から受け取るのが違法である、ということであって、国以外からの金については受け入れるということなんだろうけど)



 YouTubeでサムネのアイコンをクリックするとキューや後で見るリストに追加する機能が削除されて、タイトル横の縦3点リーダーからクリックしないと追加できないの、だいぶ不便になった。YouTube、月に数回くらいのペースで少しずつ不便になっていく。

 政府の規制強化とかを話題にするYouTuber等がゆでガエル(boiling frog)の話をすることがあるけど、なるほどなぁ、って感じ。

/* watch later/キューは数日後にしれっと復活していたけど */


***


 SIFでモード3/A/Cの2種類以外にコード0000も出している機体(3種類のコードが出ている機体)、これ高度計の不具合でコード0が出ているんじゃなくて、実は意図的に出しているんじゃないか、説。

 このあいだ見かけたやつは0000、0520、1200の3種類のコードを出していて、1200はVFR、0520は海抜約600m(未較正、このあたりの標高を差っ引いて対地高度約400m)でレベル、と考えると、陸自のヘリの可能性が出てくる。固定翼機ならもっと高い高度を飛ぶはず(このあたりは山が多いので、理由がなければもう少し高い高度で巡航するはず)。ただし民間のヘリの可能性も残る。

 とすると、モード1やモード2のトランスポンダを搭載していて、トランスポンダはONになっているが、任務識別用のコードは割り当てられておらず、民間機と区別するために、暫定的にモード1のコード00あるいはモード2のコード0000を設定して飛んでいる、という可能性がある。

 ただ、山向こうの民間飛行場でも海抜600m弱の機体が見えることがあるので、例えば個人所有の小型機がこの空港でタッチアンドゴーの訓練をしていて、対地高度400m程度でダウンウインドを飛んでいるところを見ていて、トランスポンダの不具合でコード0000も高い頻度で放送されている、という可能性を除外できない。

 空港にライブカメラがあれば、それを見ればタッチアンドゴー訓練を行っているかどうかはわかるけど、残念ながらこの空港にライブカメラは設置されていない。

 一番確実なのは、目視で自衛隊機を確認したうえで、0000を含む3種類のコードが出ているのを見つけるのが確実なんだけど。もうしばらくしたら暖かくなるし、外を飛んでいる機体を確認しやすい季節にもなるはずだが。


*


 JALのB763

 コード7777がパラパラと出ている。ドップラが正しいからトランスポンダが意図的に出している信号のはずなんだけど、しかしF1パルスがかなり低いのが謎い。

 同じフライト。3777も2回出ている。そのうち1回はF1の前にもパルスがある。

 763に積んであるトランスポンダって、最新の物という訳では無いにしろ、そこそこ良い物のはずなんだけど、なんでこういう信号が出るんだろう? 高性能(プログラマブル)だからこそ、という可能性はあるか。あるいは、受信側の問題という可能性も否定できないわけだが。だからこそR2をはやく……



 別の機体。ADOのB737

 ↑全体。モード3/AでSq2467と、適当なモードCが出ている。上の方にパラパラと3種類の変な信号。

 ↑3777

 ↑4703 with X bit

 ↑7777

 すべてドップラが正しく、信号レベルも安定しているので、トランスポンダが意図的に出している信号のはず。


 また別の機体。JALのB763




 B76xが多いけど、とはいえ単純にこのあたりで飛んでるのが、この機体が多いというだけだと思う。例えばJALのAT46(道内空港間のターボプロップ)でも、たまに7777が出ていたりする。

 同じエアラインで別の機体から同じように7777が出ることもあるし、同じ機体(ICAOアドレスが同じ機体)が別の日に7777を出していることもある。たいてい、変な応答は7777が多い。


***


 原因不明のバグにずーっと悩んでいて、結局わからなくて数時間別のことをやっていると、急にソースコードが頭に浮かんできて「ああ、これが原因じゃん」とピンポイントで原因がわかったりする(実際、そこが原因)。だからプログラミングしている人が暇つぶしみたいなことをしていてもそれは遊びじゃないんだよ…… まあ、めったにあることじゃないけど。。。



 C#の例外を投げるヘルパー関数、場合によっては例外が確実に発生することがコードを解析するだけでわかるのに(例えばconditionにtrueを渡している場合)、コード解析でヘルパーを正常終了すると判断されてコンパイルエラーになるような場合がある。明示的にHogeException.ThrowIf(true,this);throw New Exception();みたいな感じで止めてやればコンパイルエラーは防げるけど、そもそも自分のコードで例外を投げるなら(最適化を阻害するなら)ヘルパーを呼ぶ意味がない、という。


2026年3月25日水曜日

小ネタ



 ロッキード・マーティンの衛星用SAPの動画






 6Gに向けて基地局アンテナの簡素化・省電力化技術を開発~AGCと「機能性ビーム成形レンズアンテナ」を開発、屋外実証に成功~ | 企業・IR | ソフトバンク

 6Gを見据えた「機能性ビーム成形レンズアンテナ」を開発、屋外実証に成功 | ニュース | AGC

 従来方式でビームフォーミング/ステアリングするには2次元的に大量のアンテナアレイが必要で、コストや消費電力(&発熱)が課題。提案方式では1次元的なアンテナアレイを使うことで低コスト化や低消費電力化ができ、発熱も減るのでヒートシンクも小型化できる。

 従来の2次元方式では各アンテナを干渉させてビームフォーミングするけど、この方式はどうやってビームフォーミングするんだろう? メタサーフェスレンズが単に集光を行うだけなら、アンテナ素子1個から電波を放射すればそれを焦点としたペンシルビームを作って、それぞれ独立にビームを作れる、みたいな方式なんだろうか。それとも水平方向のファンビームを作るレンズで、各素子を干渉させてペンシルビームを作るんだろうか。



 都市型データセンターの導入検討に関する実証実験を開始します ~東急線沿線を軸に、次世代デジタルインフラの展開を目指します~|ニュースリリース|東急株式会社

 鉄道の高架下にモジュール型データセンターを設置する案。

 データセンターのストレージラック前で大声を出すとHDDアクセスエラー率が激増する、みたいな話があったよね。かなり昔の話だけど、とはいえHDDも微細化が進む昨今、音響振動がストレージアクセスに影響を与えるというのは有り得そうだが。まあ、そのあたりも含めての検証だろうしな。



 金属3Dプリンタの実用化が加速 DMG森精機とマザックが語るDED方式活用例:FAイベントレポート(1/3 ページ) - MONOist

 両社とも同じようなことやってるな。ということは、信頼できる技術なんだろう。それにしても工程集約の凄まじいことよ。



「笑わない物理学」、見たいけどなぁ。サンシャイン池崎あたりを呼んでさ、相対性理論とかを扱ってさ…… さすがに2時間半は長すぎるのでもう少し短めでお願いしたいが。



 某映画、潜水艦モノの映画じゃなくて、怪獣映画みたいなものだと思って見れば違和感が少ないことに気付いた。軍事的な正確さは重要じゃなくて、アクションや画(CGIやVFX)が優先で、その次に政治があって、それらを引き立てるための軍事行動や、それの舞台装置としての装備品、という感じで。

 前作でプロデューサーが政治やCGのリアリティみたいな部分を積極的にアピールしていたから、前作はその視点で見て、うーん、という感じだった。今作もそのあたりでなにか良くなったとかは思わないけど、見方を変えたら作品全体の評価はだいぶ改善した。



 久しぶりにPCがクラッシュ。このあいだSteamでセールだったので買った某ゲーム(大昔にXbox Oneで遊んでたやつ、結構大規模なオープンワールド)を遊んでいたところ。以前からゲームが落ちることは数回あったのだが、今回はOS丸ごと落ちた。で、ディスクチェックが走ったり、うまく起動しなくて、何回か再起動しておおよそ正常に動作するように回復。

 排熱の問題(特にMBチップセットの過熱)が原因のような気もするけど、再現やストレスを掛けてテストするのも怖いしなぁ。こういう事があるとデータのバックアップ大事だよなーと思いつつ、HDDの値段を見て躊躇する。個人レベルのコールドデータ用の大容量ストレージもうちょっと安くならんかなー。個人で必要なもの(再取得できないもの)だけでも10TB近く溜め込んでる方がおかしいような気もするけど。

 とりあえずOSは起動できたけど、Chromeの個人設定(ブラウザの設定とか、Cookieとか)がいくつか飛んでた。大部分はブラウザへのログインとかで復活したけど、なぜかYouTubeの再生オプションの動画プレビューが何度OFFにしても勝手にONに戻る不具合に苦しめられている。YouTubeさぁ。。。

 おそらく、設定でプレビューをOFFにしても、すでに開いていたページでプレビューがONになっていると、そのページからYouTubeへ何らかのリクエスト(サムネへのマウスオーバーや別動画の再生)が飛んだときに、プレビューがONに上書きされるんだと思う。で、ブラウザがクラッシュしてCookieが消えてプレビューがONになって、タブを復元したときにYouTubeのページが有ると、いくらプレビューをOFFにしても、それらのタブを開くたびに設定が上書きされるんだと思う。


***


 グリペンEの制御則、ALT HOLDモードではラダーペダルがバンク角コマンドになるらしい? ラダーを踏むとそれに応じてバンクして、水平飛行を維持するためにピッチが当たって、進行方向が左右にずれる(離せば水平に戻る)。速度の微調整はスロットルをちょっと動かして、進行方向を変えたいときはラダーだけで済むから、スティックに触らずに巡航ができる。便利そうだ。もしかしたらALT HOLD時はスティックの前後は高度リファレンス変更としてコマンドされるのかな?


 F-35Bには離陸滑走中にボタンを押したら自動で離陸するモードというものがあるらしい。「自働で」というからには、引き起こしくらいは自動でやるのかな? 普通の短距離離陸は先にSTOVLモードに入ってから滑走を始めるはずだけど、それとは別の物のようだ。通常滑走中にSTOVLを押せばそのままSTOVLに移行して離陸する、みたいな機能は考えられるけど、そんな機能を使う理由がわからん。強いて言えば、離陸滑走前にSTOVLモードに入るのを忘れていて、揚陸艦の端ギリギリで離陸速度に足りないことに気づいてSTOVLモードに入り直す、とか? STOVLボタンを押すとすると、スロットルとはいえ、離陸滑走中に手を離すのが嫌な気がするけど、あるいは自動離陸はSTOVLモードとは別で、垂直着陸の減速ボタンとかに割り当てられているんだろうか。


 F-35Cの動画を見ると、カタパルトで発艦するときは左右両手とも手すりを掴んでいるから、このあたりはF/A-18と同じく自動離陸らしい。ただ、F/A-18の場合は右手だけ手すりを掴んでいる? F-35Cも映像によっては右手だけ手すりを掴んでいるものもあるから、ルールとして離さなきゃいけないのはスティックだけで、スロットルは問題ないのかもしれないけど。スロットルは可動範囲が広いし、スティックは多少の荷重でも反応するから、加速度が危険なのはスティック側であって、スロットルはあまり問題ではないのかな。スロットルだって誤って後ろ側に操作が入ると推力が絞られるから危なそうだけどなぁ。


 戦闘機の(オフィシャルな)シミュレーターの動画を見てると、たいていその機のパイロットとかがいろいろ説明してくれるけど、ウケの良いことを言うことも多いから、実用的な機能とか常用している機能なのかが分かりづらい。

 あと、シミュレーターの動画を探そうとすると、MSFSやDCSみたいなゲームの動画が大量に出てくるので、実機の情報を探そうとするとかなり面倒くさい(あるいは、そもそもゲームすら無関係なクリックベイトとかも)。検索アルゴリズムでどうにかしろよ、AIで解析すればいくらでも分類できるだろ、と思うんだけど、プラットフォームとしてはとにかく話題性の強いやつ(クリックベイト動画)を大量に再生してもらったほうが嬉しいんだろうなぁ。こちとらプレミアム会員やぞ、広告収入目的の動画を検索上位に出しても意味ないだろうに。と思ったけど、最近は再生画面のリンクから商品を買わせる動線があるから、そこに引き込めばYouTubeの収益になるのか…… 資本主義クソ喰らえ。。。



 実際に乗客を試乗させて飛んでいる電動飛行機(「生産ライン」から出てきた機体)のスロットルやスティックが、明らかにFFFで造形した積層痕や文字の潰れ方が残っているのを見ると、最近のヒコーキってすげーなー、というような気になるな。ちょっとやそっとじゃ壊れないような強度で作ってるんだろうけど、それにしてもよ。せめてSLSで作れよ、という気になるんだけど。

 動画の中では安全性に関して冗長性とか色々話してるけど、『煙突の上にハイヒール』表題作でMewの説明を受けている主人公の気分になってくる。まあ、航空系の記者に対して説明しているものなので、一般の消費者相手に説明するのとはわけが違うけど。

 フライ・バイ・ワイヤを全面にアピールして、ラダーペダルを廃し、スティックのひねりでラダー入力になると言っているのに、両足のブレーキペダルだけは後生大事にゴツい金属の塊で残しているのがちょっと不思議な気がする。スロットル最スローかつWoWで最適なブレーキ(機体重量、滑走路長と路面状態から)をかけて、停止中ならそのまま停止を維持、離陸中止や着陸時ならならオーバーランせずに燃えない程度にブレーキで止める(or高速離脱誘導路に出られる速度に落とす)、あるいはエルロンやラダー操作でステアリング(差動ブレーキ)コマンドを出す、みたいな機能があったっていいはずなのに、なんでそういうシンプルな機能がないんだろう? FAAとかの規則でブレーキは独立したシステムとして搭載すること、みたいな要件があるんだろうか? スティック系の操作ができない場合(FBWが死んでる場合)はブレーキだけ高信頼で残してたって意味ないだろうに。

 エンジン機ならブレーキをかけたままでスロットルを押してエンジンの立ち上がりを確認するみたいな手順もあるだろうけど、それにしたってパーキングブレーキを使えばいいだろうし、そもそも電動機は信頼性が高い(スロットルを押し込めば確実に立ち上がる)のが売りなんだから、スロットルとブレーキを連動させても問題ないはずなんだけどな。


***


 モード3/A/C/Sの信号強度とドップラ成分のグラフ

 左右はIQファイルの時間が違う(グラフ左端の開始点でおよそ300秒くらいの差)。上2つはファイル時刻系での信号強度と角速度の図。下の図は横軸に信号強度を、縦軸に角速度を取っている。信号強度の単位は非正規化dB、角速度の単位はrad/sample。

 信号強度は非正規化なので、モードA/C/Sでそれぞれ異なる強度になる。70とか80あたりの濃い分布がモードA/C、その上のパラパラと分布しているものが56bit応答や112bit応答の成分だと思う。A/Cは高頻度に、Sは低頻度に、というのが見えているはず。

 下の図では、左側の広い分布はモードA/Cで、パルス(受信電力)が少ないのでノイズが多く、有意な成分は見えない。右側のモードSらしい応答は上下(ドップラの分布)がかなり狭く、有意な信号が見えていると考えられる。恣意的に見れば、左側は+0.04付近、下側は-0.02くらいに分布しているような気もする。 0.03rad/sampleとしてΔf=50kHz程度、速度に直して50kHz/1GHz*c=15km/s、さすがにありえないので、実際のドップラ成分ではなく、見かけ上のもの(例えば受信機の温度変化によるクロックの変動)のはず。

 地上と航空機の相対運動であればΔV=500m/s程度、Δf1.6kHz@1GHz程度のはず。とすると測定値は1mrad/sample程度で、これを計測するのはかなり厳しそう。もう少し長い時間軸で、例えばADS-Bメッセージの始点と終点付近を計測すると1rad/100usくらいになるから、計測できないこともないかな、という気もしてくる。ただ、1kHz/1GHzで6桁くらいの成分を見る必要があるので、1ppm/10minに余裕のあるクロックが必要になる。OCXOでなんとか……くらい? ほんとにADS-Bのドップラで受信機の位置が得られるんだろうか?



 別のタイミングで取ったサンプル

 信号強度vs.角速度ではモードSらしい応答が2グループ存在している(PiAwareによると3機からの放送があるはず)。モードA/Cも信号強度が高い部分(80dBくらいのあたり)では2グループに別れているようにも見える。

 グループ間の角速度は0.15rad/sample程度の差があるので、周波数で800kHz程度の差に相当し、速度で240km/sに相当する。そんな訳はないので、トランスポンダの周波数オフセットが見えているんだと思う(±1MHzあたりが規定のはず)。


 

 SIF/M-S受信機は停滞気味。

 今まで使っていたSIF受信機は、設定項目は閾値だけ、表示は64x64のタイルだけ、というシンプルなもの(IPアドレス/ポート番号や、受信した信号の時間減衰の設定もあるが)。

 M-Sまで含めると表示するデータも膨大な種類に上る(少なくとも、デバッグに支障がない程度には表示する必要がある)。設定も、キャリアスケルチとかで色々と複雑な設定が増えることになる。普段は必要な情報をシンプルに表示して、必要に応じて色々設定を変えられるような、使いやすいGUIを作るのはかなり大変。



 C#のメソッドの引数で[MaybeNullWhen(false)]を使うときに、nullableを渡すと警告が出るの、地味に不便な気がする。例えばtryの中でメソッドを呼んでファイルを開いて、ファイルを開けた場合はその場合のロジックを、ファイルが開けなかった場合はその場合のロジックを実行して、最後にfinallyでhandle?.Dispose()を呼びたい、みたいな場合に、正常系であったとしてもhandleがnullの場合があるから、handleはnullableで定義しておきたい(じゃないとfinallyでnull参照のバグを仕込んでしまう可能性がある)。かといってメソッドの引数をnullableにすると、MaybeNullWhenロジックが正常に動作しない。

 そもそもロジックが間違っている、ということなのかもしれないけど(適当なクラスでラップしろ、とか)。


2026年3月18日水曜日

小ネタ


 95%の宇宙 解明されていない“謎”を読み解く宇宙入門 (SB新書) | 野村 泰紀 | 宇宙学・天文学 | Kindleストア | Amazon

 このタイトルを見たときに、話題として比較的狭い領域(質量で換算できるモノ)の話しか書いてないのかな、と思ったのだけど、かなり広い範囲が出てきた(商品説明に目次が書いてある)。超弦理論やマルチバース、ブラックホールの最近の話はあまり細かくは書かれていないけど。



 NFCカードのスキミング対策でシールドする小袋、全体がアルミ蒸着シートで作られているけど、原理的には外周部のアンテナが入っている場所だけシールドしておけばいいはず。場合によって、目視自体を防ぎたいのか、逆に何が入っているのか明らかな方がいいのかは分かれるだろうけど、シールド袋としては目視できないタイプが圧倒的に多そう。

 クレカだとNFCを使わずに番号を手入力したいという場合は袋から出さずに使えると便利だろうし、あるいはマイナンバーカードみたいな身分証明書はシールドしたうえで、自分が急に意識を失ったりしたときに救急隊員が財布を見てマイナカードを一目で発見できるような状態にしておきたい、みたいなことも考えられる。

 どうしても一部が透明なシールド袋が必要なら、市販の透明なカード袋の上から、アンテナ部だけ覆うようにアルミテープを貼ったりとかで自作することもできるか。どの程度確実にシールドができるかは未知数だけど、そんな事言い始めたら通販で売ってるシールド袋だってな。外部からネルギーを突っ込まないと動かないNFCカードの特性上、ある程度減衰させれば動作しなくなるはずだけど、とはいえ多少減衰した程度なら問題なく使えるように作ってあるだろうしなぁ。



 最近のYouTube、PCサイトのデザインがなんか変。具体的には一番上からスクロールすると途中でコンテンツの読み込みが挟まってサムネがズレるみたいな挙動がある。地味に不便。それと、視聴済みの動画のサムネの下にシークバー(再生済みの割合の長さの棒)が表示される動画と表示されない動画が混在していて使いづらい。未視聴だと思って開いてみたら動画の途中から再生が始まる、とか。シークバーが表示される動画はマウスオーバーでもURLオプションで時間指定がされているけど、シークバーが表示されていない動画はURLオプションも無し。

 あと、Androidアプリ版のYouTubeも、Premiumのレジューム機能が変な挙動をしている。PIPが非表示だが画面の中に配置されているので、画面の四隅をタップすると勝手に動画が再生されることがあるとか。最近のYouTubeは細かいところがどんどん不便になっていってる気がする。

 ただ、最近のYouTubeは英語の文字起こしとそれの翻訳の精度はかなり高くなってる。文脈で固有名詞を理解するみたいなことはできていないけど、英語を聞き流しながら日本語を読んでも、文脈や意味、表示されるタイミングはかなり綺麗。このあたりはAIで最適化されてるんだろうな。逆に、サービスの使いやすさみたいな、人間が調整しなきゃいけないようなところはどんどん悪化している。



 最近インターネットがちょっと不調なことがある。平日の夜とか、休日の昼間とか、下りが5Mbps未満程度しか出ない。そのタイミングでも上りは130Mbpsとか出るから、回線の物理的な問題とかではないはずなんだけど。


***


 興味本位でF-35Bのホバー時の操縦方法を探してみるなど。YouTubeで軽く探した程度だと、オフィシャルに近い情報(メーカー製シミュレータの動画とか)はあまり見当たらないけど。デモンストレーターの映像って古いやつは結構あるけど、最近の映像ってほとんど無い気がする。セキュリティ厳しくなったんかな?

 HOOK/STOVLボタンを押すとSTOVLモードを切り替えて、通常飛行形態でSTOVLモードに入ると60kt前後の低速飛行に移る。この状態ではスロットルで前進速度を、操縦桿で上下(押し込みで下降、引きで上昇)、操縦桿左右でローリング(左右方向の速度)、ラダーで進行方向、という感じで、通常飛行形態と同じ操作系になる。低速時にスロットルの減速ボタンを押すとホバリングする。ホバリング中も、操縦桿前後で上下、スロットルで前後位置、という操縦方法になる。

 ヘリコプターは操縦桿の前後が位置の前後、スロットル(コレクティブレバー)の上下が位置の上下だから、これが左右逆になっている。プロポのモード1とモード2の違いみたいだ。

 STOVL時には仮想HUDの左下に飛行機のアイコンが出て、機体の上の数字がエンジン出力(%)、機体の下の2つの数字がスラストベクター(度)。スラストベクターは前進時なら90未満、減速時(or後進時)は90より大きい数字(最大103度)になる。


 適当な数字でざっくり雰囲気を考えてみると、平時の短距離着陸や垂直着陸の際は(必要かどうかはさておき)、例えば6度のスロープでFPMを滑走路端に置いて進入して、300kt未満でギヤダウン、適当な距離&速度に達したらHOOK/STOVLボタンを押して短距離着陸モードに入り、自動的に60ktくらいまで減速(ベクトルは維持)、そのまま6度のパスで進入を続けて、適当な距離に達したらスロットルの減速ボタンを押すことで、FPMの場所は維持しつつ目標地点上空で静止(高度は減速ボタン押下時の付近を維持)、スロットルの前後と操縦桿の左右で位置を調整、操縦桿の前後で高度を調整、みたいな感じなんだろうか。

 空母に短距離着艦する場合(英国のSRVL運用)は手前の端(通常アレスティングワイヤがあるような位置)にFPMを置いてそのまま60kt程度で突っ込んで、垂直着陸する場合は艦の横(海の上)にFPMを置いて適当な高さで減速・停止、スティック左右とスロットル前後で位置を調整してからスティック前後で降下、とか。

 スロットルが前後位置に対応しているとすると、例えば最スローでホバーに入ると目標地点がどんどん後ろにズレていくみたいな問題があるはずなんだけど、どうやって対応しているんだろうか? 例えば減速ボタンを長押し中はスロットルの制御が外れて、その状態でスロットルを中央に移動すれば前後指示コマンドがエンゲージ、とかなんだろうか。



 F-35Bの垂直着陸は自動で行う…フライトシミュレーターも公開 | レスポンス(Response.jp)

 通常時の操縦棹(サイドスティック)は「前に押すと下降、後方に引くと上昇」だが、これがSTOVLモード時になると「前に押すと前進、後方に引くと後進」に変わる。

 パイロットがシミュレーターで説明してる操作法と違うぞ……


 メディア向けのシミュレーター体験会とかで触る機会はたまにあるはずだけど、いまいちSTOVLをやったみたいな話は見かけない気がする(海外メディア含めても)。大抵は対空戦、ひねくれた人なら対地戦をやってそれで終わり、みたいな感じなんだろうな。

 自衛隊内部向けの情報収集とかでもなければ、一般のメディアが商売する相手は一般市民で、市民が気にするのは空港周辺の飛行経路とか騒音なんだから、真っ先に離着陸のシミュレーションを触らせてもらって、「こういう飛び方をするとどれくらい時間がかかるから、騒音の継続時間はどれくらい」みたいな情報を集めるべきだと思うんだけど。「タッチパネルで敵を選択して発射スイッチを押せば撃墜できる」みたいな話を書いたってねぇ。いくらFBWで素人が普通に操縦できるほど簡単とはいえ、素人が離着陸にかかった時間をそのまま採用するわけにも行かないしな。



 eVTOLもマニュアルで操作できるやつは、垂直離着陸と水平飛行の遷移があるから、その2つの制御則をシームレスに(本能的に)操作できるモードがあるはずなんだけど、メーカー間で操作方法を統一しようみたいな動きはあるんだろうか? そもそもマニュアル操作はプライマリではないし、マニュアルで操作するにしてもセンサで状況を監視しているから危険な操作には入ることはないから、多少の誤操作は許容してメーカー独自の操作方法になっているんだろうか。


 飛行機の操作方法とヘリコプターの操作方法、それぞれのプライマリの形態に合わせて操作しやすくなっている気がするけど、F-35Bはあくまでも飛行機がプライマリであって、ホバリングは過渡的(着陸時のみ)な使用だから、操作のしやすさ(ホバーモードでの複雑な飛行)は犠牲にしたうえで、本能的に操作しやすい感じになっているのかな。

 eVTOLみたいなものは、巡航はオートパイロットがプライマリで、ユーザーが操作するのは離着陸時がほとんどだろうから、ヘリコプターの操作系になりそう。



 別件だけど、最近の戦闘機ってスティックシェイカーみたいな機能ってあるんかしら? フライトシミュ用のジョイスティック(最近の戦闘機モチーフ)で振動機能をアピールしてるやつがあるけど。

 コンピューター制御の最近の戦闘機って、そもそも失速自体発生し得ないから、失速に近づいていることをパイロットに通知するスティックシェイカーも無さそうな気がするけど。

 失速に入らないなら速度を下げるとどうなるかというと、位置エネルギーを速度エネルギーに変換するんだろうけど、それが進むと結局墜落することになるわけで。あと、最近の戦闘機は背面で飛んでても目を閉じれば水平飛行と同じ感覚になるから、しっかり外を監視していないとヤバそう。だからこそわざわざオートスロットル(必要に応じてパイロットの操作をオーバーライドできるアクチュエータ)を積んでまでF-16にAuto-GCASを追加したりとかしてるんだろうけど。



 ヒコーキやドローンを調べていて、久しぶりにラジコン飛行機に触りたい欲が出てきた。まあ、わざわざ違法だと知ったうえでやりたいかと言われれば、そんなこともなく、合法化の手順を踏もうとも思わず。

 自分みたいな方向性の人間(要するに自作の回路とかペイロードを色々積みたい要求)からすると、小型化はかなり難易度が高いのよな。適当にデカくていいなら、例えばウイングスパン2mとかその程度で作っていいなら、わりといろいろ遊びがいがあるんだけど。


***


 小さいネオジム磁石を21個並べるプレートを作ってみた(最中状に2枚、重ねる前の写真)。

 磁石が小さすぎて単体だとほとんど磁力がない。そもそもamazonで100個入りとかで買ったやつだから磁石としてもあまり優秀なものじゃないだろうし。そういう磁石をたくさん並べても、使った数に見合うような効果は無さそうな感じ。strong sideとweak sideで磁力が違うのは明らかに体感できるけど。

 あとは、外周部は磁束が漏れているはずだから、3x3程度だとそもそも効果が薄い、という可能性もある。それに、立方体の磁石とかを使うならともかく、薄い円筒形の磁石だとこの並べ方をしてもきれいに整わない気もするし。


***


 モードSのデコードのやつ。


 モードSの誤り訂正にはCRC-24(1FFF409h)が使用される。ただしCRCには機体IDやインテロゲータIDがXORされている(場合がある)ので、普通にCRC計算を行ってもゼロにはならない(事がある)。

 SSRモードSインテロゲーションにはインテロゲータのIDが含まれているし、インテロゲータは航空機IDを知っているから、これらを含めてCRCを計算することで、正しい結果が得られる。対して、別の航空機からの応答(ICAOコードが異なる)や別のインテロゲータに対する応答(インテロゲータIDが異なる)の場合はCRCエラーになるから、誤った応答を採用することが無い。パケットの中にそれぞれのIDを含める場合、追加で24bit(ICAOコード)+4bit(インテロゲータID)が必要になるが、24bitパリティにこれらをビット加算することで、シンプルな誤り訂正の中で自動的に排除できる。

 ただ、SSRとして使う分には便利な機能だが、バイスタティック的に使うことが難しい。インテロゲーションが既知なら対象の航空機やインテロゲータIDもわかるけど、レスポンスだけ受信する場合は誤り検出を諦めるとか、いくつかの妥協が必要になる。



 とりあえず、試しにブルートフォースでモードSを復調。10MspsのIQファイルから1Mbpsのマンチェスタ符号を手当たり次第に復号して、プリアンブルとCRCが正しいビット列を吐き出す処理。パラパラとパケットが得られて、DownlinkFormatによるとモードS All-Call応答とのこと。2.7秒程度の間隔でAll-Call応答が出ているっぽい。TCAS用かな?

 全サンプルからビットを復元してCRCでチェックするので、キャリアスケルチでトリガする必要がなく、かなり弱い信号でも復号できる。ただ、CRCみたいな誤り検出・訂正コードはビット位置ズレがあっても(例えば1bitズレていても)、CRCで誤りが検出できないことがある。

 プリアンブルのSNRでフィルタする方法(例えば各パルスの差が3dB以上なら破棄とか)も考えられるけど、プリアンブルのSNRとデータのSNRは同じなので、プリアンブルのSNRでフィルタリングすると、データビットのSNRも一定未満は破棄することになる。なるべく低い信号まで探したい場合は、この方法は使いづらい。そもそもSNRの低い(誤りの確率が高い)データなど使うな、という話になるのかもしれないけど。ただ、キャリアスケルチの場合はノイズフロア付近を取らないように高めのトリガレベルを設定する必要があるけど、プリアンブルのレベルは相対的に低い閾値でトリガできる。



 CRCは正しくゼロクリアにならないが、プリアンブルの形が正しく、データビットの波高も正しく、SNRも良いパケット、つまり見た目上はモードS応答として正しい波形もダンプしてみると、CRCは固定値を取り、ダウンリンクフォーマットは4や11が出てくる。航空機とインテロゲータのペアが固定ならCRCは同じ値が出力されるはずで、DF4はモードC応答(モード3/AはDF5)、DF11はComm-B応答だから、メッセージの形としては正しそうな気がする。

 同時にブロードキャストされているモードS(CRCがゼロクリアになり、非ゼロのICAOコードが含まれているもの)のICAOコードのCRCを求めてみると、先に出た非ゼロ固定値が得られた。

 DF4はM-C応答をM-Sで変調しているような感じで、ATC SSRインテロゲータからの質問ならインテロゲータIDが含まれているはずだが、それが無いのが謎い。ATC SSRではなく、ACAS/TCASみたいな機能によるんだろうか? ACAS/TCAS用の質問にはIIコードは無いはずだから、CRCにICAOだけ載せてIIコードが無いのは説明できる気がする。でもその場合は他者が出したACAS/TCAS質問の応答を誤認する可能性がありそうだが。距離が近いモードSトランスポンダに対してはモードSとは別の(ACAS/TCAS側の)プロトコルで識別するとかするんだろうか?



 モードSのCRC(24bit幅)に24bitのデータを入れた場合、入力と出力は1対1で対応する(複数のデータが一つのパリティに重複しない)。なので、データに誤りが無いと仮定すれば、パリティから適当な逆変換(テーブルを引くとか)で24bitIDに戻すことができる。もちろん、伝搬中にビット誤りが発生すれば、それを検出することはできず、誤ったIDを復元することになる(IIコードが乗っている場合もICAOコードは復元できない)。同じIDが複数検出されればそれを正しいコードとして使うとか、ビット列を厳密に判断する(少しでも弱かったり強かったりするビットが含まれていれば破棄する)とか、色々とロジックは組めそうだが。

 トランスポンダの規定としては、モードSの応答はいずれのビットペアでも2dB以内に収めるように、とのことだから。4dB位を見ておけばいいかな。ENRIの資料では3dBで閾値を設定していたはずだけど、受信側は1dBしか余裕がない。もっとも、送信側は大電力を出さなきゃいけないので電気的に厳しいが、受信側はそこまで厳しくない、ということで、2dB+1dBで設定しているのかもしれないけど。


 モード3/A/CやモードSの応答の形をググると綺麗な矩形波列の図が出てくるけど、Airspy R2で見た感じは、もっとヌメッとした感じの振幅が得られる。おそらく帯域幅を制限しているので正規分布的なエンベロープになっているんだろうけど。

 もう少しサンプルレートの高い受信機か…… HackRFとか? 帯域幅が倍で値段は2倍弱。7GHzまで対応しているけど、2.4GHzとか5.8GHzみたいなISMバンドとか、そのあたりで使われている周波数拡散プロトコル(DSSSやFHSS等)を見るには20Mspsだと厳しいのよなぁ。当面はR2の1.7GHz/10Mspsまでで遊ぼう。



 同じような感じでSIFの受信も行おうとした場合、これらの信号はパルス間隔1.45usで規定しているので、10MspsのAirspy R2とは若干相性が悪い。確かENRIのロガーは20Mspsだった気がするけど、帯域幅の話(18MHzくらいのはず)だけでなく、モード3/A/Cのタイミングが整数に入るように、というような選び方をしていたのかもしれない。


 モードC応答で有効なGillhamコードから得られた高度と、モードS DF4で得られた高度を見てみると、ほぼ同じ値(丸め誤差程度の差)が得られている。同様に、モード3/A応答で得た有効なコードと、モードS DF5で得たコードを比較すると、同じ値が得られている。

 DF5のコードはいくつかのビットが追加されているけど、スコークコードについてはSIFと同じ物理配置で並んでいる。Xビットすらもそのまま残っている。ということは、モードSを決めるに当たってXビットも残しておく必要がある、と判断された、ということなんだろうか。やはり大口顧客が使ってるのかな? ほとんど使い捨てみたいなドローンにわざわざモードSトランスポンダなんて乗せるかな……とは思いつつ、でもQF-16位の規模になれば乗せるか。


 一部の説明だと中央のXビットは常にクリアで、セットされている場合は無効な信号として扱う(無視する?)、というような事が書かれている。この場合、空域にターゲットドローンが存在していても、民間用を始めとしたセカンダリレーダーでは把握できない(スクリーンに表示されない)ということになる。そもそもターゲットドローンを民間航空機がいる空域で飛ばすな、という話なので、普通は問題ないんだろうけど。

 自衛隊で海岸近くでターゲットドローンを飛ばしている部隊もあるから、そういうときに1030/1090MHzをサンプリングすれば面白そうだけど、さすがに怪しまれそう。べつにでかいアンテナを立てるとかするわけでもなく、ダッシュボードに置いたモノポールをノートPCでサンプリングする程度で取れるだろうから、外から見て怪しい感じには見えないだろうけども。

2026年3月11日水曜日

小ネタ






 ロビンソン、お前もか…… いや、順当な方向だとは思うけど。

 飛行制御はシコルスキーのシステムだそうで。ってことは、ガワが違うだけで中身(&管理システム)はU-Hawk(UH-60無人化バージョン)と同じってことになるのかな。米軍向けにU-Hawkを売り込んで、同じシステムが使える低コストのソリューションも一緒に売り込もう、みたいなことを考えてるんかしら。

 シコルスキーの強み(他の無人輸送ドローンに無い点)は何十年も作り続けてきた機体がすでにあって、ロジスティクスも確立されているという点。大量生産のノウハウもあるし、製造ラインもある。機体を運用できる環境も熟知しているだろうし、やはり強そう。


 理想的には腹が開いていて、高度5m程度の場所でホバリングしてウインチで荷物を積み下ろしできればいいんだろうけど、ロビンソンの床下は制御系が通っているし、無人化で追加したアクチュエータは床下に入っているだろうから、底面から荷物を出し入れできるような構造は難しいんだろうな。

 ロビンソンはマストが長いから平均的な身長の人ならメインローターに巻き込まれる危険性は低いけど、テールローターに叩かれるような事態はあり得るし、災害時に支援物資を空輸するような用途を考えると、地上作業が必要な形はちょっと大変そうだが。ウインチで自動で荷物を下ろすような機能があると、緊急事態では下に人がいないか確認する程度の安全管理でも運用できるけど、荷物を下ろすための作業が多かったり、テールローターに巻き込まれる可能性があると、送り先に対応できる人間が必要になる。

 あとは、軍の荷物の輸送とかを考えても、自動で荷物を下ろす機能があるなら、適当な広場に自動で着陸して直ちに荷物を下ろしてすぐ飛んで、みたいな運用ができるけど、人間が降ろさなきゃいけない場合は広場でそこそこの時間の作業を行う必要がある。迫撃砲とかで狙われると危ない。まあ、自動で荷物をおろしたって、その場所に照準して拾いに来たところを撃たれたら同じだけど。



 ニデック不正会計問題 “カリスマ経営者”永守重信氏 いったい何が | NHKニュース | 企業・経営、東京証券取引所、京都府



 小型高機能科学衛星「れいめい」の運用終了について | 宇宙科学研究所



 人工衛星の帯電を「光」で検知するシリコンフォトニクスセンサを開発~宇宙開発を悩ませてきた静電気トラブルに新方式で挑む~ - 国立大学法人 岡山大学

 電位に応じて透過率が変わるデバイス。人工衛星を想定したセンサの話だけど、電気の話なので、電位差の意味でΔVが出てくる。

 細い光ファイバ2本を引き回せば好きな場所の電位(デバイスに含まれる電子の数)を測定できるのは、他のセンサ(電気信号を出すようなセンサ)に比べれば、引き回しは便利かもしれないけど、計測点ごとに光源と受光素子を用意しなきゃいけないので、光電変換が面倒そうだ。とはいえ、光源は1個を配分してもいいだろうし、受光は適当なイメージセンサとかに突っ込めばいいと考えれば、比較的小型に作れるのかな? あるいは、サブナノ秒の光源/光量センサがあれば、ファイバの長さを数十cmずつ変えて、ファイバ自身を遅延線として使って、計測点1箇所あたり1本のファイバで時分割測定ができそうだが。

 光(ファイバ)の分岐や結合デバイスってどれくらい研究されているんだろうか? 現在の光通信は基本的に送受信機を1対1で接続して、多対多接続する場合でも基本的には周波数分割だから、一つの波長を均等に分けたり統合したり、みたいなデバイスはあんまりなさそうな気がする。フライ・バイ・ライトの黎明期にはこういうデバイスもいくつか研究していたような気がするけど、そもそもFBL自体それほど研究されていないからな。

 あと、宇宙機内の光ファイバでアナログ量を通す使い方ってどれくらいされているんだろう? 放射線の影響でファイバの損失が大きくなると経年で信頼性が下がりそう。宇宙機内の光ファイバはデジタル通信とかが多そうだが。光ファイバジャイロだと干渉の強さを見るから、ファイバでの損失の影響も受けると考えれば、宇宙でアナログ光量を通すような使い方も実績はあるのかな? FOGは変化の少ないバイアスはSTTで吸収している可能性もあるけど。



 ソニー、PlayStation独占作のPC移植を停止か その理由とは - CNET Japan

 自社ハードを売るために独占タイトルの別ハードへの移植をやめた可能性、という話。

 任天堂は昔から自社ハード専用でしか売ってないから別として、それ以外の勢力(具体的にはプレステ、Xbox、PC)がそれぞれ独占タイトルを売ると、不景気の時代には複数のハードを購入できる資金力のあるプレイヤーはあまり多くなくて、マルチプラットフォームタイトル+どれか1個のハードで遊べる独占タイトルを買うだけになって、独占タイトルを増やす方向は販売本数が減る方向になりそうな気がするけどな。

 あるいは、複数ハードを買い揃えられる(ゲームに使う金額が大きい)層狙いでゲームハード・ソフト共に高価格化するか。その場合も加速度的に売上が減るポジティブフィードバックだと思うが。

 あとは、独占タイトルを数年後に移植しても思ったほど売れない、というのは、最近はゲーム実況を見て、それで遊んだ気になって、わざわざ数年後にフルプライスで買おうと思わない、みたいな理由もある程度あるんじゃないだろうか。かといって配信禁止にすると、話題にならないから売れないし。配信時代だと、ストーリー重視のゲームは厳しそうよね。かといってゲーム性重視だとプレイヤーを選ぶし。集客力の強いストーリーなら配信で見ずに自分でプレイしたい、というユーザーを集められるんだろうけど、よほどのネームバリューがないと難しいだろうし。

 任天堂は「任天堂」という超巨大IPがあるから独自のエコシステムが成立するけど、他のメーカーが後追いで独占タイトルに依存したハードの売り方をやるのはかなりハードな気がする。

 ゲームが売れないというのは、「本が売れない」とか「音楽が売れない」とか、そういうのと同じで、コンテンツが多様化してそれぞれのパイが小さくなっているだけで(スマホゲーで満足する層も多いだろうからそことも食い合いになるし)、小手先の工夫程度じゃどうにもならなそう。最終的には汎用マシン(Windows or Linux)あるいはクラウドゲーミングに収束して、任天堂みたいな特殊な製品を除けばゲーム専用コンソールってのは将来的には無くなりそう。でも四半世紀も売り続けてきたブランドを捨てる判断は難しいだろうなぁ。プレステはやはりメーカーを背負うブランド力があるだろうし。

 α(デジイチ)とかを認知するのはよほどカメラが好きな子供でなければ、大人でも知らない人のほうがほとんどだろうし、テレビメーカーなんて世界中にいくらでもあるけど、PlayStationのブランドは子供の頃から刷り込まれるし、たとえ自分や友だちが持っていなくても名前は知っているという人も多いだろうし、SONY製品としての知名度は抜群だろうからな。


 いくら任天堂が強くたって、将来的に汎用計算機orクラウドゲーミングに収束した場合、わざわざ任天堂のハードに最適化させたゲームソフトを作ろうというインセンティブもなくなるから、そのうち任天堂のハードもなくなるんだろうか? それとも、任天堂の独占タイトルでハードを普及させている限りは、その普及台数を見込んで移植が続けられるんだろうか?

 あるいは、最終的にはLinuxベースのOSを積んで、ARM/Linuxみたいな実行環境になる可能性もあるか。任天堂独占タイトルの実行はハードウェアベースのライセンス管理で他のシステムでは走らないようにしたうえで、他のシステムで走るゲームも実行可能、みたいな。


 Intelがゲームハードを作ったらちょっと面白そうな気はするが。自社で半導体ファブを持っているし、CoreやArcみたいなプロセッサも自社で設計しているし。Steam Machineみたいに別の収入源が無いからゲームハードで稼ぐしかないのがちょっと辛いけど。既存のx86系PCと全く同じアーキテクチャだから、WindowsやLinuxを入れればゲーム以外にも、そこそこの計算リソースを持ったコンパクトな計算機としても売れる。計算能力が中途半端で売りづらそうだが。



 クラウドゲーミングは、StarlinkとかLeoに計算機が乗った宇宙データセンターが作られると数百kmゼロホップで直結できるから、往復10ms未満で通信できて、手元にちょっと描画の早いモニタ(OLEDとか)があればほとんど相殺できる。それにゲームはプレイヤーに紐付いたデータがかなり小さいから、衛星のハンドオーバーでのオーバーヘッドもほとんど無い。と考えると、宇宙データセンターを使ったクラウドゲーミングはかなり優位性が高い。あまりにユーザー密度が高いと計算能力が不足するので、1衛星あたりのユーザー数の少ない過疎地域ほど宇宙ゲームセンターとの相性がいいということになる(逆に人口密度がバカ高いエリアは直近の地上DCで計算するほうが色々と楽)。

 そういう時代になると、世界中のどんな隔絶した場所にいても、空が見えている限り、STBにアンテナと適当な画面、それとゲームパッド(orキーマウ)を接続すれば、映像デコーダだけが乗っている程度のチープな機材で最新のゲームが遊べるようになる。そういう環境の人からどうやってサービス料を徴収するかは別にしても、「ネット環境が弱いからゲームを遊ぶにはゲーミングPC(orコンソール)を買う必要がある」という状況ではなくなる。

 都心部なら地元のデータセンターで、地元にデータセンターがなくても宇宙DCで、クラウドゲーミングが遊べる時代になると、任天堂みたいに自社IP専用ハードを売るモデルはどうなるのか。衛星通信の性能にもよるけど、スマホを直結して高速通信ができる、みたいな話が本当なら、スマホ単体で高品質なゲームが遊べる時代に、手元でレンダリングしなきゃいけない携帯ゲームコンソールは重いだけで画質は悪いし電池の持ちも悪いしと不評になりそう。


*


 英語圏の人のFH6のリアクション動画で時々「バックファイア」というのが出てくるけど、ja.wikipediaだとエキゾーストから出てくるのは「アフターファイア(内燃機関で燃焼室の後(after)に出てくる炎)」であって、バックファイアは燃焼室の前(back、系を戻る)で起きる異常燃焼のことである、みたいなニュアンスの説明が書いてある。でも英語圏の車にそこそこうるさいであろう人が何人もエキゾーストから出る炎を「バックファイア」と言っているということは、やはり車の後ろから出る炎はバックファイアで良いんだろうか?


 バックファイアー - Wikipedia

 Back-fire - Wikipedia

 en.wikipediaを読む限り、エキゾーストパイプで燃えるのがバックファイア(backfire)あるいはアフターバーン(afterburn)、吸気側で燃えるのがアフターファイア(afterfire)あるいはポップバック(popback)、という感じっぽい? 前も後ろもどっちもbackあるいはafterがあるの曖昧すぎるだろ。

 ただ、燃焼室の前後どちらでも鋭い音がして、俗にバックファイアと呼ばれるが、エンジンメカニックによるトラブルシューティングでは、排気システムではバックファイア、吸気システムではポップバック、とより厳密(more strictly)に定義している、と書いてある。

 ja.wikipediaに書いてあるのはen.wikipediaに書いてあることと完全に逆だな。

 日本語の資料だと、バックファイアという用語は明らかに吸気系での異常燃焼を指して使っている。車(自動車)の分野だけでなく、それ以外のエンジン機器、例えば芝刈り機とかプレジャーボートでも同様で、JTSBのレシプロ機のエンジンに由来する事故の報告書でも、注釈で「「バックファイア」とは、(中略)、吸気管内の混合気に着火し、その炎が吸気系統まで逆に伝わることをいう」と書かれている資料がある。


 日本語と英語で全く同じワードなのに意味が真逆になっているんだな。


*


 ロケットの新規開発って、模試無し滑り止め無しの一発受験、天候不良や機材トラブルがあれば数日順延、失敗したら来年再挑戦、みたいな感じなのがねぇ。特に日本の民間開発は観光需要まで含めて予算調達しているから、その方面に迷惑をかけないように、できるだけ期日通りに打上げたいみたいなプレッシャーもあるし。

 あらかじめ模試みたいな感じで、例えば第1段だけ作って上段はダミーウエイトを積むとか、あるいは第1段を省略して第2段を地上から打つとか、そういう感じでいくつかに分けて開発する手順だってあるはずだけど、でもその場合はそのロケットは絶対に宇宙(周回軌道)までは行かないわけだから、観光需要が取り込めなくなる。そうすると観光需要に当て込んだ地元からの投資が得られなくなる。MOMOだって集客できてるんだから、サブオービタルだってある程度の観光需要はあるんだろうけど。

 要素毎の試験を飛ばしていきなり本物の衛星を積んで打上げると、あとはまあ言わずもがな。SpaceXだって同じだろと言われるとぐうの音も出ないが。

 ある程度の資金力があって、すぐに事業化する必要のないところ、具体的にはホンダとかのあたりは着実に一歩一歩やっているんだろうけど、そういうところは基本的に情報は出てこないからあまり話題にはならず。


 あとは、某社に関して言えば、頑なに失敗を認めない企業文化がちょっと違和感あるなー。言葉狩りに近いやり方は危うさを感じる。社内の誰かが怪しい点を発見して「これは失敗に繋がる可能性があるから細かく確認したほうがいいかもしれない」と思ったときに、社長が「失敗という言葉は使うな!」と訓示していると、言い出せなかったり、とか。社内の雰囲気は外からはうかがい知れないから、実際はどうかわからないけど。


 あと、初めてだから安全寄りに、という判断はわからないでもないけど、でもそれでフルスケール機(実機)を何度も落とすくらいなら、むしろペイロードは多少減らしてでも追加の保安系機材で厳重に管理したうえで、オンボードの保安ロジックはルーズに設定して、in flightのデータを確実に取得しつつ試験機の実際の保安系は地上からコマンドする、みたいなコンフィグでやったほうが、実績を積むという点では良かった気がする。そういうコンフィグなら少なくとも1号機や3号機はもっと先までシーケンスが進んでいただろうし。オンボードロジックの誤判断で第1段燃焼中に2回も落としたとなると、次もそのロジックの微修正で打つのか、あるいは根本的に違う方向に行くのか。

 でも、日本の民間企業が使える機材で、コマンドベース(非自立型)の保安系を作るとなると、大変なんだろうな。射点から見える範囲ならJAXAの可搬機材をいくつか借りればシステムとしては組めるだろうけど、地平線を超えたところをカバーできる、海上or空中の通信システムはあまり思いつかない。

 DRTSみたいな衛星があれば、適当な場所に衛星と直結できる地上局を作ってロケットの保安に使うこともできるだろうけど、JDRSでロケットの追尾は厳しいだろうし。種子島や内之浦の敷地を借りてそこから打てば地上RF系はそのまま丸ごと借りて使えるけど、でも和歌山から打つと大々的に謳っている以上はそういう事もできないだろうし。

 結果論だけど、JAXAがTDRSみたいにロケットの追尾もできる中継衛星の保有を続けていて、かつ射点設備も既存の設備を民間に貸し出すようなスキームを用意しておけば、もっと楽に民間ロケットの開発が進んでいたんだろうな。種子島空港は南東向きで人口密集池の上空を通らずに比較的すぐに海に出るような場所にあるから、飛行機形態で離陸する機体の試験もできるだろうし。ロケットを追尾できる中継衛星はJAXAだって持ってれば便利だろうに。打上げ用の重要設備が手が届かない場所にあるのは怖いけど。


***


 重い腰を上げて、AirspyでIFF Mark Xを受信/解析するソフトを作成中。とりあえずキャリアスケルチだけ実装して、信号をWAVファイルに保存。


 ファイルフォーマットとしては、通常の32bitWAV形式で、dataチャンクの中にさらにサブチャンクを追加する形にしている。たとえばdateチャンクでタイムスタンプを保存し、waveチャンクで実際の波形を保存する、といった形。

 IQ信号は16bitなので4byte/サンプル、dateチャンクの中身を4バイトアライメントで保存すれば、サブチャンクのヘッダがゴミに見えるけど、通常のWAVファイルを取り扱うソフトで開くことができる。

 現状はdateとwaveしか保存していないけど、例えばiffxとかjsonみたいなチャンクに解析結果を保存しておけば、後でファイルを開くときにいちいち再解析しなくても済む。ファイルサイズが増えるのと、それほど複雑な信号じゃないからファイルを開いたときに(必要に応じてパラメータを変更しつつ)再解析するほうが便利じゃねって可能性もあるけど。



 スケルチは2段階のレベルを設定して、H1を超えた場合はT1遡って最初にH2に達した場所からT2遡った場所から記録を開始し、一定期間(T3)の間H2を超えなかった場合は、最後にH2を超えた場所からT4経った場所で記録を終了する。



 WAVファイルのwaveチャンクから振幅をグラフ化

 縦軸が振幅、横軸は時間(マイクロ秒)。補助目盛線は、上のふたつが1.45us、下は2us。

 上段は1723でモードCに割当がないのでモード3/A応答。

 中段は3410でモードCに割当があるのでFL153の可能性。

 下段は恐らくモードS応答。全体の長さがプリアンブル(8us)+56bit(56us)=64usと整合的。

 当該の時刻をFr24で確認すると、モード3/A応答は値が確認できる。高度についてはBARO.ALT.で比較的近い値が得られている(上昇フェーズなので多少の時刻差で大きく高度が変わる)。モードSはドキュメントが少なくてデコードが難しい。


 試しにRasPiの30002ポート(dump1090の生ビット列)と同時に保存したIQファイルを読んで、モードSらしい波形を目視でデコードし、30002を保存したファイルでテキスト検索すると、そのビット列が見つかる。ということで、少なくともIQ信号から生ビット列へ変換するのはできそう。10Msps(ビットレート*10、ボーレート*5)なので、マンチェスタ符号の復号もそう面倒ではないはず。



 現在走らせているRTLベースのロガーは、一定の信号強度を検出したらその前後の固定長を保存するだけのもので、12bit応答にSPI分の余裕を見た長さに設定しているから、Mode-S系の信号が入ると正しく保存できない問題があった。RTLの2.76Mspsの場合はMode-Sの復調はできないので実質的に問題はないんだけど、Airspyの10MspsではMode-Sも復調できるから、その信号は正しく保存する必要がある。というかMode-Sを適切に復調したいからAirspyを買ったまであるので、保存できないと本末転倒。

 RTLは2.76MspsIQ8bitで、1日辺り300MB前後の容量になる。Airspyは10MspsIQ16bitで、単純計算で7倍のデータ量になるので、1日あたり2GBを超える可能性がある。1年と少しで1TBですよ…… まあ、そのあたりの心配は追々。



 IFFにはローマ数字でMark IIやMark IVとするものと、experimentalを意味するMark Xや、それの発展型のMark XIIAのように、いろいろな種類がある。Mark XIIA(マーク・エックス・ツー・エー)は「実験用の2つ目の発展型」というようなニュアンスだけど、たまにIFF Mark 12Aというような書き方がされることもある。



 SDR#のベースバンド信号をWAV(32bit)に保存する機能、ファイルサイズが4GiBを超えると自動的に分割されるけど、このときにどうやら最後の1バイトが捨てられているらしい(最大ファイルサイズが2^32-1バイト)。残りの1バイトが次のファイルに引き継がれる、みたいな実装ではない(次のファイルにもWAVヘッダが付いてるんだから当たり前か)。WAVはリトルエンディアンなので、最後の1バイトが捨てられると、例えばゼロ埋めで戻すとかなり大きな誤差が発生することになる。



 C#でif (_hoge is Hoge hoge){}はブロックの外でhogeに触れるのに、while(_hoge is Hoge hoge){}はブロック外でhogeに触れないの、地味に不便。例えばwhile(_hoge is not Hoge hoge){await Task.Delay(10);}みたいに待ち合わせしようとするとHoge?hoge;while((hoge=_hoge)is null){await Task.Delay(10);}みたいにしなきゃいけない。


2026年3月4日水曜日

小ネタ



 TOUGHBOOKとMacBookの中間みたいなデバイスがあったらニッチな場所ではウケそうだけど、数が出るようなものじゃないし、安くはないだろうな。値段が多少高くても計算能力が高くて手荒に扱えるノートPCが欲しいという分野は、エクストリームスポーツのその場編集以外の分野でもいくつかありそうだけど。



 地球との通信に依存しない自律的な宇宙航法へ一歩 | 理化学研究所

 3UキューブでX線パルサー航法の実証。

 現状は50km程度の精度。地球周回軌道だとGPS等に比べれば精度は悪いが、惑星間や恒星間も地球に依存せずにこの精度が出る。

 とはいえ、地球周回軌道は地球の周りを回ることで信号が変調されるから軌道誤差を検出しやすいけど、惑星間や恒星間みたいにほとんど直線で近似できるような軌道だと、今回の手法は使いづらそうな気がする。

 ロックインアンプで位相を決めれば、ミリ秒パルサーなら数千kmくらいの曖昧さになるから、位置誤差を数百km程度におさめておけば発散を防ぐ程度は使えるか。だからこそ光格子時計云々みたいな話も出てくるんだろうし(理研だからってのもあるだろうけど)。


 X線パルサーって、近い将来に人類が到達しうると期待できる範囲(十光年程度)であれば天球上の位置関係はほとんど固定だろうから、強度の強い(かつ天球にできるだけ分散した)X線パルサー5,6個程度を狙い撃つ検出器のアセンブリを使って、相互の位相で4次元時空を拘束するみたいな使い方ってできないんだろうか。キューブサットに積める程度の検出器ならアセンブリにしてもバカみたいに高額なモノにはならないと思うが。

 X線はシンプルなフォトンカウンタで位相の測定だけを担当、対象天体に向けるのは宇宙機側のAOCS(スタートラッカや何らかのトルク源で慣性ロック)で対応。あくまでも4次元座標を拘束するだけのセンサ(角度や角速度は決定しない)の方向性で。2分割とか4分割の受光素子を使えば測角もできないことはないだろうけど、X線のコリメーションの面倒さや画角の狭さを考えると、姿勢決定は可視光付近でやるほうがシステムとしては楽なはず。



 段ボール製ドローンが革命を起こす!?防衛・人命救助に期待のエアカムイで飛行実験しました - YouTube

Q.なんで誰も段ボールでドローンを作ろうとしなかったの?

A.段ボールで飛行機が作れるなんて誰も思わなかったから

 趣味の模型飛行機レベルで言えば、YouTubeで軽く探すだけでも、海外のYouTuberが作った段ボール製の飛行機はいろいろ出てくるんだよなぁ。そもそも日本人が固定翼ドローンを作ろうと(or商品化しようと)していなかっただけじゃねって気がするが。飛びモノの面白そうなアイデアはたいてい海外のYouTuberが作っていると考えて差し支えない。

 日本でも10年くらい前までは、趣味で変なヒコーキを作っている人は多かった気がする。百均で売ってる細長いバットを胴体にしたラジコン飛行機とか、一時期雑誌で特集されてたくさん作ってる人がいたし、他にもそういう変なアイディアを実際に試して、雑誌に投稿して「どや」ってやる文化は日本にも昔からあった。でも、ここ数年の法規制を考えると、日本で趣味で変な飛びモノを作るような人はだいぶ淘汰されただろうな。面白そうなアイデアがあっても、「国交省大臣の許可を取ってね^^」じゃぁ、実現することはそうそう無いだろうし。


*


 大昔にテレビか何かで、畳にウエイトをつけて重心を合わせて、スキーのジャンプ台か何かから滑空させて飛ばしたような実験なかったっけ? 要するに適当な面積と翼面荷重があってバランスが良ければ何でも飛ぶんだよ、という話につなげたいんだけど。

 段ボール製ドローンに限らないけど、いかにも「飛行機らしい」形で作らなくてもいいんじゃないかなぁ、って気はする。売り込むに当たって「これは飛行機ですよ(これはちゃんと飛びますよ)」というのを説明しなくても目で見てわかるというのは強いんだろうけど。

 有限長で切り落とした2次元翼を段ボールで作って、全翼機的な物体を作っても良さそうな気もするけどな。重心を合わせておけばある程度は飛ぶだろうし、たとえ飛ばなくても適当な制御ボードで何個かのサーボを制御すれば飛行制御できるだろうし。プッシャー式なら電装系は全部機体後部にまとめられるから、機体の前方をクラッシャブルゾーンとして使えば、適当な硬いもの(地面なり、鉄板なり)にぶつけて回収できるし。段ボールの値段が1枚数千円、電装系が数十万円、くらいのバランスなら、段ボール(クラッシャブルゾーン)は消耗品扱いでいけるだろうし。プッシャー式だとハンドランチが怖い、というのなら、モーターだけ前において、モーター/ペラは消耗品にするとか。

 2次元翼の全翼機が作れれば、大量の機体をめちゃくちゃコンパクトに格納して、飛ばすときは1枚1枚引っ張り出すだけでいいし、一度に大量に運用したいなら、箱を丸ごとUH-1やC-2から落としてスタティックラインで引き裂いて、出てきたやつが勝手にデタンブリングして飛んでいく、みたいなこともできるだろうし。

 クワッドコプターみたいに既存の航空力学/制御理論と全く別系統のモノが出てきたのに、固定翼は延々何百年も前のデザインを引き継いでいるのがなんかつまんねーんだよな。有人機は莫大なコストを掛けてCCV/RSSで古来の航空理論とは相容れない設計もあるけど、比較的安価な機体ではまだ静的安定に依存した機体が多そうなイメージ。/* RSS機だってX-29みたいな一部を除いてほとんどは古典的な飛行機と同じ見た目だけど */

 ラジコンヘリは本質的にヨー安定が無いので、一般的にジャイロセンサが搭載されている。バーレスもデジタル制御かな。ラジコンヘリのジャイロをラジコン飛行機のロールとかピッチの安定化に使う例は、皆無ではないだろうけど、ほとんど見かけなかった気がする。

/* マルチコプターみたいな空飛ぶクルマ的なやつも制御則が角度制御ループなのも、もうちょっとなんとかならないのかよ、とは思うのだが */



 平板(平らな長方形で板状の構造)を滑空させる例をググってもあまり見当たらないので、試しに試作

 厚紙の前方にウエイトを貼り付けて重心を調整。面白い見た目だ。

 M3x50のボルトを3本貼り付けて、重心位置28%あたりで綺麗に滑空する(もうちょっと前よりのほうが安定するかも)。矩形翼(テーパー比1、後退角0度)は重心位置の計算が楽でいいな。

 静的な安定度が無いのと無制御なので、投げれば斜めに進んで狭い部屋じゃ長距離を飛ばすことはできないけど、とはいえ結構ちゃんと「滑空」する。少なくともヒラヒラ回転したりする感じではない。変なロールも無いし、こういう形状でも実は結構静的安定は強いのかもしれない。

 翼型は無い。投げるときには両端が上がるような形状に持って、前後方向の剛性を得て力を加えている。なので形としては上反角になる。揚力が与えられれば当然中央部が下がるわけだから、飛行中もB787みたいに反り上がった形になるだろうし、それでローリングが始まっても打ち消す方向のトルクが与えられるはず。ヨーイングした場合はヨーの逆方向の端面が出て抗力になるから、ヨーも安定は正かな。ピッチングの安定はあまりなさそうな気がするけど、とはいえこれだけウエイトを積んでいれば、短距離なら慣性モーメントで吸収できそう。

 ということで、こういう形状でも短時間なら無制御で滑空できる、ということは確認できた。

 ウエイトは10g程度かな? 紙も同程度だろうから、トータルで20g程度か。結構重いな。

 ラジコン用の受信機やマイクロサーボ数個で40g程度、電池で25g程度、残り35gで構造、はちょっと厳しそうだな。滑空だけでも、100gに収めるのは難しそう。そりゃまあ、屋外でラジコンを飛ばさせないことを意図した法律だから、簡単にクリアできるようには設定していないだろうけど。



 ちなみに、畳で計算してみると、1枚30kg、重心を合わせるために2倍で60kg、面積が1.7m²として、翼面荷重は35kg/m²くらい。いわゆるセスナ機(172とか)の翼面荷重が70kg/m²程度だそうで、第一次世界大戦頃の機体が40kg/m²程度であることを考えれば、それなりの速度を出せば、畳は全く問題なく飛びそう。相当な速度が必要だろうけど。

 30kgを丸々推進やアビオニクスに割り振るなら、結構な余裕がある気がする。5kg程度のガソリンエンジンに2,3kgの燃料と、適当なラジコン装置を積んで、さらに1,2kgのペイロード(余裕がないならGoProでも)を積んで、遠隔操縦で数十分~数時間飛んでいられる畳、くらいは作れそうだな。操縦翼面が大変ではあるけど、コンパネ切って蝶番で何枚か貼り付けてさ。

 畳が重すぎると言うなら、OSB合板なら重さは半分になるから、もっと簡単に飛ばせるはず。

 しかしまぁ、こんなけったいなラジコン飛行機を現代の日本で飛ばせるかどうか…… 飛行特性が明らかに怪しい(安全性が期待できない)見た目の飛行機を飛ばすのは違法だよ、という考え方を採用すると、畳ドローンは違法ということになりかねない。


 国交省のハンドブックによると「遠隔操作または自動操縦による飛行の制御が著しく困難である無人航空機」は登録を弾かれることになっている。ということは、日本国内で無人RSS機(御役人が静的安定性を有さないと判断するような形状)を作るのは無理そうだ。そういう機体を作りたいなら海外で飛行試験して安全性を確認してから日本に持って来い、みたいなことになるのかな。

 一応、試験飛行届出みたいなフォーマットもあるけど、これで認められるには区域外に出る航空機を網で捕まえられるとか、30m以下の十分な強度の紐で締結するとか、わりとアホみたいな条件が設定されている。とはいえ、30mの紐で最大限飛ばせば直線でも50mくらいは飛べるわけだから、ライトフライヤー号の最初の4回の飛行(32m、37m、53m、61m)に相当する程度には飛行できるんだよな。「網で捕まえられる」というのも、人間が虫取り網みたいなもので捕まえるわけじゃなくて、バッティングセンターみたいな感じで5面を覆っていればそれでいいのかな? でもそれなら屋内扱いで申請無しで試験していいんじゃないのって気もするし。法律難しいね。



 1枚板が飛行機として飛べるなら、ポリカ板で作ったっていい。上や下から見ても推進系とかアビオ類を除けば透明だから、目視での発見がかなり難しい。透明部分は樹脂だからRCSも低いはずだし、わりと嫌な相手になりそう。

 あるいは、ガラス板でも良いのか…… 実用面での利点は全く思いつかないから、完全にYouTube用のネタ枠だけど。模型飛行機用のジェットエンジンとかを積んでかっ飛ぶガラス板。そりゃ面白いだろうよ。全天球カメラを載せたって邪魔になるような構造は一切無いしな。


***


 タイムコードジェネレータ(L0版)、今まではDMAとかで処理していたけど、試しに割り込みで処理するように改造。どちらにしろ色々管理しなきゃいけなくて面倒なのは同じだけど、割り込みで処理するほうが自由度は高い。

 他にタイミングクリティカルな処理があるならDMAのほうが安心な気もするけど、今回の場合はタイムコードに専念すればいいので、割り込み優先度を高くして、各種信号もタイマのプリロードを経由するので、基本的にはタイマ更新に同期して(ソフト処理のジッター無しに)出力できる(IRIG Jもタイマで生成したCTSに同期)。


 10PPSでトリガしてCTS(黄)とIRIG J-2y(紫)

 PPSとCTSは同じタイマから出しているけど、なぜかCTS信号はPPS信号より8ナノ秒ほど早く出ている。CTSの立ち下がりからUSARTの立ち下がりまでは221ナノ秒程度。外付けCMOS発振器の8MHzからコアを32MHzで、USART(APB1)を16MHzで駆動しているので、250ナノ秒で4クロックになる。前回APB1を32MHzで駆動して約125ナノ秒(4クロック相当)だったので、CTS立ち下がりからUSARTのスタートビットまでは4クロックで固定っぽい。

 ただ、前回はクロックエラーで片付けていた若干の時間のズレは、比較的精度の高いクロック(10ppm前後と想定)に変えても、やはり残っている。というか前回は124.7nsで0.2%程度の差だったものが、今回は13%まで増えている(前回はクロックエラーで打ち消していたという可能性もあるけど)。STM32のUARTはコアクロックと完全に同期して(同じエッジで)動作するわけではないのかな?



 現在のところ、1MHz、1kHz、10Hz、1Hzのパルス信号と、IRIG J-xy(12-14, 25-29)を出力できる。時刻コードはUART(115.2kbaud)で設定できるが、タイマの分解能が1msなので、時刻設定分解能もそれになる。タイマのカウンタをリセットしてもう少し精度よく同期することもできるけど、コマンドのパースはソフト処理だからある程度のジッターがある。割り込みとかいろいろ使って追い込むこともできるけど、あんまりやっても使わんしな。問題が出たら考える。



 STM32L0のUSARTのBRR、リファレンスマニュアルにはUEが0の場合にのみ書き換えができる、と書いてあるけど、実際にはUEが1のときに書き換えても反映されるらしい。ボーレートの計算方法の箇所には、BRRへ書き込みを行うと新しい値が使用されるから通信中はBRRを書き換えるな、というような書き方。

 本来の意図としては、通信中にBRRが変わるとデータが破損するから、BRRを書き換えたいならUEが0のときに書きかるのが安全だよ、というような感じなのかな。それにしたって、書き換え後に相手が送信しているタイミングでUE=1にして受信を開始するとビット同期がずれるから、結局は何らかの手段で文字化けを検出するような機能が必要になるはず。

 あとは、UARTを止めるためには送信中のデータがないことや、相手が送信していないことを確認して行うべし、という建前があるので、なら止めないでも通信していないことを確認してBRRを書き換えれば良くね?という気もする。



 前回貼り忘れた、サムホイールスイッチをADCでサンプリングするときの、値の期待値の図

 10箇所の接点を100Ω±5%で分圧して、VDDとGNDの間にも100Ωを入れて、11本の100Ω抵抗が直列に接続され、常に3mAが流れる。ADCではコモンをサンプリングし、スイッチで選択した場所に相当する電圧がサンプリングされる。また、ADCはSTM32内蔵のプルアップ抵抗(45kΩ±45%)を使用して、オープン時(断線orスイッチが浮いている状態)ではVDDが計測される。コモンが地絡した場合も検出できる。

 上の箱ひげ図では、誤差がない場合の値を中央値として、各抵抗のワースト誤差で取りうる値を箱で表現し、誤差無しの値を等分割した範囲をウィスカで表現している。ウィスカの範囲よりも箱が小さいので、1次関数で適当な整数に変換すれば、0から9ならホイールスイッチで選択した値として、0未満なら地絡、10以上ならフロートor天絡として判断できる。


 CubeMXだとADCピンをプルアップすることはできない。GPIOをopen-drain/highで初期化して、ユーザーコードでADCと接続したりすれば、そういう使い方ができる。オープン受けだと地絡/天絡の検出や、プルアップを使用したフロート検出ができない(抵抗を外付けする必要がある)。

 外部の分圧抵抗が十分に小さいので、STM32内蔵抵抗の大きな誤差はほとんど影響が無い。誤差の大部分は分圧抵抗の成分なので、1%品を選べばもっと密に配置できる。とはいえ、16ポジのロータリースイッチとかを使いたいならHEX品を買うほうが楽だろうけども。というか、サムロータリスイッチだって普通はBCDだと思うんだけどな。


 今回は最終的にピンの余りが無いので、スイッチは常に電源に接続され、3mAを消費する。GPIOに余裕があるなら、ADC開始前にスイッチに給電を行い、ADC後に電源断とすることで消費電力を数十分の1まで減らせる(サンプリング周期やデューティ比による)。GPIOで管理するのが面倒なら、TIMのPWMでON/OFFして、別のチャンネルからADCをトリガすれば、ADCサンプリング完了フラグでADCを読むだけで済む。タイマの本数が多い大型のマイコンならそういうやり方もあり。


2026年2月25日水曜日

小ネタ


 先週は風邪でへばっておりました


***



 FH4(UK)だと、走ろうと思えばわりとどこでも走れる自由度があったけど(FH5は未プレイ)、日本マップはその自由度が低そうな感じがするのが若干の懸念点。FH4もそれなりに起伏はあるけど、日本の場合はとにかく崖が多いからな。降りるのはともかくとしても、登るのは大変そうだ。まあ、ドライビングゲームだしちゃんと調整してあるだろうけど。

「クルマですから」と言い訳して空飛ぶクルマを何機か用意しておいて、普通の車では行けないような場所には空から行けるようなシステムがあれば面白そうだけど、さすがにForzaで空は飛べないだろうなぁ。イースターエッグでトヨタの資金が入ったJoby、大穴狙いでHondaJet。eVTOLはどこでも離着陸できるから便利そう。HondaJetはさすがに厳しそうだな。FH6のマップエリア的には空港は少なくとも5箇所程度は配置できるだろうけど、それにしても。過去作だと飛行機とのレースみたいなミッションもあったし、今作は新幹線とのレースもあるらしいから、可能性としてはHondaJetとのレースも排除はできないか? ガンダムが出てくるなら、HondaJetくらい不思議でも何でもないか。


 FH6とACSは地域的にかなり重なってるはずだし、比較とかあっても面白そうだなー。/* YouTubeのUbiの本チャンネル、ACSの動画全部消えてる? */



 PCストレージ大手Western Digital、「今年のHDD供給枠はほぼ完売」。HDDにもAI特需の波 - AUTOMATON

「AI時代のローカルシステムなんて安物(ネットワーク機能と映像デコーダだけ乗ってるスマホorタブレット)で十分だよね? 計算に使えるリソースは全部買い占めちゃうけど問題ないよね」みたいな感じ。ゲームみたいにメモリやら色々必要な場面も、サーバーサイドでレンダリングまでやるようなプラットフォームがそれなりに進化してきたからなぁ。手元に高い計算リソースを置くような使い方は近い内に駆逐されそうな勢い。

 一昔前は@homeみたいな分散コンピューティング(一昔前ならSETI、最近話題になったものだとFolding)があったけど、このままコンシューマー向けノードの高コスト化が進むと10年程度で無くなりそうだな。

 そういう時代になると、ビットコインみたいな非商業的(非プロプライエタリシステム)のブロックチェーンってどうなるんだろうか。マイニング用の機材がどんどん高コスト化して計算アセットが減少していくと、計算量で信用を確保するようなシステムはつらそうだが。そのうち計算ノードが減って多数決が弱くなって、どこか予算力のある組織が安くなったオンライン計算リソースでゴリ押しして掠め取って、バレないうちに現金化して、みたいなこともできたりしないかな。



 ロボットと「Xbox」のコントローラー 冬季五輪の写真の舞台裏を探る - CNN.co.jp

"主要なイベントでは、撮影から処理されるまで30秒以内ということも珍しくない"

"ロボットカメラは会場内やミラノの拠点から操作され、ゲーム機「Xbox」のコントローラーで制御されることが多い"



https://www.jrhokkaido.co.jp/CM/Info/press/pdf/20260224_lavender_engine.pdf

 JR北海道で'25年11月に発生した、車両から発煙した事故の報告。

 エンジン燃料系のコントローラのハンダにクラックが発生し、振動で異常な制御値が出力され、過大な燃料が供給され、エンジンが過回転に至った。

 コントローラー基板の写真もある。こう言っちゃなんだけど、電子工作で作るような基板とほとんど同じだな。SMDは一切無し、金属皮膜抵抗だらけ、背の高い部品はポッティングしてあるのが高信頼向けっぽい感じではあるけど。部品が乗ってない場所に2.54mmグリッドのランドを大量に配置しているあたりとか、いかにも。

 しかし、光学顕微鏡にデジカメを載せたやつを「電子顕微鏡」かぁ。


 他の車両については振動を与えて異常値が出ないことを確認した。コントローラー自体が故障したことで保護が働かなくなっていたので、監視用の機材を追加で搭載する。

 ただ、この手の安全装置は、それ自身が故障していることを検出するのが難しいのが問題な気がする。「気づいたときにはもう遅い」みたいな。フェイルセーフデバイスが安全側に故障しているならまだマシで、危険側に故障していることを、事故が起きてから知った、という事例は多い(明らかにバイアスがあるので当然とはいえ)。

 JR北海道の状況を考えると、ただでさえ採算性の悪い北海道の旅客輸送で、安全装置を追加したこと等によるコストの増加に対して、経営陣(&国)からのコスト削減圧力を受けて、機材の点検・整備の手が抜かれて、結局また別のトラブル(or事故)を起こす、というような流れになるような気もする。

 安全性の向上に一番有力な手段は大規模な予算の投入なんだろう。それで設備の維持や更新を行ったり、コスト意識による圧力(「早く作業を終わらせなければ」という考え方等)を減らして確実に作業を行う。ただ、JR北海道の収益性でそういうことは不可能だろうけれども。

 不景気の何がだめって、人の命が安くなるのが一番だめな気がする。好景気でも各種コストが高騰して相対的に低コスト化圧力が強化されたら意味ないので、バランスの問題なんだろうけど。



 概要 | 鉄道 | 運輸安全委員会

 新幹線の分離の途中経過。

 不規則に開閉動作を繰り返す事象、素人考えだと配線が浮いてノイズが入ったとかを考えるけど、でも「1年以内に調査を終えることが困難であると見込まれる状況」ってことは、そんな簡単な話じゃないんだろうな。



 制御線の単純な接触不良みたいなトラブル、例えば金沢シーサイドラインの事故やボルチモアの貨物船事故みたいな場合だと、1線で1信号を伝送するような従来の方式(アンサーバックのない方式)が弱点になっている感じもする。これがデジタルデータバス(誤り検出や双方向通信)で通信していた場合は、故障検出のロジックが多層的に構成できて便利そう。1553的に冗長化してもトータルで見れば配線本数は減らせるかもしれないし、冗長系やルータで頑張れば断線しても短時間(遅延なく~百ms未満程度?)で復帰できるし。ただ、デジタルデータバスの場合は決定論的な通信が期待できないみたいな欠点もあるし、実際に万博の自動運転バスでそういう不具合があったわけで(本来は適切なFDIRを設計するべきだろって話なんだけど)。このあたりはSDVでどんどん規格を更新していくだろうし、10年20年後には大規模な公共交通機関にも取り入れられるんだろうけど(その時代にその手の輸送の新規設計作業が残っていれば)。



 ハンダのクラックの非破壊検査って、ぐぐるとX線検査みたいなのばっかり出てくるんだけど、原理的にかなり難しそうな気がするのだが、もう少し別のソリューションって無いんだろうか? 例えば超音波みたいなインピーダンス変化を見る手法であれば、割れた面を確実に計測できそうだが。とはいえ固体中で波長が数十um程度の波だから、滅茶苦茶な高周波数が必要になるだろうし、液体につけて波を入れなきゃいけないから、その液体から基板をどうやって保護するか、みたいな問題もありそう。最終的に、X線CTスキャンが一番手軽、って話になるんだろうか。

 どの手法にしろ、明らかな起点がある場合や、亀裂が進展するよりも短い周期で検査する以外には、実際にクラックが発生してからじゃないと検出できないから、結局は適切なFDIRで処理したうえで、BITSで故障箇所を検出する、みたいな感じになるんだろうか。航空宇宙分野だと冗長化で頑張る(札束で殴る)みたいな方向性も可能だけど、地上輸送系でそれは難しそうだな。新幹線くらいまでのスケールだと、適切に緊急停止できる余裕だけ確保しておく、くらいが落とし所か。



 オフィスとかで、イーサネットケーブルをJJコネクタで中継するとスループットが低下するのでNG、みたいな話、実際のところどれくらいの影響があるんだろう? ツイストがほどけたりクロストークやリターンロスが悪化するから、ともっともらしい説明が出てくるけど、でも通ってるのってデジタルデータですよ? 普通は信号が多少劣化したところで問題なく復調できるだろうし、それでも復調できないレベルまで信号が劣化しているなら「スループットが低下する」(ちょっと遅くなる)レベルじゃなくてもっと大きな影響(大量のパケットをロストするとか)が出てくると思うのだが(1000BASEはだいぶアナログっぽいけども)。

「コネクタが抜ける可能性が排除できないから」みたいな理由ならわからないでもないけど、第一義的にスループットの低下を挙げるのはちょっと信用ならないというか。あるいは「延長コネクタが燃えた」とかに関しては、そりゃPoEと組み合わせるやつが悪いだろ、という話だろうし、「後からPoEに流用するかもしれないから」というなら、それを理由にして禁止にしろ、という話だし。



 Apple Siliconみたいなダイをスタックするような半導体を最大限突き詰めた方向性のスマホ(モバイルデバイス)ってどこまで行けるんだろうか、という空想。ストレージもフラッシュメモリで半導体化されて久しいし、表示デバイスもマイクロLEDみたいに半導体で作りやすそうなものもあるし。カメラ(光学デバイス)だって半導体プロセスでメタマテリアルとか開口マスクを作るような感じで作れるだろうし。マイクやら多少のセンサは現状でもMEMSで半導体化されているし、スピーカーもイヤホンみたいな小電力のものはすでにMEMS化が提案されているし。アンテナみたいに高誘電体とか物理寸法が問題になるようなものは工夫が必要そうだけど。

 ディスプレイで発電するみたいなデバイスの提案もあるけど、現状の課題は電力が厳しそう。バッテリーだけ接着剤で貼り合わせて、必要に応じてアンテナも貼り付けて、それ以外は全部ワンチップ(チップレット)に収まったスマホ、みたいなものって作れないんだろうか。カスタマイズ性が最悪なのでよほど製造プロセスを最適化(高柔軟化)させないと厳しいだろうけど。

 設計支援からチップレットまで垂直統合したラピダスみたいなファブで「ワンチップスマホ」を製造できたら面白そうだけどな。細かいネジ等が大量に必要な組み立てコストがゼロだし、機械的な結合がほとんどないから故障リスクも低い。半導体が全部抱え込むことになるけど。


 ぐぐってみると、半導体固体電池というものが研究中らしい(2019年の東芝の特許など)。英語表記だとSemiconductor Solid Batteryで、略称はSSBになるのかな。

 LIBに比べて容量は低いが、単純なキャパシタよりは3桁以上大容量で、半導体プロセスで作れるので、ロジックのバックアップ電源(チップに電源を内蔵できる)等の用途が想定される、みたいな話。

 化学反応で貯蔵するのではなくて、電荷をそのまま貯める。電池というよりキャパシタに近い。現状スパッタリングで作っているけど、塗膜でも作れるらしい。効率や容量が改善すれば、エネルギー変換無しで純粋に電荷を貯めれるので面白そう。半導体全固体電池でも、フラッシュメモリと同じように寿命があるのかもしれないけど。

 化学電池は化学反応である程度安定な電圧が出る利点があるけど、キャパシタとかSSBは充電率と電圧が比例するので、後段で安定化させなきゃいけない手間がな。LIBもDCDCやPOLは必要にしても、電圧が安定していればDCDCの動作幅が狭くていいので、特定の比率の変換に特化して高効率な設計ができる。逆に、SSBは電池内部でのエネルギー変換(ロスや反応による発熱)が無い分で大電流充電ができるとか、充電率と電圧がリニアだから適当な電圧まで定電流で突っ込めばいいとか、過熱保護が必要ないとか、フューエルゲージが必要ないとか、エネルギー管理全体で見れば削れる機能もあるんだろうけど。

 ディスプレイやRF、あるいはスピーカーみたいに大エネルギーを扱う機能はちょっと懸念が残るけど、チップレット単体でスマートフォンを作るのは、原理的にはできそうな感じだな。発電だって光電変換とか熱電変換は半導体でいけるし。


 消費電力が少ないディスプレイと言うと、一番究極なのは反射式の液晶だろう。輝度をまるごと外部に依存する。ただ、完全固体化スマホを空想するうえで、表示デバイスが液晶というのはいただけない。E Inkも同様。有機ELもちょっとなー。最終的に、完全固体化を目標とすると、マイクロLEDしか残らなさそうだ。

 わずかなエネルギーを突っ込むだけで反射率をスイッチングできる半導体素子みたいなものって作れないんだろうか。光の反射が電子によるなら、電子的に反射特性を変えられる素子があっても良さそうだけどな。自由電子が大量に入っていれば高反射率、自由電子を吸い出せば低反射率、みたいな画素。

 Electroreflectance - Wikipedia

https://www.jstage.jst.go.jp/article/electrochemistry/67/11/67_1078/_pdf

 材料系の分野だと、電位を変調してロックインアンプで計測して反射率の変化を計測する、みたいな手法はあるっぽいな(下のPDFでは金を測定する例)。反射率で変調度が浅いから実用的なディスプレイとしては使いづらそうだが。全体が金メッキで文字盤も何も無い腕時計が、よく見ると薄く時刻が表示されている、みたいな時計は、作れなくはないか。いかにも成金趣味っぽいし、今の時代に売れるとも思えないけど。



 飛行機の飛行制御の資料。「B747は飛行中に4発のエンジンが停止しても、また、エンジンの1つが落下しても、いん石などの衝突などで外翼がとんだり落雷などで垂直尾翼が半分とれても、更には水平尾翼やエレベータの一部がなくなっても操縦可能であることが大きな特徴である」とか書いてあってすごい。エンジンが4個ついているから、油圧の冗長系がかなり多い。とはいえ、それでも全系統全損とか起こしてるわけだが(全系統の作動油を喪失することもあるし、エンジン4発全部止まることもあるし)。



 PCのメインモニタの液晶画面の謎のゴミ

 表からこすっても取れないし、表示内容を変えても消えないし。ピクセルのグリッドがあるから表示内容の問題か?とか思っていたら、なんか動いてやんの。これ、液晶パネルの奥、バックライトの手前の隙間に入り込んだ小さな虫らしい。これが「バグ」か……

 液晶パネルってちゃんと密閉されてるものだと思いこんでたけど、結構隙間あるんだな。バックライトを拡散させるために空間が必要、ということなんだろうか。空間があるところを密閉すると不都合だから、適当にベンチレーションを開けておいて、場合によってはそこに虫が入り込む、みたいなこともあり得るわけか。


***


 タイムコードジェネレータのやつ。

 いろいろ書き換えて、アナログ1系統、デジタル4系統から、比較的自由に信号を出せるようになった。デジタル系からアナログ信号(e.g. 振幅変調正弦波)を出せないのは当然としても、そういう部分を除けば、概ね好きに出せる。とはいえ、現状IRIGのマンチェスタは未実装だし、対応しているのはIRIG-A,B,H,JとJJY(40/60kHz)、それから1,10,100PPSと1,10,100kHzの正弦波、といったあたりだけども。JJYは振幅変調で出せるので、近くに(ほとんど容量結合させるような距離に)電波時計をおいておけば、それに時刻を反映させられる。

 計算リソース的には今の3倍くらいは出せそう。重いのはアナログ(1MB/sの波形をコピーしなきゃいけない)なので、デジタル側は空きピンを全部割り当ててもまだ余裕な気がする。

 アナログは、STM32F303K8を使う以上、ボルテージフォロアが1chしかないので、アナログは1系統しか出せない。HiZで良いならDACはもう1本使えるし、全chがHiZでいいならトータルで3ch使えるけど、とはいえメモリ容量(全12+4KiB)の制限があるから、現状ではアナログは1chしか出せない。

 バッファは現状1ms(1kHz) x2で確保しているけど、これを例えば2kHzにすればメモリ使用量は半分になるから、3chのADCでも余裕はある。ただ、計算がだいぶ面倒になるので、やりたくない。

 ということで、当面はアナログ1ch+デジタル4-8ch程度で固定の予定。ちゃんとしたIRIGタイムコードジェネレータとして市販するなら振幅変調は4chくらい無いと話にならないんだろうけど、そんな予定も無く。G474REなら4xLowZ+2xHighZの6chまでアナログ系を出せるはずだが、さすがにQFP64を自分で扱うのは面倒(Nucleoはピンアサインが悪くてアナログ系の制限が強い)。


***


 STM32L010F4で遊んでる。TSOP20で32MHz、Flash16K、RAM2K、という感じのスペック。CubeMX(HAL)で使おうとするといかんせんRAMの少なさがどうしようもない。QFP32(e.g.STM32F303K8)より一回り小さいので、32ピンまではいらないような簡単な用途には便利だし、SOP8みたいに極端な小パッケージ(電源2本とSWD2本以外にGPIOが4本しか使えない)に比べれば使いやすくはあるのだが。


 L101F4のUSART2のCTSを使って、外部トリガに同期してRS232メッセージを出力

 紫がTIM2_CH1のPWM信号、黄がUSART2_TX信号。124.70nsで標準偏差120psくらい(1Gspsなのでオシロ側のジッタも大きい)。もっと盛大にジッタ出るかと思ったけど、かなり安定しているな。両方とも同じクロックで動いているからかな。コアが32MHzで動いているので、4クロックで125nsになる。0.24%程度の差があるけど、これはHSIの精度(3.0V常温動作時1%)の範囲内なので、クロックの誤差が見えているものだと思う。右上のトリガレートも1.0027kHzで、1kHzに対して0.27%高い。値としては若干違うけど、精度としては良さそう(オシロ内蔵のクロックも精度あまり良くない)。


 USARTを適当な信号に同期して出力できることがわかったので、これを利用してIRIG Jシグナルジェネレータを作成。

 機能としては、1PPS、10PPS、IRIG J-xyを出力するだけのシンプルなもの。これは前回の多機能なものは機能が多すぎて動作確認が面倒という反省によるもの。現状、クロックの出力は無し。必要ならMCOで1MHzや8MHzは出せる。手持ち部品の関係で10MHzは出力不可(逓倍器や分周器が基本的に2^nしか設定できないので、10MHzを出したいなら10MHzや20MHzのCMOS出力発振器を外付けする必要があるが、手持ちに無い)。

 IRIG Jはとりあえず12,13,14,25,26,27,28,29に対応。2年ほど前に買って積んでいたサムホイールスイッチを1桁で使って、0-9までを選んで、0と1は無出力、2-4はIRIG J-1y、5-9はIRIG J-2yに割り当てている。


 ただ、今回はTIMでUARTのCTSをトリガしていて、出力モードの切替はUARTやTIMの設定をまとめて変えなきゃいけないので、過渡特性をきれいにしようとするとかなり面倒。

 F3で作っていたときは1MHzのサンプリングクロックでDACとGPIO(BSRR)にまとめてバッファを転送していた(IRIG JもソフトUARTで生成した)から、時刻は決定論的に決めることができていた。今回は10Hzのタイマで時刻を管理したうえで、UARTのバッファを書き換えたりする必要があるので、かなり面倒。


 ピンアサイン

 基本的にすべてのペリフェラルはユーザーコードから直接レジスタを叩いて初期設定やらいろいろやっている(CubeMXで初期化するとハンドルがデカくてRAMに余裕がない)。なのでペリフェラルに割り当てたGPIOは宣言だけしている(CubeMXで宣言しておけばそれ用の初期化コードは書いてくれるし、GPIOの初期化はスタック領域だけで完結する)。

 PA0はHSEに予約、PA9はMCOに予約、PB9はBOOT0に割り当てられているので予約。

 IRIG Jの出力にUSART2_TXを使用していて、このピンアサインだとLPUART1は使えない。ピンを整理すればもしかしたら使えるかも。自由に使えるUARTが無いので、時刻は起動時に1日0時0分0秒0からカウントを開始する以外に設定ができない(反映をIRIG Jで確認するなら、UART2_RXでIRIG Jと同じボーレートで設定することはできるはず)。


 最初はL010F4の20pinはちょっと大きいかな、L021D4(14pin)あたりがあると良さそうだな、と思っていたけど、20ピンでも結構ちょうどいい感じだな。



 STM32F1の汎用タイマはCNT==CCRxの場合にしかSR.CCxIFがセットされないはずなんだけど、STM32L0の汎用タイマはCNT==CCRxの場合だけでなく、ARR<CCRxの場合は常にSR.CCxIFがセットされるらしい。

 TIMよりも長い周期のPWMを出したい場合に、DMAでCCRに転送して、ピンの論理を固定したい場合に、ARR<CCRの値(例えば0xFFFF)を入れる事があるが、その場合にSRが期待した結果を返さなくなる。


2026年2月11日水曜日

小ネタ



 ロッキード・マーティンの無人潜水プラットフォームのコンセプト。友軍の潜水艦の底に張り付いて、潜水艦の運動エネルギーで充電できるとか面白い機能も有りつつ、自立で戦闘できるランチャーみたいな使い方もできる。実際に撃つ場合は一旦浮上して衛星リンクで許可を得たりもできるらしい。魚雷や偵察・攻撃用のドローンを投射できることを考えると、結構でかいビークルっぽいな。もしかしたらSDVと同じような規模・運用方法を考えているんだろうか? 原潜の背中に積んで運んで、目標海域の近くで吐き出して、とか。

 しかしまあ、敵艦の想定が結構あれよな。中露だとしたら日本はすでに陥落しているような状況に見えなくもない。さすがに仮想敵として海上自衛隊を想定している、というのはひねくれ過ぎだと思うが。




 Q. なぜカッパーケーブル(銅線)が大量にあるの? デジタルの光通信でよくない?

 A. デジタルは1箇所切れたら全部終わり。アナログなら1,2本切れても他が使える

 うーん、過渡期。。。じゃあファイバーも冗長化しろよ、という話だと思うんだけど、冗長化したり自動で繋ぎ変えたりみたいなシステムってないんだろうか? データ通信ならリンクアグリゲーションのプロトコルとかありそうだけどな。タイミングクリティカルなシステムで使うにはまだ足りないってことなんだろうか。

 色々な機材を持ち込んで現場に引いてある電線を使いまわしたりするから、リプレイスのコストが高すぎ、そのコストを許容できるメリットはない、みたいなことなんだろうか。わざわざファイバーを追加するくらいならSDIでいいや、とか。



 リアル港湾作業シム『Docked』3月6日配信へ。クレーン操縦から物流管理、港拡張まで全部やる“港まるごと”ワンオペ体験 - AUTOMATON

 デモをちょろっと遊んでみた。ちょっとコンテナが軽そうな感じがあるけど、ゲームとしては面白かった。

 ただ、「この場面で使う道具はこれじゃないだろ」というような場面(例えば狭い場所でリーチスタッカーを切り替えして奥のコンテナを取り出すとか)もあって、ちょっとストレスが溜まるかな。ゲーム性を考えるとあらゆる場面でストラドルキャリアを使って取り出すというわけにも行かないんだろうけど。あとは、荷崩れしたコンテナ船からコンテナを下ろすのにガントリークレーンを使えるんかな?という疑問。ガントリークレーンの自由度って3軸しかなさそうだけど、傾いたコンテナとか取り出せるんだろうか(ゲーム内では6軸の自由度がある)。

 全部英語UI/字幕だけど、ステップバイステップでウェイポイントや操作を指示されるので、そんなに難しくはない。色々な操作があるのでキーを覚えるのは大変だけど、F1で操作方法を表示しておけるし。



https://www.tepco.co.jp/niigata_hq/data/publication/pdf/2025/2026020601p.pdf

 6号機制御棒駆動機構電動機制御盤の警報発生に関する調査結果について

 かなり細かく説明しているな(書いてあることをそれなりに理解するにはある程度の電機周りの基礎知識が必要とはいえ)。



 Gmail の Gmailify と POP の今後の変更について - Gmail ヘルプ

 スケジュールが追加された? 2026年第1四半期までに新規ユーザーのサポート(新しい追加?)を終了、既存ユーザーは’26年後半に廃止、だそう。



 別に何の話というわけでもないけど、組織のトップのおじさんが気安く「万死に値する」とか言ってハラキリの文化を後生大事に抱えていて、最後の最後に一番保守的っぽい印象を残しているのがもはや皮肉だし、そこまで大口叩いておいて辞職するわけでもなく結局身内には甘いところも含めて「そういうとこやぞ」って感じがするし。



 Google Earthが起動しなくてぐぐったら、Google AIが復旧手順をいくつか提示してきたんだけど、一番最初のやつが「Google Earth Proを起動し、メニューの[ヘルプ] > [修復ツールを起動]をクリック」で、これだからAIはダメなんだよ、みたいな感じの。

/* 結局Google Earthが起動しない原因は非常にアホらしい理由(人間の問題)で、特にあれこれすることもなく解決、というか、そもそも発症すらしていなかったというのが正しい結論 */



 PC Web版のYouTubeの登録チャンネルの新着動画一覧がタイル表示に強制されて動画の説明も見れなくなるの、マジでクソ以外の何物でもない。Googleとかいう頭のいい人ばっかり集まってる会社がこんなに馬鹿なことをわりと頻繁にやるのか理解できない。頭のいい人が多くても平均化すると凡庸になるらしい。

 Amazon musicでも思ったけど、最近のこういう感じのサービスって「登録チャンネルの動画は絶対に見る」とか「このアーティストの楽曲は絶対に買う」みたいな提供の仕方に特化している気がする。動画のタイトルや説明文を読んで見たい動画を探すとか、曲を試しに聞いてから買うかどうかを決める、みたいな、興味のエンベロープを広げるような使い方ができない。登録していないチャンネルの動画を探そうとしても、YouTubeの検索機能は本当に使い物にならないしな。そういう機能はX(旧ツイッター)の口コミに任せる、みたいな方針なのかもしれないけど。



 SDRのサーバーとして使っているNUC(アンテナ引き込み近くでサンプリングしてTCPで解析PCに流し込む)、勝手に再起動する事象が発生。最近はそうならないようにWindows Updateを1週間停止して、1週間毎に手動でUpdateの確認と必要に応じて再起動の操作を行っていた(メインPCを週1で再起動しているので、それと同時にNUCも必要に応じて再起動)。

 起動後にコントロールパネルを開いてみると、ちゃんとWindows Updateが止まっている。なにかね、Windows Updateって止めていても勝手に再起動するのかい?? なんのための停止機能だよ。。。


***


 IRIGタイムコードの仕様書を眺めているけど、わりと簡単そう。JJYタイムコードとかなり似ている。

 色々な変調やフレームが定義されているから、用途によって選べる。逆に言えば、方言が多い。デファクトスタンダードはいくつかあるらしいけど。例えばパルス幅変調は時刻精度が高いがDCバイアスがあるから長距離伝送に不向き、振幅変調はDCバイアスが無いから同軸線で比較的長距離を引き回せる代わりに時刻精度が悪い、マンチェスタ符号はDCバイアスがないから長距離を引き回せるし、時刻精度も高い、みたいな感じ。

 パルス幅変調が一番基本的な方法かな。3種類のパルス幅を使用するのはJJYと同様。

 振幅変調はパルスのHighを100%、Lowを33%とするASK。搬送波はいくつかの値が定義されている。ASKなので搬送波を追尾できるのはJJYと同様(JJYは変調が深いので大抵はOOKだけど)。もしかしたらLowは33%ではなくて30%かもしれないが。厳密に準拠する必要があるのでなければ、送信側は3対1くらいの比率、受信側は余裕を見て2対1位を受けられるように、程度でいいと思う。

 マンチェスタ符号は一般的なマンチェスタ符号とはちょっと違う(IRIGは3値をエンコードする必要があるので)。イメージとしてはASKをBPSKにして2値化した感じ。1bitを表現するのに複数のマンチェスタ符号シンボルを使用する。あんまりマンチェスタ符号っぽくない。

 ASKの時刻精度が悪いのはアナログ値を使うから、立ち上がりのタイミングを精密に決められないのが原因。2値化して(というかアナログを経由せずに)出すマンチェスタ符号なら立ち上がりを精密に決めることができる。ただ、振幅情報が失われれば当然時刻情報も失われるので、周波数変調の代わりに位相変調を使う、というような感じ。

 マンチェスタ符号はDCオフセットのない2値信号なので、光ファイバとの相性もいいらしい。

 ビットとマンチェスタ符号には0.5シンボルのオフセットがあって、マンチェスタ符号の遷移(中央)が秒と同期するようになっている。次のビットの値があらかじめわかるので、マンチェスタ符号からパルス幅変調や振幅変調への変換は容易になっている。PWMやASKからマンチェスタ符号への変換は0.5シンボル以上の遅れが発生するので、正確なタイムコードを出したい場合は符号再生とフレーム生成が必要になる。ノイズの多い環境や遠距離まで飛ばしたい場合はマンチェスタ符号を光ファイバに載せて、IRIG TCレシーバの近くで電気信号(既存の機器と互換性の高い形式)に変えてから入れる、みたいなこともできる。

 1bitを多数のマンチェスタシンボルで伝送するので、同じシンボルが連続する。マンチェスタの同期がかなり大変そうな気がする。

 IRIGタイムコードには誤り検出機能は無い。十分に誤りが少ない伝送路を使うか、あるいは複数のフレームの連続性(例えば秒のインクリメント)を確認する。あるいは、BCDの時分秒と、17bitのseconds of dayから計算することもできる。


 IRIGタイムコード、フォーマットとしてはだいぶシンプルだからエンコーダは簡単に作れそうだけど、そうやって作ったエンコーダをどうやって動作確認するかという問題がな。せめてマトモなエンコーダがあれば、先にそれに対応したデコーダを作って、その後でエンコーダを作る、みたいなこともできるんだけど。

 ASKは可聴帯だし、マンチェスタも概ね可聴帯だろうから、探せばPCやスマホでオーディオIOベースのフリーのIRIGエンコーダ/デコーダとかもありそうではあるけど。


 YouTubeあたりで探せばIRIGタイムコードの音声素材なんていくらでもあるやろ、と思って探しても、全く出てこない。大部分はSMPTEタイムコード機材のVlog動画ばっかり。YouTuber、タイムコードジェネレーター買いすぎでわ。

 あとはオーディオ機器でiRigという製品シリーズがあるらしくて、字面から分かる通りスマートフォン向けの機器だけど、検索ワードを変えると(例えば"IRIG B122"みたいにtimecodeを検索ワードから外すと)これの検索結果が大量に出てくる。

 動画に限らないけど、インターネットが民主化して大量の人間が入り込んだ結果、ごく少数の人しか知らないディープな知識、いわゆる集合知と呼ばれるものが押し流されて、多数の人間が飛びつく話題ばかりしか出てこない、という現象。特にSNSはその傾向が強いんだろうけど。まあ、ニューラルネットワークだってそういう挙動だし、知性っぽいよな、とは思いつつ、条件反射的な反応を知性と呼んでいいのかはまた別の問題だけど、そんな事を言い始めるとな。。。



 試しにIRIGタイムコードの形のWAVを作成(P,0,1,P,0,1の並び)

 下がASK、左上がPWM、右上がマンチェスタ。振幅変調と言いつつキャリアとビットレートが近いので素直に振幅復調しようとすると結構大変そう。どうせ受信側でもローカルを作るんだから同期検波すればいいだろ、というような考え方なのかもしれないが。

 マイコンから出すことを考えると、PWMはわりと簡単そうだし、マンチェスタ符号も出せないことはないはず。ASKはアナログ波形を出さなきゃいけないので大変そうだ。DAC+ボルテージフォロアで出すとするなら、最低でもSTM32F303K8みたいなデバイスが必要になる。電圧の分解能が悪くてもいいならメモリバスにR-2Rをぶら下げてDACとして使うとか、GPIOにDMA転送できるならそれでもいいけど、どちらにしろある程度のリソースが必要になる。いずれにしろ、IRIG TCを出すだけなら、必要があれば出せないことはないかな、といった感じ。クロックを出したりまで考えると大変そうだけど。


 B127とB227



 IRIG TCのサンプルデータの生成、うまいこと自動化したら全パターン一気に吐けないかな、と思って、そういえばIRIG TCってどれくらいの種類があるんだろうかと数えてみたら、トータルで300あるらしい? 搬送波は最大1MHzまであるので、それをWAVで書き出そうとすると50Msps程度は必要だし、全部50Mspsで出すと莫大な量になるから搬送波が低いやつは低spsで書き出したいし。とか考えるとかなり複雑なコードになりそうだ。

 50Mspsだとしても例えばfl2kで出せば実空間に出せるわけで、タイミング確度を求めずにとりあえず動作確認用の波形が欲しいみたいな場合はできそう。fl2kなら3chを出せるから、IRIGのフォーマットを3種類出すこともできるし、1PPS、10MHz、IRIG-B122、みたいな信号を出すこともできるし。fl2kは汎用の水晶を積んでいるからクロック精度は悪いけど、10MHzだから適当な外部クロックを突っ込んでやればそれで済むはずだし。



 同じくIRIGのタイムコードとして、UARTを使うIRIG J-1x/J-2xというものがあるらしい。1は1秒/フレームで1秒桁まで、2は0.1秒/フレームで0.1秒桁までを表現。xでボーレートを指定(2の300から9の38400baudまで)。1xは300baud以上、2xは2400baud以上。7bitOddのストップ1。2xは<SOH>DDD:HH:MM:SS.S<CR><LF>のフォーマット(1xは.Sが無い)。概ね1年毎に1周する。

 タイミングはSOHのスタートビットの立ち下がりエッジで規定。フレーム間はアイドル(H固定)だから、一定期間H後の立ち下がりエッジでトリガできる。STM32のUARTだとタイムアウト機能があったはずだから、これでタイマのICを有効化してエッジでカウンタをキャプチャ、みたいな感じで受信できるはず。送る場合はハードフロー制御で出すのを止めて、負論理のPPSで送信を許可した瞬間にスタートビットが始まる、みたいな感じで処理できるはず。

 UARTではないIRIGはアルファベットでフレームレートを規定するが、すでにHまで使っているので、UARTを使うJまではあと1個しか拡張できない。まあ、今更IRIGタイムコードを拡張したいという需要もないだろうけど。

 あと、IRIG Jは搬送波がないので、周波数を出すことができない。IRIG x00xも搬送波はないけど、1bit分解能の時刻で、例えばIRIG Bなら10msを決めることができる。搬送波を出す場合、例えばIRIG Bx1xなら1kHzの搬送波で1msを決めれる(最大1MHzまで)。

 1PPSとか10PPSの入力側が、一定時間アイドル後の最初のエッジで同期みたいなロジックであれば、IRIG JをPPSの代わりに使うこともできる。普通はそういう機能は無いはずなので、そういうふうに使うことはできない。UARTを1ch受けれる小さいマイコンと2入力NORゲートが1個あればIRIG J-1xやIRIG J-2xを1PPSに変換することもできる。ただ、パルス幅が極めて狭くなるので、十分に広いパルス幅(100msとか)が必要な場合はORゲートを追加してマイコンから追加パルスを出すみたいな事が必要になる。立ち下がりエッジのジッタは大きくなるけど、基本的には立ち上がりだけで決めるだろうから問題はないはず。

 IRIG [A-H]は受信がちょっと面倒なのがなー。IRIG x00xならPWMキャプチャができるマイコンならわりあい容易に受信できそうだけど、x1xxやx2xxはちょっと大変そうだ。無理してデコーダを作るくらいなら、1MHzや10MHzのref clockとIRIG Jの2本で投げたほうが楽ってこともありそう。


***


 SuperK OD-DAQ - GPS subsystem

 スーパーカミオカンデの時刻決定周り。GPSでUTC(USNO)を決めてファイバで引っ張って分配。



https://tech.nao.ac.jp/tech-sympo/2020/proceedings/tecsym20_Hirano_Ken.pdf

 VERAの時計回りの機材枯渇に対応するために作り直したよ、みたいな話。たぶんDAQ(ADC)周りとは独立した、アンテナ駆動周りの時計の話だと思う。なかなか複雑な構成。巨大で高額かつ信頼性が要求される機械の部品だから、電子工作レベルのマイコンでアダプタを作って、みたいな話じゃ済まないんだろうけど。



 時刻決定の話を探してたら、博論でFPGAベースのNTPサーバーを試作した話が出てきて、それが某組織で使用されている、みたいなことが書いてあった。そうか、あれって大学院生が作ったシステムだったんか……


***


 STM32F1/W5500のNTPクライアント、動かしてると別の遊びができないからそろそろ止めるかー、と思いつつグラフを眺めていたら、なんか急にCloudflareのオフセットが減ったんだけど……

 CloudflareとGoogleのAWSからの差は前回の画像と符号が逆になっているので注意。

 Google-AWSはほぼ0msを行ったり来たりしているので、おそらくGoogleとAWSの時刻確度は高い。

 Cloudflare-AWSは最初は-2ms強だったものが-3ms弱までずれていって、X軸70万付近を境に急に-1ms付近まで引き戻されている。もしかして、CloudflareのNTPクロックってフリーランしてるんか? そんな事ある??


 W5500のNTP時刻比較、しばらく安定して動いていたんだけど、急にエラーを吐き続けるようになってしまった。おそらく稀に発生するネットワークの遅延とタイムアウト処理のタイミングが変な感じに噛み合ってエラーから復帰できずに次のクエリも失敗する、という感じらしい。ネットワーク遅延の発生回数はかなり少ないから、エラー発生率はかなり高いことになる。でも時間あたりの発生率は低いのでデバッグが大変。せっかくの機会なのでここで終了。


***


 STM32F303K8でタイムコードジェネレータを作る遊び。どういう種類の信号を出すかで迷いつつ、まずはどういう信号が作れるかを確認しているターン。

 STM32F303K8でも、クロックの調整を行わないのであれば(誤差のあるクロックに追従してタイムスタンピングするだけなら)10MHzから1PPSまで、あるいは各種IRIGタイムコードも含めて出せそうな気配。

 クロックの微調整が必要なら、STM32G431KBがあると良さそう。調整と言っても数ナノ秒単位でクロックを進めるか遅らせるかの調整だから、ジッターはそれなりに含むけど。

 STM32G431KBT6はDigiKeyで1個4.91USD、2.5k個買うと単価は2.72USDくらい。これをマルツで買うと1個1100円、2400個で470円。うーん。ちなみにSTM32F303K8T6はマルツで1200円、秋月で780円。秋月、いったいいつから在庫抱えてるんだ…… これだけ回転悪ければ、そりゃ不人気商品はどんどん取り扱い終了していくか。。。


 市販の機材で精密な時刻を作る用途(特にアンサンブルで時刻を決める場合)って、おそらく原子時計は各々フリーランさせて、出力される10MHzを位相変調するような感じで調整しているはずなんだけど、どうやって信号処理しているんだろうか。

 デジタルでゴリ押すならADCで正弦波をキャプチャ、FIRで複素信号化、複素積で移相、実部をDACで出力、みたいな感じでできるだろうけど、10MHzを変調しようとすると数百Mspsくらいは欲しいだろうし、大昔からこういうデバイスが存在している以上は、デジタル信号処理ではないはずなのだが。

 とはいえアナログ位相変調でやるのも大変そうだし。VCOで位相を固定した(&任意に移相できる)10MHzを作ってそれを出力するのが手っ取り早いだろうけど、そうするとVCOのノイズがそのまま出てくることになる。あるいは、この手の10MHzクロックに要求されているのは高い精度の周波数だけであって、短周期成分はあまり問題ないのかもしれないけど。


*


 とまあいろいろ考えつつ、試しにタイムコードジェネレータのピンアサインも考える

 HSEからコアを60MHzで駆動。10MHz、1MHz、1PPSを出力。IRIG系は、アナログ系が1ch、デジタル系は何種類か。

 今のところ、IRIG-B003、IRIG-B1x3、IRIG-Jxx、を出力している。

 アナログ系は例えばIRIG-B122互換信号を出せるし、搬送波は1kHz、10kHz、100kHzに対応している。DACを1Mspsで走らせているので、1MHzキャリアは使用不可、100kHzは10サンプル/周期なのでノイズちょっと多め。

 デジタル系はPWMのB003とUARTのJxxにだけ対応。マンチェスタ符号は未実装だけど、多分出せる。Jは現状12,15,25,27に対応。GPIOから出していて、かつ高速化のためにベタ書き(Excelでコード生成)している関係で、ROM的にはUARTを出すのが一番キツイ。アセンブリで書けばもう少し小さくなると思うけど、さすがにそこまでするつもりはない。ROM容量64kBに対してすでに57kB使っている。


 GPIOの余裕があまり無いので、信号形式を操作するようなインターフェースを追加する余地が無い。ADCが2本程度使えるから、ロータリースイッチを2個程度つけることはできるけど、そんなもの付けたところで何に使えるんだ、という話だしな。せいぜいフレームフォーマット(A-H)と搬送波周波数を切り替える程度にしか使えない。

 そんなに制限されたUIを作るくらいなら、別のマイコンをもう1個置いてUARTで接続、あたりのほうが使いやすそう。クロック用のマイコンはNiMHでバッテリバックアップ、UIは停電時には電源断、みたいな感じで割り切ったりできるし。

 実用的なタイムコードジェネレータが必要な場合は、もう一回り大きな、例えば100pinくらいのパッケージを採用して、豊富なIOで使いやすいユーザーインターフェースを用意しつつ、停電時はADCで電源や電池を監視してモードを切り替え、というような設計になるんだろう。今の時代に単機能なIRIGタイムコードジェネレータの新規設計があるかどうかはさておき。



 アナログ系

 1PPSでトリガしてB003とB123をキャプチャ。


 1PPSでトリガしてB003とB133をキャプチャ。デジタルとアナログのタイミングはかなり一致している。


 デジタル系

 200kHzでサンプリング。当然10MHzと1MHzは折り返しているので意味はない。

 一番上のUSER_LEDが、処理中はHighになる。デューティー比が十分に低いので、計算リソース的にはまだまだ余裕がある。


 200MHzでサンプリング

 1PPS、IRIG-B003、IRIG J-25のエッジは十分に高い精度で一致している。対して10MHz、1MHz、1PPSの位相はあまり一致していない。10MHz/1MHzはあくまでも歩度を得るために使う、という程度になるかな。


 ハードウェア的にはUART TX/RXやTIM15のch1とch2のリソースが残っているから、GPSからNMEAを受け取ったり、GPSの1PPSと自身の1PPSを比較して、精密な時刻を受け取ることもできる。

 ただ、自身の歩度や時刻をある程度精密に決めたとしても、それをフィードバックする方法がない。タイマのクロックを1パルス止めたり入れたりとかすれば調整はできるけど、60MHzから10MHzを作っているから、1パルスの分解能がかなり悪いし、調整の際は出力されるクロックが12MHzや1.2MHz、あるいは8.57MHzや0.857MHzになる。

 一応、高ZでよければDACが1ch残っているから、外付けのVCOやバリキャップを制御して、クロックの挿入・除去無しに、比較的綺麗に歩度を調整することもできる。ただ、その場合はアナログ回路の追加やらPID等の制御ループやらいろいろ考えなくちゃならない。現状、振幅変調も含めてすべてデジタル的に処理しているし、外付けクロックはMEMS発振器を使っているので、基本的にアナログ系のループは一切ない(STM32F3内蔵オペアンプでボルテージフォロアを作ってはいるが)。水晶を外付けするとアナログ回路を追加しなきゃいけないデメリットが大きそう。単に面倒ともいう。

 SiTimeのSiT3807みたいにVCXOなMEMS発振器みたいなものも売っているから、アナログ回路が面倒ならそれを使うという手もある。曰く0.1-3.2V範囲(3.3V品の場合)で入力インピーダンスが100kΩ、リニアリティが0.1%typとのことだから、マイコンのDACで制御するのがかなり楽そう。それでも多少のフィードバックループは必要なわけだけど、それはどうしようもない。



 最近C#ばっかり使っていたから、久しぶりにC++に触ると結構違和感ある。これがコンパイル時定数になるとかホントか!?、とか。さすが組み込みでガッツリ使われている言語だけあってそのあたりのサポートが手厚い。