2022年3月1日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 Art-Netパッチにはミキサー機能も入れたいような。
 将来的にレガシーDMX512も取り付けるならあると便利ですし、Art-Netはローレベルでミキサーを構成しやすいのがわかったからです。
 見える機能にしないまでも、内部的には可能な様に作っておけばいいのかなと。

 機能の大枠はミキサー、パッチ、ディレイ、カーブプロファイル、リミッタまたはコンプレッション、ライン(固定値・いわゆる直)で検討を進めています。
 設定項目を多くし過ぎると凡ミスの原因になりますので現実的な線で考えたいですが・・・

 用語ですが、DMXの内部系統をラインと呼ぶと混乱するのでルート(route)と呼ぶことにします。

#[Art-Net]
Icon of admin
 客席テーブルは天板に塗布したポリエステル樹脂の強度・耐久試験をしています。
 音響のアンプが入ったゴム足付きのラックケースを載せているだけですが、以前の塗装では調光卓を2-3日載せたらゴム足の形に凹んでしまったので重要な試験です。
 今のところ、半日経過しても凹む様子はありません。明日は重量を増やしてみましょう。3-4日そのままにして大丈夫ならOKとします。

 全体の結論が出るまで加工や塗装が出来なかった部分の仕上げは残っていますが、軽量化を図りつつあと2-3台作りたいです。

#ガチ工作
Icon of admin
 ユニバース単位の試験的な物ですがDelayが出来ました。精度はともかく遅れます。
 ただ、卓の更新頻度による問題発生。
 MAdot2は値が変化しているときの更新頻度が1/30秒くらいですが、値の変化が無いときの更新頻度は1/10秒くらいです。卓としては間違っていない動作ですが、この違いのためにカットチェンジとフェードチェンジではDelayタイムが見た目で違ってしまいます。1/30なら0.033秒、1/10なら0.1秒の潜在的な遅れが処理のキータイムになってしまうからです。
 こうなると入力を遅らせるのではなく出力を遅らせないといけないのかな?スロット単位にDelayをかけたいけど出力側のユニバース単位が現実的かなぁ~。

 ・・・考えを進めてみました。
 今は受信のタイミングでデータをスタックしていますが、一定時間でスタックをしたらどうか。
 DMX512は最大1/44秒毎くらいですが、1/100秒毎くらいで最後に受信したデータをスタックしていくのです。タイミングとピッチが違う情報をサンプリングの頻度を上げることで整えて滑らかにします。また、スタックの時間間隔が一定なら日時情報をスタックせずに済みますし、ソート並みに重い近似値抽出も不要です。
 スタックが多くなっても処理全体が軽くなるならアリかも。

#Python #[Art-Net]

2022年3月2日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 客席テーブルに塗布したポリエステル樹脂はよさげです。
 YAMAHAのPC2002を1台と7.5kgの砂袋を2個乗せて丸1日様子をみましたが、ラックケースのゴム足の汚れが移るくらいで変化はありません。汚れは雑巾で拭けば落ちます。
 爪で掻くと薄い線が付きますので鉄板やデコラ板より柔らかいのですが、ラッカーなどの1液式塗料に比べたら圧倒的に丈夫です。ポリエステル樹脂は造形に使う物で、塗料は装飾性を上げたり風化を抑える物ですから機械強度が違って当然ですけど。

 あとは、ボールロックピンの紛失防止ワイヤーの固定と脚を収納する受けの塗装です。
 脚は塗装をし直したい感じもあります。溶接によって寸法が狂ったところがあるのですが、補正をすると塗料が剥げるので、どうせなら防錆(「必殺錆封じ」という防錆剤の塗布)からやり直したいかも。

 ちょいと忙しくなってきた本業を片付けつつ最終仕上げまでやってしまいたい。

#ガチ工作

2022年3月3日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 Art-Netの入力の扱いについて考えを進めています。

 受信の更新頻度に合わせた処理ではフリッカーが発生することが確定。送られてくる頻度が変化するために起こることですが、根本的に何か変えないと解決しません。
 対策は、十分に早い頻度で入力をサンプリングし、内部処理を整えて値の変化を滑らかにすることです。
 例えば、1/30秒の頻度から1/10秒の頻度を見たとき、更新が1/3回と見るのではなく、3回同じデータが送られているとみるべきなのです。

 DMX512の規格を読み解くと更新頻度は1秒~1/44秒の範囲になりますが、更新頻度の違いによるフリッカーを防止するには1/44秒よりも短い頻度でサンプリングすることが肝のようです。
 短ければ短いほど安定すると思われますが、実際に作って落としどころを見つけましょう。

#[Art-Net]
Icon of admin
 客席テーブルのポリエステル樹脂は大丈夫でしょう。
 先日「爪で掻くと薄い線が付く」と書きましたが、ポリエステル樹脂が削れるのではなく、爪が僅かに削れて痕が残るようです。
 シリコンオフで拭くと取れますので、チョークで書いた様なものでしょうか。

#ガチ工作
Icon of admin
 Art-Netは受信したデータのスタックの仕方を変えてうまくいきました。
 約1/100秒毎でスタックし、1/40秒毎で出力しています。
 試験的な処理ですが、Delayもユニバース単位で綺麗に動きます。
 Art-Netの送受信の試験製作はこれにて終了。

 ただ、テストで使っていた中華電器のArt-Netデコーダが不良品でした。
 8アウトの製品ですが、普通に使うとDMXポートが1つしか信号を出さない。
 組み合わせを吟味すると半分の4ポートは出力されますが、マニュアル通りに使って正しく動かないのでは現場じゃ使えません。
 届いた時にMAdot2でテストしてちゃんと動いたような気がするのですが・・・

 Art-Netのデコーダは市販品もありますが、RaspberryPiでここまで出来てしまうと自作した方が圧倒的に安い。市販品の国内価格は7-8万円ですが、材料費だけなら2万もしません。
 レガシーDMXのインターフェースは基板から自作になりますが、PICマイコンでSPIからDMXにプロトコル変換するだけなのでそれほど難しくないハズ。パッチマシンとしてまとめる際には必要ですから作ってしまいましょう。

#RaspberryPi #[Art-Net]

2022年3月4日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 レガシーDMX512の出力インターフェースを作るには少し工夫が必要です。
 RaspberryPiでもPICでも使えるインターフェースで十分な速度を持つのはSPIです。I2Cは便利ですがPICが最大400kbpsなので1ユニバースしか扱えません。
 かといって、高速のSPIで複数のPICで扱うのはかなり難しい。解決するにはロジックICを用いた分岐回路を用いるのが良さそうですが、ICが5個くらい必要なので実装面積に問題があります。
 ならばGALを使うのはどうかと。FPGAやCPLDの祖先であり、今回の構成に丁度良いスペックです。何と言っても安い。
 ただし、GALはすでに過去の物で開発は終わっています。決して多くないニーズに応えて生産されているだけですし、開発ソフトウェアも正規対応がWindowsXP止まり。
 されど、10個未満のTTL-ICで組む様な事を1個で組めるのは便利ですし、数十MHzまで対応するので、RaspberryPiなどのLinux系小型マイコンの外付け回路を組むには丁度良いと思います。
 便利そうですが微妙なので導入を控えていましたが、改めて調べたところ書き込み装置などの開発用品が安くなっていたので、この際環境を整えてみましょう。
 RaspberryPiとPICとGALを組み合わせれば製品が作りやすくなるような気がします。

#電子工作

