2025年6月 この範囲を時系列順で読む この範囲をファイルに出力する

Icon of admin
 昼休みに自宅に戻りプリントを開始。仕事上がってプリントされていました。
202506200110101-admin.jpg
 仮組みしたらこんな感じ。
20250620011010-admin.jpg
 間違いない強度を与えてから減らすのではなく、ギリギリ貧弱に作って補強しようと思ったのですが十分にホールドしています。運用上起こりうる加速度に十分耐えられそう。
 どこまで簡素に出来るかって意味では勉強になりました。

#器具の製作
Icon of admin
 MoC を通して Art-Net_node を使うには数品組み合わせなければなりません。最終的には綺麗にパッケージしたいですが色々試してから決めたいかなと。ただ、テストの段階でもバラバラのままでは美しくありません。せめて合板にまとめる位はしたいかなと。こういった場合、ネジ止めのステーが付いてない機器を固定するのに苦労します。特にACアダプタの類は何の取り付け機構も付いていません。両面テープでもいいのですが、真夏の倉庫に放置しようものなら糊残りが酷いことになるので嫌いです。
 ならばステーを作ればいいのです。

 早速 Fusion でデータ作成。簡単な形状ですから3Dプリンタの CAM データまでやっても15分くらい。プリントの予想時間はとんでもない数字ですけど。

#器具の製作
Icon of admin
 3Dモデリングには「Autodesk Fusion」を使っています。ポリゴンで自由形状を作るツールとは違いますが、寸法情報で部品を作るには使いやすいアプリです。
 初期の無料期間が過ぎたのでサブスクを登録していましたが、更新費用が趣味のツールとしては高額になってしまい別なアプリ(FreeCADなど)に替えようと思っていました。
 ところが期限を過ぎても使えています。「個人用(商用利用不可)」と表示され初期の無料期間と同様と見受けられます。目立った違いは「編集可能」ファイル数が10個までとのことですが、「読み取り専用」にしても「編集可能」に戻せますので、実質フリーウェアとして使えます。同時に10個も編集する大規模な製作はありませんので私の使用では全く問題ありません。
 空間規模やオブジェクト数などで制限がかかりそうな予感もしますがそん時はそん時でしょう。

#3Dプリンタ #CAD
Icon of admin
 追加発注した Art-Net node が入荷しました。
 2個セットで22,000円。ACアダプタがオプションと書いてあったので安いのかな?と思ったけど付属してました。
 このところ浪費が酷い感じがしますが、使えるなら所属会社に買い取ってももらうのでいいかなと。
 さて、どんなパッケージにしようか・・・。

 いつのころからか AliExpress(中華電機) で PayPal が使える様になってました。海外からの購入では PayPal を通すことをお勧めします。手数料はかかるし絶対安心ってワケじゃありませんが、クレジットカードを晒さずに済みますし、PayPal 決済が使えるなら販売者を信用する裏付けになるからです。
 注意点としては、全く違うところに伝票だけ送って配送履歴を得ようとする輩がいるので配送状況を見て出来るだけ早く対策するとか(配送業者の配送完了履歴があれば、受領確認がなくても一定期間を経ると支払いがされる)、全く関係ないモノを詰めて送ってくる輩がいるので開封の際は動画を撮るとか、ある程度の自衛は必要です。
 amazon や モノタロウ でポチるより手間は多いのですが、その昔の個人輸入に比べたら簡単で安全です。

#[Art-Net]
Icon of admin
 「MoC」での Art-Net は良い感じです。
 タイムラグや微小な不具合を検出する手段はありませんが、丸2日の連続動作を2回行っても普通に動いています。機器類の発熱もほんのり温かい程度。今は3Cクラスの同軸ケーブル100mです。推奨は5Cですが問題無さそう。
 7月の現場で実地テストします。これを経てパッケージを考えましょう。

#[Art-Net]
Icon of admin
 現地照明でしたが、シュートが終わったらバラシまで待機という名の休憩。直しとトラブルシュートに対応出来ればいいのでまとまった空き時間です。こんな時は設計という名の妄想が一番です。

 課題は毎度おなじみ「ArtNetPatch」です。主にソフトウェアの構成が課題です。
 受けたデータを一時保存、加工、出力しますので、機能は映像ストリーミングに近いかもしれませんが、自分のイメージはデータベースです。
 その昔ファイルメーカーを母体に機材の稼働管理システムを作って今も使っていますが、データを動的に仕分けて加工する感覚が今回活用出来ています。
 アルゴリズムと言えばそうなんですが、データを保管する構造体の設計が主な作業です。可能か不可能かを確認しながらになりますが、最終的にまとめる構造体が決まれば仕分けて加工するアルゴリズムはおのずと決まってくるので私にはこの感覚で進めるのが性に合っているようです。処理の全体像が見えてきました。

 アセンブラではないので構想の段階で処理時間の見込みを付けることは難しいのですが、そもそもRaspberryPiのCPUにおけるマシンコードの動作速度はどうだと計算したら恐ろしい数字。ARMの2.4GHzですが、PICの感覚で単純計算したら1クロック当たりの時間は0.42nsec。PICに比べたら桁違いというか単位違い。OSを介するので単純には比べられないもののマシンコードのイメージで書けばかなり速くなりそう。例えば、積や商を求めるために四則演算をするかビットシフトをするかってことです。2倍や1/2などの2の乗数に関わる積や商ならビットシフトの方が速いハズです。この辺りが「C言語はアセンブラを汎用化したもの」ってイメージであり、Pythonとは違い、C言語はアセンブラの感覚で使うベシってのが私個人の感覚になりつつあります。出来るだけ単純な計算方法を目指してデータ構造を考えるのです。C言語の難解さがアセンブラ傾向のアプローチで軽くなった気分です。普通は逆なんでしょうけど。
 C言語を作った神達はアセンブラをマクロ化して手間を減らすところから始まってますので、世代を経ても底辺はアセンブラなんでしょう。同時代のCOBOLやFORTRANは意味付けが違うようですけど。

 勝手な妄想はともかく、どんなデータをどう変換・加工するかを明らかにすればおのずと見えてくるようです。

#[Art-Net] #器具の製作 #C言語
Icon of admin
 試さんといけないことが残っています。Art-Net を wi-fi で飛ばすことです。なんちゃって DMX-Wireless です。
 本線ではなくサポート的なワイヤレスが欲しいのです。例えば、大尽裏の拠点から舞台奥までとか、短い距離だけどケーブルを通したくない通せないところのサポートです。
 引き枠屋台とかにも魅力があります。灯体がLEDなら容量多めのバッテリー電源を積めばコストを抑えて照明をワイヤレスに出来ます。キャスト頭上に小さなムービング仕込んでみたい。

#[Art-Net]
Icon of admin
 オレメモです。
 「Ether over COAX」には「MoCA」と呼ばれる規格もあります。最大ケーブル長は短いですが、n対n接続(同一経路上に複数を設置)が可能です。EoCは1対1に限ります。
 大きな違いはEoCが75Ω同軸ケーブルを用いるの対し、MoCAは50Ω同軸ケーブルを用います。どちらも既設の同軸ケーブルを活用してLANを構成することが目的ですが、片や映像ケーブル、片やアンテナケーブルです。
 EoCはビルや大規模施設の監視カメラを更新するために作られたようです。今となってはwebカメラが便利で安価ですが、ケーブルを換える費用の方が高くつくので、なんなら既にある同軸ケーブルにEthernetを通してしまえって発想みたいです。
 MoCAは、特にアメリカらしいですが、部屋ごとにテレビを置くことが当たり前ですとどの部屋にもアンテナ線が来ています。もちろんテレビ信号と同居出来ることが条件とはなりますが、これも既にある同軸ケーブルを利用してしまえってことみたいです。
 そもそも、Ethernetは無線通信でコンピュータ同士を繋げることから始まっているので10Base2といった同軸ケーブルを使う規格もあったワケです。これをアップグレードしたと思えば自然です。変調帯域が違えば混合使用も普通のことです。

 EoCは100Mbps、MoCAは400Mbpsと違いますが、数ユニバースの Art-Net を通すなら100Mbpsあれば十分なので転送速度の最大値は関係ないかなと。grandMA2/3 の能力を最大限利用するなら黙って光Etherを使って10Gbpsくらいの帯域確保でしょうけどね。
 ひょっとするとMoCAの方がいいのかな?って感じもするのですが、EoCの方が製品単価が控えめで動作が安定している感じがあります。

#[Art-Net]
Icon of admin
 PoE の Hub で「LINOVISION 同軸LANコンバーター」が動きました。
 これなら「コンソール・パック」や「ステージ・パック」を作って良さそうです。
 仕様を決めていきましょう。

#[Art-Net]
Icon of admin
 EoC を通しても動く Art-Net-node が安価に手に入るなら「コンソール・パック」を作ろうかな。UPS(無停電電源装置)、Art-Net-node(レガシーDMXの入力のため)、EoCコンバーター、Ethernet-Hub(PoE)、インターカム・パワーサプライなど卓周りで使いそうなモノを一つにまとめるのです。2Uか3Uのラックケースに入るかな。
 同じ要領で「ステージ・パック」もあるといいですね。これにはインターカム・パワーサプライではなくDMXスプリッターを入れましょう。
 箱作りに手間はかかりますが、既製品を固定するだけですので比較的簡単です。

#器具の製作
Icon of admin
 中華電機の Art-Net node を EoC で接続してみました。
 EoC とは「Ethernet over COAX」の略で、Ethernet を同軸ケーブルに通す手法です。75Ωの映像ケーブルに通せます。
 卓 → <EtherCable> → EoC → <75Ω同軸ケーブル> → EoC → <EtherCable> → node です。
 EoC の機器は「LINOVISION 同軸LANコンバーター」を使っています。
20250611133626-admin.jpg
 電源供給は PoEです。Receiver に PoE で電源を供給すると Transmitter 側の電源は同軸ケーブルで供給されます。
 Receiver と Transmitter の違いはどちらが電源の入力かってだけで Ethernet はごく普通に双方向です。
 今のところは PoEインジェクターを使っていますが、PoE の Ethernet-Hub も試してみるつもりです。

#[Art-Net]
Icon of admin
 研究用に中華電機から Art-Net の node を買ってみました。
20250611102337-admin.jpg
 タイムラグとかは実機を繋げて CUE として動かさないとわかりませんが、倉庫でのテストでは IN も OUT も極々当たり前に動きます。設定はPCからになりますが、設定アプリも素直で使いやすい。残念ながら5P仕様はありませんが、こんなんが15,000円くらいで買えてしまうのですから驚きです。同じメーカーと思わしき2ユニバースの物もあります。これは6,000円程度です。node を自作することも考えていますが、価格からすると買った方がいいですね。

 ただ、中華製のこの手にはアイソレーターが入っていません。自作のスプリッター基板と共にパッケージすればいいのかな?

追記
 5pin 仕様もありました。
 DoctorMX で見ますと綺麗なデータが出ています。

#[Art-Net]
Icon of admin
 C言語のポインタには面白い機能(使い方?)がありました。
 関数の呼び出しをポインタ化するのです。なんのこっちゃ?って話ですねぇ~。
 ソースコードの大半はそのままに、条件分岐で関数を差し替えるイメージです。オブジェクト指向の一歩手前?
 もちろん、構造体を含む変数もポインタを介して差し替えられます。
 DMXの場合、受信中のスタックから読み出すことは避けなければなりません。パケットの中身に不整合が起こるからです。例えばアドレス100までは最新の受信内容、101以降は1フレーム前の受信内容や全てゼロになるのです。2スロット構成のアトリビュートがアドレス100と101にまたがったらよろしくないことが起こります。リトルエンディアンだったら目も当てられません。
 この対策は2つのスタックを交代しながら使います。片方は受信に、1フレーム前のデータを持ったもう片方を出力処理に使い、条件が整えば役割を交代するのです。この場合どちらをどちらに使うかをポインタで指定出来れば全体の処理はスマートになります。ピンと来る方が少ないのはわかっていますが、ソースコードを書く上ではとても合理的な方法です。今の常識からしたら万分の一の処理能力のハードウェアしかなかった時代にC言語をデザインした人は本当の天才だと思います。勉強すればするほど「天才」って言葉が身に沁みます。自分はその成果に甘えるだけで感謝々々です。

 C言語を学ぶ上でポインタは難解な要素の筆頭ですが、自分の様にアタマの半分がPICマイコンのアセンブラで占められている者には案外すんなりと理解出来ました。メモリのアドレスを直接扱う方法だからです。当初は高級言語でメモリのアドレスを直接扱うなんてイメージはありませんでしたので躓きましたが、C言語が値渡ししか出来ない(参照渡しが出来ない)ことも含めるとポインタは合理的であり、C言語は高級言語ではなく汎用化を目指したアセンブラ言語と思えばイイらしいと思った次第。正しくはなくても私にはこの理解が自然でした。

 自分は PC8001(PC6001)-BASIC → Z80アセンブラ(当時小学生、挫折しました) → (20年空いて) → PICアセンブラ → Python → C言語(今) と進んできました。小学生の時分に論理演算、16進数、2進数を本能に焼き付け、成果は出せずともZ80アセンブラに挑んだことが今に活きているようです。小学生当時、戦前産まれの父母は数百円の漫画本は買ってくれませんでしたが高価な技術書やその筋の雑誌(月刊マイコンやBASICマガジンなど)は買ってくれました。100歳まであと数年のカウントダウンなのに林業を生業とし登山やスキーを楽しむ父と米寿間近で父の3倍は元気な母に絶大な感謝をする今日この頃。
 自分の今の最大の不安は三途の川の向こう岸で父母をお迎えすることです。あと100年くらいは部下や後輩に迷惑をかけずに現役をやってやろうと思っていますけど(笑

#C言語 #雑記
Icon of admin
 現場ですが、簡単なひな壇を組むだけの現地道具なので終演までヒマです。
 ArtNetPatch の ap_transmitter の構造を構造体配列を元に整理したのですが、割り切って構成したら案外軽い処理になりました。メモリの節約など考えず、条件分岐や計算を出来るだけ減らし繰り返しをヒトまとめにする方針だからでしょうか。
 実際に組んで実行時間を計測しなければなりませんが、パッチ処理の後にもディレイやプロファイルカーブの処理を入れられそうな予感がします。

 receive(受信)、bind(入力ユニバースを内部Bus(ユニバース)にパッチ、ここで数値をマージしてHTPミキサーとします)、pre-delay、pre-profile-curve、patch、post-delay、post-profile-curve、transmit といった流れで考えています。

 ついてはモジュール構成を少し変えます。
 ap_transmitter の中の数値操作と Art-net の出力を分割します。
 fps はともかく、すべてのユニバースを連続して送るのは避けた方がいいかなと思うので、ユニバース毎にインターバルを持たせるためです。

1)アプリの起動部とし、共有物を設定して以下のモジュールを呼ぶ「ap_main」
2)画面表示やユーザー操作を司る「ap_console」
3)Art-Netを受信する「ap_receiver」
4)受信値や設定値から出力値をまとめる「ap_effect」
5)Art-Net を出力する「ap_transmitter」
6)データのタイムアウト管理をする「ap_timeout」

 今後はタイムラグを減らす工夫を考えてみましょう。
 出力の目標は 30fps 以上、出来れば 36fps ですが、1/36秒以内に処理を一巡出来るなら遅れても1フレームとなります。無理ならスレッド的なアプローチで考えて出来るだけ遅れを少なくしましょう。
 何にしても、試作をして処理時間と処理負荷の計測が必要です。
 こんな複雑なシステムは10回くらい書き直すつもりで試すしかありません。素人の私が結果を完全に予測するなんで無理ですもん。

