2023年7月26日水曜日

小ネタ




 AIカメラ付きタイマーの空想。カメラで数字や記号を認識して、時間っぽい表示を読み取る。例えばカップ麺のラベルに向ければ3分とか5分とかが読み取られる。使い所があんまり多くないのが難点。カップ麺くらいならキッチンタイマーでいいからな。ある程度複雑な時間指定の場合はキッチンタイマーだと設定が面倒だけど、大抵は近似値で足りるし。

 カップ麺とかに使えるようなサイコロ型キッチンタイマーみたいなものってないのかな、と思って軽く検索してみたけど、いまいちそれっぽいのが見当たらない。15分とか20分とか結構長いやつはあるんだけど、例えばサイコロの1から6の目が1分から6分に相当して、ほしい時間の面を上にして机にコンコンと置けば開始する、みたいなやつではなさそう。数字が書いてある面に近いボタンを押せば開始する、とかそういうのが多そう。せっかく正多面体で構成してるんだから向きを変えて置く挙動に意味がある仕組みなら面白そうなのに。

 乱数ジェネレータとして使うならともかく、正十二面体くらいになるとコロコロ転がって不安定なので、こういう用途だと正八面体くらいが最大かな。それでも1分毎として1-8分まで測れるから、大部分のカップ麺はカバーできる。あるいは、カウント中にもう一度ダブルタップすればインクリメントするみたいな感じにすれば正六面体でもかなり細かく設定できる。


 タイムループみたいなゲームシステムのシングルプレイヤーFPS/TPSってないものかな。複数のプレイアブルキャラクターが存在していて、あるキャラクターで取った行動が、別のキャラクターに切り替えて時間を巻き戻したときに再生される。例えばキャラクターAで敵を攻撃しておいて、キャラクターBに切り替えて時間を戻してプレイすると、キャラクターAで行った攻撃が行われて敵がその対応に動くからこっちはステルスで行動できる、みたいな。アクション映画とかで2,3チームで行動して、各チームが臨機応変に対応する、みたいな行動をシングルプレイで遊べるような感じ。

 タイムループせずに(1パスで)ミッションをクリアしてもいいし、すべてのタイムループで交戦して正面からゴリ押してもいいし、すべてのタイムループでステルスで進めてもいいし、いろいろなゲームプレイができる。タイムループ無し(普通のシューティングゲーム)では戦闘を開始すれば敵が応戦してきて、場所が変われば遮蔽が変わる程度の違いの場合が多いけど、タイムループで過去の自分と共闘するなら、別の場所で敵の反応を引き出せば別の場所からステルスで入ったりできるようになる。

 あるいは、例えばスパイ映画のガジェットを使うようなシステムであれば、キャラクターAが敵の警備員を拘束してIDカードや指紋をスキャン、データを転送すれば、次のタイムループでは途中で敵のIDカードや指紋を利用してセキュリティを突破できるようになる、とか。あるいは映画でよくある「配電盤を破壊すると30秒後に予備電源に切り替わるからその間にセキュリティを通過する」とかをやれる。

 シューティングゲーというより、パズルゲーみたいな要素が強いかも。タイムトラベル系のパラドックスを回避しないとだめなゲームモードとかを積むのであれば、例えば先に別のキャラクターでキルした敵を、タイムループして先にキルするとゲームオーバーになる、とか、イージーモードだと前のループでキルした(後でキルする)敵にはマーカーが付くとか。


 トルクスドライバーを買ってきて、件の電動ドライバーを分解

 左端のR7が茶色く変色していて焼損している感じ。

 反対側はこんな感じ

 コンタクトが樹脂モールドの部品なので、基板パターンが追えない。左端の黒く変色した部分が焼損した抵抗の部分。

 結局、同じ電動ドライバーを再度購入。別の場所が壊れたら交換部品が手元にあるってのは利点かな、と思って。新品を分解したところ、焼損した抵抗は100Ωだった(もちろん新品の基板や部品は綺麗な色)。焼損した方は1年半ほど前に買ったやつだけど、ロット番号はどちらも同じだった。


 プライムデーでAnkerMake M5が値引きしてたので、思わず衝動買い。XYZも撤退しちゃったしね、という口実。後発&今まで使っていたやつよりも高価格帯ということでいろいろ使いやすくなってる。

 プリンタ自体のレビューは掃いて捨てるほどあると思うので、詳しくはWebで……

 初期設定で、WiFiの接続がスマートホンアプリからしか設定できないのがちょっと不便なところ。本体のファームウェアアップデートもおそらくWiFiからしか行えないし、USBでデータを移すよりWiFiで移す方が楽。事実上、スマートフォン(&ユーザーアカウント)必須。

 スライサーはプリセットモードが2種類で、あまり調整できる場所もないので、ちょっと凝った設定をしようとするとエキスパートモートを使う必要があるけど、今度は設定できるパラメータが多すぎて使いづらい。この手のUIで慣性スクロールを採用するやつ一体何を考えてるんだ。。。

 造形開始時に、ノズルとヒートベッドを加熱してから原点出しをして、原点出しが結構時間がかかるので、その間にノズルに入っている素材が熱で変色する。白いフィラメントだと茶色い糸みたいなのが入る。外周部に1周引き回す前処理を有効にしておけばそこで消費されるけど、今度はこの周辺の1層を剥がすのが面倒。爪でこすっても剥がれてこなくて、カッターとかで剥がす必要がある。1箇所剥がれれば全部はがせるけど。

 M5はちょっとうるさい印象。掃除機よりは静かとしても、電源ファン(常時回転)とノズル冷却のファンが結構うるさい。駆動系はかなり静かだから、ノズル冷却をOFFにすればだいぶ静かになる。近くにいるとファンがうるさくて駆動系は相対的にかなり静かだけど、少し離れた場所でも椅子とかを通じて振動がかすかに感じられる。結構振動が大きい。

 M5はネットワーク連携が安定していて、搭載カメラをネットワークで見れるから、別の部屋に置いてあっても安心して使えるのが便利。カメラには白色とIR(850um?)の照明がついているので、照明を消した夜の部屋でも白色LEDでカラーに見ることもできるし、目立たないようにIRで見ることもできる。タイムラプス撮影もできるらしいけど、今のところWinでは非対応かな。

 今まで使っていたプリンタは剥離しやすかったので糊を塗布したり、造形エリア(一旦造形したエリアは糊が剥がれるので別の場所を使う)の管理とか、時々糊を除去して塗り直したりとか、いろいろ手間がかかっていた。造形物に糊が残ってベタベタする感じもあった。M5はまだ小さい部品をちょっと作った程度だけど、今のところトラブルフリーで造形できている。M5はベッドがマグネットなので、大面積を印刷しても簡単に剥がせるのも便利。スクレーパーを入れる隙間を考えたり、剥がすときにベッドの表面のフィルムを傷つけたり、そういう心配が皆無。

 今まで使っていたプリンタはフィラメントの残量をスプールに内蔵したNFCでカウントする機能があったので、フィラメントの残量管理が楽だった(この方式は社外フィラメント等が使えないデメリットがあるんだけど)。M5はこういう管理機能がないので、残りが少なくなると不安になってくる。せめて印刷した重さを積算する機能があれば便利だったのにな。

 ソフトウェアにもう少し改善の余地ありかな、という感じはあるけど、今まで使っていたやつもPCソフトがちょっと微妙だったので、それに比べればまあ。Ankerは体力ある会社だろうししばらく待ってれば少しずつ改善されるでしょう。

 3Dビューの視点移動が結構謎いんだよなー。僕も遊び程度とはいえ3次元空間で視点を変えるような処理は書いたけど、そんなに難しい処理じゃないはずなのに、なんでこんな移動の仕方をするんだろう?

 造形精度は特に不満なし。今まで使っていたやつはY軸かX軸の切り返しでヒステリシスがあったから、例えば円形を造形すると少し歪んだ形になっていたけど、M5では気になるほどの誤差はなさそう。試しにm1T12/T18(バックラッシュ0.2mm)の平ギアを標準速度で造形してみたけど、特に抵抗なく回る。

 M5を置いている部屋とその隣の部屋、M5を使っていると蛍光灯がチカチカする。消費電力のリプルが大きいらしい。他の部屋だと気にならないんだけど。とすると、分電盤以降で抵抗が大きいみたいな話になるけど、いくら築年数が古い家とはいえそんなに損失大きいものなのかな。

 自室のUPSはもう少し余裕があるのでM5を入れても問題ないと思うけど、音とか発熱があるので当面は別部屋かなー。ただでさえPCの発熱で暑い部屋が。。。何年か前は夏の風物詩のように頻繁に雨(落雷)で停電したりしてたけど、ここ2,3年はほとんど停電してない気がする。最近は年に3-5回くらい短時間停電するくらいか。ここ数年で送電網がだいぶ強くなった気がする。もしかしたらブラックアウト以降にエリアを細かく区切って影響範囲を狭くするみたいな改善がされたのかも。ということで、停電する頻度がかなり低いので、M5は当面UPSは使わずに運用する感じかな。

 M5って例えばAnker 521でも動くんかな? Ankerの最近の大型のポタ電はパススルー運用ができるので、UPS代わりに使いつつ、外で電源がほしいときは外してポタ電として使う、みたいな運用はアリかもしれない。LIBポタ電もだいぶ安くなってきて鉛蓄電池のUPSと値段あんまり変わらないしなー。


 THERMOSのタンブラーを買ってみた

 断熱タンブラーはかなり良いのでオススメ。自宅とか、比較的自由度の高い(飲み物を手元においておける)デスクワークの人は断熱タンブラー1個あるだけでQOLだいぶ上がりそうな気がする。結露とか熱移動の心配をしなくていいのが楽。/* QOL、無線用語だとトーンスケルチみたいな機能? */

 容量は公称値600mlだけど、実際は500mlを入れるとかなりギリギリ。600は入らないと思う。今まで使っていたマグも450だけど400入れたらギリギリだし。食器の容量表記ってどういう定義なんだろう。カップ自体の体積も含むのかな。

 せっかくなので、M5で蓋を作成。造形ピッチ0.2mm、アイソグリッドは1辺15mm、リブ幅1.2mm、リブ高さ2mm、スキン0.4mm(2層)で設計。ただし通常のアイソグリッド(リブの片側にスキン1枚)では稀に(夜間の比較的気温が低く風による熱移動がない場合など)に結露する場合があったので、リブの両側にスキンを張ってアイソグリッドのセルを断熱層として使うようにしてみた。湿度90%近いような雨の日とかはさすがに多少結露するけど、普段は結露しない。内側に空洞がある形状は粉末焼結だと粉末を抜く方法とかを考える必要があるし、もちろん切削では作成できない形状だけど、FDMなら多少の品質の低下(ブリッジ部の垂れ下がり)を許容すれば密閉空間も作れる。インフィルにアイソグリッドを使ったようなイメージ。画像ベースでインフルを配置できるスライサであればこういう構造は簡単に作れそうだけど、たぶん純正スライサではそういう機能は対応していないので、Fusion 360で内側をくり抜いている。M5の場合、15mmくらいのブリッジなら結構綺麗に造形できる。内側のスキンだから普段は見えないし。ベッドが梨地で、上面をベッドに貼り付けているので、表面が梨地っぽい感じになるし、リブも透けて良い感じ。ただ、ノズル内で加熱・変色したフィラメントがベッドに垂れて内部に入ってしまったのが残念。

 こういうの(金属のコップ類)を買うたびに思うんだけど、外側にレーザーでマーキングできるんだから内側にもマーキングすればいいのに。100mlの目盛りとかついてれば便利だと思うんだけどなぁ。内側にプローブ突っ込んで斜鏡経由で焼くとかできると思うんだが。/* TITANSのロゴ入りの缶ってあれ自分たちでレーザーで作ったやつなのかな? */


 試しにボーイングの操縦桿についてるリマインダみたいなやつを作ってみた

 ディテント難しすぎ問題。あ、いや、政治の話ではなく……

 FDM3Dプリンタは表面の状態が管理できないからディテントを始めとして摩擦に依存した機構が苦手だし、積層痕の筋があるから表面に油性ペンとかで書き込むと筋状に流れてきれいにマーキングできない。エンボスで文字を刻印してもraised-cosineみたいな傾斜になるし。

 ディテントの接触部にBB弾を使ってみたらだいぶいい感じになった。片方だけでも表面精度が良い面を使えるのでかなり安定する。

 金型で細かい部品でも精度良く作れる既製品とかに比べれば操作感は良くないけど、そう頻繁に使うものでもないしね。とりあえず満足。各桁を任意に設定できる数字インターフェースの既製品なんてあるのかという問題はさておき。少し古い戦闘機(例えばF-15C)のコックピットとかでこの手のインターフェースがいくつか使われているはず。IFFコードの設定とか(無線機は表示部こそ似ているけど、入力はロータリーノブみたいなインターフェース)。戦闘機専用ってわけでもないだろうし、この時期の装置類でも使われていたはずだが。

 B727とかB737の操縦桿についているやつは正式にはtrip number reminderというらしく、オプションで注文できるアイテムで、元々はコールサイン(便名)の番号をメモするのに使っていたらしい。便数が増えて4桁になると使いづらいみたいな話になって、オプションで注文しなくなったり、後の時代になると離陸時や着陸時の速度(V2やVref)をメモするのに使ったりするらしい。国内のエアラインだと手順として使用が定められているところもあるんだとか。B777とかB787では対応してないっぽいけど、速度はMFDで管理できるから必要ないってことかな。

 ちょっとした数字(例えば1kgのフィラメントの残量を1g単位でカウントするための3桁の数字)のメモ程度であれば安いダイヤル錠を買ってくるのが楽そうな気がするな。入手性とか諸々の利点がある。フィラメントの残量管理をするならTSAロックとか買うといいか(おいこら


 comptometerという機械式計算機の試作品のマカロニボックスと言われているやつ(1882年に開発開始、1884年末頃に完成?)

Macaronibox

 休暇中に、マカロニの箱に串やホッチキス、輪ゴムで作ったものだそうだ。何その小学生の工作みたいな材料……

 comptometerは1桁ごとに1から9までの数字があって(0は無い)、各桁を同時に押せるので、慣れた人なら数桁を1回か2回の動作で加算できたらしい(17みたいに物理的に離れた数字の加算を行う場合は13と4に分けて押すと便利、とかテクニックいろいろ)。電子計算機の場合は1桁ずつ入力していく必要があるから、機械式計算機のほうが早いという場合もあって、1990年代初頭までは現役で使われていたそうだ。

 10進1桁分の計算(半加算器)は比較的シンプルだけど、キャリーの計算(全加算器)がかなり複雑そう。1桁の計算は指の力で操作できるけど、キャリー操作時はどこかからエネルギーを持ってくる必要があるし、各桁を同時押しできるから繰り上がり計算の排他処理も必要になる。ということで、かなり複雑な仕組み。後期モデルの図解を見たから複雑な印象なのであって、初期モデルやプロトタイプはもっとシンプルなのかもしれないけど。


 ISDB-Tフルセグ放送の復調、だいぶ苦戦して、回り道して、うまく動かない原因がようやく判明。なんのことはない、セグメント間キャリアローテーションのkの取り扱いが、階層ごとではなくチャンネル全体だったというだけのこと。ISDB-Tは処理内容に応じてセグメント毎、階層毎、変調方式毎を使い分けているので、そこの把握が重要。公式のドキュメントだと一部分かりづらいところがある。

 フルセグはさすがにデータ量が多いのでデコードも遅い。ワンセグでようやく等倍速出るかどうかくらいだからね。まだ最適化とかしてないってのもあるけど。ゴリゴリのビットストリーム処理なのでCPU向きの処理じゃない。ハードウェア向きの処理。FPGAで実装したりして遊ぶと楽しそう。

 SPが1.057倍くらいスケールしてるのが気になる。SPのスケーリングやQPSKや64QAMのスケーリング(それぞれ4/3、√2、√42)を解除してもコンスタレーションが整数付近に固まらず、約1/1.057倍するとQPSKや64QAMが整数付近に固まる。

 とりあえずバイトインターリーブやエネルギー拡散を解除してFFhが固まったりしているのは見えるので、フルセグTSPの復調には成功していると思う。とはいえ、フルセグを受信したところでデスクランブルができないから実際に映像を見て確認ができない。某メディアプレイヤーがB-CASカードを使用したデスクランブルに対応しているらしいんだけど、それらに関する話題がほとんど見当たらないので本当に対応しているかは不明。そもそも処理が遅すぎてまともに動画データを取り出そうとするとめちゃくちゃ時間がかかるし。TS抜きチューナーとしての実用性は皆無。

 試しにNuGetでRSライブラリを拾ってきてTSP→TS変換して保存し、ffmpegに食わせてみると、Video: mpeg2videoとかVideo: h264とかが出てくる。h264はyuv420p(progressive), 320x180, 14.99 fpsとのことでワンセグらしい。mpeg2videoの方はnone(tv)みたいになって解像度やフレームレートが得られない。スクランブルって映像のプロパティもまるごと暗号化してるんだろうか? 試しにセグ0のパケットだけ書き出すとh264以外のストリームが見えないから、フルセグも正しく取れてるはずなんだけど。

 フルセグは日本全国殆どの地域で受信できるし、一応変調方式の資料も公開されているし、データレートも適当に高いし、復調も簡単すぎず複雑過ぎずちょうどいい難易度だし、デコードしたデータを確認できない以外はデジタル変調の練習に便利。RS誤り訂正でBERを推定したり、ワンセグ部のストリームをMP4に変換して簡易的に受信データの確認をしたりとかもできる。フルセグを受信するにはワンセグドングル3本か広帯域幅(約8.2Msps)の受信機が必要になるのがちょっと面倒だけど。

 テレビ放送を受信したSDRの生データってWeb等のパブリックな場所に置くことになにか問題あるんだろうか? 建前としてはスクランブル処理されているから著作権的な問題は無いはずだし、放送だから保護された通信ではないはず。「B-CASでスクランブル処理した放送(民放を含む)は契約した者だけが受信できる秘密通信だから公開することは違法だ」(放送ではなく通信である)みたいな話になる可能性はありそうだけど。

 まぁ、ISDB-Tをデジタル復調の例題に使いたいなんて人はそうそういないだろうし、もしそういう人がいたらドングル3本並べてくれ。。。


 ISDB-T(64QAM)の復調が一通り動いている感じがあるので、とりあえず目標は達成した感。

 3Dプリンタを買ってしまったので、しばらくはちゃんと使わなきゃな、ということで、当面は久しぶりにハードウェアをいじる感じかなー。何作るか考えなくちゃ……

0 件のコメント:

コメントを投稿