2022年3月5日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 本日は久しぶりの現地照明。現場って感じでホッとします。

 実機での研究や試験は出来ませんが、アイデアが出てきたら整理しています。今日出てきたアイデアはArt-Netの受信に関するものです。
 Art-Netは複数の送信機を同じネットワークに接続することが出来ます。正しくはないけど間違ってもいない使い方ですが、期待してない挙動が起こっても面白くないので対応しといた方が良さそう。
 socketによる受信からはデータと送信元アドレスを取り出せますから、送信元アドレスをキーにデータを仕分けます。採用するデータは送信元を一つに限るのが道理な気もしますが、同じユニバース・スロットの最大値を採用したらHTPのミキサーになってしまいます。
 ミキサーは欲しい機能ですが、バカよけを施した副産物でミキサーになりそう。

#[Art-Net]
Icon of admin
 オレメモ

 Pythonのsocket.recvfromでタイムアウト処理をする。

 socketのインスタンスをsockとした場合、sock.recvfromの前に

 sock.settimeout(<タイムアウトの秒数>)

 とする。

 sock.recvfrom(<バッファ数>) を try: で実行し、except socket.timeout: でタイムアウトエラーを拾う。

#Python
Icon of admin
 実機を離れて考えを進めると抜けが見えてきます。
 一つ前のオレメモはArt-Netを受信していないときの対策です。タイムアウトを設定しませんと延々と待つだけの無限ループになり、適切な終了すら出来なくなります。一定時間受信が無いならそれをユーザーに伝えることも大切な処理です。
 その前の送信元が複数になった時の対策もそうです。ミキサー機能が無いと謳っても複数の接続をする人が居ないとも限りませんし、そんな人に限って勝手な想像通りに動かないと作った奴が悪いとかダメな製品だとかレッテルを貼ってくるものです。この件については副産物としてミキサー機能に至れそうな可能性が見えましたので「災い転じて何とやら」ですが、先入観を排除して可能性を熟慮することの大切さを改めて痛感です。

 受信処理は試行錯誤しながらディレイを可能にしたことでソースコードが読みにくくなってきましたので、タイムアウトと複数の送信元への対応を加えながら読みやすく書き直しです。
 パラメータが増えてくると変数の命名に配慮するだけでも読みやすさが違ってきますので、この辺りも含めてよく考えていきます。

 ここまでやってきて、思った以上に受信処理が大切なことに驚いています。
 ミキサーしかり、ディレイしかり、思い描いている機能の大半が受信直後の処理にかかっていたとは当初は全く思いもしませんでした。
 この辺りは所詮アマチュアの所業でありますが、まだまだ修行です。

#Python #[Art-Net]
Icon of admin
 オレメモ

 ● Art-Netの受信の準備でするべきこと。

  ・受信のタイムアウトを定義し、タイムアウトを例外としてキチンと処理する。

 ● Art-Netを受信したらするべきこと。

  ・受信した「Art-Netのバイナリデータ」に「いつ」「どこからか(送信元)」を絡めて受信データとする。
  ・ユニバースと内部ルートの対照データを基に、データの参照キーを「ユニバース」から「ルート」に変換してキャッシュする。
  ・「いつ」をキーに送信元からの送信が無くなったと見なせるならキャッシュも含め送信元情報を消去する。
  ・「いつ」をキーにキャッシュの有効期限が切れたならキャッシュのレベル値をすべてゼロにする。
  ・送信元ごとのキャッシュをルートで丸めて一意のキャッシュにする。

#[Art-Net]

2022年3月6日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 オレメモ

 受信時に得られるArt-Netの情報
 ・Art-Netパケットのバイナリデータ
 ・送信元IPv4アドレス
 ・受信日時

 指示データ
 ・ユニバースとルートの対照マップ

 受信処理のアウトプット
 ・ルートで仕訳けた直近の受信値(直近値)

 処理の第一段階
 ・バイナリデータのデコード
 ・インデックスをユニバースからルートへ変換

 処理の第二段階
 ・送信元を有効期限でフィルタ出来るキャッシュ
 ・送信元ごとに、デコードしたデータを有効期限でフィルタ出来るキャッシュ

 処理の第三段階
 ・送信元を有効期限でフィルタ(送信元が期限切れなら受信データもクリア)
 ・受信データを有効期限でフィルタ

 処理の第四段階
 ・送信元ごとの受信データを一つにまとめ、ルート単位の直近値とする(実質ミックス処理)

 処理の第五段階
 ・直近値を次に渡す

#[Art-Net]

2022年3月7日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 RaspberryPiからレガシーDMXを出力する方法を妄想しています。
 直接出すのは無理があります。UARTはありますが、2系統出すのが関の山。BreakTimeも出しにくい。
 ならば、RaspberryPiからはSPIで出力し、PICで250kbpsのUARTに変換するのがいいかなと。

 RaspberryPiからCS(チップセレクト)を使ってPICを選択するのがノーマルな方法ですが、レガシーDMXを出来る限り数多くだすには効率が悪い。SPIを休みなく送りつけたらPICは処理しきれませんので1ワード毎に休み時間を入れないといけない。また、PIC1個毎に一気にデータを送り付けるにはPICがデータをキャッシュ出来なければなりませんが、512バイト以上のメモリを持ったPICは選択肢が少なくピン数も多い。
 しかるに、SPIを普通に使ったら2系統扱うのが限界だと思われます。

 で、考えた方法が、複数のPIC(レガシーDMX1系統に付き1個使用)がRaspberryPiから1個に見える方法です。
 RaspberryPiからは複数のユニバースのデータを適切に並べ替えて一気に送出します。RaspberryPiにとっては一番ストレスが無い方法です。
 もちろんPICはこれを捌くことが出来ませんから、RaspberryPiとPICの間に仕掛けを入れます。

 SPIはクロック同期型の送信方法ですからデータ線の他にクロック線があります。受信はクロックによって実行されますので、CSがアクティブでも、データ線に変化があっても、クロックが伴わなければ何も起こりません。通常ならCSを用いて受信先を決定しますが、クロックの出力先を仕分けても同じことです。
 送信が始まって1から8カウントの間は1番目のPICへSPIのクロックを送り、9から16カウントの間は2番目のPICへSPIのクロックを送り・・・以下末番のPICまで繰り返します。RaspberryPiから送信があっても、クロックが行かない受信器にとってはワードとワードの間の休み時間でしかありません。
 これなら、送信するRaspberryPiからはPIC達が1個に見え、受信するPIC達には自分宛のデータがだけが届きます。RaspberryPiが休みなく送信してもPIC側は他が受信している間に処理を進められますし、RaspberryPiの送信タイミングが適切であれば受信したSPIのデータをUARTに渡すだけでPIC内でのスタックは不要です。ピン数が少ないPIC12F1822でも対応可能ということ。

 これを実現するクロックの仕分けは汎用ロジックICで行います。
 バイナリカウンタ74HC4040
 3to8 ラインデコーダ TC74HC138
 この二つです。
 数日前はGALを使おうかと思ったのですが、16ピンの汎用ロジック2個で可能ならこちらの方がいいかと。ファームウェア書かなくていいし、安いし、30年以上確実に動くし。

 バイナリカウンタはクロックをカウントして2進数相当の出力をするICです。これにSPIクロックを入力し、下から4~6bit目の出力を使います。SPIクロックの8倍周期でカウントされる3bitのバイナリと見なせます。
 8倍周期の3bitのバイナリをラインデコーダに入れます。ラインデコーダは入力された3bitのバイナリに相当するピンだけ出力します。このデコーダにSPIのクロックも入れれば8カウント毎に送り先が切り替わるクロックが出力されます。
 SPIのモードは74HC4040の特性に合わせてmode3がよいと思われます。

 文章で伝わりにくいのは承知していますが、アイデアがまとまってスッキリした。
 オレメモってことで。

 整理しきらないとモヤモヤして本業が手に付かなかったので回路図を描いてみました。気分スッキリ。
 折角なので揚げてみました。
 クリックして表示されるモノはぼやけてしまいますので、回路を追いたい方はサムネのリンク先の画像本体をダウンロードして見てください。
