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

Icon of admin
 台風で強風・大雨です。屋外作業は無理なので客席テーブルの意匠を整理してみました。
20260603130031-admin.jpg
 ブッシュもいい感じになったので全体をまとめてみましょう。
 脚の穴空けが大変ですが、小遣いが乏しくなったので自力で頑張ります。

#ガチ工作 #器具の製作
Icon of admin
 客席テーブルのブッシュはジクロロメタンを表面にさっと流すだけで積層痕がほとんど無くなり強度も増しました。
 ただ、流した直後はベタベタするのと歪みが出るので一工夫必要そうです。
 ジクロロメタンは決して安くない溶剤ですが、大きめの容器にタップリ入れてドブ漬けがいいかもしれません。
 ナフサ不足の今ですと流通在庫が切れた後に復帰するのが何時になるか不透明なので2リットル発注。こんだけあればドブ漬けできるっしょ。
 3Dプリンタのフィラメントも同様なので半年分くらい頼んでおきました。

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer は精度確認の次は耐久試験をしています。動かしたまま3週間くらい放置です。
 PICマイコンでの製作物は動いてしまえば後からNGが出ることは少ないのですが、現場で使う用品は通常負荷をかけた状態で半月くらい放置して様子を見るようにしています。発熱のチェックも重要ですからサーモカメラが欲しいかも。故障品の修理で不良部品の特定にも使えるらしいので欲しい一品です。使用頻度が低い割りに高価なのでなかなか手を出せませんが、もし DMX-Timer のお代を頂けたら考えてみましょう。

#ガチ工作 #器具の製作
Icon of admin
 客席テーブルで重大なミス。
 伸縮足を作ってもらったのですが、角パイプの角Rが合わず差し込めません。本体テーブルの脚は汎用の角パイプより角が丸いのです。作った脚の角を落とそうと思ったのですが加工が難しいのと肉が落ちすぎて強度に不安があり断念。角パイプはカタログに角Rが表記されていないことがほとんどで、買ってみないとわからない傾向にあります。かといって、購入は定尺(4~5m)限定なのでお試し買いも現実的ではありません。主流とは言えないサイズなので切り売りしてくれないんです。
 結構な金額だったのでボツはキツイです。

 ですが、ここで終わりにするワケありません。試作なんぞ数台分の費用を投げ捨てるのが前提です。
 母体テーブルの脚の内寸は対面が24.2mm、角Rが2.2mmです。手に入りやすい汎用の角パイプで差し込めるのは対面22.0mm角。以前試しに買って合わせましたがガバガバで一度ボツにしたものです。
 ならば隙間を埋めればいいのです。
 ここで登場するのは3Dプリンタ。壁面が薄いブッシュを作ります。肉厚1mm程度の角パイプ状の代物。以前のプリンタでは作れなかったので諦めていた手段ですが凄く綺麗に出来ました。新しいプリンタは凄いですね。
 3D-CADからの図です。
20260602073256-admin.png
 懸念は少しありますが、一応形になったのでこの方向で進めてみます。寸法を調整しながら良いところを探しましょう。
 あと、薄いために積層痕で割れやすいので対策が必要です。ジクロロメタンというちょっくら危険物レベルの溶剤を使うと目地止めになります。これまでは筆で塗っていましたが、ガラス瓶に入れて揮発した蒸気にあててもいいらしいので試してみます。

#ガチ工作 #器具の製作

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

Icon of admin
 午後は緩い感じだったので DMX-Timer の製造を始めました。とりあえず5台。所要時間を確認するためでもあります。
 表面実装の部品を取り付けるところまでやって夕方にになったので終わりにしましたが1枚あたりのラップは40分くらいです。スルーホールの部品まで取り付けて基板を完成させるのに1時間15分くらいでしょうか。作業時間を実測して作業の目安を立てられるようにしましょう。
 箱やらケーブルの加工も案外時間がかかります。1台あたりの総作業時間は4時間くらいかな・・・。結構かかりますね。
 工賃は3,500円/時くらいにしていますので14,000円?部品代は12,000円くらい?開発からのチャージは20,000円くらい欲しいので46,000円が現実的な売価でしょうか。高い安いではなくかかるものを積算しての金額です。量産数モノではない手作り品の価格は甘くありません。
 そもそも売る気はありません。カスハラや迷走問い合わせに応えることは自分にとって何の意味も価値も無いからです。自分と部下が使う分を確保して話の通じる知人から評価とご意見をもらえたらそれでいいかなと。
 「お客様は神様です」を真に受けたアホに売るなら一億万円。どんだけ嫌な思いをしたかお察し頂けましたら幸いです。
 完全ノンサポート・マニュアル無しの無垢基板(アセンブラソース付)なら300円(梱包費・送料は別)でいいかな?。組めるもんなら組んでみろ!(笑

#ガチ工作 #器具の製作
Icon of admin
 Art-Net 関連品を作るべくプログラム言語 Rust の勉強を進めております。
 関門とされる「所有権」や「ライフタイム」はアセンブラやC言語を書く際に普通にやっていたことを明示的に自動的にしてくれるモノであってそれ以上でも以下でもありませんでした。ただ、これらに対するアセンブラやC言語での書き方は人によって様々だと思いますので、Rust の流儀に慣れることは必要です。
 ベースはC言語だと思って間違いないと思います。私はC言語が進化したものだと思って取り組んでいますが、比較的ストレス無く習得を進められています。
 実際のところは Rust そのものより教科書の選び方が難しいと思います。所有権がぁ~、ライフタイムがぁ~と Rust 独特の機能は難しいぞと煽るのにとどのつまり何?ってことが書いていない教科書が多い。借用における制限・制約は書いてあっても解除されるタイミングについて書かれているものは皆無。自分は AI/Geminiさんに質問してようやく理解できました。本家の解説書である「The Book」の上澄みだけ書き写したのでしょうか。理解が進まないと教科書の良し悪しは評価出来ませんから痛し痒しです。
 私がわかりやすいと思える教科書を1冊見つけました。学習速度が爆上がりしています。ただ、私とっての「当たり前」が前提にあって読める内容だと思うのでご紹介は控えておきます。

#Rust
Icon of admin
 安いスタンド(amazonにて1,300円)に取り付けてみました。
20260527120609-admin.jpg
 こんなんでいいような気がします。

#ガチ工作 #器具の製作
Icon of admin
 一つ目玉の小型ムービングライトはLED素子のナマが逝ってました。
 点くには点くのですが色がおかしい。バラシて素子を見たらナマだけ焦げています。制御回路が正常とは言い切れませんが、LED素子がダメではダメです。
 よくよく見ると冷却ファンが回っていません。冷却不足だったのかな?
 ファンが壊れたかと配線を見ていたら「カラコロリン」とサビたナットが落ちてきました。その後、何事もなかったようにファンが始動。挟まっていたのでしょう。 
 ナットが外れたところは見当たらなかったので混入ですね。おいおい!
 幸い中華電機に同じ型番のLED素子がありました。安いから交換しましょ。

#器具の修理
Icon of admin
 Windows11 の設定をしてみました。
 の、まとめ。
 おかしくなっても何の保証もありません。

1)スリープ用のキャッシュをOFF
powershell(管理者)にて
> powercfg /hibernate off
再起動する
効果:システムディスクの使用量が減るのと、自分のパソコンでは起動した後に使える状態になるまでの時間が短くなった。

2)BitLockerをOFF
オフにする方法はネットにいくらでもあるのでここでは割愛。
効果:ストレージの中身を暗号化する機能だが、余程の機密を扱ってなければ無意味。そのクセ自分で開けなくなることがあるので外した方がいい。

3)高速スタートアップのOFFと電源スイッチ周り
コントロール パネル - 電源オプション - システム設定
「電源ボタンを押したときの動作」シャットダウン
「画面を閉じたときの動作」シャットダウン
「スリープボタンを押したときの動作」何もしない
「スリープ」「ロック」のチェックを外す(外せないときは青字の「現在利用可能でない設定を変更します」をクリック)
効果:高速スタートアップと言いながら、使い続けるとスタートアップが遅くなる。外した方がマシ。

4)通知を切る・・・その1
設定 - システム - 通知 - 追加の設定
3項目すべてのチェックを外す
効果:望んでない通知がやたらくるのは五月蠅い。

5)通知を切る・・・その2
設定 - システム - 通知
「通知」をオフにする
効果:望んでない通知がやたらくるのは五月蠅い。

6)ウィジェットを無効にする
PowerShell(管理者)にて
> Get-AppxPackage *WebExperience* | Remove-AppxPackage
効果:好みだが、ツールバーに天気予報など望んでいない方にはお勧め。

7)アドレスバーbingをネットから切断させる
① レジストリエディターを開く
Windowsキー + R を同時に押す(「ファイル名を指定して実行」ウィンドウが出る)
regedit と入力
Enterキーを押す
② 以下の場所に移動
HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows
【検索ワードこれが確実】
コンピューター\HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows
もし「Explorer」というキーがあれば入る
無ければ、右クリックで「新規→キー」で作成
③ 右側の空白部分で右クリック
「新規 → DWORD(32ビット)値」を選びます
名前:DisableSearchBoxSuggestions
値:1
④ パソコンを再起動
効果:好みだけど、ツールバーにネット検索は不要。

8)WindowsUpdate
設定 - WindowsUpdate - 詳細オプション - 配信の最適化
「他のデバイスからのダウンロードを許可する」オフ
「以下のダウンロードを許可する」
「ローカルネットワーク上のデバイス」チェック
効果:P2Pを使ったWindowsUpdateを切るので、通信を減らすことが出来る。

 余計な挙動が減って軽くなります。特に操作への反応が良くなります。
 好みとしては、今時のパソコンで動いてアプリやデバイスが扱えるWindows2000が欲しい。