#[Art-Net] #器具の製作 #C言語
Icon of admin
 子プロセスを使う場合は親プロセスが落ちたらこれらも落とさないといけません。ゾンビとして残ってしまうからです。
 一般的にはメインから「終わりにしなさい」って指示を受けて落としますが、開発途中ではそうもいかないことがあります。
 ならば、「続けなさい」って指令が無ければタイムアウトすることにしましょう。親の存在確認をする方法もありますが、この方法なら管理が楽かも。

#C言語
Icon of admin
 ArtNetPatch の構成イメージが見えてきました。
 この後は「ap_transmitter」の具体化でしょうか。これが ArtNetPatch の核であり一番重い処理です。
 モジュール間を繋ぐ構造体配列が見えればその他のモジュールを作ることは可能ですし、画面表示とか作って手ごたえを感じたいってのはありますが、最終的にデータを取りまとめる「ap_transmitter」が見えませんと構造体配列を決めることが出来ません。

#[Art-Net] #器具の製作
Icon of admin
 と、なると、って書き出しは私のアタマの中の言葉のままですが、プロセスかスレッドかはともかく、処理のスジを次の様に分けようかと。

1)アプリの起動部で、共有物を設定して以下のモジュールを呼ぶ「ap_main」
2)画面表示やユーザー操作を司る「ap_console」
3)Art-Netを受信する「ap_receiver」
4)受信値や設定値から出力値まとめ、Art-Net を出力する「ap_transmitter」
5)データのタイムアウト管理をする「ap_timeout」

 大きなデータは共有メモリ「mmap」と「semaphore」でやりとりし、指示や返答は「queue」で繋げます。自分ナリに得手不得手を検討した結果です。

 タイムアウトを別枠で勝手にやらせる発想が出たら役割分担が楽になりました。
 これが出来るのも共有メモリとセマフォのオカゲです。

 まだまだ決定ではありませんが、タイミングがラフなところはOS に任せてしまえ!って思えたら気が楽になったかも。
 メモリ管理も処理タイミングの管理も OS に頼った方が間違いないのです。
 この役割分担をしたら RaspberryPi でも処理しきれそうな気になってきたかも。

追記
 成り行き任せで後回しにしても構わない処理はプロセスやスレッドを別にして区切りのいいところに短い「sleep」を入れればいい。こうすると OS のジャッジで急ぎと思われるプロセスやスレッドを優先的に処理をしてくれるようです。
 厳密なタイミング管理が必要なら「RTOS」ベースのカーネルを使ってガチガチに管理するのが良いと思いますが、そこまででない処理のため導入の敷居が高い RTOS を使うのはどうかと。

#[Art-Net] #器具の製作
Icon of admin
 Art-Net の処理についてタイミングをイロイロ検討してみました。
 まず、全受信のスタックと受信の次の工程に送るスタックは完全に別物にした方が良さそうです。先日の書き込みと真逆のことですが、Art-Net 全体のモニターをするためのスタックとパッチの前工程のスタックは別物にするってことです。細かい理由は割愛しますが、同じ結果を得られるならメモリを大食いしても処理は軽い方がいい。DMXの処理で使うメモリ量など増えても数KBですから、GBクラスのメモリを持った RaspberryPi で気にするこっちゃありません。また、全受信のスタックを元にすべてを行うと最低でも2秒分の履歴を残さなければなりませんが、モニターするだけなら最新値のスタックだけで済みますし、Delay では深い履歴が必要でもパッチにおけるユニバース数だけあればいいので、想定される入力のすべてを数秒分スタックするほどのメモリは不要です。結果、処理が軽くなってメモリの使用量が減るなら御の字ってことです。あとは、タイムアウトの処理も大きな理由です。パケット毎に受信時刻のチェックをすることになりますが、チェックするパケットの数が減り、モニターならチェック頻度を落としてタイムアウトの実効値が2秒とか3秒でも大丈夫です。
 データをどのように取り込んでスタックして処理するかのイメージを整理して処理時間や工数が最も少ないであろう構成を決めてからソースコードを書こうと思っています。

追記
 上記の考え方にするなら、パッチの前工程の処理をする位置や共有メモリの扱いを明確にしておけばソースを書き始められるかも。完全に Art-Net モニタです。受信の後の各種処理や画面表示を別プロセスにするのでまだまだ考えることはありますけどね。
 今思い付いたのですが、タイムアウトの処理を別プロセスや別スレッドにしたら受信プロセスが凄く簡単になるかも。socket の受信をタイムアウトせずに何かを受信するまでブロックするってことです。シングルプロセスの PIC マイコンに慣れ過ぎて手作業のマルチスレッド処理がアタマの中で前提になっているようです。ブロックすることが一般的な処理をあえてタイムアウトさせてエラー処理するくらいならプロセスを分けてタイムアウトさせずに待たせればいいのです。OSが得意な部分はOSにやってもらえばいいのです。

#[Art-Net] #器具の製作
Icon of admin
 Art-Net の扱いを送信元8、ユニバース各8、44fpsにしますと毎秒の最大受信パケット数は2,816です。1パケットあたり355usec以下で捌かないといけません。実用においてここまでの量になることは無いと思いますし、確認する環境を整えるのも現実的ではありませんが、一度は想定最大負荷をかけてみたいものです。

 実作業を始められるのがいつになるかわかりませんが基本設計は進めます。アタマが空いてる時のヒマ潰しにはちょうどいいですし。

#器具の製作
Icon of admin
 Art-Netの扱いにアイデアを一つ。
 送信元を識別するにはIPv4アドレスがキーになると思います。運が悪くなければ送信元毎にユニークなハズです。これの扱い。

 IPv4アドレスは4バイト長(32bit)で構成され、文字列で表しても7~15文字です。
 これを一つの整数にまとめてしまうアイデアです。一般的にint型は4バイト長ですから、丸めてしまえばint型にしても情報は欠落しません。
 こうすれば、4つの数字や7~15文字のテキストよりも扱いが簡単で軽くなると思うのです。IPアドレスとしての情報は別途残すとして、識別IDにこれを使うのです。
 ユニバースも同じ考え方でいいでしょう。15bit長ですからshort型でも収まりますが、噂に聞くところではint型の方が処理が軽いらしいのでこの型にしておこうかなと。
 この両者を合わせた8バイトのlong型もしくはLongLong型を併記しておいてもいいかもしれません。なぜこの様なことを考えるかと言いますと、複数のユニバースを保管する配列から特定のものを探し出す処理を軽くしたいからです。処理の方針にもよりますが、受信したものを一旦スタックして一定の時間間隔で取り出そうというのが今の考え方ですので、クエリに相当するインデックスを作るのは当然としてもキーワードが簡素なことは重要だと思うのです。一定の時間間隔で作れらたLoop配列ならばその並びが時間情報となりますので、Delay を求めても受信日時と現在日時を比較する必要がありません。

 Art-Netのモニターも兼ねたいので、使う使わないはともかく、受信したデータを全て一時保管するつもりです。
 かといってモニターのための保管とパッチのための保管を別々にするのは気に入らないので、受信をすべて保管してそこから必要なモノを取り出したいのです。
 仮に、送信元8、それぞれ8ユニバースとするなら、最大44fpsとして1秒間に2,816件のスタックをしなければなりません。1パケット当たりのデータ長は540バイトくらいですから1.5MB/秒くらいです。2秒分のスタックをしても3MBです。動画の1フレーム当たりのデータ長は640x480の16bitカラーで1.8MBくらいですので55MB/秒です。動画に比べたらArt-Netの情報量は余裕っしょ。

#[Art-Net] #C言語
Icon of admin
 しばらく前に書いた Art-Net を扱うコードです。
 今だったらこうするのにってところは多いですが、これをたたき台にしようかなと。
 表示の都合で一部の文字を全角にしています。コピペしてお使いになる際はご注意ください。オレオレライブラリーやオレオレヘッダーが必要なのでこのソースだけでは動きませんけど、要点の参考になれば幸いかと。

/* --------------
  Art-Net Engine
  ae_main.c
  -------------- */

// 汎用ライブラリをインクルード
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <time.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
#include <sys/shm.h>
//#include <netinet/in.h>
//#include <sys/ipc.h>

// 自作ライブラリをインクルード
#include "ae_main.h"
#include "std_inkey.h"
#include "std_dump.h"

// Main
int main( int argc, char *argv〔〕 ) {
  // 汎用変数
  // int i ;
  // int ret = 0 ;
  // 共有メモリ変数
  ae_sharemem_t *ae_sharemem ;
  int ae_sharememsize = sizeof( ae_sharemem_t ) ;
  int ae_sharememID ;
  //【開発用】共有メモリ領域の確保 上位モジュールが出来たらそちらで作る
  ae_sharememID = shmget( IPC_PRIVATE, ae_sharememsize, SHM_R|SHM_W ) ;
  // 共有メモリ定義
  ae_sharemem = shmat( ae_sharememID, 0, SHM_R|SHM_W ) ;
  // nsec時変数
  struct timespec now ;            // 現在POSIX時を得る構造体
  unsigned long long int start_nsec ;     // 処理開始nsec時を保存
  //【開発用】処理時間変数
  unsigned long long int lap_nsec ;      // 処理終了nsec時
  static unsigned long long int max_nsec = 0 ; // 経過したnsecの最大値
  // Art-Net 受信変数
  int an_rx ;                 // 受信socket番号
  struct sockaddr_in an_rx_addr ;       // 受信先指定構造体
  int an_rx_length ;             // recvfromで得たデータ長
  char an_rx_nic〔〕 = { "eth0" } ;       // 受信NICの名称
  char an_rx_buf〔 ADMX_BUF_SIZE 〕 ;      // 受信バッファ ArtDMXの最大バイト長で設定
  socklen_t an_rx_sin_size = ADMX_BUF_SIZE ; // recvfromに渡す受信バッファサイズ
  struct sockaddr_in an_rx_from_addr ;    // 送信元情報の構造体
  artdmx_t artdmx_rx ;            // 受信したArtDMXを保存する構造体
  // Art-Net 送信変数
  int an_tx ;                 // 送信socket番号
  struct sockaddr_in an_tx_addr ;       // 送信先指定構造体
  char an_tx_nic〔〕 = { "eth1" } ;       // 受信NICの名称
  int yes = 1 ;                // 送信をブロードキャストに設定する際のフラグ変数
  artdmx_t artdmx_tx〔 ADMX_TX_UNIVRESES 〕 ;  // 送信するArtDMXを保存する構造体配列
  char an_tx_buf〔 ADMX_BUF_SIZE 〕 ;      // 送信バッファ Art-DMXの最大バイト長で設定
  int an_tx_count = 0 ;            // 送信ユニバースカウンタ
  unsigned long long int an_tx_nsec = 0 ;   // 送信nsec時を保存
  float an_tx_fps = 29.97 ;          // 送信フレームレート
  unsigned int an_tx_interval =
      ( unsigned int )( 1e9 / ADMX_TX_UNIVRESES / an_tx_fps ) ;

  // Art-Netの受信ソケットを作成
  an_rx = socket( AF_INET, SOCK_DGRAM, 0 ) ;             // 受信ソケットのインスタンスを作成
  setsockopt( an_rx, SOL_SOCKET, SO_BINDTODEVICE,           // 受信NICを指定する
        &an_rx_nic, sizeof( an_rx_nic ) );
  an_rx_addr.sin_family = AF_INET ;                  // 受信をUDPに設定
  an_rx_addr.sin_port = htons( AN_PORT ) ;              // 受信ポート番号を設定
  an_rx_addr.sin_addr.s_addr = INADDR_ANY ;              // 送信元アドレスを無指定にする
  bind( an_rx, ( struct sockaddr * ) &an_rx_addr,           // 上記をインスタンスに設定する
          sizeof( an_rx_addr ) ) ;
  // Art-Netの送信ソケットを作成
  an_tx = socket( AF_INET, SOCK_DGRAM, 0 ) ;             // 送信ソケットのインスタンスを作成
  an_tx_addr.sin_family = AF_INET ;                  // 送信をUDPに設定
  an_tx_addr.sin_port = htons( AN_PORT ) ;              // 送信ポート番号を設定
  an_tx_addr.sin_addr.s_addr = inet_addr( "255.255.255.255" ) ;    // 送信先アドレスを無指定にする
  setsockopt( an_tx, SOL_SOCKET, SO_BINDTODEVICE,           // 送信NICを指定する
        &an_tx_nic, sizeof( an_tx_nic ) ) ;
  setsockopt( an_tx, SOL_SOCKET, SO_BROADCAST,            // 送信をブロードキャストに設定
        ( char * )&yes, sizeof( yes ) ) ;
  // std_inkey 用変数
  int key_code_length = 0 ;
  int key_code_length_st = 0 ;
  char key_code〔 32 〕 = { 0x00 } ;
  char key_code_st〔 32 〕 = { 0x00 } ;
  // std_inkey を開始
  set_inkey( SET ) ;

  // ***** Art-Netの受送信と表示 *****
  printf( "\e〔2J\e〔?25l" ) ;         // 画面を消去 カーソル非表示 \e〔?25l カーソル非表示
  while( strcmp( key_code, _KEY_F12 ) != 0 ) {
    // ------ 開始nsec時を取得 ------
    clock_gettime( CLOCK_REALTIME, &now ) ;           // 現在POSIX時間値取得
    start_nsec = ( unsigned long long int )now.tv_sec * 1e9   // unsigned long long int型(8バイト長int)変数に
           + now.tv_nsec ;                // 取得値をひとまとめにする(nsec)

    // --------- キー入力 ----------
    key_code_length = get_inkey( key_code ) ;          // キー入力を取得
    if( strcmp( key_code, "\x20" ) == 0 ) max_nsec = 0 ;    //【開発用】キー入力が〔SP〕なら実行時間計測の最大値をクリア
    if( key_code_length > 0 ) {                 // キー入力を別関数に渡すためのスタック
      key_code_length_st = key_code_length ;
      memcpy( key_code_st, key_code, sizeof( key_code ) ) ;
    }

    // --------- 受 信 -----------
    memset( an_rx_buf, 0, ADMX_BUF_SIZE ) ;                     // 受信バッファのクリア
    an_rx_length = recvfrom( an_rx, an_rx_buf, ADMX_BUF_SIZE, MSG_DONTWAIT,     // an_rx_from_addrには送信元情報が入る
        ( struct sockaddr * )&an_rx_from_addr, &an_rx_sin_size ) ;
    // 受信がある場合
    if( an_rx_length > 0 ) {                            // an_rx_lengthは受信値のバイト長
      // 送信元IPアドレスとポートを抽出し、構造体artdmx_rxに保存
      inet_ntop( AF_INET, &an_rx_from_addr.sin_addr,               // 受信データから送信元IPアドレスを抽出保存
            artdmx_rx.senderip, sizeof( artdmx_rx.senderip ) ) ;
      strcpy( artdmx_rx.senderip, inet_ntoa( an_rx_from_addr.sin_addr ) ) ;
      artdmx_rx.senderport = ntohs( an_rx_from_addr.sin_port ) ;         // 受信データから送信元ポートを抽出保存
      artdmx_rx.recv_nsec = start_nsec ;                     // 受信日時を保存
      // 受信したArtDMXをデコード
      if( artdmx_decode( an_rx_buf, &artdmx_rx ) >= 0 )              // ArtDMXなら送信スタックに保存
        memcpy( &artdmx_tx〔 artdmx_rx.universe 〕,                // ArtDMX以外なら読み飛ばし
            &artdmx_rx, sizeof( artdmx_t ) ) ;

      //【開発用】終了nsec時を取得
      clock_gettime( CLOCK_REALTIME, &now ) ;               // 現在POSIX時間値取得
      lap_nsec = ( unsigned long long int )now.tv_sec * 1e9        // unsigned long long int型(8バイト長int)変数に
            + now.tv_nsec - start_nsec ;              // 取得値をひとまとめにする(nsec)
      if( max_nsec < lap_nsec ) max_nsec = lap_nsec ;           // ここまでの最大処理時間を得る

    }

    // --------- 送 信 -----------
    else if( start_nsec - an_tx_nsec > ( unsigned int )( an_tx_interval ) ) {
      artdmx_encode( an_tx_buf, &artdmx_tx〔 an_tx_count 〕 ) ;       // 送信データをエンコード
      sendto( an_tx, an_tx_buf, ADMX_BUF_SIZE, MSG_DONTWAIT,       // 送信実行
          ( struct sockaddr * )&an_tx_addr, sizeof( an_tx_addr ) ) ;
/*
      //【開発用】終了nsec時を取得
      clock_gettime( CLOCK_REALTIME, &now ) ;               // 現在POSIX時間値取得
      lap_nsec = ( unsigned long long int )now.tv_sec * 1e9        // unsigned long long int型(8バイト長int)変数に
            + now.tv_nsec - start_nsec ;              // 取得値をひとまとめにする(nsec)
      if( max_nsec < lap_nsec ) max_nsec = lap_nsec ;           // ここまでの最大処理時間を得る
*/
      //【開発用】受信データの表示
      artdmx_check_disp( &artdmx_tx〔 an_tx_count 〕,            // 送信データの仮表示
          key_code_st, &key_code_length_st, &lap_nsec, &max_nsec ) ;
      // 送信事後処理
      an_tx_nsec = start_nsec ;                      // 送信インターバル・次回用のnsec取得
      if( ++an_tx_count > 7 ) an_tx_count = 0 ;              // 送信ルートカウンタインクリメント
    }
    // 待ち時間 無駄にループしても処理負荷が増えるだけなので少しお休み
    usleep( 1 ) ;
  }
  // --------- 終 了 ----------
  set_inkey( RESET ) ;      // std_inkeyを終了
  close( an_rx ) ;        // 受信ソケットをクローズ
  close( an_tx ) ;        // 送信ソケットをクローズ
  printf( "\e〔?25h\e〔0m\n" ) ;  // コンソール画面を戻す \e〔?25h カーソルの表示
  shmdt( ae_sharemem ) ;     // 共有メモリの切り離し
  //【開発用】上位モジュールが出来たらそちらで処理する
  shmctl( ae_sharememID, IPC_RMID, 0) ; // 共有メモリ領域開放
  return 0 ;
}