20220307150548-admin.jpg
 追記
 回路図に間違い発見!
 74HC4040のCLKにはSPI_CLKが入らないといけません。
 74HC4040から74HC138のA,B,Cに行くのもQ4,Q5,Q6です。なら74HC4020でもいいな。
 データは手直ししましたが、ここに再アップするのは面倒。まぁいいか。

 さらに追記
 クロックカウントの考え方が根本的に間違っているような気が・・・74HC4040(4020)のカウントの進み方がズレてね?最初のビットをサンプリングする前に1カウントされてしまうぞ。
 ならばSPIをmode0で使えばいいか?mode0ならアイドル・ローだから74HC138ではなく74HC238か?
 考え直し。

#電子工作 #RaspberryPi

2022年3月8日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 妄想は続けておりますが、本業がそれなりに忙しくなってきました。
 現場の日程はそうでもないのですが、「やっぱり開催しよう」的な話が多く準備期間が短い。時間が無いだけならまだいいですが、主催者も混乱しているのが必要が情報がなかなか来ない。知らないウチに話が変わっているなんてこともザラ。前もって大枠はまとめておくとしても、直前に手直しやり直しになるならギリギリまで寝かせても同じこと。「夏休みの宿題は始業式の前の日から」状態です。
 そんな渦中の気分転換が工作ってのもおかしな人だと思いますが、趣味趣向は人それぞれってことで。
 反動でアイデアが出まくるのは嬉しいやら困るやら・・・

#日常
Icon of admin
 RaspberryPiでレガシーDMXを送出する装置のクロック切替器の回路図を訂正しました。
 細かい誤植の訂正とロジックICの変更です。
20220308175658-admin.jpg
#電子工作
Icon of admin
 オレメモ

 RaspberryPiのSPIバッファサイズ

 ※出展:「RasPi 3B+ で最新の spidev_test を使う」

--------

 現在の最大転送サイズを確認
 $ cat /sys/module/spidev/parameters/bufsiz
 4096 (byte)

 これが固定値で変更不可といった書き込みが少なくありませんが変更可能です。
 変更するには、/boot/cmdline.txt に下記変数を追加。

 spidev.bufsiz=<サイズ数値>

 拡大可能なサイズ
 4096: OK (デフォルト)
 16384: OK
 65536: OK
 1048576: OK (1MB)
 4194304: OK (4MB) ⇒ 最大値 (これ以上を設定しても拡大しない)

--------

 RaspberryPi4Bも同様だと思いますが、実機で確認してみましょう。
 DMX512を8系統出そうと思っていますが、StartCodeやBreakTimeもSPIで送出するので4096バイトでは不足です。

 試したところOKでした。
 変更するファイルは/boot/cmdline.txtであって/boot/config.txtではありません。
 開くと1行にいろいろなコマンドが書いてあります。このコマンド列の末尾に空白を入れてspidev.bufsiz=<サイズ数値>を記述します。

#RaspberryPi

2022年3月9日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 SPIでレガシーDMXを出力する回路の基本要素は揃いました。PICをプログラムして実験する段階です。
 本業が忙しくなってしまったので棚上げですが、PICの基本設計は進めましょう。
 PICは12F1822を使います。PIC12とありますが、PIC16系の8ピン版と思っていい製品です。

 ピンアサインは次の通りです。
 拡張ミッドレンジPICにはモジュールのアサインピンをある程度切り替えられる機能があります。
 TRISとはI/Oピンの入出力方向を設定する要素です。

  VDD
  VSS(GND)
  RA0 TX_Pilot_LED TRIS-OUTPUT(汎用I/Oとして使い、送信が行われるとLEDを点灯させます)
  RA1 SPI.SCK TRIS-INPUT
  RA2 SPI.SDI TRIS-INPUT
  RA3 DMX.RESET TRIS-INPUT
  RA4 USART.TX TRIS-OUTPUT(ただし、BreakTimeを作るためにINPUTにすることがあります)
  RA5 CSC1 TRIS-INPUT(クロックの設定は優先順位が高いので、TRISはどちらでも機能します)

 これには隠れたコツがあります。
 SPIを使うならSPI.SDOがあります。使わないI/Oですがどこかにアサインしなければなりませんので、USART.TXと同じRA4にアサインします。被って出力がおかしくなりそうですが、SPIよりも優先順位が高いUSART.TXが出力されますから大丈夫。逆だったら困りましたけどね。

 クロック発信子にはクリスタルオシレータ(8MHz)SG-8002DC(3.3V)を使います。普段はPIC1個に対し水晶発振子を1個使うのですが、今回は同じクロックレートで動く複数のPICを1枚の基板に載せますので、部品点数を減らす意味も含めてこれを使います。PICのI/Oピンも減るし。

#電子工作
Icon of admin
 PICでDMX512を出力する際、面倒なのがBreakTimeです。
 一般的なUARTでDMX512の様に長いBreakTimeが使われることは無いためか、PICにはそのような機能がありません。何らかのチカラ技で作らないといけません。

 私が最終的にたどり着いた方法は、

1)USARTが出力されるI/Oピンをプルダウンしてアイドル・ローにしておく。

2)BreakTimeは0x00の空送信で作る。ただし、0x00送信でもStopBit(H)が発生するので、以下(3)の方法で消す。

3)BreakTimeの空送信が始まってからStopBitが始まるまでの間(Lが続く間)にTRIS(I/Oピンの入出力方向を決めるフラグ)を入力に切り替える。入力にするとI/Oピンがハイインピーダンス(Z)になり、プルダウンされているためRS485ドライバに届く信号はLを維持する。

4)BreakTimeの時間に相当する空送信する。

5)BreakTimeの終わりというか次のフレームの送信開始前に0x00を送信してTRISを出力に切り替える。0x00送信のStopBitがMarkAfterBreakとなる。ただ、MarkAfterBreakは少し長い方が安定するので、0xCO(b11000000)などのMSB詰めの数値を使ってMarkAfterBreakを長くしてもいい。

 といった内容です。
 これならタイマー処理をせずにBreakTimeを作れます。

 BreakTimeを表すデータをBreakTimeZero、BreakTimeZeroの始まりのバイトをBreakTimeNose、最後をBreakTimeTailと勝手に呼んでますが、RaspberryPiからのSPIデータをBreakTimeTailから始まるモノにしておけばPIC側の処理は凄く簡単です。

0)RaspberryPiからRESET信号(実際にはCSを用いる)をPICに送り、PICはこれを見て送信カウンタをクリアしてUSART.TXピンのTRISを入力に切り替えておく。アイドル・ロー。

1)SPIの最初のバイト(BreakTimeTail)を受信したら、USARTに渡して送信し、3bit分待ってからUSART.TXピンのTRISを出力に切り替える。以下、受信値を1バイト送信するごとに送信カウンタをインクリメントする。