#パソコン
Icon of admin
 DMX-Timer 2号機の誤差を確認しました。約68時間経過で約1秒遅れ、約+4ppmです。
 水晶発振子のカタログスペック(±10ppm)からするとこんなもんでしょう。キャリブレーション機能は不要っぽいです。
 新しい物を組む度にチェックしますが、水晶発振子のカタログスペックに収まっていれば今以上の精度を出すことは不可能です。くどいようですが、普段使いの安物ストップウォッチより良い精度です。この精度で気持ち悪いって方に会ってみたい(笑
 今回組んだ物は以前の抵抗値で組んだ物から付け替えていますので抵抗の取付け強度に不安があります。最初に組んだ物と合わせてテスト機として手元に残すつもりです。
 部下に使ってもらう物も知人へ送る物も3号機以降です。
 そうそう、本体へ貼る掲示とユーザーマニュアルを作らないといけません。

#ガチ工作 #器具の製作
Icon of admin
 組んだ DMX-Timer です。
 スタンドは普段卓上譜面台に使っている物です。安くて使えるスタンドを探してみましょう。
20260521112441-admin.jpg
 正常に動作していますので、誤差の確認をしています。
 当初、RS485トランシーバー(中古)が不安定でしたが、交換(新品)して正常化しました。

追記
 時間補正は試作1号機のまま、5時間経過でズレはほぼありません。水晶発振子の個体差はそれほど無いっぽい。24時間で1秒以下ならいいっしょ。
 100時間くらい動かしてカウントに個体差が出たら補正(キャリブレーション)を考えますが、ファームウェアの調整ですからハードウェアの製作を進めたいですね。
 20台分の部品を仕入れてしまったので放置するワケにはいきません。

#ガチ工作 #器具の製作
Icon of admin
 これでいいと思われる DMX-Timer の回路図です。
20260521070539-admin.jpg
 ついでに基板の3D図。
20260521071244-admin.jpg
 基板上に書かれた抵抗値は一部間違ってます。上記の回路図が正しい。
202605210712441-admin.jpg
 これを数作れば半ばデッドストックになっているPIC16F1939IPTを消費出来ます。
 我が家の片隅で眠るために作られたワケではありませんので使ってあげないと申し訳ない。

#ガチ工作 #器具の製作
Icon of admin
 脳ミソが工作モードになってしまったので、本業はあるものの、回路を変更した DMX-Timer を組んでみました。私の脳ミソはファミコンでカセットを入れ替えるイメージですが、日に一回くらいしか差し替えが出来ないのです。
 7segを全て表示(8とドット)しようとすると全てが消灯してしまう現象への対策です。
 トランジスタの使い方を間違っていました。正しくはトランジスタ周辺の抵抗値です。ベース電流にhFE(増幅率)を掛けてコレクタ電流を得るワケですが、AI/Geminiさん曰く、ベース電流はコレクタ電流から単純計算した値の3~5倍にしなさいとのこと。もちろん定格を越えてはいけませんが、原因はベース電流不足だったらしくアッサリ解決。Yグレード(低増幅率)ではなくGRグレード(高増幅率)のトランジスタを使っていたら発生しなかったのですが、YグレードのhFEの半分で設計したのになんでやろと思ってました。アナログ回路は苦手ですが、トランジスタの扱いは深淵だと再認識。定数が分かれば問題解決ですけど。
 てなワケで、DMX-Timer は完成と言ってもいいかな?引き続き、組めたごとに誤差チェックはしますけど。
 実作業二週間で製品一つ完成は過去最短記録!こんなペースのモノ作りは専業にしてもシンドイかも。

#ガチ工作 #器具の製作
Icon of admin
 NGのオンパレード。
 一つ目玉の小型ムービングライトも使っております。向きを決められて色が変わるスピナーみたいな製品です。1台では非力ですが、まとまった数を群で動かすとそこそこ使えます。今となってはPAR球より安いのも魅力。
 そんなムービングですが生色だけ明るさが半分くらいになってしまいます。電源を入れた直後は正常ですが数分経つと減光します。冷却不足か、MOSFETが劣化しているか、電流センシング抵抗が狂っているか、制御ICが定格落ちしているか・・・原因はそんなところでしょう。これらの部品は中華電機で安価に手に入ります。検証が面倒なので全て交換?

#器具の修理
Icon of admin
 スモークマシン Antari F1-FAZER を使っていますが、大修理をして1年、ボチボチ不調が出始めました。
 今回はリキッドを吸い上げませんのでポンプを交換です。同型120v仕様のポンプに最初から付いていた100v仕様のコイルを移植。爆煙復活!
 いずれ発煙器もダメになるだろうと発注。USAのサウンドハウスみたいなところですが、前回は届くまで半月くらいかかったので不調になってからの発注ではよろしくありません。ただ、本体価格は前回並みなのに送料が爆増。78USDから347USDになってました。何じゃこりゃ!?USAからの購入ですから国内宅配便並みのワケありませんが、それにしても昨年に比べて4.5倍ってのは驚きです。原油不足で航空運賃が上がっているのでしょうけど、手に入らないのは困るし新品本体買うよりは安いのでイイですけど・・・。

#器具の修理
Icon of admin
 ムービングライトは磁気ホールセンサを交換して治ったようです。
 問題は「何故壊れたか」です。
 ステッピングモーターを空回ししますと結構な電圧が発生しますので、これが回り込んだのでしょうか。
 先日の故障はモータードライブICでした。これはモーターと直結されていますので、空回しによる電圧が入ってのことだと想像は出来ます。
 ですが、元の電源が+24vに対し磁気ホールセンサへ行っている電圧は+5vですので途中に電圧を変換する何かは入っているハズと思われます。モーターからの電圧が直接かかるものかな?
 モーターからマイナス電圧が出たならば同種のセンサもやられてしまいそうなものです。
 こういった想定外動作による故障事例は資料があるようでありません。文面をよく考えてからAIさんにでも聞いてみましょう。

追記
 AI/Geminiさんとやりとりしました。物理的な破損でなければ異常電圧によるのは間違いないっぽい。
 電源ラインにオシロスコープにつなげて観測できる環境を作ってみます。観測された電圧によってはツェナーダイオードやTVSダイオードを追加してクリッピングすることにします。
 モーターを伴う回路設計で注意すべき点を一つ勉強出来ました。スクローラーを作った時には入れていましたので、基本は大切だと改めて実感したところです。

#電子工作 #器具の修理
Icon of admin
 Art-Net 関連機器の製作についてAI/Geminiさんとやりとりをしました。相談出来る達人が近くに居ないので助かります。
 大きなヒントを一つもらいました。ブロッキングの活用です。
 キーボード入力においてもEtnerの受信においても入力や受信があるまで(または設定した一定時間)一時停止して待つ設定です。処理が一時停止しますが、イベントが発生した時に速やかに処理出来ます。他の処理はスレッドを分けておけば大丈夫です。スレッドとは処理を並列化させる(疑似的に複数の処理を同時進行させる)方法です。止まらせることなく延々と回したい処理とブロッキングしたい処理を別スレッドにすれば全体としては止まることがありません。PICマイコンでやってきた「ひたすら回してフラグで分岐する」って感覚がアタマに固着していたようで、スレッドを分けてブロッキングを活用する発想がありませんでした。ただ、無制限のブロッキングをしますと都合が悪いこともあるので0.1~0.5秒ごとにブロッキングを外して周囲を伺うのが良さそうです。

#Rust #[Art-Net]
Icon of admin
 Art-Net 関連機器は RaspberryPi_CM4 を母体に Rust でコードを書きます。Rust を使うのはこの件が初めてなので無謀な気もしますが、C言語で動いたモノを Rust で書き直す感じなので大丈夫っしょ。C言語で書いたモノもメモリ構成を大変更するために全部書き直すつもりだったので作業量は大差ありません。
 使ってみないとわかりませんが、C言語で出来ることは Rust でも出来るそうです。これを信じて取り組んでいきましょう。

#[Art-Net] #Rust
Icon of admin
 Rust のことは随分わかってきました。大雑把に括るとC言語と同じです。Python や .NET 系のようにマネージが強くて自由度が狭いってことは無いっぽいです。
 「所有権」や「ライフタイム」は方言程度の違いでした。両方ともC言語ではコードを書く側が注意を払ってきたことを自動的にアシストしてくれる機能です。アルゴリズムの中に埋もれるバグを予防出来るので、難しいというより手間をかけるのが先か後かってだけでした。
 「所有権」は変数の読み書きの不整合や二重処理を防止するための対策です。その対策の意味を理解するには変数の処理構造を知っていた方がいいと思うのですが、その説明をすっ飛ばして「所有権がぁ~」と話をする教科書が多くて読んでいるこちらが混乱します。C言語におけるポインタが理解出来ていればそれほど難しいことではないので、ポインタがわかっている前提で説明をしてくれる教科書があってもいいんぢゃないのかなぁ~って思います。「所有権」によって制限されることはC言語のコードを書く上でも注意しなければならないことなので、だったら前提として管理・制限しときゃいいんぢゃね?ってことなのでしょう。C言語のポインタは自由度が高い反面コードを書く側が管理・制限してきましたが、これをコンパイラが厳密にチェックしてくれるのですからある意味楽です。
 「ライフタイム」は変数のコード上での有効範囲のことです。変数の有効時間の設定・管理ではありません。変数の有効範囲はC言語とほぼ同じですが、変数の有効無効をコード上でチェックで出来ます。関数で用いる変数が有効かをチェックしたり、この関数の処理が済むまで変数を維持するように指示をする機能が追加されたと思えばよさそうです。
 どちらも、ややこしさを追加して意地悪しているのではありません。

#Rust
Icon of admin
 DMX-Timer をご理解を頂けそうな知人にお知らせしたところ興味を持って頂けました。
 月末になりませんと組む時間は取れませんが、その後送ってお試し頂くつもりです。
 ケースはプリントするのにそれなりの時間がかかるので射出で作ったらどのくらいかと聞いてみたのですが、金型を作るのに数百万と言われてしまい30秒で話が終わってしまいました。
 手持ちの3Dプリンタでノンビリ作ることにしますが、今使っているプリンタは運用コストが案外高いです。作る物の大半がABS単色ですから、ABSに対応した単色の安いプリンタを買ってもいいかもしれません。

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer は昨日今日の現場で部下が使ってくれています。問題無く使えている様子なので安心しました。
 今月下旬まで製作する時間はとれませんが、その後出来るだけ多く作りましょう。

#ガチ工作 #器具の製作
Icon of admin
 C言語での ncurses みたいに、Rust で画面にテキスト表示するなら crossterm だそうです。キーボード操作も扱えます。
 あるのか無いのかの確認をしただけですが、あるなら問題ありません。
 C言語ベースで処理段取りの整理を随分やってきましたので、Rust の勉強が進めば Art-Net 関連を書き始められそうです。

#Rust #[Art-Net]
Icon of admin
 合間に Rust の勉強をしています。
 今は「所有権」について整理していますが、変数は内容を保存するメモリ、そのアドレスとメタデータを保存するインデックスで構成されていると捉えれば自然に理解出来ます。ソースコード上での使い方は別問題ですが、「所有権」の譲渡と貸出はこの構成から見ればいいだけでした。挙動の表面だけで理解しようとすると何がどうなっているか、どうしてこんなことをするのか理解し難いようですけど。
 ただ、「所有権」という言葉には疑問があります。私の理解では「変数へのアクセス権限」となりました。この言葉のまんまですが、「所有権」は変数の内容にアクセスできるかどうかですから、持っているかより権限があるかが重要だと思うのです。この場合の「所有権」はこういう意味の言葉だと扱えばいいだけですが、「所有権」と言われると「所有者」は?と聞きたくなり、「所有物」は何?とも聞きたくなります。「所有権」の説明では「所有者」も「所有物」も変数だとする物が多く、当初は何のこっちゃいと感じたものです。「所有者」は変数であり、「所有物」は変数の内容が書かれたメモリとなります。あくまでイメージですけど、「変数の内容が格納されたメモリのパーミッション」だとも思えます。

#Rust
Icon of admin
 磁気ホールセンサには次のような種類があるそうです。
 Google/AIからのコピペですが自分のメモとして転載。

1.リニアホールセンサ (リニア出力)
 特徴: 磁束密度(磁石の強さ)に比例した電圧を出力。

2.デジタルホールセンサ (ホールIC)
 特徴: 磁気の有無(しきい値)で出力をON/OFFする。
 ・片極検知(単極): N極またはS極のどちらか一方のみを検知。
 ・両極検知: N極・S極両方に対応。磁極に関わらず検知。
 ・交番検知(ラッチ): S極→N極、N極→S極と磁極が切り替わるたびに出力が反転。

 今回の修理で用いるのは「デジタルホールセンサ:片極検知(S極)」です。

#電子工作 #器具の修理
Icon of admin
 元々の磁気ホールセンサを調べたところ「A1104」らしいです。刻印は「A452」ですが、そういうこともあるんだとか。AI/Geminiさんに聞いたところ判明しました。代替で手配した「A3144」でも動作するだろうとのことですが、感度が少し違うらしいので「A1104」の到着を待ちましょう。中国からですが、早ければ来週半ばには入荷です。

#器具の修理
Icon of admin
 秋月電子さんで扱っている磁気ホールセンサで形状が同じで在庫が豊富な物は2種あります。
ホールIC(ホールラッチ) SK1816G-G03
ホールIC(ホールラッチ) US1881LUA
 違いは「磁束密度しきい値」です。
 磁気に対する反応が違うのだろうと思いますが、元々付いているセンサのデータシートが手に入りませんのでどちらがいいのかわかりません。
 とりあえず前者を頼んでみました。

追記
 磁気ホールセンサには「両極検知」と「交番検知」があるそうです。
 前者はS極でもN極でも磁気を受けたらスイッチが入るもの、後者はどちらかの極性を受けたらスイッチが入り反対の極性を受けたら切れるものらしいです。
 オーダーしたのは後者なのでダメですね。
 探しなおして発注しないと。

追記の2
 求めるのは「両極検知」ですが、秋月さんでは欠品していますので、amazonさんに「A3144」を発注しました。これが「両極検知」なのかわからんのですが、試してみるしかありません。
 本体の基板をあたったところ、電源5v、プルアップ抵抗1kΩでした。スイッチ特性が不明な以外はA3144で問題無さそうです。

#器具の修理
Icon of admin
 ムービングライトに不調が出ました。
 カラーホイールの原点が取れず色ズレになります。調べたところ磁気ホールセンサーが反応してません。
 基板のマイコンが壊れている可能性も否定出来ませんが、まずはセンサを交換してみます。
 秋月電子さんにサイズやピンアサインが同じモノがあったので発注しました。
 治るかな・・・。

#器具の修理
Icon of admin
 DMX-Timer は86時間30分経過で1秒弱のズレ(2ppm?)です。誤差を実測しても無意味な気分になってきました。
 比較に使ったのは iPhone アプリの「原子時計pro」です。たぶん、日本標準時のNTPサーバー(ntp.nict.jp)に同期する時計アプリだと思いますが、これ以上の比較対象を求めるのは無理だと思われます。
 試作1号機は無補正で24時間に8秒(96ppm)進んでいました。今後作る品は灯を入れて使ってみないとわかりませんが、製品の見た目がちゃっちいので、誤差表示を「±10秒/24時間(116ppm)」としておけばいいでしょう。製品一つ一つの精度確認などやってられませんから、これ以上ズレることはないって数値にしておくのです。
 116ppmは10分で0.07秒のズレですから、ダンス演目などで時間経過の参考に使うには十分だと思います。0.1秒の変化を読み取れて反応出来る人には物足りないでしょうけど、私には出来ないことなのでヨシとします(笑

#ガチ工作 #器具の製作
Icon of admin
 Rust を勉強しながら何となくですが「月刊マイコン」という雑誌を思い出しました。1995年4月に廃刊になってしまいましたが、コンピュータってモノに突っ込んだニッチな雑誌でした。
 こんな雑誌を購読していた小学生の自分はおかしなガキだったと思います。書いてあることのほとんどが理解出来ませんでしたが、コンピュータの可能性を感じてワクワクしながら読んでいました。その時感じたことが今の後押しになっていると思います。21世紀は夢の時代になるって世の中が感じていた時でもありますけどね。そんなガキでも「月刊I/O」はワケわからな過ぎてそっ閉じしてましたけど。
 漫画は買ってくれませんでしたが、インターネットなんて言葉すらなかった時代、こういった書物は惜しみなく買ってくれた両親に感謝する今日この頃。

追記
 「月刊I/O」は現存しているようです。
 購読しましょう。

#雑談
Icon of admin
 Rust の教科書は「所有権」や「ライフタイム」で大騒ぎしないモノがいいようです。大騒ぎする教科書はその厄介さを語って力尽きるのか「とどのつまり?」の説明が薄い傾向にあります。両方とも重要なことですが、これらが Rust の全てではありません。「cargo」と呼ばれるプロジェクト管理ツールを説明しない教科書は論外です。
 間違っても初めてのプログラム言語に Rust を選ぶのはお勧めできません。最終的に作りたいモノによりますが、html や Python あたりで成功体験を積み重ねて神エンジニアたちが目指したことを体に取り入れるのが良いと思います。Rust はC言語同様に理解するための前提というか基礎の裾野が広すぎるのです。
 私は回路設計とプログラミングの境界が曖昧な PIC16 で右往左往してきましたので脳ミソが少しおかしいのですが、C言語もそうですが、Rust を受け入れるにはこのコードでハードウェアが何をするかをイメージ出来るといいようです。両言語ともハードウェアを制御する傾向が強いからでしょうか。

#器具の製作 #C言語 #Rust
Icon of admin
 Art-Net 関連品の開発では「Rust」を使うことにしました。
 Rust が持つ標準機能が Art-Net 関連品を作るのに絶大に有益なことがわかったからです。コレクションと呼ばれる機能です。
 新たな言語を勉強するのは大変ですが、C言語の方言と思えばゼロベースではありません。C言語を学んだことで Rust がすんなり自分の中に入ってくる実感があります。Rust を学ぶためにC言語を勉強するベキ!?ってことでもありますが、案外そんなもんかなと感じています。C言語でも Rust でもコードの裏側にあることは同じってことですかね。ハードウェアを動かすのがソフトウェアですから。
 あまりに便利なので Python みたいに遅くねーの?って疑問はありますが、コンパイルされたバイナリはC言語やC++に匹敵するらしいのでその評価を信じましょう。
 言葉は優しいですが、AI/Geminiさんのお言葉を要約するなら基板を作ってPIC16アセンブラを書いて RaspberryPi と協調動作する装置を作る素人(アマチュア)は斜め上過ぎる存在らしいです。私にとっては日常感覚ですケド、その延長かプログラム言語に対するアプローチも少し変みたいです。私からしたらパチンコやスロットで確率数値を操って常に勝ち続けてる人の方がどうかしてますケド。

#器具の製作 #C言語 #Rust
Icon of admin
 現場から上がったので DMX-Timer を確認しました。48時間経過したのにズレは1秒以下です。
 すごく良いことですが、誤差の数値を得られないと気持ちがスッキリしません。私の趣向的にモヤモヤしてるだけですけどね。。。
 なので継続してみます。あと1日で片付けないといけませんが72時間までチェックできるかな?

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer は終わりが見えてきました。次の課題はArt-Net 関連機器と行きたいところです。
 これらは RaspberryPi 上でのプログラミングが主となりますが言語どうするか。C言語か Rust の二択ですけど、未だに迷っております。この2種はハードウェアを扱うのに適した言語ですから Art-Net 関連機器を組むにはよいと思われます。両方を使いこなせればいいのですが、年齢的に一つでも辛いのに二つは無理。。。少し前までC言語でいくつもりで勉強していましたが、 Rust の教科書を斜め読みしたところ自分がやりたいことには Rust が向いているような気がして困っているワケです。
 Rust の情報に接しますと「所有権がぁ、所有権がぁ」と脅しの様に書かれております。これはC言語での「ポインタがぁ、ポインタがぁ」や、C++での「オブジェクト指向がぁ、がぁ」と同じです。身に着けないと使えないし身に着ければよりよいコードが書けるのですから身に着ければいい。簡単でないことは確かですが、言語をデザインした神エンジニアたちは苦労や混乱をさせたかったワケではありません。たぶん。
 開発には心の余裕とまとまった時間が必要です。なかなかそんな時間は取れませんので、引き続き妄想しながら勉強をしましょう。

#C言語 #Rust
Icon of admin
 昨日修正した DMX-Timer は15時間経過でほぼ合ってます。このまま続けて誤差を出しましょう。
 48時間で1秒くらいだったらOKとし、誤差次第ではキャリブレーション機能を追加します。
 試作2号機が組めたら並列で試験です。

 修正前は8秒/日の誤差でした。カウント値を1秒毎に3つ多くすることで今があります。
 カウント値1つあたり2.6秒/日の補正ですので、これ以上細かい誤差は補正出来ません。

追記
 24時間経過で1秒以下の誤差です。
 見た目で数値がわかるわけありませんが、1秒の1/3か半分くらい遅れているように見えます。仮に0.5秒なら明日には1秒になるでしょう。
 今以上の補正は難しいので、この後は誤差を把握するだけにします。

追記の2
 34時間経過で誤差は1秒以下。
 何時間後に1秒ズレるのか確認しようと思っていますが、48時間で1秒くらいなら御の字なのでそこで終わりにしましょう。

#ガチ工作 #器具の製作
Icon of admin
 ちょっと誤差計算しました。
 96ppmのズレってことは、8MHzのクロックで768カウント相当です。
 このクロックの256カウントで1カウントするカウンタを3,125カウントして0.1秒を得ていますが、これに閏カウントを1秒毎に3つ入れればイイとなります。各秒のアタマ(1/10秒がゼロの時)に768カウント分まとめて入れてもいいかな?違いは96usecですから気にならないと思う。これなら簡単かも。

 実際の誤差は96ppm丁度ではありませんし水晶発振子に誤差があるならば単純ではありませんが、1秒あたり256x3のカウント調整をすれば今よりずっと良い値になると思うのです。

追記
 モヤモヤしてしまうので書き直し。30分くらいの作業でした。
 またもや動作試験です。

#ガチ工作 #器具の製作
Icon of admin
 昨日は見間違えをしたようです。
 基準となる時計の00秒で DMX-Timer のズレを見るハズが逆をやっていたようです。
 先ほどチェックしたところ、120時間30分経過で42秒のズレです。誤差は 96ppm 程度。
 一定していますのでそういうものだとしましょう。
 昨日は34秒のズレだったワケです。

 この誤差ですと1日あたり8秒、1時間あたり0.346秒、10分なら0.0576秒のズレです。1秒ズレるのは2時間53分後です。
 DMX-Timer は計測や自動操作ではなく経過時間の目安を見るためのものです。量販店で手に入るストップウォッチと同等かそれ以上の精度ですから問題ないっしょ。
 時間があって気が向いたら精度を高める方法を考えてみましょう。

 もし、時計に相当する仕掛けを作るなら、それ相応の精度を持ったタイマーを使うか RaspberryPi などの NTPサーバーと通信出来るマイコンを使うのが良いかと。
 タイマーを使った定時実行のライトアップを毎年やらせて頂いていますが、年に一回の使用なので翌年のセットアップではタイマーの時刻がズレています。仕込み時に合わせれば問題ありませんが、この程度の精度で十分仕事になっています。より精度が高いのは NTPサーバーや基準電波との同期だと思います。1/100秒くらいの精度は出ると思いますので、年中動かしっぱなしならお勧めの方法です。

#ガチ工作 #器具の製作
Icon of admin
 リノリュームを敷くだけ現場です。
 しばらく様子を見ようと思ったのですが大丈夫とのことで早々に退散。本番バラシは明日。
 中途半端に時間が空いたので DMX-Timer の基板をハンダ付けしました。
20260502143729-admin.jpg 202605021437291-admin.jpg
 ケーブル類を作って灯入れしようと思ったら用事が出来てしまったのでここまで。

 誤差確認は100時間と少しで26秒。
 昨日は25秒だったから1日で1秒!?
 あれ?
 エージングすると誤差が減るみたいなことが水晶発振子のデータシートに書いてありますが、そういうこと?
 昨日の段階で実用精度が出ていますが、興味深いのであと数日このまま動かしてみましょう。

#ガチ工作 #器具の製作
Icon of admin
 本業が忙しくなってきたので工作は一旦休憩です。

 されど気になったので時計の精度について調べてみました。

一般的: 日差 -10〜+20秒程度
高品質/アンティーク: 日差 +30〜+60秒?
クロノメーター規格: 平均日差 -4〜+6秒以内
クォーツ式時計 通常モデル: 月差 ±15秒前後(日差にすると±0.5秒)
クォーツ式時計 年差モデル: 年差 ±5秒〜±1秒(超高性能)

 とのこと。
 一般的が「日差 -10〜+20秒程度」なら DMX-Timer はまぁまぁでしょう。

 比較対象は原子時計の値を表示するアプリやサイトを使うのが良さそうです。
 ネット回線の遅延もありますし観測期間が短いと評価が難しいので数日単位が良いと思います。4-5日動かして秒のズレで見ればいいかなと。

 妄想ですが、ネットに繋げて原子時計と比較して自動的にキャリブレーションが出来たらいいなぁ~なんて思います。
 DIYとして手に入る水晶発振子ですと温度による変動も大きいようです。製品によって違いますが、一般的には±20~100ppmくらいらしい。今以上の精度を求めるには温度管理が重要になりそう。こりゃ無理ってもんです。

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer を72時間試してみました。誤差は25秒、96ppm、昨日と同じ値です。このまま96時間(4日間)試しますが、試作1号機の精度はこの値とみてよさそうです。
 96ppm がイイのかダメなのかは使う人によります。私は十分だと思いますのでこれ以上頑張りません。
 もし時計として今以上の精度が必要になったら高精度な水晶発振子を使い、PICで組むとしてもカウント以外の処理をさせないように考えるべきでしょう。

#ガチ工作 #器具の製作

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

Icon of admin
 DMX-Timer を数日動かしました。水晶発振子頼りの無補正です。
 電波時計と比較して16秒/46時間5分の誤差です。計算しますと100万分の96くらいです。単位を変えると96ppmでしょうか。約2時間52分毎に1秒のズレです。10分毎ですと0.06秒のズレです。そもそも完璧な基準がわかりませんので、良し悪しすら評価出来ません。ひょっとすると DMX-Timer が合っている可能性すらあります。少なくとも、安物のストップウォッチより正確っぽいのでヨシとしましょう。
 電波時計を正しいとするなら水晶発振子のカタログスペックより大きい誤差ですが、製品の位置付け的には十分な精度だと思います。製品の見た目は24時間計にしていますが、これを頼りに24時間オペレートをする人も居ないでしょうし、このタイマーで自動的に何かを動かすワケではありません。これ以上頑張っても手間の割りに結果は変わりませんし、キャリブレーション機能を追加しても使う人がいるのか?って思います。
 つわけで、コメントになっているお試し処理をソースコードから消して終りにしましょう。
 連休明けに到着予定だった抵抗が入荷しましたので量産品を組める状況になりました。本業の課題はありますが、時間を見つけてハンダ付けしましょう。

 表に出す誤差値を決めるために継続して動かしています。100時間くらい動かして出た数値を「試作品」の誤差とします。量産品を作って同様にチェックして製品としての誤差を決めましょう。

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer のケースをプリントしています。
 20個ですから一週間くらいかかってますが、最後の1個をプリントしています。
 総時間は80時間程度ですが、プリントが終わっても出かけていれば即セットし直しとはいきませんので間が空きます。
 もう少し短期間で終わりにしたいですが、以前のプリンタに比べたら圧倒的に速く精度がいいので不満はありません。
 全部終わったらバリ取りをして仕上げます。

#ガチ工作 #器具の製作
Icon of admin
 一つ前の書き込みに詳しく書きましたが、DMX-Timer が合っていて比較に使っていたストップウォッチがズレていることが判明したワケです。
 水晶発振子はスペック的に最大誤差が10万分の1なのにナンで?って悩んでしまいましたが解決したのでヨシです。
 ちなみに、今回比較に使ったのは電波時計です。この手の時計は日に1回は電波と合わせますので1日あたりの誤差は人の見た目にはわからないハズ。数日かけての比較ならコレの方がいい。
 時間カウント用に精度の高い水晶発振子を追加する手もありますが、使用目的はオペレートにおける参考値ですから現状の誤差で十分でしょう。
 あとは作るだけですからアタマを切り替えて次の開発に進みます。

 中国から基板が届きました。受けとる際に初めてわかる関税には困りますけど。
 残る入荷待ちはチップ抵抗の類です。チップ抵抗は国内でも手に入りますが、物によってはリール(1000個)単位でしか買えません。そんなにいらんので中国から100個入りを買うのがイイ。

#ガチ工作 #器具の製作
Icon of admin
 実測から計算してみました。なんと2.232%もズレています。
 クロック8MHzからタイマーで256周期を得て、それを3,125カウントすると0.1秒になることを利用していますが、74回に1回3,216カウントにする閏カウントを入れると1/1000くらいの精度になるようです。実測からの計算ですけど、2時間くらい様子をみて目に見えるズレが無ければ数日様子をみましょう。
 補正値は定数ではなく変数にしているので、キャリブレーションモードを追加すれば個体差に対応できるハズです。画面とボタン操作を作って設定値をEEPROMに保存しなければなりませんので結構な手間ですけど、まずは4-5台組んで個体差のチェックです。

追記
 いや!
 ズレていたのはストップウォッチの方でした。
 電波時計での計測は4/24の16:00から4/28の8:45で88時間45分です。DMX-Timer の計測も88時間45分です。ピッタリではないですか!!・・・ストップウォッチは89時間15分、30分違います。
 ストップウォッチが目に見えてズレるワケが無いと先入観で見てしまったようです。つか、ストップウォッチは3%くらいズレるもんなんですね。
 なんかスッキリした。

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer の精度問題はグルグル状態であります。
 数時間の計測では誤差があることはわかっても程度が見えにくいので数日動かしています。時分単位で誤差が見えれば補正処理も見えやすくやすくなります。
 今の状態でも使えるっちゃ使えるのですが、どうせなら24時間で誤差が見えない程度にはしたいかなと。

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer の精度について。
 使っている水晶発振子の精度は±10ppmです。ppmとは誤差100万分の1だそうですから10万分の1の精度となるのかな?
 1時間は3,600秒ですから、1時間あたり最大0.036秒のズレはありえるとなりますが、実測ではもっとズレています。プログラムのどこかに大きな間違いがあるのかもしれません。

追記
 補正のアルゴリズムを間違えていたみたい。色々試したところ、補数を変えても動作にムラがあることが発覚。
 書き直して再挑戦ですが、閑散期とはいえ本業もあるのに困ったもんです。

追記の2
 補正のアルゴリズムは期待通りの挙動をしているようです。
 ですが、他の処理には間違いは見当たらず、計算上は24時間で最大1秒程度の誤差のはずが大きな誤差になるのが解せません。もし個体差ならばキャリブレーション出来る様にしなければなりません。不可能ではありませんが、かなり面倒な追加です。

追記の3
 補正は機能するのですが合いません。
 試しに補正が無い最初に戻したところ合ってます。
 ズレがあったので補正で右往左往したのですが、キツネに化かされたのでしょうか。。。
 一周回って最初に戻したら期待通りに動くってのはよくあることです。無駄な作業をしないと誰かが許してくれないのかもしれません。
 気にしても仕方ないので一晩動かしてみましょう。計算上は24時間で1秒が最大誤差です。

追記の4
 ズレは2時間で0.5秒くらいです。
 計算値より大きいですがこんなもんかなぁ~。
 個体差なのかプログラムのミスなのか、今日のところは許容範囲に収まったとして増産してから考えることにします。

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer はカウントの誤差が収まれば部品が揃うまで一時休止です。久しぶりにガッツリ作って満足感があります。
 この後は Art-net 切替器でしょうか。
 C言語の勉強は半月ほど休憩しました。勉強したことを頭に定着させるには少し離れてから復習するのがいいようです。
 どんな手順で進めましょう。ハードウェアと開発環境の整備から入るのは言うまでもありませんがその先です。
 送受信の最低限の確認からでしょうか。これが出来なきゃ中身があっても意味がありませんし、データを保存する構造体をまとめる上でもサンプルデータがあった方がいいのもあります。
 開発に没頭できる閑散期もあと一週間です。この間に基本構造をまとめたいものです。

 客席テーブルは伸縮脚を作ってもらうことにしました。
 希望価格の倍になってしまいました。時間が無いのもありますが、十分な精度で作られた物を使った方が試作にはイイでしょう。

#器具の製作 #[Art-Net]
Icon of admin
 DMX-Timer のケースを20台製造開始。量産と言うには少ないけど並列試作の域ではありません。
 面付けは2台分、所要時間は6時間半くらいって表示。昼夜で1ジョブづついけますので1日で2ジョブ4台分。5日間?
 フィラメントが切れそうなので寝る前に確認しましょう。新しいプリンタはフィラメントが切れたところからプリントを再開出来るのでありがたい。すでに入荷済みの4色リールを使って同じフィラメントを入れてバックアップすれば途切れなくいけるのですが、4色リールを実装するとプリンタが大きくなってしまい置き場所で悩んでおります。
 部品がすべて揃うのは連休明けですからノンビリいきましょう。

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer のケースに 1/4-20UNC ネジを付けてみました。
 カメラ用のチビスタンドに取り付けて記念撮影です。
20260423110045-admin.jpg
 こんな感じでいいかなと。

 時間カウントは補正を入れて試していますが、30分経過で0.2-0.3秒くらいでしょうか。
 実用上は1時間で1秒以下に収まれば十分だと思っています。現場の使用においては「目安」ですしね。

#ガチ工作 #器具の製作
Icon of admin
 空気洗浄機を組んでみました。
20260423101202-admin.jpg
202604231012021-admin.jpg
 エアレーションは水ハネしますし、ポンプと吐口は離した方が良さそうなので煙突付きのポリタンクです。
 ポンプが16L/分ですからもう少し欲しい気もしますが、これ以上パワーがある物は60dB以上の騒音です。結構うるさいと思いますが、このポンプは極めて静かです。
 こんなんで効果があるか疑問はありますが、ともかく試しましょう。使い方としては24時間稼働です。

#ガチ工作 #器具の製作
Icon of admin
 空気洗浄機はエアレーションポンプを使うのが正解みたいです。
 ブロアファンで空気を送るのを試しましたが僅かな水圧に負けます。噴き出し口が水面からほんの数センチでダメでした。
 今試しているエアレーションポンプは16L/分。動作音が静かなのは高評価ですが、家庭向けのポンプの中では流量が多い製品とはいえもう少し欲しい気もします。ですが、まずは空気を水の中に通して効果があるかです。花粉症の人は早く終わって欲しいところでしょうが、早く終わってしまうと試験になりません。連休前には形にしましょう。
 構造は簡単です。10Lのポリタンクの中に水を半分くらい入れてエアレーションをするだけです。ポリタンクに少し細工をしますが、DIYとも呼べない内容です。
 もし効果があれば花粉症の部下の安眠に繋がります。メンタルのメンテナンスは何も出来ませんが、安眠を得られるならメンタルにも少しは効果があるかなと。

追記
 今のところ水を張ったバケツでボコボコやってますが、バケツに顔を近づけて空気を吸うと何となく清浄な雰囲気。山中の滝の近くで吸う空気と何となく近い。その昔、鑑賞魚の飼育が趣味の友人卓にお邪魔した際に「空気が澄んでいるなぁ~」って思いましたがその感じです。
 要は水槽にエアレーションをしているだけです。私の辞書に花粉症という言葉はありませんので効果の程はわかりませんケドね。
 重度の花粉症を患っている部下娘で早く実験しないと。自宅まで押し掛けるワケには行きませんので、事務所で試して好印象だったらお持ち帰り頂く運びで。オフシーズン同様に安眠出来たら正解ってことにしましょう。

#器具の製作
Icon of admin
 DMX-Timer には 1/4-20UNC ネジ穴を追加します。
 これはカメラ類の取り付けネジとしても使われるサイズです。カメラスタンドやクランプなどが使えますのでレイアウトの自由度が広がるかなと。
 試作品には MA dot2 に取り付けるクランプを使っていますが、どんな卓にも取り付けられるクランプを作ることが難しいのもあります。1/4-20UNC を付けておけば架台の選択肢が広いので何とかなるっしょ。

 時間カウントにズレが出てしまいました。1時間半経過するとズレが見え始め、2時間半経過すると1秒くらいズレます。12時間でズレが出るのはアリですが、2時間でズレるのは頂けません。
 すべてをポーリング処理で行っていますが、処理を追加したためにタイマーの1周期で戻れないのだろうと思われます。タイマー1つで複数の処理を行いますのでポーリングですが、時間カウントは割り込みに変更しましょう。

追記
 時間のカウントをポーリングから割込みに変更しました。
 2-3時間様子をみましょう。

追記の2
 割込みにすることで不規則な誤差は無くなったみたいですが、1時間で0.5秒弱のズレが出ます。
 今はTMR0の割込みでカウンタをインクリメントするだけですが、補正カウントを入れたらいいのかな?

追記の3
 補正カウントを入れたらズレが小さくなりました。
 計算上は誤差がないので水晶発振子の誤差かもしれません。水晶発振子が原因なら個体差となりますので対策を考えないといけません。カタログスペックでは人の目でわかる誤差ではないのですけどね。
 個体差を後合わせするならキャリブレーション機能の追加となりますが、ストップウォッチも案外正確ではありませんし、仕事上の計測単位は最長でも20分くらいですから、こんなもんでいいのかなと思うところもあります。
 目の前の1台を出来るだけ合わせ、数台作って比べてから考えてみましょう。

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer のバグは些細なことでしたので解決。
 アセンブラで書いていますので本処理とドライバの境界線は希薄なので細かい挙動まで作り込むことは出来ます。けど、まぁ、使えるのでいいかなと。
 今のところ評判はイイです。アイデア的に隙間過ぎって面白がって頂けるのが楽しい。
 そもそも調光卓にGOボタンで動くストップウォッチ機能があればいいのですが、無いので便利感があるのでしょう。今後、MAやAvoliteの卓にストップウォッチ機能が搭載されたら自分の勝ち?
 7segで表示していることも評判がいいですね。読みやすいのもありますが、時代に逆行する見た目がノスタルジックで面白がってくれています。私もそう思います。
 部品が揃うのは連休明けになりますが、20台くらい作って同業知人に配る予定です。今のところ販売はしません。趣味で作っているのですから、カスハラの対応で自分のメンタルを削っても何のメリットもないからです。
 八百万の評価と提案は欲しいですが、一切のクレームを受け付けない前提で、価格をユーザーに決めてもらう方法もありですね。気に入ったら相応と思う代金を振り込んでもらう方法です。気に入らないなら返品してくれたらイイのです。お代は見てのお帰り?
 こちらは趣味で作ってます。お金を頂いても神様扱いする気はありません。製作費用と製品を交換しただけです。等価交換ですから対等です。私にとってのお客様は製品をより良くするために試して助言をくれる開発協力者様です。アイデアはプライスレス。お金で神様扱いされたかったら開発に費やした技術や時間に相応の費用と部品代をマルっと出してくださいませ。スポンサー様は神様です!(笑
 回路図はすでに公開してますが、ファームウェアも公開する予定です。GPLベースになりますが、製品に不満を感じるなら回路やファームウェアを修正したり作ったらいいでしょって提案です。

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer は正常に動いております。
 暗い中での視認性は問題無し。
 ソースコードに若干のバグを発見しましたが、これは明日以降の宿題とします。
 新たな基板を発注しました。10台分の部品を揃えましょう。何かと費用がかかり小遣いでは辛いなぁ~って思ったり。

 この後は空気洗浄機です。
 10Lのポリタンクに溜めた水に空気を通して空気中の花粉などを除去する装置です。
 これは原理さえ正しければすぐに出来ます。いや、原理を確認するために作ります。
 花粉がおさまる前に完成しないと実験できません。

#ガチ工作 #器具の製作
Icon of admin
 一晩ユックリ寝て回復。
 本業のとりまとめや現場もありますが、DMX-Timer の量産も検討しましょう。明日の現場が本格テスト1回目ですから、そこで様子を見て決めたいと思います。
 カスタマーサポートが嫌なので売るか決めていませんが、同業知人へのお土産というかお中元・お歳暮にはいいかもしれません。アイデアをくれた方、DIYにご理解を頂いている方々にプレゼントするのが通例ですが、その実は人柱です(笑。
 今回の DMX-Timer は文字が大きいです。老眼人口が増えている昨今では文字の大きさは重要ですからね。そのために電源電圧がDC12vになって回路間違いの原因になったのですが、文字を小さくしてDC5v単電源で動く仕様の物なら回路を簡単にして小さくなるハズです。
 そもそも、この製品が「便利」で「使いたい道具」なのか、そこが重要です。
 とりあえず10台作って各所に配ってみましょう。問い合わせなどの反響をみて一般販売を考えたいと思います。
 価格は部品原価や製造時間を積算していないので未定です。5万円でも求める人はいるでしょうし、3,000円でも高いと言う人もいるでしょう。家電量販店で扱う数モノではありませんのでそんなにお安くは出来ませんけどね。

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer が組めました。筐体もファームウェアもです。壊すつもり、エラーを起こすつもりの検証をしていない、仮組みで動いただけの段階なので「完成」とは言い難いですけどね。
 使い方ですが、DMXの512chが000だと0秒待機、000以外の値だとカウントします。255(100%)で打っておけばフェードインでも気になる遅れは無いように思います。
 上面のボタンは輝度調整用です。調整範囲は広くありませんが、日中の屋外、完全な暗闇を求める暗転でどうか今後の検証です。
 秒数は計算上も実測も合っているハズです。2時間くらいストップウォッチと合わせましたが目でわかるズレはありません。
 画面には透明赤のアクリルを貼っています。LEDの色に近しい透明なモノをかざすと光っているLEDが読みやすくなります。裸だと点灯していないLED(見た目白色)が目に入って邪魔です。
 本体の背面にはM5のネジ穴を付けてあります。写真では使用頻度が高いMAdot2用にこさえたクランプで取り付けてあります。卓や状況に合わせてアレンジの要素です。
20260417180448-admin.jpg
 使い心地は意地悪な気持ちで使い倒さないとわかりません。
 動作検証・耐久試験をしたいところですが、昨晩が午前様で明日は現場なので今夜は早く寝ます。

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer はカウントする様になりました。
 I/Oの使い方で少し難儀しましたが、回路そのものは正しく動作するようです。
 輝度調整がうまく行かず右往左往していますが、今日中になんとかまとめたいですね。

追記
 輝度調整は解決。ヘッダーの初歩的な誤植が原因でした。時間は無駄にしましたが、過ぎた事は仕方ありません。

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer の基板が組めました。修正のジャンパーが汚いですが、ブレッドボードで試せる回路規模ではないのでご容赦。
20260416102129-admin.jpg 202604161021291-admin.jpg
 電源を入れても煙は出ません。第一関門通過です。回路の焼失が無いとは言えませんので、最初の灯入れはドキドキします。
 PICマイコンの ICSP(イン・サーキット・シリアル・プログラミング)の応答を確認し、7segLEDの点灯試験をすればプログラミングに専念出来ます。・・・出来るかな?

 基本動作が確認出来たら修正版の基板を発注します。
 間違いはあっても使おうと思えば使える基板を処分するのは勿体ない気もしますが、修正にかかる手間と時間を考えると断捨離が良さそうです。

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer の回路図です。
 実証はこれからですが、こんなもんかなと。
20260415103453-admin.jpg

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer は回路の見直しが終わりました。特にトランジスタに使う抵抗値には注意しないといけません。アナログ回路は苦手だし。
 回路間違いで迷走していますが、出来れば今週末の現場で使いたいので急がないと。

 閑散期ですから、身体を休めつつも製作物を進めたい。

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer は回路間違いを派手にやってしまいました。DC12vとDC5vが混在する回路で注意しなければいけない点を見落としていたのです。便利な部品ばかり使っているとダメですね。
 当面の対策は基板のパターンをカット&ジャンプすれば何とかなると思ったのですが、部品が小さい、つまりパターンが細かいのでちょっと難しい。良くも悪くもレジストがキッチリ施されているので尚更です。
 ならば、原点に戻ってユニバーサル基板で回路を組むのも手です。先日の回路図ならば、2SA1162と2SC2712周辺です。これならデッドストックになっているスルーホールの2SA945と2SC1815を使って組めばいい。2SA945と2SC1815は2SA1162と2SC2712のパッケージ違いの同等品と言ってもいいので回路を共有できます。
 モヤモヤしていましたが気分が晴れたので、回路の検算(抵抗値など)をして進めましょう。

#ガチ工作 #器具の製作
Icon of admin
 中華電機ムービングのアッパーボックスのプラ製ベゼルが派手に割れていました。壊したことは仕方ありませんし直せばいいのですが、衝撃を与えた後に状態を確認しないことと報告しないことには腹が立つかも。
 ネジを締め直せば使えますが、使い続けると破損が酷くなると思われますので、破損が広がらないウチに修理します。

 アルミのメッシュ(網)を半田ゴテで溶着。
20260413165519-admin.jpg
 更にプラリペアをモリモリ。プラなのでプラリペアとの相性が良すぎ。ガッツリ溶着。溶剤の量に注意しないと母材がドロドロになって形を失いそうな程。内面の見た目は気にしない。
202604131655192-admin.jpg
 1時間後でもそこそこの強度ですが、一晩放置して組み付けてみます。
202604131655191-admin.jpg

 テーブルの天板延長もそうですが、youtubeで拾った各種テクニックを活かせている今日この頃。

#ガチ工作 #器具の修理
Icon of admin
 客席テーブルの天板の延長が完成しました。素人にしては上出来だと自画自賛中。
20260413164431-admin.jpg
 脚の加工は、伸縮脚の加工をいつもの鉄工所さんに相談しているので、見積りを待って進めます。金額的に無理そうなら別なやり方を思案しないといけませんから先んじて加工を進めるのは得策ではありません。手作業で数十個の穴を空けるのは辛いので高くてもお願いするつもりですけど。
 写真のテーブルは音響用として奥行600のテーブル(延長後695)を用いていますので脚回りを含むフルセットで17kgくらいになりそうですが、奥行450のテーブル(延長後545)を使えば14kgを切りそうです。普段使っている調光卓は小さいので450のテーブルでも十分です。腕力に劣る女子部下たちが使うには14kgでも重いのですけど、これより軽く作るには莫大な初期投資をして中空樹脂か軽量金属のハニカム構造で天板を作らねばなりませんので、私の小遣いお試しは今が限界です。
 ただ、音響は稼働率が高いYAMAHA-QL5と19吋ラックケースを置くと5尺テーブルでは少し足りないので6尺物が望ましい。このテーブルには6尺モデルもありますが、自分は5尺はおろか4尺でも事足りますので自腹で6尺の実機を作る気はありません。6尺物は定価ベースで+1万円以上だし重い。個人的には6尺物に興味がありません。5尺物を使ってもらってリクエストがあったら会社の経費で作らせてもらいましょう。

#ガチ工作 #器具の製作
Icon of admin
 DMX-Timer の回路図と基板を修正しました。図を修正しただけで動作確認はこれからです。
 各所の抵抗値は間違っていると思います。
20260408174014-admin.jpg
20260408174027-admin.jpg
20260408174042-admin.jpg
 現行のNG基板を修正してテストします。かなり強引な修正になりますが、修正の度に発注し直していたらお金にも時間にも無理があります。
 回路が確認出来たら改めて基板を発注してみます。
 今週は久しぶりにヒマなので、有給休暇の消化を兼ねて3日くらいファームウェアの製作に専念しようと思います。

#ガチ工作 #器具の製作
Icon of admin
 天気がいいので客席テーブルの製作を進めています。雨風をしのげる作業場所が無いので天候は重要です。
 まずは天板を延長しました。延長するのは背もたれとの間に隙間が出来るのがイヤだからです。この延長がうまくいかないと脚の加工をしても意味がありませんし。
 延長は手前の脚の中心から天板の端まで150mmとしました。95mmの延長です。座席の寸法は一意ではありませんし、調整が出来る様にすると構造が複雑で重くなるので悩みどころです。
 延長方法は「やといサネ継ぎ」です、天板の周囲に緩衝ゴムを取り付ける溝がありますので、ここにサネを入れつつ合板を積層します。上から2.5mm、9mm、2.5mm、12mmです。一番上の合板は天板の表をトリマーで奥行26mm深さ2.5mm削ったところから貼っています。サネは3枚目の2.5mm厚の合板です。天板と延長板をジグザグに貼り合わせるのです。少々面倒な加工ですが、天板と完全一体化し、私の全体重をかけてもビクともしませんので強度は十分でしょう。
 写真は1層塗ったところです。
 塗料はワシンさんの油性ニスです。完全硬化すると丈夫な塗膜になり、1液式で溶剤がペイントうすめ液なので扱いやすい。少し高いですけど、木材相手ならこれ一択と言ってもいいでしょう。
20260408110615-admin.jpg
 写真の塗装は汚いですが一層目ですし、固まったらペーパーを掛けて更に2層塗りますのでナンとなるっしょ。
 使用しているテーブルは以前の記事にあります。

#ガチ工作 #器具の製作
Icon of admin
 基板が届きました。回路間違いは悔しいですが、無理矢理直して使います。動作確認できたら訂正版を発注しましょう。
 基板そのものはとてもキレイです。

 時間がとれたので客席テーブルの新型の製作も進めています。

#ガチ工作 #器具の製作
Icon of admin
 あ、回路間違えた!
 とりあえずジャンパーして発注済みの基板を使いますが、後で改修基板を作りましょう。

#ガチ工作 #器具の製作
Icon of admin
 3Dプリンタは壁面に横穴を開けると上下に少し潰れてしまいます。マイナス寸法ですからドリルで仕上げればいいのですが、ある程度見越した寸法にした方が良いようです。トライアンドエラーになるので様子を見ながら調整です。
 来週には部品が揃いそうですから、ファームウェアも書き始めています。表示は10/60進数ですが、16進数から変換するのではなく、23:59:59.9で折り返す10/60進数のインクリメントカウンタです。この部分は単純なので空き時間にサクッと書けました。
 DMXの受信は過去書いたファームウェアから拝借し、7zeg表示のコントロールは新規作成です。7zeg表示は桁送りをするサーチ式ですが、桁をONにする時間長で輝度調整が出来る様にします。日中の屋外もあれば暗い屋内もありますから調整出来た方がいいと思うのです。設定値の保存まではしませんけど。

#ガチ工作 #器具の製作

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

Icon of admin
 DMXtimer の基板を発注しました。
 ドル立てでは値上がりしていませんが、為替相場の影響で円にすると高くなった感じがします。
 194x50mmの基板が10枚で60USD、送料含み日本円で12,500円くらい。無加工の感光基板より安いのですから、高いと言ったらバチがあたります。

 基板の姿図です。
20260331152926-admin.jpg
202603311529261-admin.jpg

追記
 火曜日に発注したものが木曜日の今日すでに飛行機に乗ってるみたい。早いのはありがたいけど、そんなにヒマなの?って心配してしまうかも。

#ガチ工作 #器具の製作
Icon of admin
 時間が空いたので DMXtimer の回路図を書いてみました。短時間で描いたのですこし雑です。
20260331120407-admin.jpg
 基板を書いて中華基板に発注しましょう。
 ※ 基板の都合に合わせて回路を変更しました。

#器具の製作
Icon of admin
 「DMXタイマー」は私が作るモノに興味を示さない部下ですら「欲しい!」ときました。興味を示さないのは話や図だけでは物の想像が出来ないからですが、DMXタイマーは伝わり易かったようです。
 こりゃ作るしかありません。
 必要な技術は大したことありませんが、7ゼグを点灯させるのに電力をそこそこ喰うのと、時計としてどれくらいの精度を求めるかによって労力が違います。
 分を二桁、秒を二桁、1/10秒を一桁にしようと思います。時間値をどうするかは思案中ですが、24時間表示にしとけば後でタイムコードの表示にも使えるかな?
 フィクスチャープロファイルを自作出来ない調光卓もありますのでディマーとして扱えればいいかなと。動作はDMXアドレスを512ch固定、値000で停止クリア、値001以上でカウントとします。これでカウント開始を255と打ち込めばゆっくりF.Iでもそれほど遅れないかなと。

#器具の製作
Icon of admin
 お世話になっている他社さんからの依頼で現地照明の増員でした。
 そこで話をしていたところ、調光卓のGOボタンで動くストップウォッチが欲しいとのこと。ストリートダンスなどの音源演目の現場で調光卓とストップウォッチを両方叩くのは手が足りないことがあると。うん、よくわかります。
 条件を整理しますと、曲に対する最初のCUEでストップウォッチが動き出し、曲が終わったところで停止というか次の曲の開始までにリセットされていればいいと。まさにその通り!
 以前、音源に合わせたタイムコードを出力する研究をしていました。これとは違ったアプローチですが求める本筋は同じです。
 さてどうするか。MA系の卓ですと接点出力がありますのでこれを用いてストップウォッチを制御する方法もありますが、汎用性を考えるならDMXで動くストップウォッチがあればいいのでは?と閃く。
 例えば、512chが000なら停止、255ならカウント開始みたいにしておいてディマー感覚でCUEにデータを入れておけばいいってことです。ストップウォッチはカウント開始、停止、クリアの3つの動作が基本になりますのでそれぞれに値を割り振っておけばいい。F.Iの始まりでも動いて欲しいので001でカウント開始がいいのかな?卓とは無関係のストップウォッチを手操作で動かすよりは便利になればいいので厳密さはボチボチでいいと思う。
 なんにしても、「DMXタイマー」って名前で試案してみましょう。

#器具の製作
Icon of admin
 Art-Net / ArtDMX を受信して何かをするプログラムを書けそうな気になってきました。
 まずはコンソールを1台とし、ループバッファに Art-Net をひたすらスタックし、最新の ArtDMX を dump 表示させるものを製作しましょう。これが出来なきゃ何も出来ないってくらいシンプルなものです。
 ここから複数コンソール対応など、データの取り扱いを色々実験していきます。[コンソール]-[ユニバース]-[データ] の3階層のデータ管理を十分に煮詰めずに先に進んでも良いことはありません。以前の試作から進んでいなかったのはこの辺りに原因があります。このところ AIさんとやり取りしていたのはデータ管理を整理するためです。

#器具の製作 #[Art-Net]
Icon of admin
 AI/Geminiさんに聞いたところ、RaspberryPiでは4byte単位、4kB単位でキリ良く考えるとストレスが少ないのだそうな。1byte単位のデータでも4byteで扱った方が良いってことです。
 パディング対策して詰め々々がイイって話を振ってきたのもGeminiさんですが、知識のある年寄りに時間を開けて話を聞いた時のような困惑を感じたりしたり。。。

追記
 4byte、64byte、4096byte区切りでメモリを扱う様に構造体などを定義すると良いのだそうです。更に、構造体のメモリ上のアドレスをアトリビュートで64の倍数値にするのもお勧めとのこと。
 4byteはCPUのレジスタの長さ、64byteはキャッシュの転送単位、4096byteはメモリページの扱い単位です。
 気にしなくても動きますが、CPUやOSの挙動において無駄を省くことに繋がるらしいです。

#C言語
Icon of admin
 C言語の共用体(union)ですが、教科書やら動画を見ますと「あまり使い道が無い」的な解説が多いような気がします。
 されど、今回のArt-Net系の装置では便利です。Art-Net のポート番号 0x1936(6454) の受信値をとりあえず突っ込むだけで要素毎に取り出すことも出来るからです。例えば ArtDMX は530バイトのパケットですが、受信値を uint8_t[530] (または unsigned char[530]) の配列として保存するだけで ArtDMX の構造体としても扱えます。パディングに注意は必要ですが、便利に使えると思うのです。ID、OpCode、ProVer をまとめて評価するのに先頭12バイトを uint8_t[12] としておいて memcmp で判別することも出来ます。AertDMX と別種の Art-Net パケットもシームレスに扱えそうです。
 天才を超越した神たちが何故 union を作ったのかを考えるとワクワクします。

 とまぁ、最近C言語の理解が進んで一人笑いが止まらないアホの戯言でした。

 オレメモです。
 gccで構造体のパディングを回避する書き方。struct に続いて「__attribute__((__packed__))」を入れるそうな。gcc独特の書式らしいので、コンパイラに合わせた書式を使ってください。

typedef struct __attribute__((__packed__)) {
 uint8_t ID[8];
 uint8_t OpCode[2];
 uint8_t ProVerHi;
 uint8_t ProVerLow;
 uint8_t Sequence;
 uint8_t Physical;
 uint8_t SubUni;
 uint8_t Net;
 uint8_t LengthHi;
 uint8_t Length;
 uint8_t Data[512];
} ad_t;

ad_t ad_data;


 ArtDMXを保存する構造体はこんな感じに書けばよいのでしょう。たぶん。
 この型を sizeof で見て530バイトならヨシです。

 ついでに共用体の定義(案)です。

// Art-Netの受信値を収める構造体
typedef struct __attribute__((__packed__)) {
 uint8_t resv[530];
} an_t;

// ArtDMXを取り出す構造体
typedef struct __attribute__((__packed__)) {
 uint8_t ID[8];
 uint8_t OpCode[2];
 uint8_t ProVerHi;
 uint8_t ProVerLow;
 uint8_t Sequence;
 uint8_t Physical;
 uint8_t SubUni;
 uint8_t Net;
 uint8_t LengthHi;
 uint8_t Length;
 uint8_t Data[512];
} ad_t;

// Art-Netの受信値を保存する共用体ループバッファ
union {
 an_t an_resv;
 ad_t ad_data;
} an_stack[8192];


 こういうことでいいのかな?
 共用体の書き方はまだよくわかってないのですけど。

 共用体の配列を作って Art-Net のポートで受信したパケットを延々と保存します。8191番まで記録したら0に折り返すループバッファです。
 8192個あれば44fps、8センダー、各16ユニバースで最短でも1.45秒分の保存が出来るハズです。十進数で8192なのは2進数(16進数)でキリの良い数値のため折り返し評価が少ない処理で出来るからです。十進数8192は16進数0x2000でキリがよく処理しやすいのです。このあたりはアセンブリ言語だけでPICマイコンと会話をしてきた者にとって自然な着想です。10進数は人が日常的に使い慣れているだけで特筆するほど合理的な数体系ではありませんし、今どきのコンピュータ(論理回路)に合わせた方が便利です。

 ヘッダーチェックは当該の配列要素(例えば an_stack[1024] )を示すポインタからmemcmpで12バイトをチェックすれば済みますので共用体には定義しません。
 ArtDMX以外のパケットにも使えるチェック方法です。

#C言語
Icon of admin
 先日の現場はヒマな時間が長かったのでC言語の教科書を読みまくってみましたがかなり整理出来ました。
 昨今の教科書はポインタの説明が丁寧です。ハードウェアとしてのメモリの動作がアタマに入っていないと分かり難いことですが、私はPICのアセンブラで普通に扱ってきたことなので改めてではありますが素直に理解出来ました。わかってしまえばむしろ便利だなと。変数の読み書き方法が何種類もあることになるので混乱すると思いますが、どれもメモリへのアクセス手段だと捉え直せばいいだけでした。このあたりが整理できるとmmapも自然に理解出来ます。
 ヘッダーファイルはコピペでテキトウに書いていましたが、意味と書き方が整理できました。後はmakefileが整理出来れば良さそうです。

#C言語

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

Icon of admin
 部下には花粉症持ちが沢山います。軽症な者もいますが、重症な奴は鼻水ダラダラ目が腫れて口やノドの中が痒いと言ってます。見てて気の毒になります。
 少しでも楽になるように何かしてあげたいのですが、どうしたらいいものか。
 何か作れないかなって工作のネタです。ちなみに、昭和生まれ昭和育ちのおじさんの辞書に「花粉症」という言葉は載っていません。

 重症な奴に聞くと「お風呂に入っている時は凄く楽で幸せ」とのこと。花粉症の症状が劇的に治まるのだそうです。花粉は湿度が高いと飛び散らないので、花粉が無いのと同じになるのかな?。
 部屋の中は空気清浄器と加湿器で対策もしているそうですが、無いよりは楽だけれど、入浴中の浴室には敵わないそうな。
 そこで湧いてきたのですが、空気をそんな空間に通す装置があったらどうだろう。湯船にお湯をためた浴室に通した空気を部屋に導き入れるイメージです。高湿度フィルタって感じですかね?。室内を浴室の様な状態するワケにはいきませんので高湿度にする加湿器は違うような気がします。
 さらに聞くと、マスクの中に入れる濡れフィルタは効果があるそうな。濡れフィルタに花粉が吸着するのでしょう。ただ、しばらく時間が経つと濡れフィルタに付いた花粉を吸うことになるので、短時間ならいいけど良し悪しだそうな。
 そこで思い付いたのですが、リング状にした布地や紐を水にくぐらせながらグルグル回して風を当てたらどうだろう。ゲル状で空気中に漂う水に花粉を触れさせるのが一番効果的なイメージはあるけど、水に触れさせるのは効果があるような気がします。リング状にした布地や紐を使うのは水の表面面積を増やす意味です。くぐらせる水の容器に超音波振動子を入れておけば布地や紐に付いた花粉を落とせるかなってイメージもあります。
 もちろん、水を張った容器の底から空気を出す方法もありかなと。水槽のエアレーションのイメージです。エアーポンプの中を花粉が通るのか?って疑問はありますケドね。

 アレルギー反応でアタマがボーっとするらしいし寝不足も困ります。人材は機材ぢゃありませんが、メンテナンスのための専用工具を作るイメージで取り組んでみましょう。
 ちょうどというか、自宅の石油ファンヒーターが1台不動になってしまったのでこのドンガラを使ってみましょう。

追記
 調べたら、水をフィルタにする空気清浄機がありました。「水空気清浄機」とか「水式空気清浄器」と呼ばれる種類の様です。
 これらが花粉症に効果があるかは不明ですが、作るとしたらのイメージの一つなのは確かです。
 さてさて。

#器具の製作
 
Icon of admin
 糸ハンダは白光(Hakko)さんの製品を使っています。長年愛用しているだけと言えばそれまでですが、伸びや馴染みが良くて使いやすいと思います。
 そんな白光さんの糸ハンダですが、製品ラインナップが変わった様子。これまでは150gや300g巻きでしたが、ホームページを見ると一般向けは100m巻きか1m巻きになっています。ただ、近所のホームセンターには100m巻きがありません。一般的なDIY用途なら1m巻きは正解かもしれませんが私にとっては物足りません。amazonさんに以前の150g巻き製品がありましたので、とりあえずポチっときました。
 ちなみにハンダコテは「FX-600」を使っています。これも白光さんの製品です。簡易的な温度調整機能が付いていますが、設定温度を高めにするとすでに付いたハンダを取るのが楽です。先端は相手物に合わせて使い分けていますが、平べったくて幅のある物が便利です。ムービングライトの修理で表面実装のICを取り外した際には幅広の先端で設定温度を高めにしたところ楽に作業が出来ました。

#電子工作
Icon of admin
 別なムービングライトも修理。もちろん中華電機から仕入れた代物。
 作業場ではLEDが点灯するのに現場でしばらく使うとダメ。熱を持つと何らかの支障が出ると思われます。
 考えられる原因は二つ。一つ目はドライブFETの放熱不良によるサーマルプロテクト。二つ目は大きな電流が流れる経路の抵抗値異常。どちらもハンダ付け不良によるものと思われます。点灯しない色のFETとターミナルは「天ぷらハンダ」になっていることが多い様子。ハンダコテを当てるとブクブクと気泡が出ます。これが原因だと断定は出来ませんが、天ぷらハンダは明らかな不良ですから、ハンダ吸収線でハンダを取り除き盛り直します。物凄く質の悪いハンダ(特にフラックス)を使っていて閉口しましたが・・・。
 現場運用しないと確認は出来ませんが、怪しい機体はすべてハンダを当て直すことにします。

#器具の修理
Icon of admin
 Art-Net 切替&パッチマシンを作るためにC言語を勉強しなおしています。AI/Geminiさんから学んだことですが、C言語はいわゆる高級言語(PythonやJAVAなど)ではなくアセンブリ言語の一つと捉えて教科書を読み直したところわかるわかる、すっげーわかる。なんだ簡単じゃねーかってくらいです。高級言語ほど抽象化されていないけれど、「機械としてのコンピュータ」を操っている感じが強いのにマシンコード(PIC16アセンブリしか知りませんが)を直にさわる時ほどレジスタやメモリに気を配らなくてもいい。途方もなく膨大で広大なライブラリの世界を網羅するのは不可能ですが、基本的なライブラリを使ったC言語として定義された基本書式はPIC16アセンブリのちょっと上くらいです。もちろん、CPUは何をやっているのか、メモリとは何のためにあるのか、I/Oっちゃ何よって基本機構をわかっている必要はありますけど。
 教科書は買い直しました。所有しているのは2008年執筆が一番新しいのですが、20年近く経って書式が変わってきているようです。例えば1バイトを表すcharはint8_tとも書けるようです。コンパイルが通るならば古くても新しくてもいいのですが、どうせならこれからの書式に慣れた方がいいかなと思うのです。
 アセンブリ言語は愚直にベタに書くモノだと思っています。10年後の自分が楽しんで読める内容にしたいですね。

#C言語
Icon of admin
 中華電機から買ったムービングライトが2台故障中です。1台はズーム、1台はゴボホイルが動きません。
 過去記事にもありますが、症状から想像するにステッピングモーターのドライバICの破損だと思われるので交換します。ICはしばらく前に入荷していたのですが、ようやく作業時間が取れました。
 表面実装タイプのICですから作業は少々難しいのですが、交換したところ正常化しました。観察をするとICのお腹にある放熱用のパターンにハンダがしっかり入っていなかった様子。過加熱による熱破壊ではないかと想像しています。

#器具の修理
Icon of admin
 よかれと思って公開しても何かあったら補償しろと言われるのはイヤなのでGPLライセンスで公開しようと思います。手の内は全部見せるし自由に使ってもらっていいけどサポートも補償もしないよってことです。運よく出来上がってからの話ですが、コードを書き始める前に発生しうる責任問題の対策は考えておきたいのです。
 そこで色々考えたのですが、コンテナのDockerを使おうかなと。ご存じ無い方に説明する語彙力は持ち合わせておりませんが、インストーラーではありませんがコマンド一発でインストールが出来る環境構築の母体です。公開するソースコードはもちろんライセンスの宣言なども入れておけるので「知らんがな」にも対応出来そうです。これらをGitHubで公開して履歴を残します。Dockerはとにかく便利です。もしシステムがおかしくなってもDockerのパッケージを入れ直すだけですべてが元に戻るからです。インストール説明書を作る手間も省けます。細かいことを知りたい方はAIさんに聞いてください。
 課題があまりに多くなりすぎてどこから手をつけたモノか困っていますが、一つ一つ片づけていきましょう。

#ガチ工作 #[Art-Net] #器具の製作
Icon of admin
 猛烈に忙しかった一か月でしたが、落ち着いてきたのでC言語の勉強を再開しています。
 データ蓄積の話です。変数と呼ばれる入れ子に数値を代入して一時保存するのが普通のやり方です。ですが、その実体はメモリに保存するに他なりません。
 C言語は「高級アセンブリ言語」と呼ばれることもあり、派生の歴史はマシンコードが違うハードウェア間でソフトウェアの移植性を高めることにあったとか。AI/Geminiさんとやりとりをしてわかってきたことですが、C言語はソフトウェアを書きやすくするのとは少し違った方向性のようです。Pythonの様な言語に慣れてしまうと「どうしてこうなのか?」「不便だな」と思うことが多々ありますが、アセンブリ言語として捉えると「こりゃ便利だ」と思えます。この感覚はアセンブリ言語を書いたことがないとピンと来ないことかもれませんが、ハードウェアは何をしているのか、OSは何をしているのか、コンパイラは何をしているか、この辺りをイメージ出来るとC言語の書式の意味が見えてくるように思います。
 変数はメモリ領域を確保しインデックス(ステータス・メタ情報)を関連付けることで成立します。確保しただけのメモリ領域を「Raw」とも呼ぶそうですが、「Raw」のアドレスを示すのがポインタです。変数という作法(インデックス)を使って読み書きしてもいいのですが、ポインタというメモリアドレスで直接読み書きすることも出来るようです。私が知るアセンブリ言語はPIC16のそれしかありませんが、変数とはどういう機構なのか?を理解出来るとポインタのイメージをすんなり受け止められました。typedefも「オレ専用の型」作っておくClassみたいな作法だと思えば自然と理解。
 ここまできたところ、構造体(Structure)と共用体(Union)の違いや使い方もすんなり理解。どちらもメモリ領域を確保してインデックスを関連付けることは同じですが、共用体は複数のインデックスを関連付けることが出来ることが違う。Art-NetでDMXのデータを扱うArtDMXパケットは受信した際は530バイトのバイナリですが、その何バイト目がどんな意味のデータかとなるので、同じデータ群であっても530バイトのバイト配列であったり構造体であったりするので、共用体として保存するが適当ぢゃないかと思ってきたところです。
 mmapも意味や作法がイマイチわからなかったのですが、C言語の深堀り出来てきた気がしています。

#C言語
Icon of admin
 昨日の午後から自宅のネット回線が不通。
 支払いが滞っていたのかもと不安を感じつつ、プロバイダさんやNTTさんに連絡せにゃと思っていたのですが、いつの間にか復旧したみたい。
 何が原因だったのかわかりませんが、ONUの光回線パイロットランプが消灯していましたので光回線がどこかで切れていたのでしょう。
 まいいか。

#雑談
Icon of admin
 Art-Net切替&パッチマシンは AI/Gemini さんのご協力を得て基本構成が決まりつつあります。
 Gemini さんからの情報は鵜吞みにせず自ら検証をするものだと思っていますが、ドキュメントやネット検索から自分でまとめるよりも結論に近い位置から始められていると思います。

 基本方針ですが、本機は Art-Net の ArtDMX パケットを受信、加工、送信する装置です。通信スタイルはブロードキャストのみ。ArtDMX 以外のパケットは扱いません (特にRDMは方言が多くて扱いが難しく、ArtDMXだけでも調光操作に支障がないためです)。

 ハードウェアの基本構成は次の通り。

1)主装置
 RsaspbrryPi-CM4 + CM4-Dual-Eth-Base

2)ネットワーク
 1000Base-T × 2 (Art-Net用・スイッチングハブで分岐)
 WLAN (製作・メンテナンス用)

3)拡張基板
 RaspberryPiのGPIOに搭載する専用基板。
 設定保存用 EEPROM (24LC64など,I2C接続)、レガシーDMX受信回路 (LT1785等) + 取り込みマイコン (PIC16(RAM2kB以上),SPI接続)、RS232インターフェース回路 (UARTコンソール用)。

 ソフトウェアの基本構成は次の通り。

1)受信モジュール
 Art-Net 上の ArtDMX を受信してバッファに保存する。保存する際、検索用のインデックス(クエリ)も作成する。