// ArtDMXのデコード関数
int artdmx_decode( char *an_rx_buf, artdmx_t *artdmx_rx ) {
  int i ;
  char int_st〔 sizeof( int ) 〕 ;
  // IDを抽出
  for( i = 0; i < 8; i++ ) {             // bufの先頭から8バイト
    artdmx_rx->id〔 i 〕 = an_rx_buf〔 i 〕 ;  
  }
  // OpCodeを抽出
  int_st〔 0 〕 = an_rx_buf〔 8 〕 ;
  int_st〔 1 〕 = an_rx_buf〔 9 〕 ;
  int_st〔 2 〕 = 0x00 ;
  int_st〔 3 〕 = 0x00 ;
  artdmx_rx->opcode = *( ( int * )&int_st〔 0 〕) ;
  if( ! (strcmp( artdmx_rx->id, "Art-Net" ) == 0     // ArtDMXかチェックし、そうでなければエラーを返して終了
        && artdmx_rx->opcode == 0x5000 ) ) {
    return -1 ;
  }
  // ProVerを抽出
  int_st〔 0 〕 = an_rx_buf〔 11 〕 ;
  int_st〔 1 〕 = an_rx_buf〔 10 〕 ;
  int_st〔 2 〕 = 0x00 ;
  int_st〔 3 〕 = 0x00 ;
  artdmx_rx->prover = *( ( int * )&int_st〔 0 〕) ;
  // Sequenceを抽出
  artdmx_rx->sequence = an_rx_buf〔 12 〕 ;
  // Physicalを抽出
  artdmx_rx->physical = an_rx_buf〔 13 〕 ;
  // Universeを抽出
  artdmx_rx->subnet = an_rx_buf〔 14 〕 / 0x10 ;
  artdmx_rx->universe = an_rx_buf〔 14 〕 % 0x10 ;
  artdmx_rx->net = an_rx_buf〔 15 〕 ;
  // Lengthを抽出
  int_st〔 0 〕 = an_rx_buf〔 17 〕 ;
  int_st〔 1 〕 = an_rx_buf〔 16 〕 ;
  int_st〔 2 〕 = 0x00 ;
  int_st〔 3 〕 = 0x00 ;
  artdmx_rx->length = *( ( int * )&int_st〔0〕) ;
  // Dataを抽出
  for( i = 0; i < artdmx_rx->length; i++ ) {
    artdmx_rx->data〔 i 〕 = an_rx_buf〔 i + 18 〕 ;
  }
  if( artdmx_rx->length < 512 ) {
    for( i = artdmx_rx->length; i < 512; i++ ) {
      artdmx_rx->data〔 i 〕 = 0x00 ;
    }
  }
  return 0 ;
}

// ArtDMXのエンコード関数
int artdmx_encode( char *an_tx_buf, artdmx_t *artdmx_tx ) {
  int i ;
  // IDを設定
  for( i = 0; i < 8; i++ ) {
    an_tx_buf〔 i 〕 = artdmx_tx->id〔 i 〕 ;
  }
  // OpCodeを設定
  an_tx_buf〔 8 〕 = (char)( artdmx_tx->opcode % 0x100 ) ;
  an_tx_buf〔 9 〕 = (char)( artdmx_tx->opcode / 0x100 ) ;
  // ProVerを設定
  an_tx_buf〔 10 〕 = (char)( artdmx_tx->prover / 0x100 ) ;
  an_tx_buf〔 11 〕 = (char)( artdmx_tx->prover % 0x100 ) ;
  // Sequenceを設定
  an_tx_buf〔 12 〕 = (char) artdmx_tx->sequence ;
  // Physicalを設定
  an_tx_buf〔 13 〕 = (char) artdmx_tx->physical ;
  // SubUniを設定
  an_tx_buf〔 14 〕 = (char)( artdmx_tx->subnet * 0x100 + artdmx_tx->universe ) ;
  // Netを設定
  an_tx_buf〔 15 〕 = (char)artdmx_tx->net ;
  // Lengthを設定
  an_tx_buf〔 16 〕 = (char)( artdmx_tx->length / 0x100 ) ;
  an_tx_buf〔 17 〕 = (char)( artdmx_tx->length % 0x100 ) ;
  // Dataを設定
  memcpy( an_tx_buf + 18, artdmx_tx->data, 512 ) ;
  return 0 ;
}

// ArtDMXのチェック用画面表示
int artdmx_check_disp( artdmx_t *artdmx, char *key_code_st, int *key_code_length_st,
          unsigned long long int *val1, unsigned long long int *val2 ) {
  // 汎用変数
  //int i ;
  // タイムカウント変数
  struct timespec now ;              // 現在POSIX時を得る構造体
  unsigned long long int now_nsec ;        // 現在nsecを保存
  static unsigned long long int prev_nsec = 0 ;  // 過去nsecを保存
  // データ管理用
  static artdmx_t artdmx_disp ;
  // std_dump 用変数
  static int first_line = 0 ;           // 表示開始行数
  // 表示制御変数
  struct winsize ws ;
  static int col = 20 ;
  static int row = 100 ;
  static int net = 0 ;
  static int subnet = 0 ;
  static int universe = 0 ;

  // カーソルキー入力
  if( *key_code_length_st > 0 ) {
    if( strcmp( key_code_st, _KEY_RIGHT ) == 0 ) {
      if( ++universe > 7 ) universe = 7 ;
    }
    if( strcmp( key_code_st, _KEY_LEFT ) == 0 ) {
      if( --universe < 0 ) universe = 0 ;
    }
    if( strcmp( key_code_st, _KEY_UP ) == 0 ) {
      first_line-- ;
    }
    if( strcmp( key_code_st, _KEY_DOWN ) == 0 ) {
      first_line++ ;
    }
    *key_code_length_st = 0 ;
  }
  // 対象ユニバースのデータをスタック
  if( ( artdmx->net == net ) && ( artdmx->subnet == subnet ) && ( artdmx->universe == universe ) ) {
    memcpy( &artdmx_disp, artdmx, sizeof( artdmx_t ) ) ;
  }

  // タイムカウント
  clock_gettime( CLOCK_REALTIME, &now ) ;             // 現在POSIX時間値取得
  now_nsec = ( unsigned long long int )now.tv_sec * 1e9      // unsigned long long int型(8バイト長int)変数に
        + now.tv_nsec ;                   // 取得値をひとまとめにする(nsec)
  if( now_nsec - prev_nsec < 5e7) return -1 ;           // 経過時間が不足なら何もせずリターン
  prev_nsec = now_nsec ;                     // 過去nsecを現在値としておく
  // 画面のテキスト表示サイズを取得
  ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) ;             // 画面サイズを取得 幅=ws.ws_col 高=ws.ws_row
  if( row + 4 > ws.ws_row ) row = ws.ws_row - 4 ;         // dumpの行数制限
  // artdmxを表示
  printf( "\e〔0;0H" ) ;                          // カーソルを左上に 
  printf( "Sender: %s:%d", artdmx_disp.senderip, artdmx_disp.senderport ) ;
  printf( "\e〔28GID: %s", artdmx_disp.id ) ;
  printf( "\e〔41GOpCode: 0x%04X", artdmx_disp.opcode ) ;
  printf( "\e〔57GProVer: 0x%04X", artdmx_disp.prover ) ;
  printf( "\e〔0K\nSequence: 0x%04X", artdmx_disp.sequence ) ;
  printf( "\e〔19GPhysical: 0x%04X", artdmx_disp.physical ) ;
  printf( "\e〔37GLength: %d", artdmx_disp.length ) ;
  printf( "\e〔50G< Net:%d SubNet:%d Universe:%d >\e〔0K\n", artdmx_disp.net, artdmx_disp.subnet, artdmx_disp.universe ) ;
  dump_print( artdmx_disp.data, artdmx_disp.length, col, row, &first_line, 0 ) ;
  printf( "%8lld /%8lld nsec", *val1, *val2 ) ;
  //fflush( stdout ) ;
  // 終了
  return 0 ;
}


#[Art-Net] #C言語
Icon of admin
 TaitanやETCでは正常なのにMA系の卓からの出力を正常に受信出来ないノードがあります。MAの卓は値が変化している最中は30fpsくらいですが、値の変化が無いと10fps位に落ちるのでコレが原因かなと妄想しています。DoctorMXでの計測ですが、レガシーDMXだけでなくArt-Netもしかりです。
 原因は定かではありませんが繋がらないのは困ります。ArtNetPatchではどうしましょう。
 fpsを一定にすることは外さないとして、ArtNetPatchの処理フェーズにも関係しそうな気がしてます。

#[Art-Net]
 
 
Icon of admin
 ArtNetPatch は一時スタックに格納した後にどう処理するかが課題です。
 一定以上の処理速度を確保しなければなりません。DMX512 は最大44fps ですので1フェーズあたり23msec.以下で動かす必要があります。4卓、各8ユニバースと想定するなら、受信1パケットあたりの総処理時間を710usec.以下にしなければなりません。RaspberryPi でも一時スタックに格納するまでの所要時間は150usec.くらいかと予想しますが、全体の処理が納まるかは感覚として微妙です。
 Delay の扱いをどうするが鍵です。Delay を構成するには FIFO と呼ばれるループ型のスタックを使いますが、Art-Net を受信する度に FIFO に持って行くか、一旦一時スタックに留めて一定間隔で FIFO に持って行くか悩んでいます。前者ならソースコードは簡単ですがパケットの受信時刻を評価する回数が多く重くなり、後者ならソースコードが複雑になりますがスタックポインタの現在値からの単純なオフセットで処理出来るので軽くなります。簡単で重いか、複雑で軽いか、この両者の良し悪しは簡単には決められません。
 後工程を考えずに前工程を決めてしまうと難儀することがあるので、工程全体をある程度イメージしてから進めなければなりません。

#[Art-Net]
Icon of admin
 ArtNetPatch は受信データを得るところまで考えてみました。
 卓が1枚でユニバースも指定ならシンプルですが、有効なすべての卓とすべてのユニバースを得たいので少し複雑になりそうです。

 構成の概略はこんな感じ。
Art-Net
 ↓
[Art-Net受信] UDP/IP、ポート番号0x1936のブロードキャストを受信。
 ↓
[IPアドレス、受信時刻、パケットを取得]
 ↓
[Art-Netフィルタ] パケットのIDを見てArt-Netパケットか判断。そうでないなら破棄しBreak。
 ↓
[Art-Net送信機リストに登録] IPアドレスをキーワードに送信機をリストに登録。
 ↓