2)512スロットを送信した後のバイトはBreakTimeNoseになる。ただ、PICのUSARTは1ワード分のキャッシュを持っているので、BreakTimeZeroの2バイト目をUSARTに渡した後(BreakTimeNoseが送信開始された後)、3bit分待ってからTRISを入力に切り替えてBrakTimeとする。送信制御は送信カウンタを用いる。

3)以下、SPIのデータが終了(RaspberryPiからのCSで確認)したら、送信カウンタをクリアしてSPIを受信待機にする。=>(1)に戻る。

4)BreakTimeZeroを送信する前にSPIが終わってしまったらエラー。TRISを入力に切り替えてBrakTimeにしておくなど、エラー処理を行う。

5)TRISの切り替えの前に3bit分待つのは、次の送信バイトの受け入れがStopBit中に可能になるからです。

 こんな感じかな。

#電子工作
Icon of admin
 Art-Netを受信した後、送信元別だった受信値をミックス(HTP)する方法。

 numpy.maxを用いれば簡単

 受信値を3次元のnumpy.arrayで保存します。
 3次元のnumpy.arrayはエクセルでイメージするとわかりやすいかなと。

 1スロットの受信値は0-255の数値で、これが横方向(行)に512個並んだ状態をユニバースとします。
 これをルート別に縦方向(列)で並べます。ここまでは縦横の1枚のシートです。
 この1枚を送信元別のシートとし、レイヤーとして重ねます。もちろん、スロットアドレスとルートは同様にします。

 あとはレイヤーを串刺しで最大値を得ればHTPでミックスしたルートとスロットの2次元のnumpu.arrayを得られます。

 numpyをnpの名前でimportし、3次元のnumpy.arrayをan_cache_senders_route、最大値の2次元のnumpy.arrayをan_cache_htpとすると次の様になります。

an_cache_htp = np.max( an_cache_senders_route, axis=0 )

 こんな感じの1行で計算出来ます。axis=0は最大値を得る次元方向の指示です。3次元なら、axis=2は横で、axis=1は縦で、axis=0は奥行という指示です。


 以下、ちょいとオレメモ

 受信値、付随するデータ

an_bytes          受信したArt-Netパケットのデータ(type=bytes、別途デコード必要)
an_sender_ipaddress    受信したArt-Netパケットの送信元IPアドレス(type=string、4つのドット切り10進数 IPv4の一般的な表記)
an_received_datetime    受信された時点でdatetime.datetime.now()により取得した日時(type=datetime.datetime)

 処理の処理を指示するデータ

an_universes2route     対象ユニバースの1次元配列           ( Net, Subnet, Universe )[ ルート ]

 受信値を処理、管理するデータ

an_ipaddress_senders    送信元のIPアドレスの1次元配列         IPアドレス [ 送信元 ]
an_datetime_senders    送信元ごとの最終受信日時の1次元配列      最終受信日時 [ 送信元 ]
an_datetime_senders_route 送信元ごとにルートの最終受信日時の2次元配列  最終受信日時 [ 送信元, ルート ]
an_cache_senders_route   送信元とルートごとに受信値を保存する3次元配列 受信値 [ 送信元, ルート, スロットアドレス ]
an_cache_htp        次の処理へ渡す処理済み受信値の2次元配列    受信値 [ ルート, スロットアドレス ]
 ※ [ ]内はインデックスの要素([3次元目,2次元目,1次元目])
 ※ 同名のindexは同じ値になるように設定

#an_ipaddress_senders から an_sender_ipaddress と同じIPアドレスを持つ[ 送信元 ]のindex配列を得る
list( zip( *np.where( an_ipaddress_senders == an_sender_ipaddress ) ) )
 ※ 受信した際に重複しない様に送信元情報を保存してインデックスを発行し、送信元別に日時と受信値を保存するために使う。
 ※ ただし、対象のユニバースを送って来ない送信元は無いものとする。早い段階でフィルタしないと後が面倒。

#an_datetime_senders から現在日時より1秒以上前の日時を持つ[ 送信元 ]のindexの配列を得る
list( zip( *np.where( an_datetime_senders < ( datetime.datetime.now() - datetime.timedelta( seconds=1 ) ) ) ) )
 ※ 送信元の存在を確認するために使う。1秒間受信が無い送信元は無いものとする。

#an_datetime_senders_route から現在日時より1秒以上前の日時を持つ[ 送信元, ルート ]のindexの配列を得る
list( zip( *np.where( an_datetime_senders_route < ( datetime.datetime.now() - datetime.timedelta( seconds=1 ) ) ) ) )
 ※ ユニバースの存在を確認するために使う。1秒間受信が無いユニバース(=送信元,ルート)はゼロデータにする。

#Python #[Art-Net]

2022年3月10日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 Art-Netを受信してから一時保存する流れ

● Art-Netの受信・・・タイムアウトしたらすべての受信情報を初期化する

● 受信日時の取得

● 受信したバイナリをデコード

● 対象ユニバースか確認

● ルートIDを取得

● 送信元のIDを取得・新規送信元なら保存し送信元IDを取得

● 送信元の最終受信日時を上書き保存

● 送信元,ルートの最終受信日時を上書き保存

● 送信元,ルートで受信値を上書き保存(必ず512スロットで保存)


 タイムアウト処理・・・0.2~0.5秒毎

● 送信元のタイムアウトを確認・・・タイムアウトしていたら送信元からの受信情報を初期化する

● ユニバースのタイムアウトを確認・・・タイムアウトしていたらユニバースをゼロデータにする


 次工程からの読み出し要求への返信

● 送信元,ルートで保存した受信値から最大値を取り出す

● 返信


 といった感じで、細かいコマンド処理とアルゴリズムが見えてきましたが、本業が忙しくなってソースを書くことが出来ません。

#Python #[Art-Net]  

2022年3月11日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 Art-Netは入口の処理がまとまったので肝心のパッチ処理を考えています。

 パッチとは入口と出口を1対多の関係で結びつける処理です。基本的な考え方は簡単ですがどう処理したものか。
 と、言いますのも、処理の回数が多いので、1回1回の処理を限りなく軽くしないと間に合いません。
 単純に考えればfor文を使ってスロット単位に移し替えをすればいいのですが、これではちょいと遅いようです。
 何か無いかと調べたところnumpyに良い処理方法がありました。

 「ファンシーインデックス」と呼ばれる方法です。

 numpyの配列はインデックスで内容を参照できますが、インデックスに配列を使うことも出来、これを「ファンシーインデックス」と呼ぶようです。
 パッチにおいては、出力側が参照する入口側のスロットのインデックスを配列にして使います(パッチマップ)。

 一番単純な入力1ユニバース-出力1ユニバースを処理するとして、
 入口側の配列が5スロットある場合
input = np.array( [ 11, 22, 30, 44, 50 ] )
 とし、
 これに対するパッチマップを
map = np.array( [ 0, 3, 4, 2, 2, 3, 1 ] )
 とした場合、
patched_values = input[ map ] ※ 内部的には input[ [ 0, 3, 4, 2, 2, 3, 1 ] ] と同意
print( patched_values )
>>> [ 11 44 50 30 30 44 22 ]
 インデックスの基底数がゼロなので注意が必要ですが、mapに記載されたインデックスでinputを参照し、配列としてoutputを得られます。

 入力のスタック(input_stack)が[ delay, route, address ]の3次元配列の場合は、出力側スロット視点で次の3つの配列をインデックスにします。
 delay_index_map:スロットごとのディレイレイヤーのインデックスを表すインデックスの配列 (取り扱いスロット数分・現在のカレントindexからオフセット済み)
 ※ delay_index_map = ( <ディレイレイヤーのスタック数> + <現在のカレントindex> - delay_map ) % <ディレイレイヤーのスタック数>
 in_route_map:入力スロットのルートを表すインデックスの配列 (取り扱いスロット数分)
 in_slot_map:入力スロットのアドレスを表すインデックスの配列 (取り扱いスロット数分)
 ※ in_route_mapとin_slot_mapを合わせてpatch_mapとなる。
 とすると、