2)加工モジュール
 受信した値を加工する。パッチ、プロファイルカーブ、ディレイ等の処理はここで行う。

3)送信モジュール
 加工モジュールから出力された値を送信する。

4)タイムアウト監視モジュール
 送信元や受信パケットがタイムアウトしたら(存在しなくなったら)適切に処理する。

5)ユーザーインターフェース(UI)モジュール
 画面表示やキーボード操作を司る。
 上記(1)-(4)で用いる設定はここで起こす。

 これらを /dev/shm 上に作る共有ファイルで結び付けて動作させます。

#ガチ工作 #[Art-Net] #器具の製作
Icon of admin
 今後、出来上がった物を公開する際はGPLライセンスとします。
 GPLライセンスとはソースコードや回路図を無償で公開するし使用や書き換えは自由だけれどサポートはしませんしバグがあってもトラブっても一切関知しませんってライセンスです。他にも色々ありますので詳細はその筋の情報をご覧ください。ものすごく簡単に言うなら著作権は放棄しないけど自己責任で自由に使ってくださいってのがGPLライセンスです。日本国内の法的にも有効です。
 カスタマーサポートはしたくないし、本業の日程によってはサポートは不可能だからです。これまで製品を販売したことはありますが、カスハラ対応は非生産的で無駄。よかれと思って安く提供しても勉強も努力もしない輩に荒らされるのは私に何のメリットもありません。ここしばらく何も販売していなかったのはここにあります。
 今作っている Art-Net 切替&パッチマシンは価値を感じてくれる人が少なからずいると思いますので広く提供する前提で考えていますが、商売として成立する価格にしたら高価になりそうですし、かといって同業者のよしみで安価にしたらサポートで私のメンタルが潰れます。そんならGPLライセンスにしようってことです。話をわかってくれる知人には完成試作品を試してもらいますし、専用基板は「部品」として安価に販売しますけど。RaspberryPiをコマンドラインで使え、gccでコンパイル出来、PICマイコンのIDEが使えて書き込みが出来、専用基板の回路図を読める人には難しくない工作です。
 自分が欲しい物を自分のために作るのが前提ですから、購買者は神だと勘違いしたアホのことなど知ったことではありません。こんな悪意と嫌味と皮肉を垂れ流すほどカスハラで嫌な思いをしたのですが、知識と技能を持った人なら組める情報と専用部品を提供するので勘弁してください。
 まだ「絵に描いた餅」ですけど(笑

#ガチ工作 #[Art-Net] #器具の製作
Icon of admin
 DMX の受信処理をするにあたって必要且つ面倒なのがタイムアウト。規格では1秒間更新が無ければ送信がされていないと判断します。
 ユニバースが1つのレガシーDMXの装置なら監視するタイムスタンプは一つですからそれほどの負荷ではありませんが、ArtDMX を大量にバッファする機構ではどうするか。
 アイデアですが、受信してバッファされている全ての ArtDMX は監視しません。最新値だけ評価すればいいのですからインデックスを覗きます。送信元のインデックスのタイムスタンプでタイムアウトを確認し、登録されている送信元なら無送信のフラグを立てユニバースのインデックスを消去し、登録されていない送信元ならぶら下がるユニバースのインエックスと共に消去します。この後、送信元のチェックで消去されていないユニバースのタイムアウトをチェックします。最後に送信元とユニバースのインデックスをソートします。
 タイムアウトは例外処理の一種ですから、どのようなメッセージを出すか、スロットの一覧表示をしていた際にどのような挙動にするか、カレントの送信元としてバスにリレーしていた場合にどうするか、この辺りはあらかじめ決めておいた方がよさそうです。

#[Art-Net]
Icon of admin
 現場への移動が長かったので Art-Net 切替&パッチマシンのアイデアを AI の Gemini さんに投げてみました。
 受信は socket で行いますが、受信したデータ(バイナリ)、受信日時、送信元のIPアドレスとMACアドレス、ユニバース番号を mmap を使ったループバッファでとにかく保存します。約2秒分の最大数を構造体配列に保存します。コンソール8台、それぞれユニバース16(使うのは8ですが、使いたいユニバースを取り溢したくないで多めに監視して16とします)、2秒分ですから88フレーム、1フレームあたり600バイトくらいとするなら6MBくらいです。PICマイコンなら厳しいですが、RaspberryPi なら楽勝です。ただし、mmap を OS がスワップ領域に移動すると困るので mlock などでメモリに常駐させる設定は必要です。受信順に保存するだけでは後処理で探しにくいのでインテックスも作ります。送信元とそこにぶら下がるユニバースやデータを階層で表し、ループバッファから目的のデータを最短手順で取り出せるようにします。データベース Access のクエリやリレーショナルデータベースの1対n関係などの参照構造を作っておくイメージです。受信データから送信元を、送信元から受信データを参照しやすくするのです。
 あとは、受信、送信、エフェクト、表示、操作をプロセスやスレッドで分割するワケですが、これらはそれぞれ勝手に動作するようにします。どこかがどこかへ指示を送って返り値を得る構造ですとタイミングの管理が難しい。設定書を書き換えるだけでコール・アンド・レスポンスは使わないのです。装置はデータを加工しながら一方向に流す機構ですから、それをそのままに素直に形にすればいいのです。ユーザーは流れているデータを覗き見たり流れ方を変更しますが、覗くのは加工の邪魔をしない隙間で読み出すだけですし、設定書は書き換えて適切な場所に置いておけば加工する側が勝手に読むのでいいのです。mmap の読み書きは衝突の可能性がありますが flock をかければ事足りると思われます。
 といったことを Gemini さんに投げたのですが「よいんでない?」とのこと。ただ、AI はユーザーを認めて誉める言葉が多い。「だっせーこと言ってんじゃねーよ」的な言葉があってもいいと思う。

#[Art-Net]

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

Icon of admin
 Art-Net 切替器もパッチも基本的に同じ物として考えています。

 基本構成は受信部と送信部があり、間に値を加工するエフェクターを挟みます。
 内部は8ユニバースとし、これらをバスと呼称します。
 ミキサーというかマージは一番若いバスのみ一般照明向けとしてHTPで考えています。演出操作用ではなく小型サブ卓による作業灯や非常灯用と割り切り、レガシーDMXの入力を1本だけマージするかもしれません(エキストラマージ)。

 受信部はIPアドレスやMACアドレスで送信元を選択し、Art-Net ユニバースをバスに渡します。切替器の実体はここです。
 エフェクターとはバスの値を加工します。エキストラマージ、パッチ、プロファイルカーブ、ディレイなどはエフェクターとして扱います。ここで何もしなければ単なる切替器です。
 送信部はバスの値を Art-Net で送信します。

 RDM には対応しません。
 複数のコンソールを設置する環境ならば切替器から見てフィクスチャー側に RDM コンソールを繋いだ方が良いと思うからです。

#[Art-Net]
Icon of admin
 現場が早く終わって空き時間。とは言っても中途半端な時間なので Art-Net の算数を少々。
 切替器やパッチマシンを作るとしてコンソールは何台まで接続可能なのか?です。

 今時の EtherNet の通信スペックは 1Gbps が一般的ですが、ケーブルやハブなどに古い物を使ってしまうと 100Mbps になることもあるでしょうし wi-fi を使うと 20Mbpsくらいまで下がる可能性があります。仮に 20Mbps としてコンソールを何台使えるか考えてみます。

 ArtDMXのパケットは530バイトです。EtherNetの諸々のデータが貼り付いても600バイトくらい見ておけばいいかな。
 EhterNetは1バイト送るのに10ビット必要です。
 DMX512の送信レートは最大で44fpsくらいです。
 となると、1ユニバース送るのに1秒間に 264kbps くらいの通信速度が最低必要です。DMX512の 250kbps より少し多いですがこんなもんでしょう。

 単純に 20Mbps を 264kpbs で割ると 75.757・・・です。Art-Net上に 75 ユニバース存在可能となります。各コンソールから8ユニバース送り出すならコンソールは9台まで不可能ではないとなります。
 今のイメージはコンソール8台、合計 64ユニバースですから収まっています。

 あとは RaspberryPi の処理能力が足りるかどうかです。
 44fps/64ユニバースなら1パケットあたりに許される処理時間は 355usec(0.000355秒) です。以前試作した際は1パケットの処理に150から250usec程度かかっていましたので一応収まります。
 先日 AI の Gemini さんとお話をしていたらCPUコアの割り当てや占有の方法がわかったのですが、上記の時間はOSの処理も含めて1つのCPUコアで処理しての値ですから、Art-Netで占有できるCPUコアを設定出来ればもう少し軽くなるかな?
 主な処理を書いて1ユニバースあたりの処理時間を計測して最大コンソール数を決めることにしましょう。現実の現場ではバックアップを入れても仕込まれるコンソールは4台くらいでしょうから大丈夫な気はしています。
 つか、8台並べてテストする環境を作るのが大変かな?〇ッシュシステムの〇山さんに相談ですね(笑

#[Art-Net]
Icon of admin
 ちょっと忙しい1月です。
 仕事があるのは喜ばしいことですが、妄想は出来ても工作の実作業は出来ません。設計という名の妄想をキッチリやらないといけませんのである意味いいのですけどね。
 最近の妄想はGoogle検索よりもAIさんたちに聞くことで進めることが多くなりました。AIさんから結論をもらうというより代わりに検索してもらってレポートを頂戴する感じです。
 そんなやりとりの中で「C言語は高級アセンブリ言語である」という言葉がありました。ハードウェアを隠蔽してサービスに特化するいわゆる高級言語ではなく、ハードウェアに依存しないアセンブラ言語を示すってことらしいです。自分はハードウェアを動かすことに趣向が向いています。自分のベースはPIC16のアセンブラですが、書いているウチに「C言語はCPUにごとに違うアセンブラを汎用化して書きやすくしたモノだと思えば自分にとって自然だな」と感じていたので妙に納得した言葉です。
 何をしたいかによるので「C言語が絶対正義」とは思いませんが、昨今流行りのプログラム言語の大半はC言語を基礎としてして作られていますので原典とも言える存在です。高級言語を書いているとC言語が見え隠れしますので、C言語を知っていた方が理解し易いように思います。今どきの高級言語はC言語の方言と言ってもいいのかもしれません。自分はPIC16アセンブラの後にPython3に行ったのですが、むしろPythonだけを見て煮詰まったことがC言語を習得することで解決したように思います。高級言語とはC言語を楽に使うためのマクロ言語と捉えることが自然な気すらします。FORTRAN・COBOL・BASICなどのC言語と同時期に研究・開発された高級言語は少し違う感じがしますが、今主流の開発言語の大半はC言語の方言なのでしょう。
 私のように「物理的な装置を作ること」に趣向を持つ方は少ないと思いますが、コンピュータはマシンコードで動くのですから、マシンコードを汎用的に表現するC言語はハードウェアを直接動かす存在なのでしょう。名前が似通ったC++やC#(C++++)はそれとは違った感じがしますけど。

#C言語
Icon of admin
 不調のムービングライトを検査したところステッピングモーターに電圧がかかっていない様子。ステッピングモーターは電圧がかかっていれば保持力が強く指では回せませんから、それが軽く回るならば電圧がかかっていないと予想できます。基板からモーターまでの配線は正常に導通しており、別なドライバ回路に差し替えると動きますからモーター自体は生きている様子です。となると、制御基板に何か障害があるのでしょう。ドライバICに制御マイコンから間違った信号(ディセーブル信号など)が行っているかドライバICが飛んでいると思われます。これまで動いていたのですからドライバICが飛んでいるのが濃厚でしょう。
 ドライバICの検査は大変なので交換してみます。SS8841Tと刻印があり、中華電機にありました。1個200円くらいです。表面実装のICですから外すのも付けるのも難しいのですがなんとかなるっしょ。
 ドライバICは今月末の入荷予定です。

#器具の修理
Icon of admin
 ホール増員でしたが操作盤の置物でしたので Art-Net の装置を作るための情報整理をやってました。情報量が多いので終わってませんが、これまでに実験したこと、AIさんたちに聞いたことなどです。
 ソースコードも大切ですが、今日はOSのセッティングについてです。Art-Net を扱うのに不要なこと、つまりはOSから無駄を省きたいのです。
 まずは Art-Net は IPv4 を用いますので IPv6 は不要です。
 NIC は Art-Net の IN/OUT と作業用の3つを使いますが、Art-Net の IN/OUT 側は Art-Net 以外の通信をしないようにした方が良さそうです。
 これらのセッティングをしてからプログラミングを進める方針です。
 また、RaspberryPi の CPU にはコアが4つありますが、このウチの2つか3つを Art-Net にのみ割り振ろうと思います。こんなことが出来るんだと驚きましたが、出来るみたいですね。
 土台をキチンと作って処理に「待ち」を持たせないようにしたいものです。

#[Art-Net] #器具の製作
Icon of admin
 開発のアイデアをまとめるのにGeminiさんとお話してました。
 正直なところChatGPTさんより面白い。木工・金属加工・回路設計・半田付け・プログラム書きが大好きな開発中毒者の斜め上の痛すぎるジョークにもウィットに返してくれる。AIすげーと思った。
 C言語の存在理由にすごく面白い話が出来た。何が面白かったかを共有できる「人」は皆無ですし痛すぎるのでここには書きません。

#雑記 #AI
Icon of admin
 TourZCAM/ETZという防滴のLEDスポットを使っています。この手ではかなり初期の製品ですが、使い勝手が良く便利です。
 ですが不動品が出てきました。経年で動作しなくなる場合は電源に起因することが多く、電源モジュールを交換すればいいのですが、全く同じ電源モジュール(OBM-U65S24)は中華電機(Aliexpress)にありません。近しい物でもいいのですが、やたらと小型というか筐体スペースが狭いために入る物がありません。
 調べたところ、英国のサウンドハウスみたいなお店で取り扱いはありますが、送料を加えると1個1万円を超える価格。これは高い。
 中華電機(Aliexpress)の従妹みたいなTaobaoと呼ばれるポータルサイトにありました。75元(1,680円程度2026/1現在)です。送料も37元(878円程度2026/1現在)とのことですからアリです。PayPalが使えないことは残念ですケド。
 ところが、サイトの言語が中文のみなのでブラウザの翻訳機能を使っても登録手順がイマイチわからず右往左往してる内に1日のログイン試行回数を越してしまい今日のところは発注まで至らず。アカウント登録は出来ているみたいなので明日再挑戦です。

追記
 Taobaoは使い方がイマイチわかりませんでした。
 少しお値段は高くなりましたが、yoycart.comに依頼しました。5個で110USD(送料含む)くらい。EU方面よりは安いみたいだからいいかな。

#雑記
Icon of admin
 珍しく年末年始休みですが、いざとなると暇すぎ。
 ならばとAIのGeminiさんと会話。Art-Net機器の開発に関してです。ぶっちゃけChatGPTより頼もしい回答。色々解決しました。

#[Art-Net] #C言語
Icon of admin
 新年明けましておめでとうございます
 本年もボチボチよろしくお願いします。

#雑談