[OpCodeフィルタ] Art-NetパケットのOpCodeで振り分け。とりあえずはArtDmxだけ扱い、その他なら破棄しBreak。
 ↓
[ArtDmxデコーダ] ArtDmxを変換し構造体に保存
 ↓
Loop


 さらに別プロセスに送信機リストとArtDmxを表示する画面も作り、共有メモリとセマフォの機能を習得します。

#[Art-Net]
Icon of admin
 急ぎの用件が無かったので台車を仕上げました。仕掛品が邪魔だったからです。
 しかし、気が付くと昼飯を除き約10時間ほど作業を続けてしまい体がヤバイ・・・。
 半世紀以上使ってきた体ですからもうちっと労わらんとイカンですね。
 ただ、こういう作業をした後のお風呂は妙に気持ちいい(笑

#器具の製作

2025年5月 この範囲を時系列順で読む この範囲をファイルに出力する

Icon of admin
 アタマがヒマな時にArtNetPatch の処理構成を考えています。
 今日は現地照明の卓番でしたから時間はありました。居なきゃいけない、トラブル無ければやることない、もちろん寝てもいけない。こんな置きダヌキは妄想にふけるに限ります。
 今のところ、Art-Net に流れているデータを表示するモニターから作ってみようかと。必要になるテクニックのほとんどを使うことになるので習作になりますし処理負荷が見えます。卓を何枚相手に出来るか、何ユニバース相手に出来るかの検討材料になります。
 RaspberryPi-CM4 を母体に使う予定ですが、高性能を求めるのではなく RaspberryPi で作れる範囲の最高スペックを形にすることが課題です。昨年の試作では RaspberryPi4で卓3枚、入力合計12ユニバース、出力4ユニバースくらいならいけそうでした。ミキサーとしても使えるプロファイルカーブ・ディレイ付きのパッチマシンが欲しいワケですが、自分の仕事ではこの規模で御の字です。RaspberryPi を使う理由は安くて小さくて電気喰わなくて PIC などのマイコンと協調しやすいからです。PCレベルのマザーボードにSPIやI2Cが付いていればそれでもいいのですけど、それが期待できる工業用のマザーボードは一般のPCマザーボードに比べてお高いのです。
 RaspberryPi上のDebianベースで作っておけば、ほぼそのまま工業用マザーボードに持って行ける期待感があります。Windowsベースでは難しいことですが、Debian(Linux)ベースでの製作はメリットが多いのです。

#[Art-net]
Icon of admin
 電装工芸の本体ページを見たら昨日のアクセス数が564でした。これまでは多くても100前後でしたので驚いた。自分で言うのもナンですが誰が見てんだ?

#雑記
Icon of admin
 この後しばらく日程が緩いので、仕掛かり品の台車とDMX切替機の仕上げをする予定です。
 DMX切替機はフェスなどで複数の調光卓を使う際に卓を選択する装置です。DMX1ユニバースの製品なので複数ユニバース使う場合に複数を1台の選択スイッチに連動する機能とHOLD機能の追加です。
 HOLDは自分が未熟だったのもありますが、2kBのメモリを持ったPIC16を安価に入手出来る様になってようやく作れるようになったのです。DMXの512バイトのスタックは不整合を防止するには2面必要ですが、PIC16系のメモリは最近まで1024バイトが頭打ちだったので手が止まっていました。こんなPICマイコンが200円以下で買えるのですから良い時代になったものです。
 あとは、出来ることならArt-Netパッチの製作も進めたいですね・・・。パッチ、プロファイルカーブ、ディレイが主題ですが、RaspberryPiでもC言語でプログラムすれば8ユニバースくらい扱えそうです。DMXミックスやアクティブにするArt-Netの入力経路の選択機能も入れる予定なので対象調光卓の選択も可能です。私の感覚で全てのことが出来るパッチマシンが目標です。こんなのを1万円程度で買えるRaspberryPi上で動かしたらメーカーさんに嫌がられそうですが、カスタマーサポートをしきれないので自社使用と理解してくれる同業者にしか売るつもりはありません。カスタマーサポートがどんだけ大変で面倒かを体験するとどんだけ便利で間違いなく売れるモノを作っても自分で使う範囲に留めたくなるのです。50万円の粗利があっても100万円分の手間がかかっては損得以前に心が折れます。
 みなさん、メーカーさんや販売店さんに過剰な要求をしてませんか?お客さま、購買者は神様ではありません。三波春夫先生の聴衆に対するリップサービスであって、売る側が買う側に忖度する常識論・責任論ではありません。適正な対価も払わんで文句を言うだけならクレーマーであってお客ぢゃありません。持ちつ持たれつの同格の気持ちをどうかお忘れになりませんように。。。

#器具の製作
Icon of admin
 修理した Antari F1-FAZER を小ぶりな野外フェスで使っています。風には負けますが、煙量はアホかと思うくらい。
 まだ確信の段階ではありませんが、使用の度に洗浄液を通すのは効果がありそうです。

#器具の修理
Icon of admin
 先日ヒーター(発煙器)を新品に交換した Antari F1-FAZER を昨日の現場で使ったところ2台のウチ1台がオーバーヒートの警告。
 煙は出ませんので念のため持ってきていた予備機に交換して現場としては事なきを得ましたが、明けての今日稼働させても再現せず。「ボク、昨日もバッチリ働いたもん♪」って顔で煙を吐きます。なんか腹立つ。
 温度センサからの電圧を受ける基板の端子が怪しいように感じたので稼働テストする前に挿し直しをしましたが、端子の接触具合いで奇妙なヒステリンスでも起きていたのでしょうか。温度センサーの熱電帯は微弱な電圧・電流しか出しませんから端子の接触が悪いと誤認するのかもしれません。ヒステリンスの様な障害があれば温度が一定以上になった途端に検知電圧が上がる可能性はあります。
 動いてくれればそれでいいのですが、ヒーター(発煙器)を交換した後5時間くらい稼働テストをしていますので、なぜ警告が出たのかスッキリしません。
 日を改めて長時間稼働させてみましょう。

追記
 オーバーヒートの警告が出た Antari F1-FAZER の稼働テストを続けていますが警告は出ません。アホかってくらい煙が出ています。あまりの煙にお隣の自動車修理工場のご主人が火事ぢゃないよね!?と心配していらっしゃったくらい(笑
 コロナ以降、劇場の空調の排気が強くなっている傾向があり、コンセプトなら太刀打ちできますが、水性スモークマシンは残留が弱くて1台では負けることがありますので2台焚きを基本にしています。1台が動かなくなっても残りの1台があれば薄くともビームは出ますので相互バックアップの意味もあります。
 要の部品を交換したとはいえ、一度壊れた器具を完全回復させるのは難しいですね。こういうのは倉庫でのテストでは正常でも現場ではおかしくなる内弁慶さんかな!?。
 お塩とお神酒で簡易なお祓いをすると治るのかもしれません。機材が動くかの最後は神頼み運頼みですから・・・

追記の2
 機材修理の最後は神頼みです。しめ縄の作り方と祝詞を研究しましょうか・・・
 故障した道具には濁ったナニかがまとわりつく気配を感じます。故障部位の健全化が必須だとしても、そこには悪戯好きの何某が居ると感じるのです。
 機械のことを勉強すればするほど、修理の経験を積めば積むほど、付喪神の存在を当たり前に感じます。
 舞台は人の想いが集まるところですから、そこで使う道具は付喪神が憑きやすいのかもしれません。
 感謝と労わりを以って機材たちと向き合いたいものです。

 日本の舞台は引き籠りの天照大御神を天岩戸から引っ張り出したアマノ・ウズメのストリップ公演が記録に残る最初でしょう。性的アプローチや酔っぱらったオッサンたちのバカ騒ぎの是非はともかく、その石舞台と天岩戸が最初の舞台機構と言ってもいい。神々が使ったものですからそこに魂が宿っても不思議はありません。そこまで高貴でなくとも、人の想いが集まるところで使ったモノには何かが宿るものだと思ったりしてます。

#器具の修理
Icon of admin
 このところ3Dプリンタが昼夜稼働し続けています。
 3Dプリンタは製作条件をまとめるのに難儀しがちですが、今はビルドテーブルで少し困ったちゃん。
 ありがちなのは製作中に剥がれて浮いて変形してしまうトラブルですが、Enderのマットは良すぎるのか逆に喰いついて取れない・・・。
 600番くらいのペーパーを当て、クレの226吹きかけて30秒くらい待ってから拭き取って作ると丁度イイ感じ。
 脱脂して使うのが普通なのに潤滑油を塗るとはなんか不思議。

#3Dプリンタ
Icon of admin
 台車が出来上がりつつあります。
 キャスターにはナンシン社製のWJ100を使っています。強度や使い勝手を考えると割安だと思います。コレの固定タイプはWJB100ですが、車輪と自在軸の両方がロックされるので固定具合がとても良いです。
 WJ(B)100はamazonが一番安いのですが、一回の注文で11個しか頼めず、入荷した後でないと追加発注が出来ません。100個くらい欲しいのに面倒ですが、他に比べて2-3割安いので我慢です。

#器具の製作
Icon of admin
 Antari F1-FAZER のヒーター(発煙器)が入荷しました。早速取り付け。新品並みの煙量です。
20250508221220-admin.jpg 202505082212201-admin.jpg
 定格電圧はAC120vとありますが細かいことは気にしない。
 半年近く試行錯誤しましたが、達成感より解放された気分が強いですね。。。
 部品取りとして倉庫に眠っていた最初に買った機体も使えるようになったことは素直に嬉しいですケド。

 煙量が減ったり詰まったら四の五の言わずヒーター(発煙器)を交換した方がいいので、納期が半月ほどかかりますから予備を2個くらい買っておきましょう。ヒーター1個が$153に対し1個でも数個でも送料は$100なのでまとめ買いするのがよさそう。
 あとは、現場での使用後すぐに洗浄液を通すことにします。洗浄液はホワイトビネガー20%+精製水(バッテリー補充液)80%(重量比)です。

#器具の修理
Icon of admin
 台車を塗装しました。
20250505142324-admin.jpg 202505051423241-admin.jpg
 各種取り交ぜて49枚。2回塗り。
 1回目はシーラーを兼ね合板に浸み込ませるイメージで薄めに、2回目は少し厚めに塗っています。結構な作業量でした。
 本当なら2-3日乾かしてからスコッチブライトで表面を均してもう1回塗りたいのですが時間がありません。

#器具の製作

2025年4月 この範囲を時系列順で読む この範囲をファイルに出力する

Icon of admin
 台車作りは3x6の合板からの切り出しとコーナー金具の取り付けまで終了。数種類ありますが、3x6合板20枚から50枚の切り出しは結構な作業量でした。
 正直クタクタ。この歳で全身が筋肉痛。腰がカチカチ。
 ここ数日は屈んで立って切削を毎日7時間くらい作業。。一週間後に足腰に来そうで怖い(笑
 連休は現場が少なく部下はオフですからこういった作業には丁度いいのです。
 明日は箱造りの台車を数枚組んで塗装の準備です。

#器具の製作
Icon of admin
 年齢のせいか早寝早起き生活になっています。目覚まし無しでも6時には目がさめます。これから出張って昨日の作業の続きをしようかなと。
 昨日、某社の営業さんが来て話していたのですが、彼のご両親は私と同い年とか・・・。
 計算すれば何の不思議もないことですが、部下ならともかく、自分の年齢を実感してしまいました。

#雑談
Icon of admin
 台車の四隅には箱を受ける金具を付けます。これがあると荷が落ち着いて扱い易いからです。
 友人が三代目社長をやっている鉄工所にお願いすれば簡単ですが、±2mmの精度で構わない部品に費用はかけられないので自作です。
 幅50mmのフラットバーを加工しますが60個は結構な作業量。フラットバーからの切断だけでも心が折れそうでした。今日は取り付けネジ穴を空ける段取りまでしてギブアップ。明日半日やれば終わるかな?
 閑散期ではありませんが日程が緩い今日この頃。補助的な用具は後回しになりがちなので出来るだけ進めたい。

#器具の製作
Icon of admin
 暖かくなったので以前からの課題であった台車作りを始めました。木工は屋外作業になりますが寒いのは嫌です。
 まずは12tの合板を貼り合わせて24tにします。木ボンドを塗って平台状の治具で両面から圧縮します。24tありますと長手方向1.2mくらいでも十分な強度です。12tの合板は容積当たりのコストは良いのですが強度が足りません。15tなら塗装で表面を固めれば丁度いいのですが高価なので却下。24tだと少し重いのですが、取っ手を兼ねた長孔を空けて肉抜きをすれば許容範囲。ちなみに合板は農家でもある社長宅の納屋に眠っていた物を拝借。40枚無料。
 費用も手間もかかる作業ですが、台車の有無で現場でも倉庫でも作業量が大きく変わりますので、贅沢使いしても余るくらいが丁度いいのです。

#器具の製作
Icon of admin
 Antari F1-FAZER のヒーター(発煙器)を発送したとメールがありました。USAから何日で届くのでしょう。
 ポチって支払い手続きをするだけですから amazonさんと同じ感覚です。支払いはクレジットカードがベースになりますが PayPal や amazon pay などの支払い代行サービスを間に入れるとカード情報を直接晒さずにすむので良いようです。ちょっと確認があったので問い合わせフォームから連絡しましたが、日本語をネット翻訳で英語にし、それをまた日本語に翻訳して意図が合っていれば通じる様です。

 それにしても Antari のスモークマシンの部品はほとんどが手に入ることに驚き。本体フレーム以外は一通り扱っています。Antari の部品は日本国内では手に入りませんが、さすが DIY先進国だなと思った次第。今回は F1 でしたが、余程古い機種でなければ扱っています。

追記
 DHLの進捗が上がってました。
 4/25午後着だそうです。4/21発送ですから早い。オーダーしてから発送まで一週間、搬送4日ですからリードタイムは10日くらい。
 関税消費税が着払いなのは覚悟しておきます。

追記の2
 国際宅配便の記述をよく見たら、どうやら経由地と思われるところに4/25着らしい。当初の謳い文句に比べて早いので少し疑問でした。
 以前、中華電機に頼んだ品物が北欧へ行ってしまったことがあります。コレは詐欺っぽかったのでクレーム入れたらキャンセル扱いで返金になりましたが、同じことにならないことを祈ります。

#器具の修理
Icon of admin
 Antari F1-FAZER のヒーター(発煙器)は回復しません。これ以上は時間的に無理なので諦めます。
 ヒーター(発煙器)はUSAの問屋さんに発注したのでAC100vで使えるか不安はありますが、これに交換してダメなら不燃ゴミにします。
 DJ Lighting Discount さんは F1 以外の Antari 製品の部品も豊富に取り揃えています。詳細なスペックは書いてありませんのでAC120vのUSA仕様だと思いますが電熱器ならAC100vでも使えなくはないっしょ。EUやオーストラリアはAC200v以上ですからこちらから買うとダメでしょうけど。

 洗浄液を常に持ち歩くためにフォグリキッドの空ボトルを探しましたが DJ Lighting Discount さんにしかありません。リキッドとしては割高になりますが、$12 + 送料では同じボトルを使っている FLG-2 を国内で買っても同じ。アカリセンターさんにお世話になります。現場のスケジュール的に出来ないこともあるでしょうが、本番終了で洗浄液を吸わせるのです。少しは寿命が伸びるかな・・・。

 ヒーター(発煙器)がダメな目安ですが、煙量が減り、「Self-Clean」を実施してもチューブの中のリキッドが流れきらない状態とします。
 何とか回復させようとせずヒーター(発煙器)を交換しましょう。新品本体が 10万円 のところ 3万5千円(円相場次第) で済むハズです。技術力は必要ですけど・・・。

 中がどんなことになっているのかバンドソーで殻割りして確認してみようと思います。何がどうダメだったのかがわかれば対策も見えてくるかもしれません。

#器具の修理
Icon of admin
 ここまでやっておいてナンですが、一度吸い込みが悪くなったヒーター(発煙器)は復活しない前提で扱おうと思います。復活するとしても時間と手間が掛かり過ぎます。
 白酢を用いた洗浄は効果があると思われますが、中の弁は一度固着すると洗浄ではどうにもならんようです。
 ですので、使用後はすぐに白酢洗浄液を呑ませる方針にしようと思います。

追記
 やってないパターンがありました。
 ギリギリ低い出力レベルにすることです。
 5%にしてみました。通りが悪ければ出力レベルを上げても吸い込み量は少ない。なら、今の吸い込み量より少ないレベルにしたのです。これなら止まることなく出続けます。
 洗浄液は重量比で精製水8:白酢2、これを2リットル作ってフォグリキッドを10ml追加。フォグリキッドを入れると少なからず煙が出るので挙動がわかり易いからです。
 発注したヒーターの到着は10日前後の予定です。それまではダメ押しで色々試してみます。

#器具の修理
Icon of admin
 不調器は2台あります。1台は絶望的、もう1台は出なくもないが煙量が少なくたまにツンデレ目詰まりを起こします。

 これまでの挙動から想像するところ、発煙器には逆止弁みたいな機構が入っておりコレが動かなくなるのではと。煙も液の吸い込みも止まってしまい「不燃ゴミ化かな・・・」と気持ちが折れた翌朝は出ることが多く、出力を止めて数分待って動かすと出ることもあります。焦げの固着などでの目詰まりもあるでしょうけど、過熱されて粘性を持ったリキッドが弁の動きを邪魔しているのではないかとも思うのです。
 その他の挙動には、ボリュームアウトプットを100%で運転すると数分で発煙も吸い込みも止まるのに数分休ませて20%くらいで運転すると止まらないこともあります。
 今はタイマーアウトプット20%、インターバル60秒、出力60秒で洗浄水を吸わせていますが、吸い込み量が多くなり止まることはありません。

 前者は相変わらず目詰まりしていますが、方法を変えて写真の様にしています。
20250415122025-admin.jpg
 分かり難いかもしれませんが、圧送ボトルを使わず、発煙器を逆立ちさせてチューブを取り付け先端を吊って洗浄液を入れています。以前の茹で溢しに近い状態ですが、圧をかけずにボコボコ言わせています。

 後者は白酢洗浄液を上記のタイマーアウトプットで飲ませたところかなり復活。液の吸い込み速度は出力20%でも2-3mm/秒になりツンデレ目詰まりもしなくなりました。
 これは治るかなぁ~と淡い期待。白酢は効果アリアリと信じたい。

 以前から触っている前者の復活は期待していませんが、洗浄液と洗浄液を呑ませる際のセッティングが見えたらいんでないかと。
 ちなみに、酢は酢でも白酢を使うのは Antari X-530 のマニュアルにあった記述です。一般的な調理酢は糖分などが含まれていますが、白酢(ホワイトビネガー)はこれらが少なく酢酸の水溶液と言ってもいいようです。

#器具の修理
Icon of admin
 白酢は効果がありそうですが、Antari F1-FAZER のヒーター(発煙器)を見つけたのでポチり。
 DJ Lighting Discount
 F-1–Heater F-1-H
 ヒーターが $152、送料が $78。PayPal決済の手数料もろもろ合わせて35,000円ほど。日本国内では手に入らないし、新品実機は10万円くらいだし、ゴミにしないで済むし、修理趣味は満足するしアリかな。
 到着は約半月後です。関税や消費税がちょっと心配。

 コンディションの基準はチューブの液面での吸い込み速度です。カタログスペックは8.5ml/分ですから、チューブの内径を4mmとするなら67cm/分、約11mm/秒となります。これは設計最大値でしょうが、5mm/秒を下回るならよろしくないと思って良さそうです。

 あるあるですが、見つからなかった部品が見つかったということは修理中の発煙器が機嫌を直す予兆でしょう。現場で使える機体が必要数になれば手段や経過はどうでもいいのですけどね。

#器具の修理
Icon of admin
 こんなんも作ってます。
 RaspberryPi CM4 のマザーボードを収める箱です。
 マザーボードは Aliexpress で手に入ります。
20250411061834-admin.jpg 202504110618341-admin.jpg

 センチュリーさんの裸族のカプセルホテルを RaspberryPi サーバーにする構想を持っています。底面には隙間があるので RaspberryPi を内蔵した物を作って稼働していますが加工の手間が多すぎるので幅が同じケースを作って乗せることにしたのです。
 20250411062024-admin.jpg

 単に桝状の箱を作ると角がめくれ上がってしまいます。
 これを回避するために柱が付いた天板と底板に横板をハメ込む仕様にしています。

 I/Oポートの寸法合わせ中ですがイイ感じです。

#サーバー

 
Icon of admin
 Antari F1-FAZER は目詰まり。
 ツンデレを越え、気持ちが折れ始めております。
 と、Antari の他機種(主にX-530)のマニュアルを読みまくったところ、洗浄水は精製水と「白酢(しらす・ホワイビネガー)」を混ぜるらしい。酢は酢でも米酢とか穀物酢ではないらしい。
 なんと~!
 ならばと白酢を使ってみるかと近所のスーパーを巡ったのですが無い。業務スーパーにはあるような気がしますが閉店時間でした。
 仕方ないので amazon でポチリ。
 これを試してダメなら F1 は不燃ゴミにします。NG品は部品取りと思っていましたが、発煙器がダメになるだけで他は壊れないので倉庫の肥やしにしても意味がありません。

追記
 白酢が届いたので早速呑ませてみました。精製水8:白酢2です。
 数時間ですから解決には至りませんが、液の吸い込みが若干早くなりました。
 しばらく続けてみましょう。

#器具の修理
Icon of admin
 夏の花火大会でスピーカーを9ヶ所に組むとのこと。それぞれに電源が必要。
 最寄りに発電機を置いて C型30A を2-4個付けたいらしいのですが、C型30Aの6回路箱を作っては費用と手間がかかり過ぎる。
 数年前のライトアップで小さなウォルボックスをやたらと使って倉庫の肥やしになっているので再利用することにしました。

 こんな感じです。C型30A先バラの屋外タイプって感じです。 
20250410170005-admin.jpg

 C型30Aコンセントは20度傾けた状態で取り付けます。
202504101700052-admin.jpg

 取付台座は3Dプリンタで製作です。
202504101700051-admin.jpg

#器具の製作
Icon of admin
 少し日程が空いたので Antari F1-FAZER のメンテというか修理を再開。
 ここしばらく考えてみたのですが、お酢やクエン酸は汚れを落とす効果があるものの過熱されると粘性のあるドロドロになってしまうようでやり過ぎはいけない感じ。

 考え方を変え、ドロドロを落とすために茹で溢しをしてみました。
20250404102035-admin.jpg
 発煙器を取り出して逆立ちさせ、注射器で自然に精製水を落とします。発煙器の中は高温になっていますのでグツグツと噴き出してきますので、タオルを巻いてこぼれたお湯を吸い取って落としています。
 タオルにはフォグリキッドの臭いが付きますので内部に残ったフォグリキッドを洗い流せているような感じです。

 次は圧送ボトルを使って精製水を入れていますが、注入口のナットに超音波洗浄機を付けています。
202504041020351-admin.jpg
 超音波洗浄機は水中でないと使って行けないとマニュアルに書いてあります。過熱がよろしくないためでしょう。今のところ手で持てる程度の温度ですし、サーマルプロテクタくらい入ってるでしょうからしばらく試します。
 超音波洗浄機の効果かわかりませんが、何の動きも無かったものが脈打ち戻りを始め、ほんの僅かですが精製水を吸い込んでいます。何かしらの刺激にはなっている様子ですからしばらく続けてみます。

 超音波洗浄機のクランプを作ってみました。
20250404180454-admin.jpg
202504041804541-admin.jpg

#器具の修理

2025年3月 この範囲を時系列順で読む この範囲をファイルに出力する

Icon of admin
 新年度、女子の部下が1名増えます。専門学校卒なので二十歳です。
 すでに同世代の女子部下が3名いますので4姉妹の父親になった気分です。
 本当の親ではありませんので結婚話やら私生活には立ち入りませんが、4姉妹を一人前にするにはどうしたものか悩めるお父さんなのでした。
 仕事に緊張感と責任感を持たせるなら昭和的に厳しくするのもアリですが、Z世代とも呼ばれる子たちは要領はいいけど打たれ弱い傾向にあります。客や他社の先輩たちと直接やりとりが出来る気配りやメンタルを身に付けさせることが一番難しいなぁ~なんて思ったりして。
 30代の野郎が2名いますが同じような心配はしてあげません。

#雑記
Icon of admin
 サーバー群の設定は終了。
 openvpn で難儀しました。サーバーのOSバージョン、クライアントのOSやら openvpn のバージョンによって設定が微妙に違う感じ。調整する項目がわかったので勉強ってことで。
 DNSサーバーの機能を使わず bash スクリプトでDNSを動的に変更したり、iptalbes の設定に工夫をすると面白くて便利に使えます。
 離れた複数のサーバーを協調動作させるのがパズルみたいで遊んでいます。
 所属会社の回線はルーターが YAMAHA RTX830 になりましたが速いですね~。ターミナルで入らないと設定出来ない項目があったりしますが、要領がわかると凄く便利。

#サーバー
Icon of admin
 所属会社のネット回線の更新に伴ってサーバーの設定更新をしたのですが、成り行きというか必要に迫られてdebianOSをアップデートしたところセキュリティポリシーがきつくなるわ設定方法が変わるわでてんやわんや。無事設定は出来たものの大変な目にあいました。
 WindowsServerのRAID1の片肺が死んでいたのを発見出来て良かったですけど・・・RAID1(ミラーリング)にしといて良かった。

#サーバー
Icon of admin
 PIC16F18326 についてはヘッダーファイルを書いています。
 書きながら勉強になっているのでいいのですが、パラメータが増えているのでなかなか終わらない。
 Pickit(書き込み機)も新調しました。最新のMPLABXではPickit3が対象外になっているためです。

#PIC
Icon of admin
 PIC16F18326 の勉強をしています。
 データシートを機械翻訳し、見開きで原文(英文)と翻訳(日本語)を読めるように印刷しました。496ページもあるので1,000ページ近い印刷になりましたが、英文は苦手だし機械翻訳は奇妙なところがあったりなので両方見比べられるとわかりやすい。
 拡張ミッドレンジ(16F1823など)と概ね同じですが、機能が増えたためかレジスタやフラグビットに違いがあります。この辺りの違いが細かくて微妙なので把握するのが大変だったりして・・・。俺様ヘッダーファイルを作ることでその違いを把握しています。
 まずはI/Oポートからです。驚いたのは、すべてのポートをオープンドレイン出力に出来ることと入力特性をST(シュミットトリガー)か一般的なTTLか選べることです。これは助かる。
 オープンドレインには様々な使い方があり、5v駆動から3.3v駆動へ信号を送ることが代表株かもしれませんが、自分は複数のPICの間でセマフォの様なフラグを持たせる場合に使うことが多いです。プルアップしておいてL出力で権利を宣言するのです。
 シュミットトリガーは入力の閾値判断をあえてヒステリンス特性にしていますので入力検知の正確さを期待できます。キー入力のチャタリング対策や外部入力の信号のパルスエッジに傾斜がある場合などに信頼性向上の効果があります。誤認識を減らせるってことです。
 機能が増えて複雑になってますがいい感じです。

#PIC
Icon of admin
 スモークマシンをメンテするための圧送ボトルに使う金具を作ってみました。
20250313102055-admin.jpg
 双頭のタケノコの中間に六角頭とネジがあるものです。
 タケノコが太ければ既製品にあるのですが、外径6mm/内径4mmのチューブに合うのもが見つかりません。仕方ないので真鍮の六角棒から削り出しました。
 売り物になる仕上がりではありませんが、使えるからいいかなと。

 そうそう、Antari F1-FAZER は絶賛目詰まり中です。洗浄にはクエン酸溶液と圧送ボトルが良さそうなのが見え、一定の成果を得られたので当初の課題はクリアですが、どうせなら復活させたい。
 発煙器内部の焦げカスが剥がれて詰まってしまったのだと思いますが、洗浄液を通すのではなく、強制的に洗浄する何かを考案しましょう。
 吸入口や発煙口から細い管で洗浄液を送り込むのと同時に排出させる機構です。腸内洗浄みなたいなイメージでしょうか。
 発煙器を取り外して作業するのはもちろんですが、細い管で洗浄液を圧送する仕組みと発煙器を固定しつつ流れ出てくる洗浄液を受ける架台が必要です。
 復活してくれなくても支障はありませんが、趣味の課題としてノンビリやってみましょう。
 目詰まる直前、結構な量の煙が出たんですけどねぇ~。

#器具の修理
Icon of admin
 PIC16F18326 のデータシートを翻訳しました。
 もちろん自力ではありません。以前も利用した「Doc Translator」にお世話になりました。
 一気に496ページは翻訳出来ませんので100ページくらいに分けて実施。PDFのページ体裁の編集はフリーウェアの「CubePDF Page」と「CubePDF Utility」を使うと便利です。
 完璧な翻訳では無さそうですが意図を読み取るには十分な翻訳をしてくれます。
 もちろん翻訳を確認した後に寄付をしました。フリーウェアでも恩恵を受けたら寄付をしましょう。

#PIC
Icon of admin
 開発や製作は調光ユニットの作り直しもあります。
 LitePuterさんのDX1220を2台入れた14Uの物が数台ありますが、しばらく前にパッケージしたのでアナログ信号のコネクタを付けていました。今となっては不用ですし代わりにスプリッターを入れておきたい。

#器具の製作
Icon of admin
 現場の日程も緩んできたので開発を始めています。
 今はDMX切替器のファームウェアの更新とそれに実装するDMX-HOLDです。
 他社の先輩に頼まれて作ったモノですが、当時の技術力ではHOLDを作れずに無い々々で納品したのを忘れていました。
 流石にこれではいけませんし、2kBの目盛りを持ったPICが入手できるようになったので作ろうと思ったワケです。
 14ピンのPIC16F18326を使う予定です。データシートを見たら初期の拡張ミッドレンジの頃とは細かい違いがあります。ヘッダーファイルも含めて再検討が必要でしょう。
 驚いたのはシリアル通信の出力ポートが見当たらないこと。なんのことやとデータシートを読んだところPPSという機能が入っていました。以前にもI/Oポートのピンを変更する機能が搭載されていましたがこれが拡充されたようです。シリアル通信の出力ポートはこれで定義できます。あとは、プログラムマブルロジックが搭載されています。ピンが余っている場合にこれは便利かもしれません。
 ともかく、新しい世代のPIC16を勉強しましょう。データシートが英文で450ページもあるので読むだけで一苦労ですけど。

#PIC
Icon of admin
 他社の先輩に頼まれて作ったDMX切替機を修理したのですが、ファームウェアを読み直したらバグがあるやん。
 DMX3入力を選択するモノで、BreakTimeを見て切り替えをするので理屈ではおかしな挙動になることはありません。
 主機能である切替の部分は問題無いのですが補助的な機能のバグです。限定使用なら問題ありません。
 なお、故障は落雷によるものです。こんなところが壊れるの!?ってところが何ヵ所も逝ってました。

#器具の修理
Icon of admin
 やってきましたツンデレのツン様。
 調子よく出ていたのに全く出なくなりました。
 剥がれた焦げカスが詰まったのかな?
 よくあることです。

#器具の修理
Icon of admin
 クエン酸溶液で焦げカス一層多く出ましたが、脈打ち戻りが弱くなったので排出方法を考えねばなりません。
 まだまだお話にならない量ですが、煙量は増えてきています。
 クエン酸なら本体ポンプに通しても大丈夫ですし、脈打ち戻りも無くなったのでしばらくはクエン酸溶液を普通に吸わせてみます。

#器具の修理

2025年2月 この範囲を時系列順で読む この範囲をファイルに出力する

Icon of admin
 廃液が茶色くなるのはともかく、ポッカレモン100を飲ませたところこれまでで最大量の焦げカスが出ました。
 たまたまかもしれませんが、クエン酸が効くのかな?
 ポッカレモン100は案外高価なので、再結晶をしないことを祈って粉末のクエン酸を使ってみましょう。

追記
 本業のお買い物ついでにクエン酸の粉を買ってきました。
 かなり薄めのクエン酸溶液から試していますが、廃液は茶色くならないのに更なる焦げカスが出てきました。溶液の流量も増えています。数時間で改善がみられたのでクエン酸溶液には手応えがあります。
 ・・・とは言っても、これまでで一番状態が良かった瞬間に戻っただけで、まだまだ現場で使えるレベルではありません。
 あと数日は試してみましょう。

#器具の修理
Icon of admin
 そういやクエン酸を試してません。
 粉のモノは再結晶するとイヤで重曹もクエン酸も試してなかったのですが、レモン果汁ならありかな?

追記
 話のネタレベルでレモン果汁(ポッカさんのレモン100)と精製水を混ぜて飲ませてみたのですが、1時間ほどで脈打ち戻りによる廃液が真っ茶。ティーバックを入れたまま飲み残して一晩放置した紅茶レベル。
 お代わりをしようと思ったのですが、精製水が切れてしまったのでエタノールに混ぜたところ脈打ち戻りが無くなりました。脈打ちした方が掃除になりようなので精製水に換えてみましょう。
 ポッカレモン100は果肉が入っていると嫌なので、キッチンペーパーでろ過して使っています。
 廃液が真っ茶になったのは汚れが落ちたのか、ポッカレモンが焦げたのか。

#器具の修理
Icon of admin
 Antari F1-FAZER に午前中はワイドハイターEXパワー、午後はマジックリンを入れた溶液を飲ませてみました。
 かまってはいられないのでそれぞれ30分ほど様子をみた後は放置でしたが、弱々しくも目詰まりすることもなく出てました。ツンデレのツン様はご出現されませんで一安心。
 ただ、マジックリンでは圧送ボトルの溶液に変色無し。ワイドハイターEXパワーを入れると茶色くなっていたのですが、落ちる汚れが無くなったのか、マジックリンは油汚れに強いけど水性汚れには効果が無いのか。マジックリンは強めのアルカリ剤で界面活性剤も入っているので効果があっかな?って思ったのですが狙いが間違った?。
 明日も事務所勤務なので午前中はワイドハイターEXパワーを使ってみましょう。茶色くなるならワイドハイターEXパワーに分があると思っていいのかな?
 完全不燃ゴミ化してもいい機材なので何でもやっちゃうwww

#器具の修理
Icon of admin
 実母に相談したところ、焦げ落としなら粉石鹸かマジックリンの漬け置きだろと助言。台所の換気扇にはどちらかのぬるま湯漬けが効く。母師匠に教わった家事テクニックなのに思い浮かばなかったことが恥ずかしい。
 粉石鹸は水気を飛ばすと粉に戻りますからNGかな。
 マジックリンをテスト。精製水に対して20%くらいの量です。しばらくすると煙が出なくなりました。これは発煙器の中に残っている煙になる成分が無くなったのでしょう。他の溶液よりも短時間です。となれば内部に残っていたリキッドは落ちているのかも。ただ目詰まりなのかよくわかりませんので、様子を見るためにリキッドをほんの少し入れます。薄い煙ですが状態把握に役立ちます。
 薄いリキッドですから煙量は少ないものの、発煙口から出てくる勢いが強くなっています。モヤっと出ていたものが噴き出している感じです。リズムは以前と違いますが、脈打ち戻りも復活しています。
 良い方向に行っているのかわかりませんが、このままツン様が出現せずに快方に向かえばいいのですけどね。
 発煙が止まらない限り、しばらくはこの状態を続けてみましょう。
 とまぁ、こんなことしてないで本業の段取りを進めないと・・・。

#器具の修理
Icon of admin
 現場が続いているのでツンデレさんのお相手は朝夕に少ししか出来ませんが、僅かですが煙を出すようになりました。
 エアーを通しての空焚きが効果あんすかね、ツン様の気持ちはよくわからんですけど。
 発煙器の構造がわからんので何とも言えないところはありますが、脈打ち戻りはほとんどしなくなったのでリキッドの入り口側の詰まりが取れて次の段階に入ったのかもしれません。少しですが溶液が通るようになったので、次の機会には汚れを落とす効果が高いと思われる酸素系の漂白剤を飲ませてみようかな。この煙はあからさまに毒ですから屋外風下を確保できる時に限りますけど。広大な田んぼに囲まれた社屋でよかった・・・。
 あと3週間頑張れば現場のスケジュールは落ち着きそうです。

#器具の修理
Icon of admin
 Antari F1-FAZER はあからさまにツンデレです。
 空焚きをした後の今朝は溶液をデレっと飲むようになりましたが、午後になったらツンと飲まなくなりました。
 何がどうしたのか本当にわかりませんが空焚きに切替えます。
 半固定抵抗が入荷したので交換もしてみます。

#器具の修理
Icon of admin
 F1-FAZER などの修理の部品を探すのに秋月電子通商協定さんのサイトを見ていたのですが、いい感じのフレキシブルLED が安い。しかもCL0116,CL0117,CL0118などの乾電池向けのICでドライブ出来そう。
 用途はアイデア次第ですが、間数マーカーなどの光るマーカーの光源に使いたい。

#電子工作
Icon of admin
 Antari F1-FAZER は正常機の状態の把握から仕切り直しです。
 情報として取れそうなのは「発煙口の温度」と「制御基板のチェック端子の電圧」です。
 発煙口の温度は熱電対を使った温度計で測ります。熱電対を取り付ける何かを作らねばなりませんが、銅で簡単なクランプを作ればいいでしょう。
 制御基板のチェック端子の電圧は発煙器の中の熱電対の電圧のことです。どうやら基盤にあるコネクタにそれが上がっているようです。
 これらの最寄りにある半固定抵抗が熱電対の微調整器だと思いますがので、これらの値を見ながら調整にすればいいのかなと。
 故障機で怪しいのは、この半固定抵抗を動かしても何の変化もないことです。煙の出も変わりませんしチェック端子の電圧も変化しません。私の思い違いかもしれませんが、これが壊れているのではと疑っています。
 正常機の状態を把握するにしても、故障機を調整してみるにしても専用の用具は必要です。これらを作るところから行きましょう。

#器具の修理
Icon of admin
 現場が忙しい状況ですのでガラクタイジリは少しお休み。
 なのにですよ、最後の最後に Antari F1-FAZER は煙を一切出さなくなりました。
 色々考えたのですが、ひょっとすると温度センサが狂っているのではないかと。
 煙の出口がブクブク泡立つことがあり、液があるなら煙になれと思っていました。また、発煙口の液だれの焦げが目立ちます。現役の正常な機体では見られないことでもあります。
 理屈というより勘ですが、発煙器の温度が低いという前提で洗い直す必要がありそうです。発煙器は冷めているとリキッドもエアも通しませんが暖まると通します。温度で開閉する弁があるのでしょう。正に今は定格温度になる前の閉鎖状態から脱せない感じ。つまり温度が低いのではと。実際発煙口は低い気がする。
 発煙器からは温度センサからと思わしきケーブルがあります。当たってみると熱電対っぽい挙動。数mVの電圧があり、電熱器へのリレーの挙動に合わせて上下します。基板を当たりますと熱電対からと思わしきケーブルと直結されたコネクタがあります。たぶんですが、熱電対の電圧を見ながら近くにある半固定抵抗で電熱器のON/OFF条件を調整するのではないかと。正常な機体の熱電対の電圧とリレーの動作を見て設定を調べてみます。
 半固定抵抗も怪しい気がする。念のため同等品に交換してみるつもりです。

#器具の修理
Icon of admin
 この先数日は現場が続くので Antari F1-FAZER のお相手が出来ません。ここまでの成果を見るのに組み直してみました。
 フルパワーの爆煙には程遠く20%くらいって印象ですが、間違いなく煙が増えています。今日最大の瞬間煙量を継続してくれるなら空調が激しくない小ホールでは使えそうです。
 と、喜んでいたらツンデレのツンさん来ましたよ。朝一でチェックしてしばらく放置したのですが、1時間後には振り出しのショボショボに戻った感じ。焦げカスが移動して塞いでしまったか、発煙器内部の逆止弁的な機構の動きが悪くてツンデレしているのか、これまでも何度もありましたので気にしません。テンションは下がりますけど。
 これからも継続して処置してみましょう。

#器具の修理
Icon of admin
 Antari F1-FAZER に混ぜ物無しのスモークリキッドを吸わせ少し高めの圧送をしたところ現場で使えそうな煙量。
 「ワイドハイターEXパワー」は大当たりな気配。
 と、喜んでいたら社長からツッコミ。得体のしれない作業をしていると完成が見えるころに来るのはお約束。気にしませんけどね。

追記
 昨日のピーク程ではありませんが、溶液は2時間くらいで茶色くなっています。
 強い脈打ち戻りが起こる空気圧は下がっているので状況は好転しているのかな?
 当面、脈打ち戻りがなくなるか溶液が汚れなくなるまで続けてみましょう。

#器具の修理
Icon of admin
 目詰まり Antari F1-FAZER 君は回復の兆し。
 劇的な変化は前記事にありますが、まさか日々の洗濯で使っている「ワイドハイターEXパワー」様が解決の糸口だったとは・・・。
 嬉しいような悔しいような、で、ありますが、元気になった君と現場で一緒に働きたいものです。ツンデレのツン様はご遠慮願いたいけどwww

 今回の重メンテナンスの方法や要となる圧送ボトルの作り方は作業が完了したら揚げてみたいと思います。社内マニュアルも作りたいですし。
 ・・・っと、終わってないのにヌカ喜びしちゃいけない。

 本音を言いますと、嬉しいというよりホッとしてます。
 なぜなら、昨年末から1ヶ月半ほど時間があれば、いや本業をそっちのけでやっていたからです。
 上役からしたらいつものことだけどイイ加減にしろとか、部下からしたらアホなおっさんがドアホなっちまったとか、思われて然るべき状況でした。
 ただ、コロナ以降は劇場の空調の吸気・排気が強くなりスモークが溜まりにくくなっています。爆煙な Antari F1-FAZER でも上下焚きしないと負けてしまうこともしばしば。コンディションの良い機体の2台使いをデフォにしないと・・・と思っていたので、限りなく新品に近いコンディションを維持する方法を見つけるのが目的でした。目詰まりして部品取りの不燃ゴミなっていた機体なら現役復帰出来なくても構いませんが、もしこれを復活出来たなら現役機を良好に維持する可能性に繋がるからです。
 物凄く小さな戦場の四面楚歌でしたが、正解かもしれない方法が見つかったので「ホッ」としているのです。
 振り出しに戻らなければいいのですが・・・

 このまま作業手順が確立したらルーチンワークになりますから専用の作業台をこさえましょう。

#器具の修理
Icon of admin
 オレメモです。
 Antari F1-FAZER に使われているポンプは ULKA製 NME type4 (100v仕様)です。
 日本代理店のリンク
 代理店さんなのに売ってくれませんが、商社さんが一見さんに小口販売をしてくれないのはよくあること。仕方ない。
 スペックを見ますと流量0mlで1.5MPa、最大流量650ml/minで0MPaとあります。
 F1-FAZER のカタログスペック 8.5ml/min は近しい数値がありませんが、50ml/min で 1.35MPaとありますので、F1-FAZER の定格流量なら1MPa以上あるとなります。案外高い。

#器具の修理
Icon of admin
 明らかにそれとわかる臭いの煙を吸うと「ヤバイ」感じはしますが、酸素系漂白剤は効果があるっぽい。
 ここ数回見ていますと、
 空焚き → 酸素系漂白剤を含む溶液を吸わす → 混ぜ物無しのフォグリキッドを吸わす → 精製水を吸わす → 以下繰り返し
 私が脈打ち戻りと言っている挙動を維持すると圧送ボトルの液が茶色くなったり焦げカスが溜まります。
 先ほどフォグリキッドを吸わせた際に焦げカスが大量に出てきました。ここまでの作業を受けた良いタイミングだっただけかもしれませんが煙量は大幅に増加。
 何がどうしてかわかりませんが、酸素系漂白剤を吸わせてから獲れる汚れや焦げカスが増えたように思います。
 これは予想ですが、空焚きで焦げが取れやすくなり、酸素系漂白剤で更に取れやすくなり、フォグリキッドに含まれる界面活性剤で最後の一撃って物語なのかもしれません。
 しばらくしたらツンデレのツン様が顔を出してくるのでしょうけどねwww

追記
 モノは試し、フォグリキッドに酸素系漂白剤を加えただけの溶液を吸わせてます。
 すでに改善した結果かもしれませんが、煙量が徐々に増えています。

追記の追記
 昼食で離れたのですが、約1時間で溶液が真っ茶色・・・。
 これまで3時間くらいで茶色になることはありましたがそれ以上の茶色・・・。
 圧送ボトルの底に焦げカスは溜まっていませんでしたが、ここまで汚いのもどうかと溶液を入れ替える。ところが30分もしないウチにみるみる茶色と化す。
 溶液はフォグリキッド10:酸素系漂白剤1です。
 そういやフォグリキッドを入れない時は焦げカスがあまり出ません。溶液が茶色にならない傾向も感じる。ひょっとしてフォグリキッドが一番汚れを落とす!?
 そこへ酸素系漂白剤を追加してパワーアップ!?
 真相やいかに!!
 溶液の消費も増えています。

追記×3
 デスクワークしてたので3時間くらい放置したのですが、圧送ボトルの中身が濃く入れた麦茶の様になってました。
 脈打ち戻りが最大になるように調整していますが、圧力を下げた方がいいみたいで昨日の半分です。
 煙量も溶液の消費量も明らかに増えています。

追記×4
 溶液を入れ替え更に2時間。
 出し過ぎの麦茶を越えてもはやドス黒い。醤油と言うには艶が無い濃いグレー。この先の変化にワクワクしてしまいますが、時間も時間(現在20:20)なので最後のすすぎとして精製水に交換。
 脈打ち戻りをさせるのに更に圧力を下げています。0.1MPa以下になり、最大1.4MPaの目盛りがあるコンプレッサーのレギュレータでは調整が難しい。
 溶液を交換する前にちょっとだけ圧力を上げたのですが煙量は現場で使えるレベルかも!?って思いこみたいほどになっています。
 ツンデレのツン様が再来されるとは思いますが、ひょっとすると酸素系漂白剤(KAOさんの「ワイドハイターEXパワー」)は大正解!?溶液はフォグリキッド10:ワイドハイターEXパワー1.5です。
 このままツンデレのデレちゃんのまま綺麗になって欲しい・・・。
 もしお試しになる方は煙を吸わない様にくれぐれもご注意を。マジで気持ち悪くなります。汚れを排出しなければなりませんので、本体ポンプを通さず外部に圧送ボトルを付けて行ってください。

追記×5
 片付けようと溶液(精製水)をみたら灰色の液体になってました。どんだけ効果があんだよ「ワイドハイターEXパワー」様。
 試行錯誤を続けること一か月半。知ってたら3日で終わってたかも。

#器具の修理
Icon of admin
 Antari F1-FAZER は先日空焚きしたので今日は溶液通しです。
 先の書き込みにもありますが酸素系漂白剤を試してみます。
 溶液はエタノール2:フォグリキッド1:酸素系漂白剤0.5です。
 酸素系漂白剤はKAOさんの「ワイドハイターEXパワー」です。自宅での洗濯やプラスチック部品の漂白に使っています。手元にあっただけで選んだ理由は特別ありません。
 驚いたことに、吸わせて30分もしないウチに溶液が真っ茶。麦茶レベルです。これまでお酢を通した後にこうなることはありましたが、お酢を使わなくなってからは空焚きの後でもここまでなることはありませんでした。お酢を使うとその色なのか汚れが落ちたのかわかりませんでしたけどね。ただし、長時間吸ってはいけない臭いはします・・・。
 溶液の消費量は1時間25mlとまだまだ少ないですが、煙の量は増えています。フォグリキッドは3.5倍に希釈してますからそもそも少ないのですが、一つ前の溶液通しのときより明らかに増えています。現場で使える量ではありませんがあからさまに増えていると期待感を持ってしまいます。これはたぶん空焚きのオカゲですけど。
 本業の照明プランや舞監仕事のデスクワークが溜まっているのであまりお相手は出来ませんが、今日一日様子をみましょう。

 と、少し様子を見ていたら溶液の消費量が増えました。10分で10ml弱?

追記
 たぶんと思っていたツンデレのツンがきました。
 空焚きすれば戻るし、どうやっても出ないなら不燃ゴミになるだけ。焦げカスは排出してるし、まぁ、いいんですよ。
 イチイチ一喜一憂してても精神力の無駄遣い。思春期の娘だと思えばいい。
 気長にお相手しましょう。

#器具の修理
Icon of admin
 Antari F1-FAZER に吸わせていない身近なモノがあります。サンポールや台所漂白剤、塩素・塩酸系や酸素系の洗剤・漂白剤です。
 煙量や吸い込み量は増えていますがマダマダです。不燃ゴミから回帰させるには煙量が劇的に増えないといけませんが、このまま続けても十分な改善は期待薄。薬剤を吸わせるのは止めようと思っていましたが、最後にこの辺りを試すべきかもしれません。
 と、ネットで調べると塩素系は金属に悪さをするそうな。これはやめておきましょう。
 酸素系漂白剤は焦げ落しにも使えるらしい。適温は50度くらいらしいので温度過多の様な気もしますが、少量突っ込んでみましょう。

#器具の修理
Icon of admin
 本日は Antari F1-FAZER の空焚き日です。重要な作業とはいえ電源が入ってるのに何も出てこないと不安というか煙を出したくなりますな、ここをグッと我慢するのが肝要みたいです。

#器具の修理
Icon of admin
 デスクワークの合間に Antari F1-FAZER の続きをやってます。
 カタログを見直しますとリキッドの消費量は 8.5ml/min とあります。1時間あたりに換算しますと 510ml です。100%出力の設計値だと思いますが結構な量です。実用では1リットルボトル満タンで3時間以上使えたと思いますが、この状態を目指し維持すればいいのかな?
 修理機の現状は3時間で 50~80ml です。カタログ値の 1/20~30 ですから煙が少ないのも当たり前です。
 とはいうものの、つい数日前のツン状態では6時間で 10ml も吸いませんでした。比率としては改善しているのでヨシとしましょう。長時間の空焚きの効果は大きいようです。
 今は煙の量ではなく溶液の消費量で評価しています。目視では光の加減と気分で評価が一定しないからです。
 試行錯誤で行ったり来たりしていますが、当面は一日空焚き、翌日は脈打ち戻りが一番強い状態で溶液を吸わせることにします。本業もそれほどヒマではないので朝昼夕に様子を見る程度にしたいってのもあります。夜も実施すれば作業効率はいいのですが、半壊れの発熱器を無人放置は出来ません。

#器具の修理
Icon of admin
 Antari F1-FAZER のツンデレ具合いはナカナカのものです。今日はデレです。
 昨日は丸一日空焚きを実施し、今日はエタノール3:フォグリキッド1の溶液を吸わせていますが、発煙量も溶液の吸い込み量も増えています。
 ツンデレの原因は外れた焦げカスが再度詰まってしまうことだろうと思っていますが、このツンデレをいつまで相手にするか悩みどころです。もはや発火はしないだろうと思いますので、監視している必要がないならあと一か月くらい根気強く続けてみましょう。3歩進んで2歩下がっても進んではいるのですし。
 先日も書いていますが、エタノールを使用するなら本体のポンプを使わず圧送ボトルを使います。本体のポンプにエタノールを長時間通すとたぶん壊れるからです。真似をされる方はくれぐれもご注意ください。
 圧力は0.1~0.2MPaにしてます。脈打ち戻りが強く回数が多い状態に調整しています。

#器具の修理
Icon of admin
 Antari F1-FAZER はツンデレのツンに入りました。全く以てご機嫌がわからない。3歩進んで2歩下がるを本気でやってくれます。
 なんでかんで一か月近くやってますが、いい加減飽きてきたかも。

#器具の修理
Icon of admin
 ジクロロメタンでは焦げカスは溶けませんでした。吸引は危険なので使わないことにしましょう。
 効果が高いのは空焚きっぽいです。VAPEもそうですが、トラックのディーゼルエンジンも排気管に付着したカーボン(焦げ)は焼き切りますし、中華料理店の鍋やコンロの焦げは焼き落としをするのが重メンテナンスの基本らしいです。過加熱が許さるなら、焦げを落とす一番の方法は焼き切ることなのでしょう。
 Antari F1-FAZER のこれまでの状況を見ますと、空焚きをした後に何かをキッカケに焦げカスが大量に出てきます。キッカケはよくわからないのですが、溶液の種類はあまり関係ない様にも思えます。
 空焼きの最初では空気を送った方がいいみたいです。セルフクリーニングと同じ状態です。煙が完全に出なくなったら空気を送らずに空焚きを続けます。煙が出ないなら新たな焦げカスも出来ずに最大限の高温になるハズです。
 なお、本来のチューブを発煙器から外し、圧送ボトルからのチューブに繋げて全て行っています。完全な不燃ゴミにする覚悟でやってますのでイロイロ試せてます。
 発煙量はまだまだお話にならない量ですが少しづつ増えています。根気強く続けましょう。

追記
 焦げカスは脈打ち戻りで排出されるのですが、チューブではそれが見えることが減ったのに圧送ボトルの底には溜まっています。
 今日の作業で溶液の吸い込み量も煙量も朝の倍くらいになりました。何が効果的だったかわかりませんが、今の方法を気長に続ければ使える様になる期待感。
 ただ困ったことに、作業単位はわかってきたのですが、手順と作業を切り替える条件がまだ見えない。
 不安なのはフォグリキッドの煙がすぐに消えてしまうことです。発煙が増えても意味がありません。温度が足りないのかな?

#器具の修理

2025年1月 この範囲を時系列順で読む この範囲をファイルに出力する

Icon of admin
 Antari F1-FAZER の排煙器の焦げカス除去に「ジクロロメタン」を使うのはどうだろう。3Dプリンタの製作物の表面処理で使ってますが、セルロース、エステル、油脂、樹脂を溶かす性質があるそうな。スモークリキッドの焦げカスも溶かしてくれないだろうか。発煙器は高温になるので内部に樹脂やゴムの部品は無いものと予想していますが、そうならジクロロメタンで侵されることは無いハズです。
 気をつけなければならないのは毒物であることです。吸引すると呼吸器系に良くないそうな。
 どのように施工するか考えてみましょう。

追記
 ジクロロメタンで溶けないOリングやパッキンはフッ素樹脂(PTFE)だそうな。ステンレス製の調理用注射器を用い、パッキンをフッ素樹脂製に変えればよいのかな?

#器具の修理
Icon of admin
 今日も今日とて Antari F1-FAZER のネタです。
 イロイロやって3歩進んで2歩下がるを繰り返してきましたが、焦げカスを排出させるって意味では、
1. 発煙器を空っぽにして空焚きする。約1時間。
2. 少し冷ます。気分次第。
3. 洗浄溶液(フォグリキッド1:エタノール1:精製水2)を圧送する。約1時間。
4. 終わったら空気だけ送り本機能のセルフクリーニングと同じことをします。発煙器とチューブが空になり、発煙口から煙が出なくなったら1から繰り返す。
5. 全終了の際は1の空炊きをして十分乾燥させたら仕舞いとします。
 ってのが現実的みたい。空焚きをしてから溶液を入れると焦げカスが多く出ます。
 溶液は使い切らずとも毎回新しくしていますが、脈打ち戻りによって圧送ボトルの底に焦げカスが溜まり溶液が茶色くなるからです。良いのか悪いのかわかりませんが、焦げカスを取らないことには始まらないと思いますので、排出されているならいいとしましょう。
 牛歩状態ですが、溶液の消費量も煙の量も増えつつあります。ケミカル品を使う近道かもって方法はイマイチでしたので、この方法を根気強く続けるしかありませんね。
 1月だというのに本業が忙しくて他のネタを進められないって話もあります。

#器具の修理
Icon of admin
 Antari F1-FAZER は3歩進んで2歩下がっています。何か別なアプローチは無いかとKUREエンジンコンディショナーをぶち込んでみました。エンジンの内部を洗浄するケミカル品です。キャブレタークリーナーの一種ですが、発泡するので良いかなと選んでみました。
 次は今実施している手順ですが、圧送ボトルから溶液を送った途端に大きな焦げカスが数個出てきました。KUREエンジンコンディショナーは正解かもしれません。

● F1-FAZER 焼き付き対策(お試し検証中ネタ)
 発煙器の内部に焦げが溜まり発煙が減った場合への対策。
 重メンテナンス(通常メンテナンスではない)

1. 本体のサイドパネルを両側外す。
2. リキッドポンプのタブ端子を引き抜く。
3. エアーポンプを外す。底面の止めネジを外し固定パネルをスライドさせるとゴム脚が外れる。逆止弁の先のチューブを引き抜く。電源コネクタを外す。
4. 発煙器のリキッド注入口からチューブを引き抜く。
5. 〜ここまでが下準備
6. 冷えた状態でKUREエンジンコンディショナーを発煙器に注入する。発煙口とリキッド注入口にKUREエンジンコンディショナーのノズルを出来るだけ奥まで差し込んで噴射する。泡が溢れても2-3秒保持する。KUREエンジンコンディショナーは横にしても使える。
7. 電源を投入し予熱する。発煙口の温度が60〜70度(触ってはいられないが数秒なら火傷しない程度)になったら電源を落として20〜30分放置する。
8. 圧送ボトルに洗浄溶液を入れておく。お酢1:エタノール1:精製水3の割合。量は吸い込み具合いで調整する。100mlくらいから試し、概ね2時間で吸える量が目安でしょうか。
9. 圧送ボトルからのチューブを発煙器のリキッド注入口に接続する。
10. 約0.1Mpaのエアーで洗浄溶液を圧送する。
11. 6〜10を繰り返す。
12. 組み上げ直して精製水を500ml吸わせる。洗浄溶液を洗い流す。

追記
 イロイロ試したら目詰まりが振り出しに戻りました。外れた焦げカスが詰まったのかな?
 ここまでの経緯をイロイロ考えたのですが、リキッド1:エタノール1:精製水2~3を混ぜた溶液を0.1Mpaで与え続けた時が良いカモ!?って感じがしてきました。ケミカル品を吸わせても変化があったり無かったり。リキッド+エタノール+精製水を使った時に変化が大きかった感じがするのです。吸わせてすぐに結果が出るもんぢゃありませんので判断が難しいのですけどね。

追記の追記
 なんでかんで、資料整理の作業中に上記の対処をしたのですが、昨日のイイ感じまで戻ってました。
 正解かどうかはわかりませんが、しばらくこの線で進めてみましょう。

#器具の修理
Icon of admin
 Antari F1-FAZER のメンテナンスは焦げカスを取り去ることに特化することにしました。
 これまでで効果がありそうな方法は、
1)空炊きする。
2)エタノールを混ぜた溶液を用いて脈打ち戻りを行う。
 この二つです。
 空炊きによって焦げカスを外れやすくし、脈打ち戻りで内部を水流洗浄するのです。エタノールは沸点が78度くらいですので脈打ち戻りが強いようです。
 焦げの種類は違う気もしますが、エンジン内部のカーボンを取り去る KURE エンジンコンディショナー も使ってみるつもりです。ひょっとすると焦げカスが外れやすくなるかもしれません。

#器具の修理
Icon of admin
 毎度 Antari F1-FAZER の話です。
 3歩進んで2歩下がっております。
 焦げカスがとにかくすごい。先の書き込みの本体のポンプを使わない圧送方法を長時間試しましたが、なんとポリ容器の底に黒い焦げカスが溜まっていました。どんだけ焦げてんだってのと脈打ち戻りがどんだけ強いんだと呆れ果ててます。
 今は煙が弱くなってます。脈打ち戻りで外れた焦げカスが再詰まりしてんだろうと予想。これは何かで溶かすしかありません。強めのアルカリか酸を使うしかないのでしょうか。ポリ容器の底に溜まった焦げカスで試すことが出来ますので、何か溶かしてくれるモノを探しましょう。ちなみに、サンポールでは溶けませんでした。
 劇薬に相当するものは使いたくありませんが、タンパク質系なら髪の毛まで溶かすパイプフィニッシュという手段もあります。私が扱える範囲なら、強アルカリとは言え金属の表面を変色させますが犯しはしません。強酸の場合はちと違いますけどね。無頓着な私でもまず保護メガネをしなきゃと思うレベルまで来てしまいました。スモークマシンを毒ガス発生器にしないように注意しないといけません。
 で、プロピレングリコールの焦げカスってそもそも何なのでしょう。採取した焦げカスをパイプフィニッシュ(アルカリ)と酸素系漂白剤に漬けてみます。

#器具の修理
Icon of admin
 本体のポンプを使わずに溶液を圧送するモノをこさえてみました。
20250121161407-admin.jpg
 ポリの容器のフタにコンプレッサからのエアージョイントとΦ4mmのタケノコを付けた物です。空気圧は0.1~0.15Mpaです。
202501211614071-admin.jpg
 本体ポンプを止めます。ポンプのタブ端子を抜けばいい。
202501211614072-admin.jpg
 空気圧は低めの方が発煙器からゴミが出やすいようです。発煙器に液が入ると一気に蒸発するらしくチューブに脈を打つような戻りがあり、これの勢いで焦げカスが出てきます。たまに外して焦げカスを取り除きます。
 煙量は良好な機体の半分程度でしょうか。どこまで続ければいいかわかりませんが、セルフクリーニングでチューブ内の液が無くなるくらい通りを良くするのを期待値とします。

追記
 煙量が増えたような気がする時もあるのに少ない時もある。気分屋ツンデレ状態です。
 そこで思ったのですが、発煙器からの脈打ち戻りはそもそも疑問。焦げカスを取り出すには都合の良い挙動ですが、気化したスモークオイルの圧が逆流しないように発煙器の入り口に逆止弁があってしかるべきだと思う。無いのか機能してない感じ。このために発煙量が少なくムラがあるのではないかなと。ならば逆止弁を追加してしまえ。発煙器の直前に割り込ませるのです。ガソリンや軽油にも耐えられる逆止弁を見つけたのでエタノールにも耐えられるでしょう。
 戻り圧にチューブや接合部が耐えられるのかわかりませんが試せばいいことです。一度は不燃ゴミになった機体ですから何でもやっちまいます。

追記の2
 空気の通りはいいのです。チューブに液が無ければ発煙器には空気が入っていきますがそれはスルッと進みます。
 液の進みを邪魔するのは気化による脈打ち戻りです。空気は進むのですから気化も通るでしょう。

#器具の修理
Icon of admin
 ふと気になったので、エタノールとゴムの関係を調べてみました。ある意味最悪です。
 ゴムにもいろいろありますが、エタノールに触れると融解するのが大半のようです。
 問題はポンプ。エタノールの水割りを吸わせたところ異音がするようになりましたが、たぶんポンプの中のパッキンゴムがエタノールに侵されたのだろうと思われます。フォグリキッドを混ぜて異音はし難くなりましたが、ポンプコアは不良になったと思っていいでしょう。
 となると本体のポンプを介さずゴムを使わない手段で洗浄液を流し込む方法を考えねばなりません。
 園芸用の噴霧器を改造しようかなと。内部を確認しないといけませんが、以前使った製品は空気ポンプ以外にはゴムパッキンが使われていなかったように思います。先端の噴霧ノズルをタケノコに付け替えれば望む構成になるような気がします。

#器具の修理
Icon of admin
 Antari F1-FAZER の目詰まり具合を見るには吸い込み量を見ると分かりやすい。リキッドを吸い込むチューブをボトルから抜き出し吸い込み口を上にして液面の進みを見ます。目詰まり解消を始めた時は1秒毎に0.5mmくらいでしたが今は10mmくらい。これでも完調機体には全くおよびませんが、空焚きの後でも2mmくらいだったものがエタノール溶液を少し吸わせただけでここまで改善したなら期待も膨らむってもんです。
 エタノールにはプロピレングリコールを溶かす性質があるのだそうです。焦げ付きの大半はプロピレングリコールが固着したものだと思われますのでエタノールで溶解したのかもしれません。ただ、エタノールは金属に悪さをすると聞いたことがあります。発煙器に使われている素材に悪影響があるかは調べようがありませんケド。

追記
 エタノールで腐食するのはアルミニウムらしいです。中身がどうなってるかはわかりませんが、腐食でダメになっても不燃物に逆戻りするだけですし、まだまだ実用レベルではありませんので、今後の対策を見つけるためにもガンガン試しましょう。

#器具の修理
Icon of admin
 Antari F1-FAZER の発煙器の清掃は試行錯誤が続いておりますがイイ感じの方法を発見。
 精製水、エタノール、フォグリキッドを混ぜて吸わせます。比率は精製水2、エタノール1、フォグリキッド1です。フォグリキッドを混ぜるのはポンプのためです。精製水とエタノールだけではしばらく動かすとポンプから異音が出ることがありますが、リキッドを混ぜると起こりにくくなるようです。
 チョロチョロ煙だったモノが新品の1/3くらいの煙を出すようになりました。他の方法でも改善はみられましたが、この溶液を使って劇的に改善。まだ100mlくらいしか吸わせてないのにこの変化は期待大です。
 これから前乗りなのでタイムアップ。フォグリキッドを吸わせて状態を再確認し、精製水を通して仕舞いにします。
 週明けタップリ吸わせてみましょう。

#器具の修理
Icon of admin
 Antari F1-FAZER の発煙器の清掃では空焚きが効果ありましたが、1~2時間の空焚きを3回もやると変化が少なくなりました。
 そこで思い付いたのがエタノールを吸わせること。精製水とエタノールを1:1です。
 メタノール程ではありませんが、ゴムや樹脂はエタノールで侵されることもあるので痛める可能性もあります。一度は不燃ゴミになったのですからこんな実験もありかな。ただ、エタノールを噴霧すれば延焼の危険性があります。火の気が無い換気の良いところで行うべきでしょう。
 結果は空焚きでは行けなかったところまで改善。まだまだではありますが、これを繰り返したらどうなるのか興味があります。
 エタノールの在庫が少なかったので今日はあるだけで実施。自宅に30リットルくらいあるので持ってきます。

#器具の修理
Icon of admin
 Antari F1-FAZER のことをダメ押しで調べてみました。リキッドのことです。
 専用リキッドはプロピレングリコール、界面活性剤、脱イオン水が主な成分だそうです。化学は苦手なので何の事やらですが、プロピレングリコールで検索するとVAPEと呼ばれる加熱式タバコの様な製品がヒットします。プロピレングリコールを含んだ溶液を加熱して煙(水蒸気)にして吸収するそうな。言われてナルホドですが、水性スモークマシンの親戚とは想像もしませんでした。
 このVAPEでも加熱機の焦げ付きが話題になっています。何か応用できるネタは無いかと検索したところ、ドライバーンとかいう方法があるそうな。日本語訳すると空焚きです。焦げ付きを焼いて灰にして落とすそうです。空焚きは悪と思い込んで試していませんでしたが、不燃ゴミと化したなら何でありかなと。殻割りする前に試してみましょう。

追記
 空焚き(ドライバーン)を1時間ほどしたところ煙が出る様になりました。新品同様には程遠い煙量ですが前よりは出ています。やってはいけないと思っていたことが手段の一つになりえることに驚きを隠せません。
 改めてお酢溶液を吸わせ、精製水を吸わせ、空焚きをしたところです。冷めてから常温のお酢溶液を通してみます。汚れが排出されれば御の字です。

さらに追記
 空焚きを続けますと、発煙器に溜まった液は無くなっているのにチリチリとかジューとかプツプツとか音を立てながら薄っすらとした煙を出します。如何にもグリコールといった甘い臭い(ロスコ1500の煙の臭い)もします。音と煙と臭いが無くなるまで空焚きしてみます。
 発煙器はリキッドを蒸発させれば熱を奪われますが、空焚きなら普通より温度が高くなるハズです。付着した焦げが焼き落としになればいいな。

さらにX2追記
 完全な目詰まりで不燃ゴミ化した F1-FAZER が煙を出すようになったのは良いことですが煙量が足りず実用には程遠い。空焚きや液通しをする度に煙は増えていますが、実用にならない堂々巡りなら意味がない。
 禁じ手かもしれませんが、パーツクリーナーをブッ込んだらどうだろう。このままではお線香の方が良いくらいだし、一度不燃ゴミ化したのですから壊し方を探る気持ちで実験です。

#器具の修理
 
Icon of admin
 目詰まりしていた Antari F1-FAZER はお亡くなりになりました。完全に詰まってしまいどうにもなりません。
 途中まではイイ感じだったのですが、剥がれた目詰まりがその先に詰まって致命傷になったのかな?って感じです。
 中を見なければこれ以上の対策は思い浮かびません。殻割りして中の仕組みを調べて重清掃を検討しようと思います。焦げ付きを採取して溶かす方法を探すのもアリです。
 正しいメンテナンスをしていればこうはならなかったと言えばそれまでですけどね。

 学んだことは、、、
1)使用後は必ずセルフクリーニングを実施する。
2)1ヶ月毎、または5回くらい使った後は精製水もしくはお酢溶液を吸わせる。
3)半年を目途に加熱せずにお酢溶液を通して発煙器の中を洗う。
4)1年毎、または約20回使用毎にポンプを新品に交換する。
 といった感じでしょうか。
 ちょっと面倒ですが、爆煙が魅力の Antari F1-FAZER が安物程度の煙量では価値がありません。発煙しないのは論外ですけど。