patched_values = input_stack[ [ delay_index_map, in_route_map, in_slot_map ] ]

 patched_values は取り扱いスロット数分の1次元配列です。
 ディレイの処理も含めて1行のコマンドで出力値を得られます。素晴らしい。

 ここでスロットデータが1次元配列になるので、ここから先、出力ポートに渡すまではスロットを1本の通し番号で扱った方が良さそう。

 同様の方法でカーブプロファイル変換も出来ます。
 カーブプロファイル(curve_profile_values)を 変換後レベル値[ プロファイルナンバー, 元レベル値 ] 、カーブプロファイルマップ(curve_profile_map)をプロファイルナンバー[ スロットアドレス ]とし、変換した配列を curve_converted_values とすると。

curve_converted_values = curve_profile_values[ curve_profile_map, patched_values ]
 ※ len( curve_profile_map ) == len( patched_values ) がTrueなこと。

 curve_converted_valuesを出力ルートとスロットアドレスの2次元配列にするなら、

output_values = curve_converted_values.reshape( <ルートの本数>, 512 )
 ※ <ルートの本数> × 512 = 取り扱いスロット総数 であること

 コマンドが少ないから処理時間が短いとは限りませんが、少なくともfor文を用いた処理より軽いことは間違いありません。
 numpy素晴らしい。

#Python #[Art-Net]

2022年3月12日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 昨日から3日間、ホール管理の増員です。増員と言っても規定による員数合わせなので実働は毎日30分ほど。
 ヒマっちゃヒマですが、リクエストが突然入ってくるので、頭を全振りする様な事は出来ません。
 そんな時は調べものやお勉強がいい。今日の課題はプリント基板CADのKiCadです。

 KiCadは以前ご紹介しましたが、フリーとは思えないほど良く出来たプリント基板CADです。回路図作成、基板デザイン、ガーバーデーターの出力まで一貫して作業出来ます。
 プリント基板の製造を外注し始めた頃は手ごろなプリント基板CADが無かったのでp板.comさんのCADLUS-Xを使っていましたが、p板.comさんを含めプリント基板屋さんならどこでもガーバーデーターで受け付けてくれますので、KiCadに移行しようと勉強中なワケです。

#電子工作
Icon of admin
 KiCadの習作としてSPI-DMXの回路図を書いてみました。
20220312180807-admin.jpg
 検証やら校正はこれからですが、ここまで書けたらいいしょ。
 目的は図の清書ではなく、ネットリスト(部品と配線の情報)の生成です。

 ちなみに、OE(OutEnable)とRESETはSPIのCSで構わないようです。
 CSは負論理、OEは負論理、RESETは正論理です。CSは送信中はL、送信が終わって次が始まる少し前まではHです。
 てことは、OEのロジックにもRESETのロジックにも合います。OEはSPI.CLKが出る少し前にLになって送信が終わればHになって欲しく、RESETは送信が終わったら即Hで送信が始まる少し前にLになって欲しいのでバッチリです。
 仮組みして検証しないといけませんが、これでいいならSPIの3本だけで動くので望ましい状態です。

#電子工作

2022年3月13日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 報道かくあるべしといった印象

 当事者でない人が語る言葉でありますが、一般人には出来ない深読みの一つという意味で良いと思います。
 今の報道の大半が子供っぽ過ぎるために印象に残っただけかもしれませんが・・・

#雑談

2022年3月14日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 どうにもソワソワしてしまうので、基板を発注までやってみました。
 画像はKiCadによる完成イメージです。
20220314180845-admin.jpg
 本来ならブレッドボードなどで回路を隅々まで確認してから発注するべきですが、工程を一通り流し、仕上がりを確認するためのテスト発注です。
 200x85mmと少し大きめの基板ですが、5枚で12,000円程度。10枚にしても+2,000円くらい。長くお世話になったp板.comさんには申し訳ないけど、価格が1/10では・・・
 コロナの影響で少し時間がかかるそうですが、10日前後なので速いです。

 ちなみこの基板、SPI入力のDMXドライバです。RaspberryPiからCSありのSPIを送るだけでレガシーDMXを8ユニバース出します。もちろんアイソレーションしてます。想定通りに動けば、ですけどね。

追記
 価格は100x100mm以下なら1枚200円前後、50x50mm以下なら100円前後。感光基板で自作するより遥かに安い。試作段階でも気軽に使えます。

#電子工作
Icon of admin
 そんなワケでKiCadを使ってみたワケです。
 慣れるとサクサク描けて良いCADだと思います。空き時間にユックリ習作しましたが思った通り描けます。
 ただ、基板の寸法はインチ法とメートル法が混在するので、CAD云々以前にこの辺で混乱するかも。

#電子工作

2022年3月15日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 Fusion360で部品の3Dモデルを描いて追加してみました。
 モデルをSTEP形式で書き出せばそのままKiCadに持っていけます。
202203151918181-admin.jpg
20220315191818-admin.jpg
 3Dの基板をグルグルさせてもすぐに飽きますが、部品の干渉やシルク(文字印刷)のチェックには効果絶大。

#電子工作
Icon of admin

 今回の基板は大量のチップ部品が背面に付きます。これを手ハンダは避けたい。
 基板と共にステンシルを頼んだのでリフローが出来ればいいけれど加熱台はどうする?

 amazonさんにこんなんありました。

20220315185441-admin.jpg
 200 X 200mm LEDマイクロコンピューター電気ホットプレート予熱はんだ付け予熱ステーション、ウェルダーホットプレートリワークヒーターラボ110 / 220V AC 800W(美规110V)

 カタログスペック的にはドストライクな製品ですが使えるのでしょうか。
 中国から直送みたいで納期は4月上旬です。

 この手の製品は国産の良い物だと10万近くするので避けていましたが1万円切るならアリでしょう。
 家電のホットプレートを使う方法もありますが、この価格ならこっちの方がいいかも。天板平らだし。
 たぶん設定と実際の温度は違うと思いますが、放射温度計を使って設定値に対する実際の温度を把握すれば使えるっしょ。
 リフローは220度で60秒がペーストハンダメーカーの公称値です。ハンダの溶ける様を目の前に見られますから試してデータを取りましょう。220度ですと部品の耐久時間は長くないので、この辺りも調べておくべき課題です。

 某メーカーさんの推奨値です。
 プレヒート 130~180℃ 60~90sec.
 リフロー 220℃以上 30~90sec.
 ピーク温度 240~250℃ 10sec.以内

 逆用途として肉焼けますね。
 リフローに使えなかったら焼肉用にしましょう。

 そういえば基板屋さんからメールがありました。「政府と交渉して稼働出来れば納期が短くなります」とのことです。
 通常なら一週間以内に日本まで届くサービスですが、電力不足のために工場の稼働が輪番になっているのでしょう。
 こればかりは仕方ありません。

#工具や資材
Icon of admin

 回路図の最新版です。
20220315220836-admin.jpg
 これで動いてくれたらいいのですけど・・・

#電子工作
Icon of admin
 SPI-DMXを使うにはSPIに渡す配列に少し工夫が必要です。

 レベル値の2次元配列[ユニバース,スロットアドレス]を1次元配列[スロットアドレス]に変換してSPIに渡すのですが、<ユニバースnのスロットx>を<n.x>と書くなら、

 [<0.1>,<1.1>,<2.1>,・・・,<6.1>,<7.1>,<0.2>,<1.2>,<2.2>,・・・,<6.2>,<7.2>,
 ・・・,
 <0.512>,<1.512>,<2.512>,・・・,<6.512>,<7.512>]
 
 としなければなりません。[ユニバース,スロットアドレス]だったものを[スロットアドレス,ユニバース]の順番で1次元配列にするのです。

 ちなみに元のスロットデータは

 [[<0.1>,<0.2>,<0.3>,・・・,<0.512>],
 [<1.1>,<1.2>,<1.3>,・・・,<1.512>],
 ・・・,
 [<7.1>,<7.2>,<7.3>,・・・,<7.512>]]

 こんな2次元配列です。

 元のスロットデータをout_routeとし、SPIに渡すスロットデータをout_spi_arrayとするなら

 out_spi_array = out_route.ravel( 'F' )

 あれま、たった一行。
 カッコ内の'F'はravelの動作モードを表すものらしい。

 これまたPythonの繰り返しコマンドを用いずにnumpyだけで変換出来てしまった。
 numpy素晴らしい。

#Python #[Art-Net]

2022年3月16日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin

 KiCadはver6になっています。
 以前インストールしたver5を使っていましたが、ver6はかなり使いやすい。
 ただ、ネットの参考情報の大半がver5ベースなので、ver5で勉強してからver6にした方がいいかもしれません。ver6ベースの参考情報はまだ少ないようです。
 ver5で書いたものをver6に持っていく場合はライブラリ周りで少し引っかかります。一見すんなり行けるのですが、ver5のライブラリはver6で編集出来ないよと言われてしまいます。実際は、ライブラリファイルを更新するのではなく、編集したオブジェクトのみを更新するとすれば問題なく完了します。
 どちらかと言えば、ver5で作ったものをver6に持っていかないのがいいのかもしれません。

 KiCadは私にとってCADLUS-Xの方言違い程度で使えたので案外楽でした。
 基板屋さんもデータを正確に拾ってくれているので、今後基板を作る際にはKiCadです。

 基板CADはレイヤーに当初から決められた製造上の役割りがあり、製作上の制約(パターン線間の隙間とか)を描く前に設定する必要があることだけ理解すればVecoterWorksやイラレと同じ感覚で使えます。
 KiCadは、配線間違いを防止する観点からか、回路図を描いて部品同士の関係性を作ってからしか描けません。基板を描き始めるまでの儀式が多いかもしれません。

#電子工作
Icon of admin

 本業がイキナリ忙しくなっています。

 クライアント側から間近にならないと資料が来ないためですが、コロナが明けつつある現時点では全てのスタートが遅くなっているので仕方ありません。
 数か月先の日程の問い合わせも多くなっています。ありがたいことですが、目先の現場に集中したい時に何故か多い不思議。
 久しぶりに照明仕込み図を描きました。現場が少なかったですし、照明よりも舞監モドキをすることが多いので、これも仕方ありません。
 裏方のために世の中が回っているワケじゃありませんから仕方ないは仕方ない。

 照明の仕込み図が終わったら舞監仕事で別な現場の進行表をカキカキです。
 終わる気がしねー。

#本業
Icon of admin

 基板の製造は「PCBgogo」さんにお願いしました。
 他社と比較出来る程の知識も経験もありませんが、日本語対応が進んでいるのでやりとりが楽です。
 まだ完全ではないと言っていますが、入稿したデータの完成予想画像をアカウント画面から見ることが出来ます。こちらの思惑通りにガーバーデータを受け取ってくれているか確認出来るのは凄い安心感です。

 ちなみに他社さんですが、オーダー画面も設定パラメータもPCBgogoさんと大差ありません。言語が英語か日本語かの違いくらい。価格もほぼ同じ。
 ここまでネットのシステムが似ていると製造システムも似ているのでは?と思います。仕上がりも大差ないのかもしれません。
 ひょっとして、実際に作っているのは一社だったりして・・・

 本業の忙しさが落ち着く頃に加熱台と共に入荷する見込みです。届いたら早速試験しましょう。
 まずはリフローハンダからです。今回頼んだ基板5枚はリフローハンダの練習台でゴミになるかもしれませんが、大判のリフローの練習になれば御の字です。
 リフローハンダに成功して動作チェックするところまで行ければ、確認と手直しをして本オーダーです。

 さて、本業再開と・・・

#電子工作
Icon of admin

 徹夜も辞さない覚悟でしたが、あまりの眠気で終了勧告。
 生後半世紀も経ちますとね、明け方まで仕事をすると明らかな影響が出るのですよ。
 瞬間の無理はまだ出来ますが、20代や30代の頃には想像も出来なかった反動が洒落にならん有様です。10時間くらい余計に頑張ると3日くらい性能が落ちます。
 やらないで困るのも、反動でも困るのも、どっちも困るのですが、今は眠気に白旗を揚げることにします。
 多少のことは言葉で誤魔化せるお年頃でもありますので、健康を第一としましょう。

#日常

Icon of admin
 基板をオーダーしてて思い出しました。
 スマホなんて言葉が世の中に無く、インターネットはおろかパソコンですら一部の好き者の嗜好品だった時代、プリント基板を作れないかとイエローページ(電話帳)を片手に専門業者さんに電話をしまくっていた記憶があります。
 専門知識を持たない素人の言葉を聞いてくれる業者さんは僅かでしたが、話を聞いてくれた業者さん曰く「ガーバーデータをくれたら作れるよん」とのこと。
 ガーバーなんて言葉聞いたこともないし、当時そんなんを作れるのは最上位グレードのPC9801に超絶高価な専用ソフトを入れた環境だけ。よしんばガーバーデータを作れても、版下のフィルムを作るだけで14万円からのご相談。
 とても無理で諦めた思い出ですが、それが今は小遣いで買えるパソコンにフリーウェアのCAD入れてガーバーデータをネットで送って1枚100円て・・・。

#ノリと勢いスイッチ

2022年3月17日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 昨夜、東北地方と北関東で大きな地震がありました。
 皆さまご無事でしょうか。
 被害を被られた方々にお見舞い申し上げます。
 自分は自宅の鍋が一個落ちたくらいで被害は皆無でした。

 それにしても報道は大騒ぎです。
 大きな地震であり、被害を受けた方はいますので、それを広く知らせる大事な役目だと思いますが、日本が壊滅するような語り口。もはやオオカミ少年。

#自然災害