#器具の修理
Icon of admin
 Antari F1-FAZER の発煙器は超音波では中まで届かない様子。
 なかなかうまくいきません。

 次は発煙器のヒーターを止めて常温のままお酢溶液を通す策。洗い流すのです。
 本体のポンプが壊れるのが怖いので別のポンプを繋げています。鍋などの焦げ落としでは水とお酢を2:1で使うサポートもあったのでお酢溶液はそのくらいにしてみました。
 1時間くらい通してほんのわずかに流量が増えました。ポタポタと話にならん流量ではありますけど何となく期待感。

 この方法は正常な機体の重メンテで使えそうな気がします。

#器具の修理
Icon of admin
 久しぶりに腰痛。調べると膝下のヒラメ筋と後脛骨筋がカチカチ。
 足三里(ツボ)とヒラメ筋と後脛骨筋のコリの酷いところにピップエレキバンを貼ったのですが、30分もしないウチに足の裏の血行が実感する程良くなり、腰痛が軽くなってきました。完治には程遠いですが、この効果は凄い。
 ピップエレキバンを貼る位置は自分ナリとは言えちょっと難しいかも。

追記
 ピップエレキバンは偉大な磁石です。
 足のツボとコリに貼ると腰まで解れる不思議。効果が出るのに数日かかりますけどね。
 指圧やマッサージをしたいところに貼ればいいのですが、そこがわからんと効果無し?
 何にしても効果絶大。

#自分を修理しよう!『指圧の世界』へようこそ!?
Icon of admin
 Antari F1-FAZER の発煙器の目詰まりは頑固です。細かいカスや約5mm四方のGの羽のカケラみたいなカスが出てきたりするので相当酷く焦げ付いていると思われますが、お酢溶液を通すだけではどうにもならない感じです。
 ならばと思い付いたのが超音波洗浄。容器の底にチューブを取り付けて発煙口に繋げ、精製水を注いで発煙器の中に満たします。容器の中にスティック糊サイズの超音波洗浄機(振動子)を入れて超音波を中に伝えて焦げ付きを砕いてやろうとうアイデアです。出て来るカスは硬さがあるけれど脆い(柔軟性がない)ので、超音波を当てることで効果があるような気がします。
 もはやメンテナンスというより趣味の実験となっていますが、これで発煙器の内部の焦げカスを除去出来れば面白いかと。

追記
 超音波はダメでした。
 正しくは、超音波が発煙器の中まで入っていかない様子。

#器具の修理
Icon of admin
 ポンプを入れ替えた Antari F1-FAZER は爆煙。
 新品と比較する術はありませんが笑える程の量です。
 ポンプはコイルとフレームを再利用し120v仕様の新品からピストンを取り出してニコイチです。
 新品は中華電機で買えば1,300円くらいなので発煙が減ったかも?って感じたら交換するのが良さそうです。

 お酢を使ったクリーニングもイイ感じです。明らかに・・・って程ではありませんが、発煙が増えた気がします。

 発煙が減って部品取りになった物にもお酢溶液を与えてみました。
 まずはマニュアルの通りお酢と精製水を1対4で割ったお酢溶液をスモークリキッドの代わりに飲ませましたが変化なし。
 冷めてからですが、注射器で圧力をかけてお酢溶液を通したところ茶色くなって排出・・・茶色いカケラすら出てくる。精製水を通しただけでは起こらなかったことですからお酢のチカラでしょうか。
 これは漬け置きです。排煙口にチューブを介して注射器を取り付け、内部配管を途中で外してドレンとし、注射器を高い位置に固定してお酢溶液を注入。圧力をかけてエア抜き。一晩放置してみます。

#器具の修理
Icon of admin
 あけましておめでとうございます
 本年もガラクタ弄りを頑張りたいと思います。

 年末、Antari F1-FAZER のポンプをニコイチで直せないかと手配した定格電圧違いの同型ポンプが入荷しました。正月休みにも飽きてきたのでネタにしますか。
 発煙部も酢で掃除が出来そうなんで試してみたい。

#照明器具