2022年3月19日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 ロシアのウクライナ侵攻が世界的な話題です。
 軍事力によって相手を屈服させるのはあってはならない行為ですが、報道が語る様に、ロシアが悪でウクライナが被害者だと単純に見ていいのか疑問があります。もちろんウクライナの武器を持たない一般市民の方々は被害者だと思いますが、政府対政府の関係だけで見た時にどこか腑に落ちないのです。
 戦闘状況を見ますと、対ロシア軍のゲリラ戦術が見事過ぎますし、戦車や戦闘ヘリの様な火力の大きな兵器に対する最新鋭の個人携帯兵器が開戦当初から潤沢に行き渡り過ぎです。ウクライナが熟慮を積み重ねた結果の防衛態勢なのかもしれませんが、あまりに用意周到で手際が良く、この状況に特化し過ぎています。美しい程です。また、前線に立たない将軍が何人もピンポイントで殺害されるなど、世界トップレベルの特殊部隊でなければ成しえない様な戦果も多すぎます。侵攻されている弱者側が要人の居場所をどうやって把握しどうやって戦果を挙げたのでしょう。ロシア軍が弱いかどうかではなく、ウクライナが経済力に見合わない高レベルな戦術や戦力を行使し続けていることに違和感を感じるのです。
 こんな妄想もどうかとは思いますが、シナリオを書いたのはウクライナ側で、ロシアはその罠にかかったとした方が納得し易いのです。シナリオを書いた方が市民の犠牲を前提にしていることになりますから、妄想ではありますが、この辺りをどう見るか。。。
 ただ、ハメられたとしても、武器を持たない一般市民に銃を向けたなら如何なる理由かあっても許されるとは思いません。

#雑談

2022年3月21日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 持ち歩きノートパソコンに入れたWindows11が良かったので、他のパソコンにも入れてみました。
 正規対応しないハードウェアにインストールする手順はネットにいろいろありますが、ユーザーデータをそのままにアップグレードするには次の方法が良いようです。

Windows11 非対応CPU+TPM+セキュアブート回避の簡単まとめ(手っ取り早く導入する最強編)

 この記事ではISOファイルをダウンロードして使っていますが、メーカー推奨の手順で作ったUSBメモリでも同様にできます。その他の操作手順は書かれている通りにします。
 今のところ、アップデートのたびにappraiserres.dllを入れ替えをしなくてもアップデートが出来ているようです。

 正規対応品でない古いパソコンをWindows11にする懸念事項は、将来的にWindowsUpdateを適用させないというアナウンスです。今のところいけていますが、どうなるかはわかりません。

#パソコン
Icon of admin
 前の書き込みで正規に対応しないパソコンにもインストールする抜け道があると書きましたが、Windows11にするには、BIOSの設定をUEFIのセキュアブートにし、起動ディスクをMBRからGPTにする条件はあります。
 なんのこと?と聞かれても説明が大変なので割愛します。

 現在使用中のパソコンたちは、Windows7をクリーンインストールしてWindows10まで上げてきたので起動ディスクはMBRでした。
 Windows11を入れる前に某ツールを使ってGPTに変更したのですが、それだけで動作が軽くなった気がします。MBRは20世紀から付け焼刃に拡張され続けてきた仕様です。それを改めたのですから余計なストレスが少ないのでしょう。ローレベルの仕様は安易に最新式に食い付くといいことはありませんが、ある程度こなれてきたら変えるべきでした。
 WindowsがGPTに対応して10年以上たっているのですから、すでに最新式ではなく当たり前であり、MBRを使っている方がおかしいのでしょう。

#パソコン

2022年3月22日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 風呂入っている間に自宅のパソコンもWindows11にしました。
 動作が軽快です。決して高性能な機体ではありませんが、ちょっとしたレスポンスが明らかに良くなりました。
 猛烈にお勧めするワケではありませんが、Windows11は見た目が少し違うWindows10と思って良さそうなので、Windows10が問題なく動いている機体ならWindows11も問題ないと思います。
 もちろん、正規の手順でアップデート出来ない機体はそれなりのリスクを覚悟の上でやってください。成功例は多いですが、保証出来ないからこその制限なのですから。

 今回のWindows11の制限は、たぶんですけど、次のバージョンへの布石だと思います。これまでのWindowsは過去を踏襲することでシェアを維持してきたのに今回はそれを切ろうとしています。新規ハードウェアの販売促進もあるでしょうけど、過去との互換性が高いWindows11のウチに過去のハードウェアを排除していこうという思惑を感じます。ハードウェアのポテンシャルを最大限引き出すには過去との互換性を切った方が効率が良いのですから間違っちゃいません。次のWindowsではカーネル(OSの核)を大幅に更新するのではないかと予想しています。

#パソコン

2022年3月23日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 そんなこんなパソコンイジりをしていたら、MAの3Dシュミレーターを入れてあるパソコンが不調。一体型の古い物ですが、モニタが点かない。
 バラして調べたところ、モニタの電源モジュールが劣化してました。こんなん専用品すぎて交換部品手に入りません。
 仕方ないので、別なのをヤフオクで落としました。

 3DシュミレーターはゲーミングPCが望ましいですが、MAのシュミレーターは2-30台ならCore-iシリーズの4桁番CPUが乗っていればグラボ無しでも使えます。
 自力で整備出来るなら、1万円くらいの中古で行けます。

追記

 家電屋処分の準備してるところ、一瞬モニタがチラついた。ならばと、最後の手段で叩いたら復活してしまった。真空管でも入ってんかい。
 原因はコネクター類の接触不良だったと思われます。確認するのにアチコチ分解したショックで接触が戻ったのかもしれません。劣化気味のコネクタは触らん方がいいのですが、コネクタ類を抜き差ししたり揺すったりしたところ不調にならなくなりました。
 電源系は部品の劣化が進んでいるので余命は短いかなぁ~。

#パソコン
Icon of admin
 Windows11を非対応のパソコンに入れる手段の話です。
 以前の書き込みの方法なら、UEFI上でGPTにせずとも、レガシーBIOS上のMBRのままでも行けてます。
 一瞬死んだ3Dシュミレーター用のパソコンにWindows11を入れてみたのですが、MBRのままでアップグレードインストールが出来ました。GPTにすれば軽快になる期待感はあるのですが、レガシーBIOSなのでUEFIやらGPTには対応しません。必然的にMBRのままでのアップデートインストールとなったワケです。
 ここまでをまとめると、Windows11はUEFI、GPT、セキュアブート、TPM2.0などが無くても動き、その条件を満たさないとインストーラーが先に進まないだけと思われます。これらのチェックをする実体が「appraiserres.dll」なのでしょう。
 あくまで現時点での話ですが、実質、Windows11は見た目が少し違うWindows10と思って良さそうです。いつ何時、UEFI、GPT、セキュアブート、TPM2.0などが必要不可欠になるかわかりませんけどね。
 とりあえずは目先のコストを抑えることが第一と。

#パソコン
Icon of admin
 ちなみにですが、セキュアブートとTPM2.0はセキュリティを向上させます。
 その筋のプロに狙われたらどの程度の効果があるかわかりませんが、その筋のプロは何の価値もない凡人をターゲットにしません。自意識過剰に心配するより立身出世を目指した方があなたのためです(笑
 それでもメールやウェブに仕込まれた罠には効果があると思われます。あえて地雷を踏みに行くおバカさんまで助けてくれないでしょうが、しないよりはした方がずっと良いと思います。
 あ、セキュリティツールが不要になるって話じゃありませんから誤解なきよう。

#パソコン
Icon of admin
 3Dシュミレーターに使っている一体型パソコンはNECさんのVALUESTARです。Core-i5-650というかなり前のCPUが載った物ですが、画面が大きくてキレイなので用途的に丁度よいのです。
 かなり深いところまで分解したのですが、驚くほど作りがいいですね。イチイチ丁寧。
 純正のリカバリではない方法でWindowsをインストールしてありますが、CPUの世代からしては驚くほど軽快に動きます。
 前々から思っていますが、国内メーカーのパソコンは作りが良くてポテンシャルが高いと思います。

 残念というか間違っているのは、性能の脚を引っ張る二つをしていることです。

 一つ目は低性能のストレージが使われていること。そこそこのSSDに換装するだけで劇的に動作が軽くなりますし、外したストレージを性能評価すると呆れるほど遅い。
 二つ目はプリインストールが多すぎること。インストールされている一覧を見ただけで吐き気がするほどで、下手をするとセキュリティツールがいくつも入っていたりします。クリーンインストールすると軽快になるのですから、これらが悪さをしているのは間違いないでしょう。

 どのような意図でこうしているのかわかりませんが、製品を商品にする段階で価値を落としているように私は思うのです。製品を作っている人は悔しくないのでしょうか。
 パソコンが家電になった今、無知識な人にも売らねばなりませんし、無勉強無努力な人のサポートもしなければならないのはわかるのですが、無サポートでいいからポテンシャルを最大限引き出したラインナップがあっていいと思うのです。

 日本の家電がダメになったのは商品企画担当や販売担当がアホだからです。
 声が大きな客ほどアホなんですから、そんな声ばかり大事にしてたらアホになるのは当然です。
 ニーズは一様ではありませんが、声が無いところに一番重要なニーズあるって誰かが言ってたような気がするんですけどね・・・

#パソコン

2022年3月24日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 勇み足で手配してしまった3Dシュミレーターに使うパソコンが入荷しました。以前のが復活したのでダブつき状況ですが、予備機があるのは悪くありません。ヤフオクとはいえ専門店からですが、中一日とは早いですね。
 これのセッティングは来週以降になりそうですが、古いとはいえ、こんなにキレイな物が1万円しないとは驚きです。32bitのWindows10が入っていますので、メモリを追加して64bitにしようと思います。メモリの規格は一世代前のDDR3ですが、半導体不足でも古い規格の流通在庫品は値段が上がっていないようです。

#パソコン

2022年3月25日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 そんなワケで3Dシュミレーターで今週末の明かりを作っていました。
 どうも動きがおかしい。カクツキではないのですが、フレームが飛んでいる感じがする。
 あれ?フレームレートを見ると12fpsとか・・・
 ゲーミングPCとまでは言わないまでも、そこそこのグラボが無いとキツイのかなぁ~。

#パソコン

2022年3月29日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 ちょっと忙しかった今月もヒト段落。
 本業があるのは有難いことですが、訛りきった感覚と体では押っ付けるのが大変でした。

 良くも悪くもしばらくヒマです。
 4月は例年ヒマですから、コロナが収束傾向にあっても増える元がありません。

 そんなワケでArt-Netパッチを進めます。
 まずは入力部を手直しして複数の送信機への対応です。結果的にHTPミキサーになるのですが、間違って複数を接続しても破綻しない様にすることが目的です。入力部を出来るだけ無駄なく丁寧に作ることが機能を実現する上で重要です。
 あとは、人が操作する部分を後付けで作っても無理が出ない様にしておくことです。主機能と操作部を完全に切り離し、指示経路を一本化しつつ出来るだけシンプルにします。経路にqueueを使うかsocketを使うか考えていますが、queueの方が速度が出ますしpythonの変数のまま送受信できるメリットがありますが、操作部との通信には速度を求めていないのでscoketにした方がいいかもしれません。socketにしておけば操作部を別なデバイスにすることも可能なのでいいかなと。書いたことも調べたこともありませんが、iPadなどを操作部にすることも可能だと思うのです。

#Python #[Art-Net]
Icon of admin
 そういえば最近地震が多いですね。

 3.11の前日だったと思いますが、つくば市のある研究所に下見に行きました。
 主に地震を主題に研究するところでしたが、津波体験機ってのを設置するための架台の製作依頼でした。津波体験機は湯船3杯分くらいのピンポン玉を専用の滑り台を使って一気に落とし、滑り台の下に居る人がそれを浴びるという物です。軽くて小さなピンポン玉でも勢いが付いたのを大量に浴びると体が持っていかれる感覚を体感してもらい、津波の危険性を学んでもらう趣向の遊具です。
 そんな下見の際、過去24時間に日本列島のどこでどれくらいの地震が発生したかを丸の大きさで表している幅10mもあろう大きなモニタを目にしました。微弱なものを含め、計測されたすべての地震が表示されていたのですが、日本列島が丸でほぼ埋め尽くされていたのを覚えています。ご担当の方曰く「日本は地震が本当に多いのですよ・・・」とのことでしたが、その翌日にあの様なことになるとは思いもしませんでした。

 このところの様子はその当時に似ていて何とも嫌な気分になります。

#自然災害
Icon of admin
 ロシアによるウクライナ侵攻が終わりませんが、NATOによる兵器実験にしか見えません。

 戦争などやるもんじゃありませんが、兵器を工業製品とするなら開発や運用評価にとってはあまりに良い実験場です。
 ベトナム戦争以来のゲリラに翻弄された経験から開発された高度なゲリラ戦術を試しているようにも見えます。

 現代的な代替戦争なんでしょうが、これらの兵器が本当のゲリラに行き渡って更なる混乱を招きそうな気がします。
 ただ、開発側には攻撃出来ないような仕掛けが入っているとは思います。入れてなかったらアホですけど。

#雑談
Icon of admin
 ウクライナ侵攻において効果を発揮した携行兵器「ジャベリン」についてよくわかる動画です。

 究極のゲリラ戦術です。

#雑談

2022年3月30日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 月末処理の他には急ぎの要件が無かったので、不調になったムービングの修理を試みました。
 1台はプロファイル系でフォーカスが動かない。
 もう1台はウォッシュ系でランプが点灯せず、ズームが動かない。

 プロファイル系はリニアブッシュ(シャフトの上を直線に滑り動くベアリング)がダメです。シャフトに対して見た目でわかるガタがあるため、動かす際に斜めになって引っかかるようです。つか、ダメになったというより最初からダメだったのでは?という疑い。シャフトの精度は出ていますので、リニアブッシュに見た目でわかるガタが出るなど普通はありえません。ミスミで同等品を手配して付け替えてみます。

 ウォッシュ系は原因が謎ですが、コネクタを全て抜き差ししたところ回復。ただし、後日同様の症状が出ないとは限りません。20分くらいの繰り返し動作をさせた後、電源を落として冷まし、再度繰り返し動作をさせるということを何回が繰り返してみます。もちろん、搬送中に受けるであろう振動も与えてみます。これらを経て動く様なら大丈夫でしょう。

#照明器具 #本業

2022年3月31日 この範囲を新しい順で読む この範囲をファイルに出力する

Icon of admin
 何をすればいいかが見えている修理は楽ですが、どこがおかしくてどうすればいいのかがわからない修理は気疲れします。

 昨日から手を付けているウォッシュタイプのムービングですが、今のところですけど、ICのハンダ付が原因だったように思われます。
 今まで正常に動いていたのですから付いてはいるのですが、盛り方が悪くハンダに髭が出ていて、そこに汚れが溜まって短絡とは言えない微妙な接触が発生して隣の端子に漏れ電流が流れてしまったようです。ピンが細くて間隔も狭いICですから肉眼で見ただけではわかりませんが、試しにアルコールを吹きかけて歯ブラシで擦ったところ一時回復。再起動で再発したのでハンダ吸収線でなぞったら今のところ発症せずです。
 明日はミニ顕微鏡で確認し、ヤバそうなのがあれば針の様に先端が細いハンダゴテで整えてみます。

 プロファイル系のはリニアブッシュを交換して一応の回復。

#照明器具 #本業