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

Icon of admin
あけましておめでとうござます。
本年もよろしくお願いいたします。

正月は実家・親戚に顔を出し、少しだけ正月大掃除(普通の掃除?)をやり、仕掛品ラックを作って終わりそうです。
年々工作の内容が細かくなる(木工なら切り出しの精度出しやら出来るだけ丁寧に面取りをしてしまう)もので、一品当たりの所要時間が長くなります。
自分で使う物なら時間に合わせて手は抜くのですが、それでも切ってビスで絞めて終わりってことはないので、塗装まで含めると一品に数日かかってしまいます。
塗装は木くずが出ない様に目止めすることが主目的です。仕上がりは求めず表面を固めているだけですが、3回くらい塗らないと目は止まりませんので時間はかかります。
やらないと終わらないので、寝正月とはなりませんねぇ~。

そうそう、自宅のオーディオのアンプ(パソコンの音声用)が壊れたので新調したのですが、どうやら5.1chのリア1chが鳴らない。
レイアウトの都合でパソコンからはSPDIFで送っていますが、アナログ入力だと鳴るのに鳴らない。
バラして調べたところ、SPDIFから来るDAC回路か入力切替のリレーが不調らしい。
オシロスコープで回路を探らないとわかりませんが、腰を据えての作業になるので今は出来ません。
手ごろな物(SPDIF入力あり5.1chの小型品)が他に無くて中華製の安物を選びましたから仕方ないかな。安いには裏があると。価格の割に音はいいのですけどね。

追記

修理せずサウンドカードからアナログで繋ぐことにしました。パソコンから繋がるケーブルが1本から3本になりますが、ケーブルの価格を見たら試行錯誤するのが馬鹿らしくなるほど安かったし、アンプのDACは悪くないけど直してまで使いたい音でもないので、サウンドカードのDACを使うことにしたのです。つまり、サウンドカードのアナログアウト(モノ換算6ch)をアンプに繋げるワケです。アナログならパソコン側でクロスオーバー周波数を調整出来るのもあります。

#ガチ工作
Icon of admin
仕掛品ラックを完成させました。
櫛状に受けを作り、M12の寸切りボルトで横繋ぎしています。
合板を貫材よろしく細く切って重ねる方式ですが、ホゾ切りするのに比べたら圧倒的に簡単なのに同等の強度が出ます。ホームセンターで細長く切ってもらい、あとは自分で切って組み合わせていきます。
12mm厚を3枚重ねるので36mm厚となり、赤松などの垂木よりも強度があります。
20220103165343-admin.jpg 20220103165403-admin.jpg
アームに小型の番重を乗せて使います。直接重ねずに重ねるワケです。内容物に背丈があって入らないのは嫌ですが、これなら上の段を空ければ大丈夫。
A4サイズくらいの番重が32枚収納出来ます。最下段には錘を兼ねて使用頻度の高い工具を入れますが、これに入らないほど仕掛品を溜めるなよ!という目に見える戒めになりそうです。
精度は売り物にならないレベルですが、12mm厚の合板1枚で作れたので安く済んだし、自宅の作業場に据えたところ使い勝手はお世辞にも良い。
塗料は余っていたワシンの1液ウレタンニス ですが、固まると目が止まって強度が増すので良いですよ。あと2-3日は硬化待ち(テレピン油臭が抜けるのが目安)で使えませんケド。

更に24時間以上乾燥させた後にペーパーで均してからもう1層塗って仕上げたいところですが、使えるレベルになっているし、塗料は買い足さないといけませんし、この先作業出来るのは10日後だしで、これ以上手間と費用をかける品物でもないので「まぁいいか」の完成宣言。
写真を撮った後にスクリューベースを取り付けました。

#ガチ工作 #ノリと勢いスイッチ
Icon of admin
千鳥工房さん の動画は好きでよく観てます。

職人主張がなくて軽ーくアホな風味が好きなのもありますが、やっていることは凄すぎて真似出来そうにありません。
その世界の神髄など知りませんが、薄板加工の勉強になります。
ちなみに、関西ペイントさんのエスコの使い方を勉強したのはココです。機械強度は2液ウレタンのトップコート系に負けますが、機械強度を求めない防錆下地としては凄く優秀な塗料です。紫外線耐性の高い塗料を仕上げに塗ればまず錆びません。

#関心したネタ
Icon of admin
タイムコードの規格を整理しています。
HP にナガラ書き起こしです。
ちょいとわからんところもあるので、今のところ自分向けの防忘禄という「オレメモ」であります。

我ながら同時進行のネタが多すぎるような気もしますが、ノリと勢いスイッチが入らないと何もしない気分屋ですから仕方ありません。
今は沢山のスイッチが入っているのであります。

#ノリと勢いスイッチ
Icon of admin
年末年始休暇も今日で終わり。珍しく一週間ありました。
始業時間が自由なだけでオフって感じは全くしませんでしたけどね・・・
喰って寝て体力の回復を図ったり、終わらない本業をやってたのもあるけど、趣味という煩悩を撒き散らしたのが一番よくないかな。

ちなみにArt-Netには全く手を付けられず。
目の前のライトアップをデザイナーチームに引き渡し、自宅の工作部屋を片付けてからでしょうねぇ。

明日から本業の勤務が始まります。
ライトアップで使うプロジェクタ群の箱に現地施工で冷暖房を仕込むことからです。灯を入れれば箱内は高温になりますので冷却が必須であり、深夜早朝の冷え込みで結露しないように暖房もしないといけません。
これが簡単そうでなかなか難しい。前回の反省から仕組みを変えたのが蛇を呼ぶか否か。
使用環境を模したテスト環境なんて作れません。フォークリフトが入れる様な大型冷凍庫でも間借りしないとね。

#ノリと勢いスイッチ
Icon of admin
ライトアップの仕込みが終わるか!ってところで雪が積もり始める。
あと2時間くらいの作業量ですが、雪が積もったイントレに登って作業したくありませんから終業です。何が何でも今日中に仕上げないといけない課題でもありませんし。
都区内ほどではありませんが、積雪に慣れがない地域は大騒ぎです。

そういや自家用車が丸坊主な夏タイヤ。
雪が止んだのを見計らってスタッドレスタイヤに換装。寒いったらないけど、明朝の凍結に備えておかないといけません。
滅多に雪が降らない地元は降っても数時間で止むのがほとんどですが、降雪の後の夜は星空になって明け方にはバリンバリンの路面凍結になりやすいのです。
これはこれでとても怖い。

外を見てきたところ綺麗な星空ですが、溶けかかった雪がバリンバリン化し始めております。
怖い、怖い。

#本業 #日常
Icon of admin
仕掛品ラックは塗料が硬化してイイ感じです。
工作部屋の片づけは進む先が見えてきたので一安心。
本気片付けはライトアップの引き渡しが終わってからかな・・・。

空き時間をやりくりして少しずつ確実に進めるのが「キチンとした人」なのでしょうが、わたしゃ気分屋で怠け者ですからそんなことは出来ません。
いや、今は出来ないのとは違うのです。体力を回復させる体力を残しながら日々の作業を進めていかないと身がもたないのです。
節々が痛いんじゃなく、喰って寝てもあまり回復しない齢半世紀のオジサンが連日の筋肉痛。

#日常
Icon of admin
ここ数日、地元の消防団の出初式やら成人式のイベントでホール管理の増員に出ていました。
つて、基本の式典仕込みをするだけなので、仕込んでしまえば操作盤の置物になるだけ。
ちょうどいい空き時間が出来たので書き物を進める。
タイムコードのネタが随分進みました。
解説コーナーというより、自分で製品を作る際の資料整理と基本設計の場になっています。
けど、誰かが読むかもしれない文書としてまとめる作業は自分しか読まないメモとして殴り書きするより具体的に整理できるかもしれません。
読んでわかる人は少ないかもしれませんが、自分向けにはわかりやすく書くことになるので後日の自分向けのメッセージとしては価値が高いと思われます。オレメモの新しい書き方ってことで。

#ガチ工作
Icon of admin
友人と新年会をしてきました。
想うことは人それぞれ色々あるのだなと思ったり。
されど、自分評価かもしれませんが、今までやってきたことを有難がってくれるご意見があることには感謝であります。

#日常
Icon of admin
ライトアップは今日明日で引き渡しをすれば終わりです。メンテナンスやプランナーチームからの要望に対応することはあるでしょうが、これで一区切りです。
良くも悪くも1月はこの後ヒマです。正しくは現場がとても少ない。
年末に事務所や倉庫の大掃除が出来ませんでしたので多少はやるにして、仕掛品を出来るだけ進めたいところです。

進めたい仕掛品は客席テーブルです。
溶接作業なので条件が整わないと進められませんが、このタイミングで試作品を仕上げてしまいたいですね。

#ガチ工作
Icon of admin
ライトアップは荒天でプランナーチームの作業に遅れが出たので今日の作業が明日に繰り越し。
待機というか課題無しの日になる。
このタイミングを逃すのは勿体無い。客席テーブルを一気に進め、塗装も開始。
塗装はミッチャクロンまで塗ったものの日没後に気温が下がり過ぎて先には進めず。

塗装の前に仮組みしましたが、どうやらイイ感じ。
脚は折脚ではなく差し込み脚です。差し込み部にもう少し強度が欲しい気もしますが、これ以上質量を増やしたくないこともあり、このバージョンはこれにて。
今手を付けているのはver4.5です。折脚機構のver4を作り変えてver5の差し込み脚をテストすることにしましたので、間のバージョンという意味です。
壊すつもりで乱雑に扱って要所の確認をするつもりです。

#ガチ工作
Icon of admin
風呂に入ったところ「鉄」の匂い!
水道か!頭皮切って流血か!なんだ!
自分が鉄粉まみれになっていて、お湯をかけたら匂いが立っていたのでした。
丸洗いしてスッキリ。

#日常
Icon of admin
客席テーブルは基本的な機能を作り終えましたので、抜いた脚の収納などの細かい艤装を整理し始めました。
脚の収納はちょうど良くハマる受けに差し込んでスプリング蝶番を用いた跳ね返りフックで固定する方法です。収納場所は天板の裏側です。
課題は、収納した脚を持ち手代わりに運んでも外れず、付け外しが簡単なことです。
簡単そうで難しい。

#ガチ工作
Icon of admin
客席テーブルの天板には試行錯誤の名残りのネジ穴が沢山空いています。気にしなきゃいいのですが、無いにこしたこたない。
ネジ穴を塞ぐ方法はいろいろありますが、捨てネジを裏から入れ、表から2液式のエポキシ接着剤を入れます。接着剤ですから食い付きがよく、2液式ですから厚盛りしても固まります。何よりも、硬くなるけれど適度に柔軟性もあるのが良い。
パテは硬度はあるけど脆くて肉やせしやすいので、盛り込むと形のまま取れてしまうことがあります。
固まったら手直し程度に更に塗り、ペーパーで慣らしからウレタン塗装を上塗りして仕上げです。
ちなみに、2液エポキシ接着剤はヒートガンで温めるとサラサラになります。溶剤の揮発などではなく化学反応で固まるので温度を多少上げても性質はあまり変わりません。今の時期は室温でも粘り気が強く扱いにくいのですが、ヒートガンで硬度を調整すると塗り込むというより流し込むに近くなり作業し易いです。

ver5の天板は合板にFRPのエポキシを塗ろうかと検討中。扱いはいささか面倒ですが、硬くて丈夫だし、硬化すればアセトン以外の溶剤では溶けません。ガラス繊維を塗り込むのが本来の方法ですが、そこまでの強度は不要と思われるので、丈夫な塗料として使えばよいかと。ツヤツヤになってしまうのは問題ですが。

#ガチ工作
Icon of admin
客席テーブルの仮組み写真です。
20220113141831-admin.jpg 20220113141916-admin.jpg 20220113141926-admin.jpg
脚の長さはボールロックピンを用いて25mmピッチで調整できます。無段階調整機構は座屈が怖いので用いません。
赤茶色の角材が座席の肘掛けに乗せるバーです。この方法が是か非かは劇場さん次第ですが、結局は背もたれや肘掛けに加重をかけるならキチンとかけた方がマシだろうという発想です。もちろん毛布やクッションなどで養生した上に乗せた方がいいでしょう。
伸縮脚の機構のために多少のガタはあります。私は気にならない程度ですけど。
強度は私が乗って揺らしても平気なので十分でしょう。

#ガチ工作
Icon of admin
客席テーブルはver5仕様の脚が使えそうなので気分としてはアルファ版からベータ版に格上げです。脚が決まらないと細かい部位を考えても意味がありませんでしたが、ようやく次のステップに進めます。
脚まわりは一見シンプルですが工数が多いのです。脚6本+脚受け+アームレスバーを作るのに丸々1週間かかります。アイデアが出ても試作が進まなかった理由でもあります。
早くver5を完成させて手離れしたいですね。

#ガチ工作
Icon of admin
ライトアップは引き渡し終了。今後はプランナーチームから直しが出れば対応する程度です。
プランナーチームの作業が終了したら、イントレやらプロジェクタの仕込み内容を調査し、あるのかわからない次回のための資料作りでしょうか。

ライトアップの現場に入る前に客席テーブルの見直しをしました。
ver5仕様の脚は思った以上に丈夫で扱いやすいようです。何度か現場で使わないと見えてこないこともあるでしょうが、大筋はいいのではないかと思います。
今後は、塗装を仕上げつつ、アームレストバーや外した脚の収納の検討です。天板の裏側に収納して一つのパッケージになり、一目見て欠損物がすぐにわかるようにしたいところです。

明日は現場が飛んで体が空きました。ライトアップの現場は遅くならずに上がれそうですから、今夜のウチに天板の穴塞ぎを終わらせてしまえば天板の塗装を進められそうです。

#ガチ工作
Icon of admin
客席テーブルを仕上げていく中で解決しなければならない課題が一つ。
現在進行中の試作では目をつぶっていますが、脚パイプの内側をどうやって塗装するかです。溶接をしますから加工後に内壁にも錆止めをしないといけません。
管の内壁を塗装する専用の工具は存在しますが高価であり、専門家に頼むのは工賃がかかり過ぎる。ホームセンターで買えるありふれた用具のアレンジで簡単に出来ないものかと思索中。

追記
細めの塗装ローラーを使ったらどうかと。
そのままでは使えませんが、交換式のローラーをハンドルに付いたφ6mmの丸棒に差し込んで使うタイプなので、同じ径のステン丸棒をローラーに刺して「きりたんぽ」状態にしてパイプの中に突っ込むのです。キレイに塗れなくても錆にくくなればいい。
試してみましょう。

#ガチ工作
Icon of admin
客席テーブルは天板の穴を塞ぎ仕上げの塗装を完了しました。
脚回りの収納を作らねばなりませんが、一応使える状態です。

天板に使った塗料は「ニッペ ファインウレタンU100」です。
ハケには「ハンディクラウン ワンタッチコテバケ」を使いましたが、コレいいですよ。
コテバケは平面を塗装するための用具です。仕上がりは下地次第ですが、ハケやローラーよりも圧倒的にキレイに仕上がります。厚塗りにならないので乾燥も早いです。

#ガチ工作
Icon of admin
 ver4.5は塗料の硬化待ちで触れませんから、ver5を作る材料を試験していました。
 特に天板です。高価な材料は使えませんし、手間がかかり過ぎてもいけません。
 今のところ、主材に合板を使い、FRPで使うエポキシ樹脂を下地として塗り込むのが良さそうです。まだテスト中で結論には至っておりませんが、エポキシ樹脂はウレタン塗料より硬くて丈夫ですし、ガラス繊維を固めないなら塗料の一種として使えばいいだけです。
 どのみち許せる価格帯にカットしただけで使える板材はありませんので、塗るなり貼るなり、何かしらの表面加工は必要です。板材にシート状の素材を「貼り付ける」作業は案外難しいので、塗装で済むならその方がいいと思われます。
 FRP用のエポキシ樹脂は粘性を調整する方法がわからなかったために使用を控えていましたが、アセトンを加えれば良いとのことで解決。スチレンを推奨する情報もありましたが、エポキシ樹脂をスプレーする際にはアセトンで柔らかくするそうですから、ハケであってもローラーでもあっても同じことでしょう。この辺りは初めて用いる手段なので試しましょう。
 後は、エポキシ樹脂の表面に色を付ける方法です。難塗装物だから専用塗料でないと絶対ダメ!という話もあれば、足付けすれば缶スプレーのラッカーでもOKという話もあります。ミッチャクロンマルチも、意味無し!無駄!という人もいれば、最高!という人もいます。どの方法が正解というよりそれぞれの好みといった感じです。私好みの施工方法を見つけるしかありません。
 小さな合板にエポキシ樹脂を塗ってテストしているので、上塗りまで確認しましょう。

 これらの方法が確立したら木工の仕上げがレベルアップすると思います。

#ガチ工作
Icon of admin
 エポキシ樹脂を塗った合板はとても良い。
 薄塗りをペーパーで均しましたから塗膜は薄いのですが、柔らかい木肌が半硬化と思われる段階で無垢なラワン材より硬くなっています。
 上塗りは、足付けを兼ねてペーパーで均した上にミッチャクロンマルチを塗ってラッカーを吹きましたが、予想以上にガッツリ着いています。
 エポキシ樹脂もラッカーも完全硬化は明日ですが、強度をシッカリ評価しましょう。

#ガチ工作
Icon of admin
 ポリエステル樹脂を塗ったテストピースは完全硬化しました(これまで「エポキシ樹脂」と書いていましたが、正しくは「ポリエステル樹脂」です)。
 いいですねぇ。惚れ々々します。
 昨日はポリエステル樹脂を塗って15時間経過での確認でしたが、公称24時間硬化を過ぎると本当にカチカチになっております。
 手触り感はプラそのものです。木材感が無くなるので家具や日用品に使うと色気が無くなってしまうかもしれません。

 レシピは次の通りです。

● 使う物
 ・ポリエステル樹脂
 ・硬化剤 (必ず樹脂の専用品を使う)
 ・アセトン

● 塗布の流れ
 1) 合板の表面をペーパーで均す。加工前の表面状態にもよりますが、#80,#120,#180と進めて目地を整える。
 2) 合板の表面をキレイにする。削りカスをエアーで飛ばし、硬く絞った水雑巾などで拭く。水分が飛んだのを確認してから次の作業へ。
 3) 塗布1層目。
 3-1) ポリエステル樹脂を容器にとる(30cm四方で30gくらい?)。硬化剤を指定量入れてよく混ぜ、アセトンを加えて柔らかくする。いわゆるシャバシャバの1歩手前くらいで木の繊維に浸み込んでいく粘度。
 3-2) ハケやローラーで塗り込む。木目に沿って進めた方がよい。薄く繊維に浸み込ませるイメージ。
 3-3) 気泡を潰しても木目から次々浮いてきてしまうけれど、1層目が固まらないと抑えられないので、気泡潰しはある程度にする。
 4) 塗布2層目
 4-1) 硬化時間は24時間だが、指で触って硬さを感じる程度に(ペーパーで削れる程度に)固まればOK。3時間くらい?
 4-2) ペーパーで表面を均す。気泡が浮き、木肌の凹凸が強調されているが、平らにしようとし過ぎると地肌まで削ってしまうのでほどほどに。#120,#240,#320と進める。
 4-3) 削りカスは出来る限り除去する。エアーで飛ばし、シリコンオフで拭く。
 4-4) ポリエステル樹脂を容器に取り、硬化剤を指定量入れてよく混ぜる。原液のままでもいいのだが、粘度が高くて塗り難そうならアセトンを入れて調整。気温、液温、何で塗るかによる。
 5) 3層目以降はお好みで。手順は2層目と同じ。塗膜の状態次第だが、2層塗ればかなり硬くなるので、3層目は強度を増したい場合やポリエステル樹脂で仕上げる場合でしょうか。
 6) 表面に別塗料を塗布する場合、#400,#600,#800,(and more?)と進めて足付けをし、専用シーラーやミッチャクロンマルチで下地を作った上に塗る。

 仕上がり具合は塗装の練度と根気によります。

#ガチ工作
Icon of admin
 客席テーブルver4.5は大詰めです。
 短脚の差し込みを増やし、脚の収納をまとめています。
 短脚の差し込みとは、アームレストバーに乗る脚を刺す天板側のソケットのことです。短脚の取り付け位置は背もたれの高さや傾斜、客席の段差によって望ましい位置が違ってくるので悩んでいましたが、発想を変え、ベストな1か所を求めず数か所(とりあえず2か所)あればいいんでないか?としたワケです。ソケットの数や位置は使った上で将来調整です。
 脚の収納はまず短脚から。使ってみないと良し悪しはわかりませんが、一目で使い方がわかってシッカリ固定出来る様にしたつもりです。明日、時間があれば長脚の収納にも手を付けましょう。

 切った貼ったの工作は楽しいですが、いい加減、客席テーブルを終わりにしたい・・・

#ガチ工作
Icon of admin
 テストピースに塗ったポリエステル樹脂は更に硬度を増していました。
 ウレタン系の塗料も十分に硬くなりますが、ポリエステル樹脂は更に硬いです。
 ペーパーを当てるとわかりますが、ウレタン系は消しゴムのカスみたいな粘り気のある削りカスになりますが、ポリエステル樹脂は「粉」です。これだけでも特性の違いがわかります。
 かといって、ポリエステル樹脂が万能でもありません。材がたわむなら柔軟性のあるウレタン系の方が良いでしょう。

#ガチ工作
Icon of admin
 明日からの現場に客席テーブルを送り込みます。私は行きませんけれど。
 まだ完成ではありませんが、使えるには使えるので使ってもらいます。
 エラー出しは使ってナンボです。

 裏面の写真です。
20220118212516-admin.jpg 20220118212532-admin.jpg
 長脚の収納は台座を仮付けした状態です。塗装や固定機構はまだです。長脚は仮にガムテで止めています。
 肝は脚を差し込んで固定する機構です。ネジを中心に直行する2平面の3点ホールドになるので見た目以上に脚が固まります。差し込む脚の先端に45度の角度で入ってくる絞めネジを受ける面を作るのが地味に手間がかかる加工です。

 総重量は6尺の折脚テーブルより少し重いくらいです。脚が6本あって謎の角材がありますからそんなに軽くは作れません。
 ver5では天板の構造をアルミフレームにします。値は少し張りますが、木で作ると材料費は安いのですが手間が凄いので、工賃を加味すればアルミフレームの方が安いと思います。

#ガチ工作
Icon of admin
 急ぎの案件で穴空け作業をしています。
 例のライトアップの追加品ですが、7mm角の角パイプにφ3.5の貫通穴を3カ所づつとのオーダー。それを100本。
 単純計算では300穴ですが、表面がわずかに波打っているので普通のドリルでは先端が滑ってしまい位置が出ませんので一発空けは出来ません。断面形も歪んでいるので貫通空けも出来ません。
 面ごとにエンドミルやセンタードリルで下穴を空けてからドリルを当てます。つまり1,200回です。
 仮に1穴30秒としても10時間かかる計算です。アホか。

#ガチ工作 #本業
Icon of admin
 穴あけはヤリきりました。
 明日から現場が続きますから終わらせるしかありません。
 段取りを整理し、切断も含めて7時間。
 今日はこれ以上何もしたくありません。

#ガチ工作 #本業
Icon of admin
 ライトアップや客席テーブルver4.5などの取り急ぎの物件に区切りが付いたので、Art-Netの実験を始めていこうかなと。
 その為にもRaspberryPiの整備からです。7インチの公式タッチパネルディスプレイを使った開発機を組みましょう。

#[Art-Net] #[RaspberryPi]
Icon of admin
 客席テーブルver4.5が現場から帰ってきました。
 基本機能は良いようですが、天板の塗装がイマイチです。ゴム脚の形に凹んでいます。
 ウレタン系の塗料を使っています。母材の合板も柔らかい物ですから、見た目はキレイでも硬度が足りなかったのだろうと思います。
 塗装を剥がしてポリエステル樹脂でやり直してみましょう。
 その前に、ポリエステル樹脂のテストピースをFクランプで絞めてゴム脚の痕が付いたのに近い環境を再現して確認します。

#ガチ工作
Icon of admin
 テストピースをFクランプで絞めてみたワケです。ポリエステル樹脂は大して凹みもせず良い感じですが、表面に塗布したラッカー塗料がFクランプに乗り移って剥がれました。爪で掻いても痕が残らない仕上がりだったのですが、ゴム脚が付いたケースを載せたらどうなるか想像できます。
 ポリエステル樹脂は良いのですから、クリアニスと思って木肌色で仕上げるか、顔料を混ぜて色付けするかです。木肌色でも良いと思うのですが、折角なので色付けを調べてみます。

 ポリエステル樹脂着色剤
 どうやらありそうです。

#ガチ工作
Icon of admin
 ポリエステル樹脂に加えることが出来る顔料を発注しました。
 色は「青」です。テーブル面が黒だと置いた小物を見失いがちだからです。許せる範囲で明るい色が使い勝手が良いと考えています。
 ミディアムグレーにしようと思ったのですが、ラインナップの都合で今回は「青」にしました。黒と白を使って調色する手もありますが、そこまではしたくないかと。。。
 塗れたらゴム脚に加重をかけて数日放置と擦れを試さないといけません。ダメなら硬さがある耐摩耗性が高い樹脂板を検討です。

#ガチ工作
Icon of admin
 公式7インチディスプレイを使ったRaspberryPiの開発機を作ろうとしていますが、自分で部品を作るのは面倒なので公式のケースをオーダーしました。
Raspberry Pi 4B 専用 & 7インチ タッチスクリーン液晶用ケース 公式メーカー
 イチイチお金がかかるのは問題ですが、基板や配線を保護する筐体を3Dプリンタで自作すると設計とプリントで膨大な時間がかかりますし、消費するフィラメントのコストも無視できませんので、これならいいだろうといったところです。

 公式ディスプレイを用いる主な理由は将来的な入手性です。一般的に部品としてのモニタパネルは足が早く、1年後に同じ物が手に入らないなどザラですが、公式品なら数年後でも同じ物が手に入る可能性が高いと思うのです。
 解像度は800x480ですが組み込み用途なら不足でもありませんし、タッチパネル機能を加味すれば安価な部類です。公式品ですから接続に不安もありません。
 何よりも、組み込みとして作る場合にワイヤリングのメリットがあります。HDMIやUSBで接続となるとパッケージする際にコネクタ類が邪魔になりますが、専用のリボンケーブルならスッキリ収納出来ます。

#[RaspberryPi]
Icon of admin
 近所の劇場さんのご厚意に甘えて客席テーブルをテストしてきました。
 天板の下が暗くて見にくいのはご勘弁ください。

● アームレストバーを使った設置
20220126162426-admin.jpg 202201261624261-admin.jpg 202201261624262-admin.jpg 202201261624263-admin.jpg

● 座席をまたいだ設置
20220126162448-admin.jpg 202201261624481-admin.jpg 202201261624482-admin.jpg 202201261624483-admin.jpg 202201261624484-admin.jpg

 自分は基本的にOKだと思います。この先は使う人の好みです。

 課題はいくつかありますが、最たるものは塗装です。すでに剥げて生地が見えてしまったところがあります。
 天板の角は擦れ易いのでいずれなることですが、ほんの数回でこれでは話になりません。
 ポリエステル樹脂を使えば機械強度が増すのはわかっていますが、果たして求める強度になるかは未知数です。
 材質の選定も含め、この辺りは大幅な見直しをします。

#ガチ工作
Icon of admin
 客席テーブルは意匠的にはOKだと思うので、次は天板の耐摩耗性を上げつつ構造の単純化と軽量化を目指すことになります。

 ・・・言うの簡単ですがどうしましょう。
 プラダンの親戚に「プラパール」という、俗称プチプチを肉厚で丈夫な素材で作った板材があります。一種のハニカム構造になっているワケです。調べたところ、肉厚が10mmの物があり、同じ厚みの合板に等しい強度をもっているとかいないとか。価格が現実的ならサンプルを取り寄せてみますか?
 ver4の天板にはラワン合板ではなくファルカタ合板を使っていますがこれが軽い。比重が0.4弱。ちなみにラワン合板は0.6前後。これより軽くて丈夫ならプラパールの線もありです。

#ガチ工作
Icon of admin
 先日購入したLED-BARの箱を加工してみました。
 内容物は中華電器の長さ1mの製品ですが、合板製の受けを入れて収納します。
 箱屋さんに硬質ウレタンの受けを作ってもらおうかと思ったのですが、出来る限り安く済ませたいし、ポリエステル樹脂の試験にもなるので自作。
 使った箱はコレです。期待以上にピッタリサイズ。軽くて丈夫。

20220127180330-admin.jpg 202201271803301-admin.jpg 202201271803302-admin.jpg

 ポリエステル樹脂を塗って仕上げるつもりですが、木ボンドの水分の逃げ道が無くなって硬化しきれないかもしれないので、塗布は木ボンドが完全に硬化してからです。1週間くらい?
 と、思いきや、ポリエステル樹脂の塗膜厚を考えてない。良くも悪くも塗装前の状態で遊び無しのピッタリ寸法なので、ポリエステル樹脂を塗ったら入らなくなるかも。ポリエステル樹脂は厚塗りしてナンボですから0.5~1.0mmくらい塗りたいし。
 どうするかは木ボンドが固まってから決めます。少し寸法を間違えてもいるし、最終的にかなりの数を作るから1セット増えても影響無いし、これは試作として作り直してもいいかも。

 合板でこういった仕切り形状を作る場合、単なる突合せだと強度が出ません。理想は溝を掘って差し込むのがいい。
 けれど溝を掘るのは面倒なので、寸法が許す範囲で互い違いに合わせるといいです。積み木作りです。

#ガチ工作
Icon of admin
 客席テーブルの脚やアームレストバーの収納をまとめてみました。
 写真を撮っても何かと黒くてよくわからんので掲載はしませんが、荷締めベルト メタルバックルを使って固定します。
 ベルトにビスを通して天板に留め、固定物を撒いて固定します。引き角度によっては傷みやすくなりますので、ビスの軸に対してベルトが直角に引かれる様に合板で受けを作ってあります。
 シッカリ固定されましたのでイイんでないか?

#ガチ工作
Icon of admin
 ケースが入荷したので、開発機のRaspberryPiを組みました。
 寸法ズレが酷いケースですが、ネジ穴を調整して収める物が収まりました。
 配線の保護は期待通りなのでいいかなぁ・・・と思いつつ、価格の割に酷いので二度と買わないと思う。
 今はアップデート中なので電源を切れませんが、ACアダプタで使える様にDCコネクタを付けて可搬性を高めましょう。電源は専用USB端子ではなくGPIOに入力した方が何かと良いのです。

 ・・・と、DCコネクタのハーネスは作りましたが、ケースに穴を空けるドリルが手元にない。
 日を改めて仕上げます。

#[RaspberryPi]
Icon of admin
 3Dプリンタの仕上がりが稀に酷いことがあります。
 常にではないのでプリンタの故障ではなさそうですが、フィラメントが湿気を吸ってしまうと発生しやすい症状のようです。
 過去事例では、室温を30度前後、湿度40%以下の環境でプリントした2-3品目では良い結果が出ていましたので、低湿度にしばらく晒すと改善するのだろうと思われます。
 室内をこの状態に維持するのは無理ですが、フィラメントを低湿度で保管することは可能です。
 ドライキーパーを買ってみました。小型の乾燥庫です。
20220131093537-admin.jpg
 フィラメントをこの中に数日間保管してからプリントしてみようと思います。

#ガチ工作
Icon of admin
 本業も工作も取り急ぎの課題が無い状況です。精神的に追われる感覚が無いのは久しぶりです。
 Art-NetをRaspberryPiで扱う研究の準備は進めていますが、気持ちとしてはユッタリしております。
 ヒマってことは稼ぎが無いことでもあるので、あまり良い状況でもないのですが・・・

 Art-Netを扱うRaspberryPiでは同一ゼグメントのIPアドレスを振った2つ以上のNICを別ゾーンとして扱うことが肝になります。入力のArt-Netと出力のArt-Netを1つのRaspberryPiで扱うには必要条件です。
 この状態はサーバーやネットワークを複雑に組むと発生し得ることなので可能だと思うのですが、私が適切な設定やプログラミングを出来るかは別問題なので、その研究というか勉強をするワケです。

 となると、実験用に複数のRaspberryPiが必要です。
 1台は公式7吋モニタで組んだ方が後々の表示作りで都合が良いと思いますが、他はモニタを持たずにSSHでアクセス出来れば済むので、数台をまとめられる箱もあるといいですね。
 この様な箱は既製品にもあるにはありますが、RaspberryPiを束に出来るだけで、電源が考慮されいないだけでなく組んでしまうとGIPOに触りにくい状態になります。これじゃダメです。
 作るのも面倒なので改めて探してはみますが、キレイにカットしてキレイに塗装した1枚板に必要な物を取り付ければそれでもいいのかな?とも思っております。

#[Art-Net] #[RaspberryPi]
Icon of admin
 Art-Netを扱うためにはNICのアドレスを設定しなければなりません。
 手計算した値をOSに手打ち設定をしてもいいのですが、どうせなら自動設定にしたい。NICのMACアドレスとArt-NetのOEMコードがわかれば人が判断する要素は無く計算も単純なのですから。
 アプリケーションはPythonで書くつもりですが、OSの自動設定はbashスクリプトで書くのが自分流です。なぜなら、PythonでOS設定を変更すると結局はbashコマンドを発行するのですから同じ事です。なんでもかんでも高級言語を使えばいいってもんでもないんです。
 やることは、MACアドレスを文字列で取得し、必要な部分を切り出し、一部の文字列を数値に変換して計算し、IPアドレス起こしてコマンド文字列を作って実行するだけです。Linux(UNIX)は標準コマンドだけでこういったスクリプトを簡単に作れます。
 わたしはググってコピペするだけですけどね。

#[Art-Net] #[RaspberryPi]

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

Icon of admin
 現場での長い待ち時間でArt-Netのアドレスを自動設定するスクリプトを書いてみました。動作確認は自宅でないと出来ませんが、設定ファイルには適切に書き込みがされていると思います。OEMコードは聞き馴染みがないメーカーさんのを拝借してテストを進めます。
 RaspberryPiの7インチモニタと一体型ケースは良い感じです。ほとんどの操作はssh経由でパソコンから行うので、起動ログが読めて配線を守ってくれたら当面は十分です。

追記
 自宅で動作試験とバグ取り。問題なし。
 Rasbianにドライバが入っているUSB-etherを購入し、2つ目のNICを構成したらPythonの試験プログラムを作成開始です。

#[RaspberryPi]
Icon of admin
 2つ目のNICも動作OKと思われます。
 将来的にwi-fiでも送信したいので出力側のNICをブリッジ接続にしました。ブリッジ接続とは複数のNICを束ね、内部からは1つの仮想デバイスとして扱う方法です。ハブを作る方法でもあります。
 wi-fiはhostapdでルーター化してブリッジに組み入れることができます。試験的ではありますが、ウチのwi-fiルーターの1台はこの方法を用いてRaspberryPiで作ってあります。
 Pythonのsocketの動作が実デバイスと仮想デバイスで違いがあるとは思えないけれど、最初から仮想デバイスでやっておけばいいかなと。

#[RaspberryPi]
Icon of admin
 またしても現場にて長い待ち時間。
 DMXのパケットデータを表示するプログラムを作成中。ANSIエスケープシーケンスを用いた表です。
 試験用ではありますが、データを表示する何ががあると開発が進め易いと思われます。

#[RaspberryPi] #[Python]
Icon of admin
 ANSIエスケープシーケンスを組んでて思ったのですが、大昔のN-BASICみたいだなと。書式こそ違いますが、COLOR命令やLOCATE命令を思い出す風味です。N-BASICリアル世代。
 ANSIエスケープシーケンスはテキスト画面の制御コードを文字列としてprintします。画面の文字を消去しろとか、カーソル位置を何処にしろとか、引き続いて表示する文字列の色をどうしろとかを命令ではなくコードで渡すのです。大昔のVT100などで用いられたテキスト表示の制御方法ですが未だに使えるとは驚きてす。さすがUNIXの末裔。

#RaspberryPi
Icon of admin
 LED-BARのケースで使う受けを作っています。
 3x6の合板を2枚使い切りの切り出し。
 接着中で写真に入っていないのもありますが、切っても切っても終わらない。

20220204204537-admin.jpg

 上に乗っているようなのを12個作ります。

 一見少なく感じますが、この量で合板1枚分。
 切ってはバリ取り、切ってはバリ取りの繰り返し。
 小さい短冊でも60枚ですから、そう簡単には終わらない。
 今日はここまで。

 日中は切った貼った。
 陽が暮れたらソースコードを書き書き。
 アホですわ(笑

#ガチ工作
Icon of admin
 ANSIエスケープシーケンスを研究中ですが表示がおかしい。
 コードは間違いなくprintしているのに表示されない。いや、表示されることもある。
 さて・・・

 どうやらバッファの挙動によるものでした。
 printで表示される文字列は一度バッファに蓄積され、バッファが一杯になるか、改行コードなどを受けると表示に渡されるのだとか。

 単にprintするならその都度改行コードが発行されますのでその都度表示されるのですが、文字は表示したいけど改行したくないことがあります。

 pythonのprintですと、

 print('表示したい文字列', end='')

 とすると改行せずに表示が実行されますが、改行が発行されないとバッファが一杯になるまで何も表示されません。
 表示されたり表示されなかったりで困ったのですが、強制的に表示に送る方法がありました。

 print('表示したい文字列', end='', flush=True)

 最後に flush=True を加えるのです。
 こうすると、バッファや改行コードに関係なく、printが実行される度に表示されます。

 自由度が広がりました。

#Python
Icon of admin
 ANSIエスケープシーケンスですが、RaspberryPi上のPythonでは期待する動画が出来ないかもしれません。形にはなるのですがチラつきます。
 開発作業用と画面の試作を兼ねてDMXスロットの値を一覧表示する画面を作っています。値の表示は遅くとも0.1~0.2秒くらいで更新しなければなりませんが、前の表示が完了していないのに次の表示が実行されているような感じで、行単位での一瞬の点滅が不規則に発生します。
 細かいことはともかく、これではダメです。

 動画を表示出来るのですからテキスト画面の更新を0.1秒間隔でやるなど楽勝だろうと思っていたのですが、そもそもテキスト表示の書き換えにこんなレスポンスは不要だと作られているのかもしれません。
 基本的な動作だけに余裕を持って動いてくれないと困ります。

 RaspberryPiの作り的に、ANSIエスケープシーケンスでテキスト画面を構成するより、グラフィカルな画面に今どきの方法で表を書いた方がいいのかもしれません。

#RaspberryPi #Python
Icon of admin
 ANSIエスケープシーケンスのチラつきの原因がわかりました。
 行削除です。コードは'\033[2K'。
 上書きしないと文字が消えないので行を削除してから書いていたのですが、消すのではなく空白で上書きすることで解決しました。
 いやはや。

#RaspberryPi #Python
Icon of admin
 ANSIエスケープシーケンスは何とかモノになりました。
 画面の試作段階ですから受信データを表示することは出来ませんので、仮のnumpy.arrayを加算し続ける処理で動きを確認しています。インクリメントした値の256の剰余(割った余り)です。
 チラつくことなく求める動作をしていますし、画面処理の負荷は(topにて)7%くらい。いいんでないか?
 ちなみにpi4のCPUは4coreなので、topコマンドでの最大値は400%です。

 この後はArt-Netの受信とキー操作です。

 Art-Netはsocket通信で受信したパケット(バイナリ)を適切に変換してデータ化するだけです。通信の難しいことはライブラリがやってくれるので、たぶん、それ程難しくはないと思います。
 キー入力は最終的なコマンド実行までどう持っていくかです。様々な手順が考えられますが、どうやるのがいいかよく考えてみましょう。

#RaspberryPi #Python
Icon of admin
仮ですが、コマンド入力を作りました。
今回はArt-Netの受信データを表示することが目的なので、対象ユニバースを指示するだけの[ニーモニック-数値]のシンプルな物にしました。
Net,Subnet,Universeなどのニーモニックを[N][S][U]のキーで呼び出し、数値を打って[Enter]で確定です。それぞれのコマンドには設定数値の範囲がありますので、範囲外であればエラーというか「このコマンドの数値範囲はこうだよん」と表示する様にもしています。

#RaspberryPi #Python
Icon of admin
 今週来週はコロナ騒動で現場が飛びまくり、急ぎの要件はありませんので工作を徹底的に進めます。
 客席テーブルが現場から帰ってきたので天板表面の再塗装です。
 先日も書きましたが、問題はウレタン塗料の柔らかさです。私の施工が間違っていたのかもしれませんが、ゴム脚の当たっていたところが凹んでしまったのです。硬さを増さないといけません。オービタルサンダーで前の塗装を削り落とし、FRPで使うポリウレタン樹脂を塗ります。
 一層目は表面に塗るというよりポリウレタン樹脂を木の繊維に染み込ませるイメージです。気温が低いので硬化剤を重量比1.2%(夏季の2.0倍強)加え、アセトンを重量比40%加えてシャバシャバというかサラサラにし、塗ったというより濡らした感じにしています。
 アセトンの量は変質しないギリギリかと思います。硬化しなかったら笑うしかありませんが、モノ作りの神様に見放されないことを祈りつつジックリ取り組みましょう。

#ガチ工作
Icon of admin
 socketの送受信は簡単ですが、受信は待ち受けになり、タイムアウトはあるものの、有効な受信があるまで全体の動作が一時停止になります。待ち受けをしながら他の処理を止めずに動かす方法の確立が当面の課題になります。
 ネットを探すとそれらしい方法がいくつかあります。たぶんこの中に望んでいる方法があるのだと思いますが、それがどれかをこれから検討するワケです。

#Python
Icon of admin
 客席テーブルに塗布したポリエステル樹脂は硬化していました。一安心。
 ただ、アセトンが抜けるのに時間がかかりそうです。急がず焦らず今日は手を付けず、1日なのか2日なのか、アセトンが抜けたのを確認出来てから2層目にかかりましょう。
 2層目は濃い目で肉付けをします。原液ままでは硬いのでアセトンを入れて少し柔らかくするつもりですが、塗り伸ばせる範囲で固めが望みです。熟練者なら室温で判断がつくのでしょうけど。
 3層目は顔料を入れて色付けです。
 単に1層目だからかもしれませんが、アセトンを多めに入れると硬化した表面が半艶になるようです。顔料を入れた3層目がツヤツヤ過ぎるなら、トップコートを兼ねてサラサラを塗ってみましょう。

 小学生の頃、シンナーで溶かした発砲スチロールで紙を固められないか?と実験したのを思い出しました。
 表面が固まっても中が固まらなくてガッカリした思い出ですけど、約半世紀後もやってることに大差がない。「三つ子の魂百まで」という格言がありますがその通りかもしれません。
 ひょっとすると、発砲スチロールはアセトンで溶けるので、ポリエステル樹脂を半艶にする添加剤代わりになるかもしれません。ポリエステル樹脂は不純物を入れると艶が落ちるような気がするのです。

#ガチ工作
Icon of admin
 オレメモです。

 socket受信の待ち受けで処理が一時停止するなら、threading用いた並列処理でsocket受信を実行し、メイン側へはqueueを使って通信する。
 socketから受信したデータはqueue.putでメイン側に送る。block=True,time_out=Noneとし、block要因はメイン側での取り出し作業だけなので終了を待つ。
 メイン側はqueue.getをtry:配下で実行する。block=Falseとし、queueにデータがあれば取り出し、データが無いかsocket受信側がアクセス中でデータが取り出せないと例外:Emptyになるのでtry:でスルーする。

 queueでやりとりするデータはintのNet,SubNet,Universeとレベルデータのnumpy.arrayをタプルにした物とする。タプルに入れ込んだnumpy.arrayをqueueで扱えるかは今後の実験で確認する。
 受信したArt-NetのUniverseが対象かどうかはメイン側で判別する。

 これならsocketの受信待ちで全体を止めることなく動かせる、といいな。

#Python
Icon of admin
 ポリエステル樹脂は24時間経過でいい感じに硬化していたので2層目を塗布しました。
 混合はポリエステル樹脂100g、硬化剤2g弱、アセトン10g。計量に使っている量りが1g単位なので0.1g単位のが欲しいかも。
 細いバリが固まったのを#320で軽く砥ぎ、削りカスを取り除いてコテバケで塗り込みました。
 気温が低いので硬化が遅いですが気長に待ちましょう。

 3層目を塗る前にはキッチリ砥ぎます。鏡面は目指しませんが、指で触って凹凸を感じない程度に面を出してから塗りたいですね。

#ガチ工作
Icon of admin
 2層目を塗って気が付いたのですが、バリっぽいのはコテバケから出た毛クズが固まったモノでした。
 刷毛で塗っても毛クズが出ますし、ローラーなどもってのほか。スポンジ系はアセトンで溶けそうなので使えない。
 ペーパーで簡単に落とせるのでトップコート以外ではいいのですが、肝心のトップコートは何で塗りましょう。
 ガンを使えばいいのですが、準備や片付けに手間暇がかかるし周辺への飛散も多い。量を塗るとか特別に綺麗に仕上げたいとかなら使いますが、さほど仕上げにこだわらない5尺2尺の板を1枚塗るのに使いたくはありません。
 目の細かいスコッチブライトで固まった毛クズを落としてポリッシャー磨きが王道?
 ゴムベラで塗ればいいのかな?
 スコッチブライトで削ってヒートガンやバーナーで目潰し?
 どうしよう。。。

#ガチ工作
Icon of admin
 3層目を塗布してみました。#240で表面を均し、2層目と同じレシピに顔料を混ぜた物をコテバケで塗りつけです。
 昨日よりも気温が5度以上高いためか硬化反応が早い。24時間かからず、今日中に硬化しそうです。
 顔料を入れましたが半透明です。制限量に近い量を入れましたが、1度で完全に色が乗るモノでもないようです。
 明後日から現場使用なので作業は一旦中断です。

 ポリエステル樹脂の表面仕上げですが、ペーパーとスコッチブライトで磨いた後にアセトンを噴霧したらどうかと。深く溶かすのではなく細かい磨き目を消すだけですから、ほんのわずかに表面を溶かして均せればよい。
 ただ、アセトンに耐えられるスプレーボトルを近所で求めると高価な製品しかありません。恒久的に使うならアリですがお試しには高い。手元にラッカーシンナーやエタノールに対応したスプレーボトルが沢山あるので、アセトンに対応するかは確認出来ませんが、まずはコレでお試ししてみようかと。入れて15分くらい様子を見ればわかるっしょ。
 噴霧するのはジクロロメタンでもいいのかな?ジクロロメタンは3Dプリンタの造形品(PLAやABS)の表面を均すのに使っていますが、ポリエステル樹脂も溶かすっぽい。すぐ乾くのでアセトンより良い?

#ガチ工作
Icon of admin
 3層目は無事硬化しました。
 コテバケは掃除機で毛クズを除去して使いましたが完全にとはいきません。なでるとバリのようなのがあって気分が悪い。
 #120-#240-#400と研ぎ進め、アセトンを噴霧しましたが、削り目を無くすことはできませんでした。
 どうしようかと考えていたところ、倉庫の隅からダブルアクションのポリッシャーを発掘。今は無いホームセンターのシールが貼ってありましたのでかなり前に買ったのでしょう。
 バフを取り付けてコンパウンドで磨いたところ解決。ペーパーは#400までしかなくコンパウンドも中目しかありませんでしたので鏡面にはなりませんが、毛クズバリを除去し削り目は十分に抑えられました。よいんでないか?
 明日から一週間ほど現場に出ますが、その後にポリエステル樹脂をもう一層塗布し、もっと目の細かいペーパーとコンパウンドを使って仕上げるつもりです。

#ガチ工作
Icon of admin
 RaspberryPiにRTC(リアル・タイム・クロックを取り付けてみました。
 RaspberryPiは無電源だと時計が動きませんので、起動すると前回終了した時刻から時計がカウントされます。
 これでは気持ちが悪いし、ファイルの更新時刻がおかしくなると開発作業ではトラブルのもとです。
 リンクの商品以外にもRTCはいろいろありますが、この製品は小型でGPIOに挿すだけで使えて何かとよいと思います。安価だし。
 設定方法はこのサイトがわかりやすいと思います。/boot/config.txtを更新した後に再起動を忘れずに。

#RaspberryPi
Icon of admin
 PythonのThreadとQueueの使い方はだいたい理解しました。
 0.005秒のsleepで動作周期を持たせたThreadで512個の整数を延々と加算してqueue.putに出力し、本処理では0.001秒のsleepで動作周期を持たせたqueue.get_nowaitで取り出しながら0.1秒毎に表示を更新しています。処理負荷が小さくメモリ使用量も安定していてスムーズです。本処理での時間軸の管理はアセンブラっぽいカウンタ処理ですが、厳密な処理周期は不要なのでsignalを使うほどでもありません。
 Threadを使うメリットは高速化だと書く人が多いですが、私にとっては、処理によって違う要求時間を仕分け出来て、ポーリングだけど割り込みっぽいことが出来ることです。画面の更新はそれほど頻繁でなくていいけど、毎秒44回更新されるDMXの信号の処理は遅れたくないのですが、シングルスレッドでこの辺りを制御するのは案外面倒なのです。
 気を付ける点はQueueのputやgetのタイミングです。Queueは変数ではなくFIFO特性のスタックなことが肝ですが、C言語のスタックやポインタにセマフォが混ざった構成なので、C言語のこのあたりを知ってないと理解しにくいかも。PythonにC言語っぽい作法が残っているのが不思議ですが・・・
 ThreadとQueueを使ってキーボードの入力も作り直します。

#RaspberryPi #Python
Icon of admin
 ありがちな1液式の塗料は1週間以上放置しないと現場で使えませんが、ポリエステル樹脂は2日もあれば完全硬化して使えます。扱いが面倒なところや少なくない制限もありますが、現場投入までの工程としてはむしろ使いやすいかもしれません。
 そんなポリエステル樹脂を塗布した客席テーブルは今日から現場に出向です。自分は行きませんが、在籍園児が数百人いる幼稚園のお遊戯会で部下が一週間ほど使います。客席に卓を仮設するので客席テーブルの本業であります。使い勝手の確認はもとより、荷重をかけ続ける状況なのでロードテストにはうってつけです。
 この幼稚園は若園長が好き者で、スモーク炊いてムービング使って有名アイドルのアリーナコンサートよろしくゴリゴリにしたいとか。過去映像を見ましたが、明かりは頑張ってイイ感じに作ってますが、園児たちが自由過ぎてアンバランスなのか面白いのかよーわからん。お遊戯会でここまでしてどうする!?ってのが本音ですが、園児たちの思い出になって親御さんが楽しんでくれるなら仕事としては成立。
 ということで、ダメなところと傷みやすいところがもっともっと見えてくるといいかな。

#ガチ工作
Icon of admin
 Art-Netのアプリは画面表示とキー操作まで一応の完成をみました。
 キー操作はレスポンスに少しムラがあるので改善したい点です。使えるレベルなので今のところは将来課題としておきますが、ユーザーがご機嫌をうかがいながら使うユーザーインターフェースは大嫌いなのでとても重要です。

 余談ですが、売れている卓とそうでもない卓の違いにはこういった点の僅かなストレスの差もあります。卓は手段としての道具ですが、国内メーカーはカタログスペックばかり求めて手に馴染む道具を作ろうとしない。買うのは使う人ではありませんから仕方ないことでもありますが、国産のホール卓がダメな点です。国産で唯一、松村さんの卓にはこういったストレスが少ないのですが・・・。

 とまぁ愚痴はおいといて、これで本丸であるArt-Netの受信に取り掛かれます。
 単純な受信は別回しするThread内のsocketで受けるだけなので難しくないと思うのですが、パケットのデコードが少し面倒かもしれません。Art-Netのパケットはバイト列ですが、これらをPythonで扱いやすい様に分解して変換しなければなりません。Pythonはバイト型の扱いが少し苦手ですし、パケットにはアスキーテキスト、LSBの2バイト数、MSBの2バイト数、バイト型が混在しているので、よく考えて作らないといけません。実行回数が多い処理なだけに軽さも重要です。

#[Art-Net] #Python
Icon of admin
 Art-Netの受信データをデコードする処理を書いてみました。
 製作環境はRspberryPi4、Rasbian_buster、Python 3.7.3です。
------

import numpy as np

class coding:
 def decode(self, artnet_packet):
  """ Art-Netのbyte列を要素に分解する """
  id = artnet_packet[0:8]
  opcode = int.from_bytes(artnet_packet[8:10], 'little')
  prover = int.from_bytes(artnet_packet[10:12], 'big')
  sequence = int.from_bytes(artnet_packet[12:13], 'little')
  physical = int.from_bytes(artnet_packet[13:14], 'little')
  subuni = int.from_bytes(artnet_packet[14:15], 'little')
  sub = subuni // 16
  uni = subuni % 16
  net = int.from_bytes(artnet_packet[15:16], 'little')
  length = int.from_bytes(artnet_packet[16:18], 'big')
  data = np.frombuffer(artnet_packet, dtype=np.uint8, count=length, offset=18)
  return (id, opcode, prover, sequence, physical, net, sub, uni, length, data)

if __name__ == '__main__':
 an = coding()
 id, opcode, prover, sequence, physical, net, sub, uni, length, data_uint8 = an.decode(test_artnet_packet)

※ 行頭の空白には全角を使っています。
------
 test_artnet_packetに受信データを入れ、codingのインスタンスanでdecodeを呼び出します。
 書いてみたら案外スッキリした物になったので記念に掲載しました。

 socketで受信するのはバイナリデータ(Pythonで言うところのバイト列)ですが、これを一発でnumpy.arrayに変換してくれるnumpy.frombufferは便利です。
 int.from_bytesもバイト列をエンディアン指定でint数に一発変換してくれて便利です。
 私はPICマイコンと協調させて使うことが多いので、こういった機能があると助かります。

 上記ですとdataの戻り値がnumpy.uint8ですが、計算するためにはnumpy.uint16の方が良いと思います。
 data_uint16 = data.astype(np.uint16)
 とかで型変換するといいかもしれません。

#Python #[Art-Net]
Icon of admin
 RaspberryPiを触っていて思うのですが、普通のPCにもRaspberryPi並みのGPIOがあればいいなと。
 RaspberryPi仕様のGPIOがベストって意味ではありませんが、PCにもローレベルのインターフェースがあったら制御で便利に使えるのになと。
 もちろん存在していますが、あまりにニッチ過ぎて情報が少ないために敷居が高いのです。
 主にUSB接続ですが、PCI-eボード1枚にI2C、SPI、USART、GPIOが「これでもか!」ってくらい載ってるのがあったら欲しいかも。

#妄想
Icon of admin
 雪に隠れていた縁石に自家用車のタイヤをやられました。
 鋭利に割れていたのでサイドウォールがパックリ。雪は滑るだけが危険要素ぢゃないようです。
 サイドウォールは修理が出来ないので交換ですが、冬タイヤはトップシーズンのために割高な物しか手に入らず懐も寒くなりました。
 運が悪かったと思うしかありませんが、テンション下がるわー。
 開発が順調でテンションが上がっているので丁度いいのかもしれませんけど。

#日常
Icon of admin
 Art-Netの受信に成功しました。
 先達のサンプルコードをコピペしてPort番号を書き換えただけで一発OK。積年の成果が出て良かったのですが、あまりにも簡単だったので肩透かし。
 複数のNICを使い分けるsocketの設定は先達情報に何パターンかありますが、Rasbian上のPythonに合うパターンを見つけるのに少し時間がかかったかもしれません。
 今は卓のエフェクトエンジンで出力したデータが画面に流れております。4096chのディマーを256bpmの正弦波で動かしています。アホか。

 テストデータはMAdot2からですが、SequenceとPhysicalにデータが出ていました。
 Sequenceは単純なインクリメント情報、Physicalは卓内のUnivres番号です。
 送信を作るときにはこの流儀を真似しましょう。

 ただ、MAdot2はOpCode<0x5000>以外のArt-Netパケットも出しており、socketで受信したバイナリが19バイト以上で頭12バイトがb'Art-Net\x00\x00\x50\x00\x0E'であることを最初にチェックしないといけません。当初はバイト長も見ずにb'Art-Net\x00'だけでチェックしていたのでデコード処理でエラーが頻発でした。OpCodeによってデータ長も内容も違うので当然の結果ですが、マルチキャストなら<0x5000>以外のOpCodeは出さないと先入観で思ってしまったようです。よくないですね。

 8ユニバースを受信させています。すべてのユニバースをデコード処理までしていますが、思った以上に軽々動いています。
 Sequenceをキーに連続性をチェックしましたが読み飛ばしもしていないようです。

 今のところは先日作った画面ではなくすべてのパラメータを表示するチェック用の画面に表示していますが、先日作った画面を同時に動かしてもCPU負荷は45%程度です。最大値は400%(100%×4コア)なのでまだ余裕があります。

#Python #[Art-Net]
Icon of admin
 Art-Netの受信に成功して処理負荷に余裕もあるとなれば落としどころをどうするか!?って話にもなるワケです。最大の望みはディレイ機能とカーブプロファイル機能を持ったパッチマシンですが、欲を出し過ぎたら頓挫します。
 さてさて、どこまで行けるのでしょう。

 お試しに次ぐお試しでとっ散らかったソースコードを整理整頓し、受信モニタとしてまとめ上げてからの話ですが、受信したArt-Netを送信する試験をしましょう。
 ただし、単にリレーするだけでは面白くないし処理負荷の確認にもなりません。受信をデコードし、1対1のパッチ処理をし、エンコードして送信することにします。1対1とはいえマッピングデータ用いた入れ替えをすれば最終形の負荷に近くなると思います。ここまでやれば天井が見えてくるでしょう。
 もしRaspberryPiには荷が重いならPCで動かせばいいって話もあります。今のところRaspberryPiというよりDebian上のPython3.7で動く様に作っていますのでPCでも動くと思います。レガシーDMXを搭載せずにいる理由の一つでもあります。

 今どきのムービング卓はArt-Netを出しますし、Art-Netのデコーダーは既製品が沢山ありますので、レガシーDMXまで作らなくてもいいかなぁ~なんて思ってます。専用基板を作る初期投資がキツイってのが一番大きいですが・・・

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

 パッチマップ(出力側ベース)
 ・フリーフェーダースロット
 ・ディレイ:<0>ならスルー、<1-255>ならディレイ
 ・ユニバース(入力参照)
 ・スロット(入力参照)
 ・カーブプロファイル:<0>ならスルー、<1-511>なら以下とする
   >カーブプロファイル<1-255>はノンディマーとしてしきい値とする
   >カーブプロファイル<256-511>はカーププロファイルマップを参照する

#[Art-Net]
Icon of admin
 本業もボチボチ忙しくなってガラクタ週間も終わりを迎えようとしています。

 現場と打ち合わせの合間にArt-Netです。
 受信したバイナリをそのままの送信出来ないようでは先には進めませんが送信できない問題。
 解決はしましたが、正規マニュアルや先達の書き込みに「これはちがう」とある設定で動いてしまいました。

 基本環境:RaspberryPi4 Rasbian_buster Python3.7.3
 ネットワークインターフェース:内臓LANポート(eth0)、USB-LANアダプタ(eth1)
 IPアドレス:eth0もeth1もArt-Net用に設定済み。
 試験環境:MAdot2でArt-Netを送出、RaspberryPiを経由、中華電機のArt-Netデコーダで受信、レガシーDMXをDoctorMXでモニタ。
 処理内容:eth0で受信したArt-Netのバイナリをeth1で送信するだけ(これが出来なきゃ始まらない)。

-----

import socket

def artnet_rx_tx():
 """ 基本パラメータセット """
 RECV_HOST_NAME = ''
 SENDTO_HOST_NAME = '255.255.255.255'
 PORT = 6454
 """ socket受信の設定 """
 artnet_rx_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  #UDPによるソケットを宣言(受信で使う)
 artnet_rx_sock.setsockopt(socket.SOL_SOCKET, 25, str("eth0" + '\0').encode('utf-8'))  #ソケットとNICを関連付け
 artnet_rx_sock.bind((RECV_HOST_NAME, PORT))  #送信元とポートをソケットに関連付け この場合はどこからの送信でも受けるって意味になる
 """ socket送信の設定 """
 artnet_tx_sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  #UDPによるソケットを宣言(送信で使う)
 artnet_tx_sock.setsockopt(socket.SOL_SOCKET, 25, str("eth1" + '\0').encode('utf-8'))  #ソケットとNICを関連付け
 artnet_tx_sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)  #ソケットをブロードキャストとして使う宣言
 """ 中継 """
 for i in range(800):  #繰り返し
  artnet_rx_bytes, addr = artnet_rx_sock.recvfrom(1024)  #受信処理
  if len(artnet_rx_bytes) > 18:  #受信データ長が最低長以上かを確認 下行とandで一文にしても意味は同じですがヘッダー長を下回った時にエラーになる
   if artnet_rx_bytes[0:12] == b'Art-Net\x00\x00\x50\x00\x0e': #DMXの値データだけを選別 ヘッダーチェック
    artnet_tx_sock.sendto(artnet_rx_bytes, (SENDTO_HOST_NAME, PORT)) #送信処理 ここがわからんで時間を喰う
 """ 終了操作 """
 artnet_rx_sock.close()  #ソケットの仕舞い
 artnet_tx_sock.close()  #ソケットの仕舞い

※ 行頭の空白と#は全角で書いていますので、このままコピペするとエラーになります。
-----

 for文による繰り返しで800回中継を行うテストソースです。

 ポイントはBroadcastの送信先を指示する「SENDTO_HOST_NAME」です。socket.sendtoのパラメータです。「RECV_HOST_NAME」と同様に空白データを割り付けるベシとされるのが一般的ですが動きません。Broadcastアドレスを示す古い方法の'255.255.255.255'にしたところ稼働したという話です。
 '2.255.255.255'や'10.255.255.255'でも稼働しましたが、'255.255.255.255'はゾーンの末尾アドレスを示すマジックナンバーらしく汎用性が高いと思われます。

 動けばいいのですが、かなりの時間を喰ってしまい課題の残りが明日以降になりました。

 ここまで出来ればパッチマップによる入れ替え処理を作ります。
 壮大な繰り返し処理となりますので、どれだけ簡素に出来るかがカギになります。

#Python #[Art-Net]
Icon of admin
 空き時間が少なかったのですが、Art-Netのエンコードを試してみました。
 受信したバイナリをデコードし、パラメータをそのままにエンコードして送信です。単純な動作ですが、これが出来なきゃパッチマシンなど絶対無理というテストです。
 卓からの8ユニバースをすべて処理したのですが、負荷の増加は2.5%くらいでした。十分に許容範囲で収まったのは良いことです。
 パッチマシンは8in8outくらいを想定していますが、16in16outも可能だったりして。16ユニバース出る卓が無いので試せないし作ってもオーバースペックなので私は不要かな。機能全体を組み込んでから悩むことですが・・・。

 今のところ1日1課題。
 あとどれくらいの課題があるのかわかりませんが、納期はありませんのでノンビリいきましょう。ここまで出来れば、丁寧にclassライブラリにまとめ上げ、コメントに使い方を明記して後々も使える様にしておきましょう。
 そういう意味ではキー操作やモニタ表示もclassライブラリにして汎用性を高めるのがいいですね。

 と言いますか、このまま書き増しを続けるとソースコードがグチャグチャになって後で後悔しそうです。
 私のメインはPICのアセンブラなのでANSI-Cの関数タイプっぽい書き方をしがちですが、Pythonならオブジェクト指向な書き方をしたいものです。最近、クラス、インスタンス、継承を使う意味と感覚がわかってきましたので、出来るだけそういった書き方をしていこうと思います。
 以前は「継承」ってのが感覚的にわからんかったのですが、関数を束ねて新しい関数を作るだけだと簡単に考えればいいみたいです。ただ、関数は実体なのであっちこっちの関数から同じ関数を同時に呼ぶと衝突が起こります。解決には親関数の中で使う関数を親関数にとって専用にすればいいのですが、同じ様な関数を使うだけ書くのは面倒だしやらたとソースが大きくなるので、ひな形であるクラスから実体のインスタンスを作るという発想になったのだと最近ようやく「感覚的に」理解出来ました。
 その筋の解説書を読むと「継承はオブジェクト指向という高貴な峰の頂」みたいな奇妙に美化した記述が多いのですが、その実態は「楽して俺様関数書きてぇ〜」って俗っぽい発想でした。美化した手段を書くだけで目的を書かない解説書が多いので感覚的にわからんかったのです。

#Python #[Art-Net]
Icon of admin
 ガラクタ週間が終わり、終日本業のデスクワークでした。
 会場図面書いて、照明プランの概要まとめ、見積りというデスクワークの王道メニューです。
 嫌いじゃないのですが、ガラクタネタが中途なのでソワソワします。
 今やっているArt-Netは卓とデコーダが必要な作業なので、荷物も多いし広いスペースも必要です。しばらくはお休みかな。
 明日から現場が続きますが、RaspberryPiだけ持って行って現在のソースをオブジェクト指向っぽく書く練習をしようかなぁ。

 そうそう、製作というレベルではありませんが、ピンスポット用の照準器を増産しました。その実態は小型カメラ用の自在雲台を介して短いピカティニーレールをピンに取り付けるクランプです。
 細かい部品を買い増しして組み立てるだけなので15分くらいの作業でしたが、なぜ思い立って作ったかと言えば数日後の現場で数年ぶりにピンを振ることになったからです。
 鈍った腕でも対応出来そうな演目ですが、お年頃からくる目のコンディションでバインド照準器が使えませんので、ダットサイトなどの目印が遠くに見える照準器に頼らないとダメだと思われます。
 このクランプは5-6年前に作った代物です。以前作った物は部下にあげてしまったので、余っていた部品で改めて自分用をこさえたワケです。

#RaspberryPi #Python
Icon of admin
 昨晩、思い立って調べてみたのですが、Pythonで並列処理をする方法には大きく分けて2つあると理解する。ThreadingとMultiprocessingです。

 今までに何度も読んでいたサイトばかりですが、何故だか内容が突然理解できるようになりました。たぶん今まではPythonをスクリプト言語だと思っていたからでしょう。Pythonという皮の裏にC言語がある思えばスムーズに理解が進みました。

 似たような別ライブラリもありますが、意味合いとしてはこの二つに集約されていると思っていいでしょう。
 大雑把に言うなら、Threadingは比較的楽に使えるがCPUスレッドは1つしか使えない。Multiprocessingは複数のCPUスレッドを使えるがプロセスが起動するのに時間がかかり記述も少し難しい。
 難しいといっても、プロセス間通信の制約とタイミングくらいなもので、関数自体はThreadingとMultiprocessingはとても似ているので片方を覚えればどちらも使えそう。関数間で通信するQueueは使うライブラリが違うので注意ですが、これも関数が酷似しているのでストレス少ないかも。
 Python3.8からは共有メモリというC言語のポインタに近いことが可能になっているので、RaspberryPiのPythonも3.8になることを心待ちにしております。変数の型やデータ長を厳密に管理しなければなりませんが、それさえやっておけばいいので問題無し。デバイスとやり取りする処理では普通にやっていることだし。

#Python
Icon of admin
 今週末は小屋付きの増員ですが、毎度のことながらそれほどやることはありません。
 居眠りも出来ないので、パソコンに向かって仕事をしている風味でArt-Netのソースコードの見直しです。勢いで書いた関数型のC言語っぽいコードをPythonらしい書き方に直しつつ、贅肉を削っております。

 Pythonには群のデータを扱う方法がいくつかあります。Art-NetというかDMX512のパッチマシンを作るにはこられを巧く使うことが大事です。
 これらには大きく分けて3つあります。list型、taple型、dictionary型です。これらは似ていますが出来ることが違います。また、どれを使っても出来ることでも内容によって処理速度が違ったりします。特徴をよく理解して使わないと損です。

 list型は群に対しても個に対しても計算が出来ます。文字列に対する加工も含まれますが、他の型ではそれが出来ません。
 taple型は様々な型のデータを一つに束ねて扱えます。関数の戻り値は基本的にこれだと思っていいでしょう。taple型の使い方がわかるとPythonの便利さが実感出来てコーディングの幅も広がるような気がします。
 dictionary型はデータ参照用と言ったらいいでしょうか。キーワードに対して様々な型のデータを関連付けられ、なんといっても抽出が速い。キーワードが規則性のある数値の場合は他の2つもあまり変わらないかもしれませんが、キーワードが規則性を持たない場合はdictionary型が圧倒的に速く便利だと思います。
 具体的な違いや用法はその筋の教科書や先達の書き込みに任せますが、PythonがPythonであるところはここなのかもしれません。

 RaspberryPiが見た目以上に優秀なハードウェアなのもありますが、Pythonで制御系を書いても遅いとは感じません。
 もちろん、C言語とかで書いてコンパイルした方が速いのは間違いありませんが、書いてすぐに実行できるPythonは生産性が高いと思います。
 少し遠回りかもしれませんが、C++に書き直すことを前提にPythonで書き、動いたらC++に移植するってのが制御系を作るのにいいかもしれないなぁ~なんて思ったりしてます。コーディングの規則が違うだけで書く内容は凄く似てますので、PythonでスケッチしてC++で清書するのです。勢いで書いたPythonをPythonらしく書き直すなら同じことかなと。

#Python
Icon of admin
 今日も大半が待機時間な小屋付き増員です。

 Art-Netを送信する物が無いので画面とキー操作の作り込みをしました。
 簡単なようで難しいのがキー入力です。
 どんな文字でも受け付けるinput()などの文字列入力コマンドを使えば入力自体は簡単ですが、カーソルキーなどを即応させたいし、ホットキーでコマンドを入力したいし、入力の際にエラーにならない様にフィルタをかけたい。
 面倒だったのは数値の入力。用いられる数値には範囲がありますから、範囲外の入力がされたならその時点でアラートを出したい。
 例えば、数値範囲が0-127だとして、128や1000などの範囲外の数値が入力されたならその時点でアラートを出す。求める数値が整数なら小数点以下の入力は阻止する。数値を得たいのだから数字キー以外の入力は受け付けない。など。
 求める操作のリズム感によりますが、数値範囲や小数点の条件などでフィルタする関数を作っておいても無駄にはならないでしょう。
 当面の目標であるArt-Netのモニタは整数だけを受け付ければいいのですが、極端な話「.」ピリオドを受け付けなければこれは簡単。小数点以下1桁の範囲指定が一番面倒でした。

 これらの処理には「正規表現」と呼ばれる奇怪な文字列を使わなければなりません。「3桁以下の整数文字列='^[1-9][0-9]{,2}$'」とか「小数点以下1桁の2桁以下の実数文字列='^[0-9]{,2}\.{,1}[0-9]{,1}$'」といった書き方をします。なんですかねコレ。
 慣れてしまえば、まぁ、ありかなと。ANSIエスケープシーケンス並みに古いVT100時代からの名残りです。

#Python
Icon of admin
 画面とArt-Netの送受信を結合させられる段階になりました。Art-Netをスルー出力し特定のユニバースをモニタします。
 簡易ながら実験段階で出来ていることですから、画面を整えたからってなんだよって構成ですが、パッチマシンの一部を先行して作っているので重要な過程です。表示することが目的ではなく、最低限持たなければならない機能を出来るだけ見やすく使いやすく軽く、そして今後の伸びしろを持たせた構成でまとめ上げることが目的です。

#[Art-Net]
Icon of admin
 開発作業用のノートパソコンはWindows11ですが、慣れると使いやすいですね。
 そう思う操作感の大半がMacOSやLinux系のパクリに見えますが、古いアプリも設定さえすれば安定して動くので便利に使えてます。
 誰かが作ったコンテンツやサービスを消費するだけならiOSやAndroidが良いと思いますし、日常使いの文具としてやネット上のシステムを踏み台に発信するならMacOSが便利だと思いますが、舞台照明系のシステム構築やガチなモノづくりをするならWindowsの方が環境を整えやすいと思われます。使いたいのはOSではなくアプリやネット上のサービスですから、趣向や目的に合わせて選べばいいのです。
 数十年前にMP-80というワンボードマイコンにハンドアセンブルを16進数で打ち込むことから始まった私にとってはどれも便利過ぎるのでどれでもいいのですけど。

#日常
Icon of admin
 このところ何回か出ている「VT-100」について少し解説。
 私も使ったことはありませんが、今のパソコンやスマホに至る画期的な発明だと思います。

 まだパソコンという言葉すらなかった時代、コンピュータという言葉だけでそれらが総称されていた時代、大型汎用機(メインフレーム)をより使いやすくするための端末として開発された物です。
 見た目にはMS-DOS隆盛時代のパソコンみたいな姿をしていますが、大雑把に言うなら「リモコン」です。単体ではキー入力を画面に表示するくらいしか出来ません。処理を行うメインフレームに指示を送り、その戻りを表示するだけです。今どきの感覚のOSも搭載されておらず、データを保存する機能もありません。

 ですが、このVT-100を発端にパソコンやインターネットが生まれたと言っても過言ではないのです。
 たぶんですが、VT-100だけで完結させて何か出来たら面白くね?と思った人がいて、本当にそうしてしまったのがパソコンの実質的な発祥ではないかと。インターネットも、離れたメインフレームを繋げたアーパネットが発祥と言われていますが、実際には遠くに置いたVT-100をもっと簡単にメインフレームに繋げたいというニーズに対し「楽するために努力した結果」なのではないかと。
 これらは私の勝手な想像でありますが、VT-100が無かったら今が少し違っていたのは間違いないと思います。

 ANSIエスケープシーケンスや正規表現などのエスケープコードと呼ばれる制御体系はメインフレームやVT-100で用いられていたもので、その名残が未だに使われているのです。
 知らなくてもプログラムは書けますが、知っていた方が便利なことも少なくありません。

#妄想
Icon of admin
 ぼちぼち本業が復活しつつある今日この頃。
 ガラクタイジリばかり続けていても実入りはありませんのでありがたいことです。

 ガラクタイジリは本業の合間に続けていきますが、時間が少ないので課題を整理してとりかからないといけません。
 当面の課題はArt-Netパッチマシンと客席テーブルです。
 Art-Netパッチマシンは受信モニタを仕上げ、パッチ機能をハメ込める作りにしていきます。
 客席テーブルは、昨週の現場で部下が使ったのでその感想を聞き、ポリエステル樹脂を塗布した天板の具合いを見て方針を決めます。ポリエステル樹脂でもダメなら天板をどうするか更に考えないといけません。あとは軽量化です。現時点でも実用レベルの重さですが、あと5kgのダイエットを目指します。

#ガチ工作
Icon of admin
 RaspberryPiが手に入らない。手に入ってもボリボリ価格。
 世界的な半導体不足を実感した瞬間でした。

 3月下旬には入荷するそうです。

#RaspberryPi
Icon of admin
 客席テーブルに塗布したポリエステル樹脂はOKです。ゴム脚の痕は全くありません。キズはありましたが凹みにはならす。

#ガチ工作
Icon of admin
 Art-Netの受信モニタはイメージ通りに動きました。選択したユニバースをキレイに表示しています。
 当面の習作課題はクリアしましたが、喜ぶというより目の前に新たな壁が見えてきました。

 この後はartnet-coreと名付けている受信と加工を司るサーバー的な部分を作ります。
 ここまでの経験をもとに全体の構造をよく考えてから作る必要があります。

#Python #[Art-Net]
Icon of admin
 1ファイルでPythonを書いているとソースが上下にあっちこっちして解りにくくなります。
 以前は面倒な気すらしていましたが、関数をクラスライブラリにして別ファイルにする意味がようやく実感出来ました。
 クラスライブラリにするってことは汎用化でもありますが、汎用化が目的ではなく、ダラダラ専用処理を書かないための制約と思えばいいでしょう。
 今後の拡張の為にも、ここまで書いてきたソースをゼロから書き直してみます。

#Python
Icon of admin
 客席テーブルにポリエステル樹脂を上塗りをしたのですが、顔料を入れて過ぎたためか硬化不良になってしまいました。要は固まらない。
 完全に硬化反応したポリエステル樹脂はアセトンでほぼ溶けないようです。硬化が怪しい時はアセトンで拭いてみるとわかるのかもしれません。
 このままでは使えないのでアセトンで拭き取ってやり直しです。

#ガチ工作
Icon of admin
 ネットを何気に見ていてPythonの「継承」が具体的にわかってきました。
 「継承」はclassを使って新たなclassを作る方法です。classの中で別なclassからオブジェクトを作って使っても同様の結果を出せますが、「継承」は別なclassのインスタンスをインスタンスのまま呼んで使います。C言語をご存じの方なら、classの中で別なclassのインスタンスをincludeするイメージでよいと思います。ちょっと説明が難しいところですね。
 Pythonといいますか、オブジェクト指向言語独特の考え方のようです。実体であるオブジェクト、オブジェクトを作るレシピのインスタンス、インスタンスを呼び出せるようにまとめたクラスとなるようです。俺様関数を楽に作る方法ですから、これなら一度書いたことを多目的に利用できますで、同じことを何度も書かずに済ますことが出来ます。

 ここで重要になるのがsuper()です。ただ、これがあって初めて継承が可能になるのに、これについての説明が書籍でもネットでも弱い気がします。
 また、最もシンプルな基礎用法を題材に説明するのではなく、最もシンプルな応用例を題材に説明する文書が多いので、機能の核心を理解するのを遠ざけている傾向を感じます。

#Python
Icon of admin
 ポリエステル樹脂が硬化しなかった原因は予想の通り添加した顔料の量でした。
 顔料は色によって許容添加量が違うらしく、最初に試した青は最大8%ですが、黒は最大4%です。お察しの通り、黒を青の量でやってしまったのです。
 今回は黒の顔料を2%、アセトンを15%添加したのですが、5時間経過でベタ付きが無くなっています。アセトンが揮発して完全に硬化するには丸一日かかりそうですが、解決が見えたので一安心です。
 黒の顔料は2%でも完全な真っ黒になったので、今後は1%くらいでも良さそうです。添加物は少ないに越したことはありませんからね。他に比べ価格の割りに量が少ないのですが、少ない量で効果が出るなら安いと言えます。

 塗布方法ですが、FRP用のローラーを使って解決。このローラーは一晩アセトンに付け込んでも劣化する様子はありません。専用品ですから当たり前?
 ブラシが硬いためかペーパーで下地を均しても表面の仕上がりが僅かに波打つので避けていたのですが、書き物をする面ではありませんし、少し凹凸があるとゴム脚が滑りにくく貼り付きません。エアガンは平らに仕上がりますが、周囲への被害を考えると避けたい選択肢です。FRP用ローラーが妥協線かなと。

 客席テーブルver4.5はトップコートとして顔料無添加のポリエステル樹脂を塗布して完成にしたいと思います。艶消し剤を添加しなくても半艶に仕上がるので機械強度を第一にします。

#ガチ工作
Icon of admin
 出来るだけclass記述を用いてPythonを書いていますが、慣れるといいですね、コレ。
 そういうモノなので当たり前ですが、自分で書いたライブラリが通常のライブラリと同じ様に使えます。通常関数か、スレッドか、プロセスか、その辺りの書き分けもclass側に持たせること出来るのでメインソースがかなりシンプルになります。
 ただ、後で迷わないようにするために、ソースコード内のコメントに使い方を記述するなど、運用のコツを掴まないといけません。
 書いた本人が後日も使えるようにしておくのが一番難しかったりして・・・

#Python
Icon of admin
 オレメモ

 Pythonで文字列からANSIエスケープシーケンスを取り除く方法

 ソース
 import re
 text_ansi = '\033[2KTest\033[2;3HText'
 pattern = re.compile( r'\\033\[[0-9;]{1,}[a-zA-Z]{1}' )
 text_noansi = pattern.sub( '', text_ansi )
 print( text_noansi )

 実行結果
 TestText

 参考にしていた書き込みが間違っていました。
 制御文字(\や[)に対するエスケープ[\]がありませんでした。
 解決に時間がかかったのは自分の無知が故です。up主に文句を言ったらいけません。
 文字数を{}で指定しなくてもいいのですが、自分としてはこの方がメンテナンス性がいいかなと。

 あ、ここに書く時もそうなのですが、[\]を表示させるには注意があります。
 [\]を表示させるには[\\]としないといけない場合があります。
 「\\033」や「\[」と表示するには「\\\033」や「\\[」と打たねばならん事があるということです。システムによって若干違うようですが。
 これが原因でup主の書き込みがおかしくなっていたのかな?

 それにしても奇妙な字面です・・・

#Python
Icon of admin
 Pythonはオブジェクト指向な書き方が出来ると驚くほど書きやすいですね。人気No.1言語なのが納得です。
 継承におけるsuper()の使い方が感覚に入ってきていませんが、今日書いたテキスト画面の基本制御classを継承して定型画面を表示するclassを書いて習得しましょう。

 出来るだけ細かくclassで書いておけばC++への移植で都合が良いかもしれません。C++はゴリゴリのオブジェクト指向言語ですから、方言的な違いをclass単位でホローすれば全体の構造はそのまま行けるだろうという皮算用です。もしくは、全部をC++化しなくても、重い処理や繰り返しが多い処理だけPythonにimport出来るクラス・ライブラリとしてC++で書き直せば良いかもしれません。

#Python
Icon of admin
 super()の使い方がピンと来なかったのは、Python2とPython3で記述の仕方が少し違った為でした。ネットにはこの辺りが区別されてない情報が多いようです。
 super()は継承で呼び出すclass(親class)の初期化を実行するものです。親classに def __init__(self): があれば必須です。無ければ不要?。渡す引数があればsuper().__init__(引数)とします。引数の考え方書き方は普通にインスタンスを作る場合と同じです。ここにselfは不要ってこと。
 継承の考え方はC言語のincludeと似たようなものです。別classであってもここに書いてあるのと同じ扱いが出来ます。違いは、変数や関数に同じ名称がある場合にエラーにならず、親classを呼び出している子classの記述が優先されます。

 ということらしい。
 結局は「同じ様なこと何度も書きたかねー」「ここをちょっと変更して使えたらなー」に応えた手段らしい。
 すっごい崇高な指向ではなく、ベッタベタに楽したい指向だわな。
 Pythonをデザインした人は「楽するために努力するタイプ」らしい。親近感がわきます。

#Python
Icon of admin
 本業の合間にPython書き書き。
 すでに動作確認は出来ていますから書式を変える作業。
 オブジェクト指向で書くと処理が部品化されるので見通しが良くて間違いが少ないかも。
 明日明後日は本業の現場なので工作はお休みです。

#Python
Icon of admin
 オレメモ

np.abs( np_array_dt - ( datetime.datetime.now() - datetime.timedelta(seconds=0.1) ) ).argmin()

#Python
Icon of admin
 キーボード、モニタ、ネットワークなど、ハードウェアとのやり取りを先に進めていますが、ボチボチ本丸であるパッチ機能の具体的な作りもまとめ始めています。
 パッチ機能はマッピングファイルに従って入力を出力に置き換える作業なのでアルゴリズムに難しいことはありませんが、十分な速度を得られるかが難しい課題です。
 DMX512は1スロットあたり44usecです。100万分の44秒ってことですが、8ユニバース扱うなら100万分の5.5秒以内に1スロットを確実に処理しなければなりません。RaspberryPi4BのCPUクロックは1GHz以上であり、それが4スレッドありますから間に合うような気もするのですが、確認しながら工夫していく必要があると思われます。
 なんの工夫もなくPythonを動かすとCPUは1スレッドしか使われません。RaspberryPiでは能力の1/4しか使えないってことです。CPUの能力を最大限使おうとするなら、実行ファイルを複数に分けてOSレベルでプロセスを分けるか、Python内でmultiprocessingを定義して複数のCPUスレッドがPythonの処理を請け負うように仕向けないといけません。
 multiprocessingの使い方はThreadingと似ているので難しいことは無さそうですが、こういったちょっと深いところをちゃんと書かないとRaspberryPiでパッチマシンは厳しい感じです。

#Python #[Art-Net]
Icon of admin
 先日書いた謎のオレメモ

 np.abs( np_array_dt - ( datetime.datetime.now() - datetime.timedelta(seconds=0.1) ) ).argmin()

 これはDelay機能で重要な処理です。
 日時の配列(np_array_dt)の中から、現在日時から一定の時間を差し引いた日時に最も近い日時を項に持つIndexを得ます。

 Delayを構成するにあたり、受信値に日時を付けて数世代のデータを保存し、少し前の入力値を使います。出力を遅らすのではなく入力を遅らすのです。
 パッチはパッチマップに従って入力スロットの値を出力スロットにコピーしますが、コピー元の入力スロットを探すアドレスに受信世代のインデックスも持たせれば1フェーズでパッチとDelayの処理が完了します。コピー元のアドレスの表現を「何秒前の何番LINEの何番スロット」とするワケです。Titan系からのパクリですが、LINEとはDMXの内部系統のことです。8ユニバースを扱う構想ですから8LINEあります。内部系統に入出力先をパッチするのは言うまでもありません。
 意味合いとして正しいのはパッチが済んだデータの出力を指定時間遅らすことだと思いますが、入力を遅らせてもその様に振る舞うならいいかなと。

 そもそも反応が鈍い劇場の調光装置と反応が鋭い機器をワンボードで操作しても明かりの変化を一斉にさせたいという要望からのDelayです。カットインをカットインにしたいだけで、照明効果を作るエフェクトではありません。
 ですから、厳密に設定時間分遅らせることが目的ではなく、全体が同じタイミングで動いているように「見えれば」いいので、入力の世代を管理する方法で十分だと思うのです。

 「少し前の日時のインデックス」を見つけるのが謎式の正体です。

 ちなみに、時刻を使わず日時を使う理由は、深夜24時、日付が変わる瞬間に必ずエラーが起こるからです。0時0分0秒付近でほんの一瞬ですが、設定可能な最大Delay時間前のデータが出ます。Delay最大値が1秒なら1秒前のデータが出てしまうのです。一瞬のこととはいえ、こんな潜在エラーがあったらカウントダウンの現場では使えません。

#Python #[Art-Net]

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

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

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

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

#ガチ工作
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]
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を組み合わせれば製品が作りやすくなるような気がします。

#電子工作
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]
Icon of admin
 オレメモ

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

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

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

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

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

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

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

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

#[Art-Net]
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
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
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]
Icon of admin
 Art-Netを受信してから一時保存する流れ

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

● 受信日時の取得

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

● 対象ユニバースか確認

● ルートIDを取得

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

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

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

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


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

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

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


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

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

● 返信


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

#Python #[Art-Net]  
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]
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本だけで動くので望ましい状態です。

#電子工作
Icon of admin
 報道かくあるべしといった印象

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

#雑談
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云々以前にこの辺で混乱するかも。

#電子工作
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]
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円て・・・。

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

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

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

#雑談
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を使っている方がおかしいのでしょう。

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

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

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

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

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

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

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

#パソコン
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
 ウクライナ侵攻において効果を発揮した携行兵器「ジャベリン」についてよくわかる動画です。

 究極のゲリラ戦術です。

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

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

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

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

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

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

#照明器具 #本業

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

Icon of admin
 昨日ICのハンダを当てなおしたムービングは治った様子です。
 拡大鏡でICの取付けをチェックしたところ問題は無さそうですが、何年も使えてきたのに不調の原因がハンダ不良なんてわかるかい!ってところです。
 ハンダをよく見たら質の良いものではありません。ひょっとすると鉛入りかもって顔色。
 中華電器製のお安い品物ですからこんなもんかな。

#照明器具 #電子工作
Icon of admin
 明日はオフなので、Art-Netの処理を書き進めたい。
 初めて手掛ける難しい処理は頭を全振りして半日以上没頭して書きたいのですが、ここ半月はコロナの反動需要と年度末が重なって思うように時間が取れませんでした。
 そんな日々から解放されましたし、Delayのアイデア主であるプランナーさんに「連休前にはアルファ版見せます」と断言して締め切りを目の前にぶら下げましたので、これから半月は飛ばしましょう。開発費を頂戴している案件ではありませんから純然たる趣味の領域ですが、怠け者はお尻に火が点かんと怠けっぱなしです。

 こんな日(4/1)ですが、ウソではありません。

#ノリと勢いスイッチ
Icon of admin
 Art-Netパッチは入力部の書き直しが終わったようです。
 「ようです」というのは動作確認が済んでいないからです。一見正常に動いていますが、エラーが出る条件を考えて色々試さないといけません。
 今回の書き直しはマルチマスタ対応です。HTPミキサー化とも言えますが、ミキサーにするのはオマケで、Art-Net送信機を複数繋げてもおかしな挙動に陥らない様にする対策です。
 複数の送信機のデータをHTPでミックスして内部の時間単位で並べます。[ 時間単位, ルート, スロットアドレス ]の3次元配列でデータをスタックします。
 パッチにしてもディレイにしても、この3次元配列からデータを取り出して処理しますから、これがどれだけ堅固に動作するかが肝です。

#Python #[Art-Net]
Icon of admin
 昨日、LED-BARの箱で使う本体の受けにポリエステル樹脂を塗布しました。今回はエアガンです。
 エアガンに慣れがないので上手くいったとは言えませんが、硬化すると表面が硬く滑らかに仕上がります。いいですね。
 ガス圧を低めにして先日作った換気扇を併用すると飛び散りが少なく作業が出来ます。

#ガチ工作
Icon of admin
 荒天のため時間が空いたのでArt-Netを書き進めてみました。
 処理の整理とマルチプロセス化です。
 マルチプロセス化は多コア、多スレッドのCPUを有効に使う手段です。何もせずにPythonを実行しますとシングルコア(スレッド)ですべてが実行されるので能力を引き出せません。RaspberryPi4Bは4コア4スレッドですから、単純に4倍とはいきませんが、プロセスを分割することで処理負荷が複数のCPUスレッドに分散されるようです。
 どの処理がどのCPUスレッドに割り当てられているかはOS次第なので実際のところどうなのかはわかりませんけど、topで処理負荷を見る限り、総処理負荷は100/400%、プロセス当たりの負荷は最大でも50%くらいになったので良いと思われます。
 ここまで負荷のかかる処理をさせるならC++で書けって話もありますが、処理の大半はプロセス間通信とnumpyなので、私がC++で書いても軽くなるのか?って疑問はあります。numpyは達人がC++で書いたライブラリですからね。

 このまま書き進め、Art-Netのフロントエンドのライブラリとしてまとめましょう。

 今後の課題はパッチ処理です。早々に手を付けるつもりでしたが、パッチ処理のアイデアに変更が出るとArt-Net処理に書き直しが多発し3歩進んで何とやらを繰り返していたのです。
 パッチ処理はnumpyの「ファンシーインデックス」に全面的に頼ります。詳細は以前の書き込みを読んで頂きたいのですが、マップファイルを与えるとそれに従ってデータを抽出して配列を生成します。つまり、「ファンシーインデックス」の流儀に合わせたパッチマップを作ればnumpyのコマンドに与えるだけです。パッチマップの生成はレスポンスを求めませんし頻繁に更新されるものではありません。
 処理の構造をよく考えて進めましょう。

 マルチマスタ化(HTPミックス)の確認は、荒天で別棟に置いてあるもう一台の卓を取りに行けず、動作確認は明日以降です。

#Python #[Art-Net]
Icon of admin
 マルチマスタ処理はHTPではなく選択式が良い気がしてきました。
 HTPは同じスロットの高い値を採用しますが、ムービングの制御においてはよくありません。かといってLTPが良いワケでもない。
 ならば受信する卓(送信元IPアドレス)を選択したらどうかというアイデア。

 この処理をするには入力部の大幅な変更が必要です。
 ・・・まだまだかかるなぁ。

#Python #[Art-Net]
Icon of admin
 送信元をIPアドレスで選択する方法は簡単でした。丁寧に書いてきたおかげで左程の書き換えもせずに対応できそうです。
 現在受信中の送信元一覧を得るためのプロセス間通信チャンネルを追加し、指定した送信元のデータだけを取り出す試験はものの数分で終わりました。
 この後、一連の処理を関数化すれば完成です。
 ただ、ライトアップのバラシに気力体力が奪われているので方向性が見えたところで終わりにします。丸一日、お日様を浴びながら立ったりかがんだりを延々繰り返していたので流石にシンドイ。集中力が落ちている時に書き進めるといいことはありません。

 受信モジュールから取り出す際、それなりに大きな3次元配列からスロット毎の最大値を取り出す処理が不要になったので処理が少し軽くなりました。
 送信元を選択式にするとバックアップ卓の切り替えに使えますし、フェスなどで複数の卓を切り替えて使う際にも使えます。パッチは一意で卓を切り替えて使えるとかなり便利だと思います。

#Python #[Art-Net]
Icon of admin
 送信元をIPアドレスで選択する方法は完成。ライブラリの段階ですから、コマンドで現在受信中の送信元一覧を取得し、IPアドレスを送って設定する機能の追加です。最終的にはユーザーインターフェースからこれらのコマンドを使って指示します。
 その他の訂正は、Delayのためのスタック順を逆にし、定数を出来るだけ外から設定するようにしました。
 スタック順を逆にしたのは、Delay値で読み出す際の計算を簡単にするためです。スタックの際にポインタを加算で行うと読み出しでは減算になりますが、配列のインデックスを得る際に加算とmodを使うと配列を一括計算出来ますから、スタックの際のポインタ計算を減算にしました。なんのこと?ですけど・・・。

 そんなこんな、基本機能の煮詰めをしていたら時間オーバー。
 今日も今日とてライトアップのバラシをしてきた昭和産まれのオジサンは、これ以上頑張ると明日に差し障ります。
 風呂して一杯飲んで寝る時間です。

 基本機能は見るたびに直しや追加が出てなかなか終わりませんが、ここが肝なので、アタマが働く状態で取り組んで後で直しが出ないようにした方が良さそうです。

#Python #[Art-Net]
Icon of admin
 ライトアップのバラシで半日イントレに登っていたら気力の残量がゼロ。
 今日は工作作業をオフです。

 そういえば中国に頼んでいた基板が入荷。
 とてもキレイです。こんな上物がこの数でこの価格?と素直に思えます。有難いを越えて商売になっているのか心配になるほどです。
 リフローハンダで使おうと思って手配した工業用のホットプレートも入荷。
 気力が残っていれば、次のオフでリフローハンダの実験をしたいなと。

 リフローハンダが上手くいけば、随分前に試作だけしたTASCAM製プレイヤーのリモコンも作ろうかなと。
 所属会社の音響君たち曰く、バックアッププレイヤーも同時制御出来ると心強いらしい。同じソースを入れておくのは言うまでもありませんが、RS232を2分配するだけで2台同時に動くので難しいことはありません。
 今となってはMD/CDではなくCDプレイヤーが主になっていますが、TASCAM製のプレイヤーはRS232による制御方法がほぼ同じなので基本的な機能だけなら高い互換性を持たせられます。

#電子工作
Icon of admin
 ロシアのウクライナ侵攻に解決が見えませんね。
 報道からは絶対悪のロシアと絶対正義のウクライナとしか聞こえてきません。
 本当にそうでしょうか。
 ロシアが武力で国境を侵したことは間違っていると思いますが、ウクライナが一方的に正しいとは思えないのです。

 前提として、共通の損得って意味で越えてはいけないボーダーラインはあると思いますが、正義は人の数だけ存在する概念であって絶対正義は存在しないと考えています。どんな宗教でも経典を解釈する人次第で神の意志が違うことからも明白な事実です。聖書を根拠に指導者を越えた権力者がいることも権力を欲する人の正義ですから。
 国は人の集合体であり、限られた人の思惑が方針を大きく左右するとしても、概念的には総意で方針が決まるモノです。かのナチスであっても、先進的とされたワイマール憲法の上で民意を受けた正式な手続きを経て発生しています。一定以上の権力を得た後、あのような流れになったことは残念でありますが、民意がそれを作ったことは歴史に明記されております。
 こんなことから、目先の「かわいそう」で被害者と加害者を線引きしている今の風潮にはナチスが発生した経緯と同じこと感じ、危険な匂いすらします。

 この件は「火のない所にナントやら」だと思うのです。経済的に余裕があるとは思えないロシアが膨大な戦費がかかることを承知でこんなことをしたがるのでしょうか。権力者の強欲やプライドがあったとしても、それだけを理由にこのようなことをするメリットは思い浮かびません。戦争は経済活動の極端な方法だと私は考えますが、今回の侵攻が強欲から来ているとするなら経済的なメリットが全く思い浮かばないのです。
 とするなら、ウクライナがロシアに対してプライド的に許せない非礼を働いたとするのが自然だと思うのです。感情的になれば経済的なメリットは後回しになりますからね。第一次世界大戦も、某国の王族の王子が暗殺されたことが発端ですが、一部の高貴な方々のプライドから世界大戦にまでなっています。なんとなく似ているような感じがします。
 もちろん、ウクライナ国民が総勢でロシアに非礼を働いたとは思いませんけど。

 ただ一つ、危惧するのは現在のウクライナ政府がネオナチ系と噂されることです。
 前述の通りナチスは正式な民意を受けて権力を得ていますが、その過程においてはベルサイユ条約によって卑下されたドイツ国民を煽って扇動した経緯があります。あくまで私の勘であって説明出来ることではないのですが、今のロシア絶対悪的な報道にナチスが権力を握る流れと同じ匂いを感じてしまうのです。

 もちろん、何の悪意も持たず、平和に過ごしたいと思っている一般市民が戦争被害者になっている現実は許せることではありません。
 ただ、被害者がいるからその国の政府は正義とするのは短絡過ぎるのではないか?と疑問に思うのです。

 なんかこう、予想外の攻勢で第三帝国が潰される発端を作ったソビエト連邦にネオナチが罠を仕込んで仕返しをしているようにも思えたりします。
 ハイウッド映画風に解釈すればですが(笑

#雑談
Icon of admin
 体中が痛い。病気ではありません。
 昨日はテレビの中継現場でした。夜桜がネタだったので当然ライトアップするのですが、落差10mはあろう谷底に桜がありました。その谷を降りたり登ったりを繰り返したワケです。当然脚を酷使しますから疲労困憊。今日もライトアップのバラシでしたので輪をかけて疲労困憊。オッサンにやらせる日程ではない。

 今日も工作はオフですが、作業の合間にArt-Netの処理をまとめましたので、明日は少し進めようと思います。

 今のところArt-Netの処理は堅調です。
 このまま書き進めれば使い物になりそうです。

#[Art-Net]
Icon of admin
 昨日はオフでしたが、体中が痛くて身動き取れず。
 リフローハンダの試験をしたいのですが、何時になることやら・・・
 今日も今日とてライトアップのバラシ。
 日中は春らしく暖かくなってきましたが、陽が暮れると気温が下がりますので、朝早めに始めて定時間やって上がりにしています。
 せめてArt-Netのライブラリを進めておくことにします。

#[Art-Net]
Icon of admin
 Art-Netを書き進めていました。
 ようやく卓を2枚使える状況になったので、複数の送信元を受ける処理を試してみました。
 基本的には問題なく動くのですが・・・受信するユニバース総数、いや、送信されるユニバースの総数が10以上になると動作がおかしくなります。こういった装置ですから処理できる量に限度はあるものですが、それにしても挙動がおかしい。
 いろいろ試したところ、multiprocessingでプロセス間通信をするmultiprocessing.queueが遅いことによるタイミング遅れであることが判明。せっかくプロセスを分けて処理効率を上げようとしてもプロセス間の通信が遅くては本末転倒。8ユニバースくらいのデータなら扱えるものの、さらにプロセスを増やす必要があるのにこれでは困る。
 Python3.8以降で追加された共有メモリが使えれば解決するっぽいけれど、現在使っているRasbianはDebian10(buster)ベースなのでPython3.7。Debian11(buleseye)ベースのRasbianに上げればPython3.9.2になるけれど、bulesyeは過去との互換性に少し難があるらしい。Pythonは動くと思うけど、他から引っ張ってくるドライバに不安がある。
 プロセス間通信には他の方法もあるけれど、どの方法をとってもかなりの書き直しが必要になりそう。
 トホホ気分ではありますが仕方ありません。

追記

 悩んでも始まらないので、Rasbianをbullseyeにアップグレードしています。
 たぶん、古い流儀を引っ張るより、最新にした方が良いと思うからです。
 ダメならダメでbusterを再インストール。

#Python #[Art-Net]
Icon of admin
 Rasbianをbullseyeのアップグレードしてみました。
 今までにない設定が少しありましたが普通にDebianです。
 Pythonは3.9.2まで上がっています。ここ数年で追加された新機能がほとんど使えます。

 すべての方法を試したワケではありませんが、Pythonのプロセス間通信は全般的に遅いのかもしれません。マルチプロセス処理は、常に通信しながらの並行処理ではなく、重い処理を別なところでやって結果を取り込むという発想で作られている感じがします。
 となると、ユーザー操作や設定データ(パッチマップ、プロファイルカーブマップなど)の作成は別プロセスで行うとしても、受信から送信までのArt-Netの一連の処理はシングルプロセスで行うのがいいのかもしれません。プロセス間通信のオーバーヘッドを無くすためです。

追記

 少し調べを進めてみました。
 Queueは使い勝手がいいのですが、トラブルが起きにくい様にマネージされているので挙動が遅いようです。
 プロセス間通信にはPipeや共有メモリなどQueue以外にも幾つか方法がありますが、速度が出る方法は管理が難しく、管理が簡単な方法は速度が出ないという関係にあるようで、管理が簡単で速度が出る方法は無い様子。
 仮に速度が出るとされる方法を使ってもカレントプロセスの変数を扱うほどの速度は出ませんので、外部とのやりとりはQueueなどを使うとしても、常駐する繰り返し処理はシングルプロセスで単純化を狙った方が良い結果になりそうです。
 全体的にマルチプロセスで外に出すってことです。

#Python #[Art-Net]
Icon of admin
 今日も今日とてライトアップのバラシ。
 規模は大きいですが、10日間で終わりが見えてきました。

 そんな現場作業をしながらArt-Netの受信処理を考え直しています。やらなきゃならない処理内容は見えましたから、主に処理の順序の整理です。
 順序を整理していくとコンパクトでシンプルな内容になってきます。これまで書いてきたモノは試しながら書き加えをしてきましたから、部分というより基本的な構造に無駄があったようです。

#Python #[Art-Net]
Icon of admin
 どうしたのか、所属会社のネットワークがインターネットに接続出来なくなる。LANで内側サーバー機にアクセスする分には正常。
 ゲートウェアサーバーを覗くとPPPoEのインターフェースにIPアドレスが表示されない。これは光回線側が落ちているサイン。
 ゲートウェアサーバーと光回線インターフェースを再起動したりと、わちゃわちゃしているウチに何事もなかった様に接続が回復。
 ライトアップのバラシから上がってきてこういった対応をするのは気が滅入ります。

#サーバー
Icon of admin
 Art-Netの受信送信処理を書き直しました。
 multiprocessing.Processで単独のプロセスにしていますが、一つの関数で受信から送信まで一貫処理です。
 処理単位で関数化しないのはPythonらしくない書き方ですが、細かく分けるとデータの受け渡しの時間が勿体ないので、ソースの美しさや読みやすさよりも動作速度に余裕を持たせたいところです。とはいうものの、関数に分けることも可能な書き方をしています。関数化しても他から読み出すことがない処理ばかりですからひとまとめの平文でもいいでしょう。
 処理負荷をtopで見ると26%くらい。今までよりも15~20%くらい軽くなっています。今後パッチ、ディレイ、プロファイルカーブの処理もこの関数・プロセスに追加していきますが、現段階では余裕があるように思います。
 もちろん複数の卓を繋げた時のオーバーフローによる遅延は解消しています。受信の入口に近いところにIPアドレスによるフィルタを入れて余計な処理を減らしたためです。現在8ユニバースですが、気になる遅れはありません。受信している卓のIPアドレスはすべてキャッシュしていますから、将来的に現在受信中のIPアドレスを表示することは可能です。
 本丸のパッチ処理をなかなか書き始められませんが、結果的にソースがすっきりして軽くなったのでヨシとしましょう。

#Python #[Art-Net]
Icon of admin
 ライトアップの片づけはほぼ終了。
 これからは少ない現場を淡々とこなしていく日々が続くので開発のペースを上げられそうです。
 作り変えたArt-Netの受送信処理は正しく動いているように見えます。この手の物にはコマンドの書き間違えではなくハードウェアの理解不足に起因するエラーが隠れていることがあるので、それを見つけることが難しかったりします。・・・そういった意味では、PICマイコンをアセンブラで書く方が楽だったりします。アセンブラは馬鹿正直ですから。

#Python #[Art-Net]
 
Icon of admin
 Art-Netはテスト用のマップでパッチとディレイが機能しました。プロファイルカーブはこれからですが、パッチとディレイが動けば理屈は同じです。
 ただ、配列変数の扱いで少し難儀しました。参照渡しになる規則がまだわからん・・・
 ドライバレベルの基本動作がようやく出来た段階なので先は長いですが、処理負荷も軽くていいんじゃないかと。
 ただ、処理を増やしたのに処理負荷が減っている。動くべきは動いているのに何故?

追記

 プロファイルカーブの処理も試し書きが一発OK。
 ムービングで試しましたが、ディマーだけノンディマーになる。
 もちろん、ディマーにだけディレイをかけられる。
 なんか面白い。

 どうやら処理の核は出来たらしい。
 一晩寝かせてから総チェックします。

#Python #[Art-Net]
Icon of admin
 Art-Netパッチは一番の課題をクリアしたワケです。
 規格書を翻訳するところから始まって4ヶ月間、ヒマが無くても考え続けてきましたから、嬉しいと言えば嬉しいですが、肩の荷が下りてホッとした気持ちが強いです。
 予想外の何かは残っていると思いますが、一番大きな山を越えたのかな。

 今後はimport出来るライブラリとしてまとめ上げ、先日基板を作ったSPI-DMXの試作です。
 ライブラリにするのはそれほど難しくありません。動作試験用に書いたmainを機能別に関数化して外から呼べるようにするだけです。
 SPI-DMXは、Art-Netパッチに組み込むか、別の装置としてArt-Netデコーダにするか、試作しながら考えたいと思います。RaspberryPiのSPIで大きなデータを扱ったことがないので、Art-Netパッチに組み入れられるかわからんのです。

 最終的な装置にまとめ上げるには筐体の製作もあります。簡単そうで難しい電源の入り切りや停電対策などもあります。
 まだまだやらねばならないことが多く、主機能が一応動いたからと喜んでもいられんのです。

 近々の目標は、最低限の設定操作が出来るところまで作ってDMX-Delayをリクエストしてくださったプランナーさんに主機能を確認して頂くことです。望まれているニュアンスで遅れるかが最も大事ですから。
 ベニヤ板に基板やモジュールをネジ止めした姿での確認になりそうですが、中身が決まらないと筐体の設計は出来ませんのでよいのです。

 願わくば、P社のW君にも確認してもらいたいなぁ~(笑

#Python #[Art-Net]
Icon of admin
 オフですが、用事が早く終わったのでArt-Netを書き書き。
 ライブラリ化が完了。importしてインスタンスを作ればArt-Netの受送信が始まり、インスタンスから関数を呼び出して設定変更や現在値の読み出しが出来ます。
 とりあえずこんなもんかな。

追記

 送信元を切り替える動作も確認しました。
 まだユーザーが選択するようにはしていませんが、5秒毎に切り替えるテストプログラムで正常に動作。
 SPI-DMXの処理もイメージがまとまってきました。Art-Netの出力処理内にthreadingで間借りすればすんなりいきそうです。

#Python #[Art-Net]
Icon of admin
 Art-Netの受送信がまとまったので、SPI通信の復習を始めました。人の操作部も大事ですが、ドライバレベルの繰り返し処理が成り立たなければ始まりません。
 SPIは受信ハードウェアが無くても送信動作は可能ですから、ソフトウェア的に処理の負荷がかかる様にして試すのは重要です。

 SPI通信を使うのはRaspberryPiから複数のDMXを出力する為です。RaspberryPiにはシリアルポートがありますが望む数はありません。何かしらの方法で拡張しなければなりませんが、私が扱える方法で組むならPICをフロントエンドにして数を増やしますので、PICと通信するのにSPIを使います。

 SPIがどんな通信かは諸兄達に任せますが、RspberryPiでもPICでも扱えて複数のDMXを扱うのに十分な速度を持った通信です。
 RaspberryPiにおいては、SPIを扱うハードウェアモジュールが搭載されているためにソフトウェアには負担がかかりませんので、周辺デバイスとの簡素な高速通信としてとても有効です。

#RaspberryPi #[Art-Net]
Icon of admin
 RaspberryPiのpythonでSPIで使うためのライブラリspidevの本家はこちら。
 本家とは違いますが、こちらのサイトはRapberryPiのSPIについてよくまとめられています。ロシア語なんで原文のままではちっともわかりませんが、本家を読んでもわからなかったことがここで解決します。翻訳して転載したらすごく参考になるかも。
 一見簡素な内容ですが、SPIの何たるかはこのサイトがわかりやすいかも。SPIには4つのモードがありますが、その違いを分かりやすく書いてくれている資料が少なくて困っていたところ、このサイトを読んで理解できました。シリアル通信に何の知識も無い人に向けた資料ではありませんが、UARTやI2CはわかるけどSPIがイマイチなぁ~って人にはお勧めです。SPIは少し独特な考え方を持っていますが、そのツボ処だけ簡潔に抽出しています。私は、マイコン全般の教科書と言ってもいいPICのマニュアルを読んでもSPIがどうしても理解できなかったのですが、このサイトを参考にPICのマニュアルを読み直したところ「なるほどー!」となりました。

#RaspberryPi #[Art-Net]
Icon of admin
 Art-Netドライバには追加しないといけないことがあります。
 受信したデータにパッチなどを施して送信することには成功しているのですが、現時点ではフリーフェーダーやスタックフェーダーを考慮していません。
 当初は[受信するプロセス]-[受信部からデータを取り出して加工するプロセス]-[加工したデータを受け取って送信するプロセス]と分けてイメージしていたので加工するプロセスで出来るだろうと思っていたのですが、プロセス間通信のオーバーヘッドを軽減するためにこれらを1つのプロセスにしましたので同じ考え方はできません。
 今もパッチ等のマップデータはプロセス間通信で差し込んでいますが、マップデータが変更された時だけ実行すればいいので頻度が低く問題になりません。されど、即反応して欲しいフェーダー操作の情報は違ってきます。データをどう扱うか、どの位置で処理するか、ちょっと難しくなってきます。
 フリーフェーダーだけなら特別なIPアドレス(例えば127.0.0.1)を用いた特別な経路でデータを取り込んでArt-Netと同列に処理する方法もありますが、スタックフェーダーにするにはちょっと無理があるように思ったりします。
 ただ、これらのフェーダーはバックアップ的な意味合いが強いので反応がやや遅くてもいいかもしれません。これが許されるならプロセス間通信でデータを差し込んでもいいでしょう。
 次のステップに入る前にここは片付けておかないといけません。

追記

 スタックフェーダーの方法はアイデアが出ました。Art-Netの入力を記憶します。ただし、記憶するユニバースなりスロットを指定出来ないとディマー以外の動作を邪魔することがあるので一種のフィルターが必要です。フィルターがあればフリーフェーダー的にも機能します。排他的ではなくHTPミックスになりますが、この方がいいでしょう。
 操作としては、記憶したい状態でスタックフェーダーとユニバースやスロットを指定してストアします。ユニバースやスロットが無指定ならすべてを記憶です。

#Python #[Art-Net]
Icon of admin
 中国からの物品が滞る状況が続いています。
 先日も、中華電器にお試し買いの発注をしたのですが、期日までに発送されず自動キャンセル。
 その外にも、中国で作っているであろう半導体部品が在庫切れなことが多く、RaspberryPiも小売りでは在庫切れが続いています。
 RaspberryPiは少し在庫しているので当面のソフトウェア開発には支障ありませんが、製品を作ることはできません。

 木材も高騰です。合板も角材も数倍の価格。まさか捨て材扱いされるような杉や赤松の野縁(30×40角)が高級品の様な価格になるとは思ってもいませんでした。しかも、手に入るのは節、捻じれ、曲がり物ばかり。ちょっとした物は鉄の角パイプで作った方が安いくらいです。新型コロナの影響に加え、ウクライナ侵攻によりロシアからの輸入が減ったことも大きいそうです。

 中国国内では新型コロナによるロックダウンで街全体が監禁状態と聞きます。発令された瞬間に居た場所から移動を禁じられ、自宅に居た人は自宅から出られず、勤務先に居た人は勤務先から帰宅出来ないそうです。何よりも、移動しないと仕事にならない運送業まで同じ扱いらしく、物流がほぼ止まっているのだそうです。もちろん、中国全域の話ではないのでしょうが、ロックダウンに至った地域は人が多く、人が多いのは商業産業が盛んな地域でしょうから、全体としてみれば生産活動が大幅に鈍っているのでしょう。
 報道から耳に入る話でもありますが、知り合いの工場は中国に協力会社を持っているのでリアルな話が聞けます。とにかく物が入ってこないそうです。電力が無い、人が行き出来ない、完成しても送れないとなればどうにもならんですよね。

 もちろん、我々が使う機材類も新規購入が難しくなるワケです。
 コロナがなんとなく過ぎ去った感じを受けて開催が増えていますが、それに合わせて機材を買い増ししようとしても今までの様にいきません。先日も音響系の問屋さんが来社されましたが、売りたくても売るものが入荷しにくいと言ってました。これではゴネても解決はしません。
 機材の買い増し手配はお早めに。

#雑談 #本業
Icon of admin
 Art-Netドライバはボチボチです。
 現場が無い日の定時後に2-3時間の作業ですから進みは遅いのですが、完成イメージは具体的になってきました。
 されど、まだまだ追加しないといけない要素は多いのです。

 今の課題はスタックフェーダーです。
 数本のスタックフェーダーを構成するのは簡単そうに思えますが、スロット一つ一つに対して条件分岐をして数値をいじるような処理ではいけません。条件分岐を多用して書くと意図が読み取りやすいソースになりますが処理は遅いのです。同じことを短周期で何回も繰り返す処理は、PICのアセンブラを書いてきたクセですが、単純な計算結果にフラグの意図も持たせたりして条件分岐を減らしたいのです。例えば、一定の範囲で繰り返す加算カウンタを作るとして、一定数になったことで条件分岐して初期値に戻すのが基本的な考え方だと思いますが、カウンタを繰り返し数で割った余りも同じ数値になります(この方法は一つの配列で複数のカウンタを構成する場合にも便利な方法です)。割り算が苦手なシステムでは無謀な方法ですが、Pythonは条件分岐が遅いように感じるので、この様な方法で軽くなることもあるようです。
 こんな感じで計算の中に条件分岐も含めるのは、将棋で数手先を考えるのとどこか似ています。

#[Art-Net]
Icon of admin
 ムービングの修理をしています。
 不調の現象は機体によって違いますが、今いじっている機種では特定の色が正常に点灯しない物が多い。点かなかったりフルにならなかったりです。
 一番困るのが、しばらくすると点かなくなる機体です。マイコンからの信号が途絶えるのか、ドライバICがサーマルプロテクトに入るのか、その他か・・・

 特定色が点かない機体はハンダ付けの不良が多かったようです。ハンダゴテを当てなおしたら大半が治るのですからクラックが入ってしまったのでしょう。
 しばらく使うと特定色だけ点かなくなるが電源を落としてしばらく放置すると復活する機体は電流検出抵抗のハンダを盛ると治ることが多いようです。ハンダが足りないために熱を帯びて抵抗値が上がってしまい、ドライバICが電流値を誤検出するのが原因と思われます。
 フルにならない機体も原因は同じ傾向のようで、ハンダゴテを当てなおしたりハンダを盛ると大半が回復します。ハンダを当て直しても治らない場合は、電流検出抵抗を交換すると高確率で治ります。

 ではどれが電流検出抵抗かと聞かれても答えるのは難しいです。使われているLEDドライバICのデーターシートを参考に基板の配線から読み解くしかないからです。ただ、機種は違えどLEDのドライブ回路は似たり寄ったりなので、基本的な回路様式を2-3パターン知っていれば読み解くのはそれほど難しくありません。

 もちろん、原因の全てがハンダ付けや電流検出抵抗にあるとは限りません。
 部品の取り付けをよく見て、甘そうなハンダを当て直すのが第一歩という話でした。

#電子工作
Icon of admin
 修理の話の続きです。

 電源モジュールがダメな機体もあります。
 起動しない機体、起動はするけど点灯させたり動かすと落ちる機体の2種類。

 起動しない機体は電源モジュールが単純に壊れています。大概FETが飛んでいますので交換すれば復活しますが、何故飛ぶかは原因究明が難しい。

 飛ぶFETがトランスより電源側の場合はサージ/スパーク対策の保護回路がダメな奴が多いようです。
 これらはコンセント挿すときに「パチッ!」と言うアレす。パチッとなるのはかなり高い電圧が流れるからですが、これがFETに流れたら一発で壊れます。こういった高電圧ノイズには大きく分けて二つあってサージとスパークです。どちらも定格以上の電圧が発生する現象ですが、前者が電源電圧の数倍で比較的時間が長いもの、後者は静電気の部類で電圧がとても高いのですがほんの一瞬のものです。似たような現象ですが、対策する回路が違います。
 サージ対策にはサージアブゾーバーを使うのが一般的です。ポリスイッチの一種で、高い電圧を受けると短絡してそれ以降の部品にかかる電圧を抑えます。サージ時間が長いと燃えますけどね・・・
 スパーク対策にはスパークキラーを使います。耐電圧が高く反応が速いコンデンサと抵抗をパッケージにした物で、コンデンサでスパーク電流を吸収します。スイッチではないので反応が速いのが特徴です。ただし、サージの対策にはいささか不向きです。
 飛ぶFETがトランスよりも出力側にある場合は原因究明が難しい。私は早々に諦めます。

 起動はするけど点灯させたり動かすと落ちる機体も電源モジュールの不良ですが、出力側のバッファコンデンサに異常があるか、出力電流を検知する回路が定格異常を起こして本来よりも低い電流値でプロテクトに入ってしまうことが原因に多いようです。

 修理は治った時の達成感はなかなかのものですが、その渦中は決して楽しくありません(笑

#電子工作
Icon of admin
 電源モジュールを見ていて不思議に思ったことがありました。
 基板に付いているサージアブゾーバーは680vの物です。計算値よりも少し高めの物を使うのはわかりますが、電源にほぼ直結のFETの定格は400v。守るべき部品の定格電圧よりもサージアブゾーバーのクリッピング電圧がこんなに高くていいのでしょうか。
 この電源モジュールはFETを何度か交換しています。交換する度に治るには治るのですが、使っているウチに同じ故障に陥ります。故障に陥るのは現場で最初に電源を投入する瞬間なので保護回路がダメなんじゃねーかと思っていましたが、アナログ回路が苦手な私でも被保護部品が400vで保護部品が680vでは意味を成していないように思います。FETは在庫を切らしているので入荷待ちですが、サージアブゾーバーは331K(クリップ電圧330v)が手持ちにあるので付け替えてみようと思います。FETは近しいスペックでスイッチング抵抗が半分以下の物で耐圧は500vです。

 中華電器の販売店さんに電源モジュールを売ってくれないかと相談中です。
 快諾してくれたのはいいですが、すでに廃盤品なので本体を作っていた工場では手に入らないとの回答。さらに探してみると言ってくれていますがどうなることやら。
 電源モジュールは汎用品ではありませんし、かなり小型なので同等品が見つかりません。販売店経由で新品を手に入れるか修理するかです。
 この調子では今後も電源モジュールの不調が発生しそうなので対策を確立しておこうと思います。

#電子工作
Icon of admin
 ムービングライトの整備作業がヒト段落したので、しばらく前に入荷したLED-BARの整備です。
 この手の器具はビームが細いレインライト的な物が大半ですが、このLED-BARは広角なのでLHQの代わりに使えます。LHQの1.2kw(100w電球)に対し90wですからかなりの低消費電力です。
 箱は丁度良さそうなプラ箱に受けの間仕切りを入れています。脚となる付属の金具は使い勝手が好みに合わないので作りました。
 箱の機構は完成しているので、本体と箱にカッティングシートでマーキングして金具類を取付けたら仕上がりです。

 このLED-BARは入荷した時点で3台NGでした。
 一瞬立ち上がりすぐに落ちます。筐体を開くとLEDモジュールが2セット入っている構成ですが、試しに片方のモジュールを外して起動すると正常に動きます。電源モジュールの定格を見るとギリギリなので、中国の電源(200~260v)での出荷チェックは正常でも日本の電源(100v)では力不足といったところでしょう。PAR球よりも安価な製品ですから、完成品ではなく「半」完成品と思ってローカライズと仕上げを自分でするつもりで買っています。
 解決方法は電源を入れ替えるか追加して電力に余裕を持たせることです。1台で電力を賄える電源モジュールはサイズ的に入りませんので別な電源モジュールを追加です。
 ただ、既設の電源モジュールは電圧が10.8vです。こんな定格電圧の物はレアですから、追加の電源モジュールは12vの製品のセンシング抵抗を替えて電圧を合わせればいいかと。スイッチング電源の制御ICの型番がわかれば比較的簡単な改造です。

#照明器具
Icon of admin
 スポットライト群の整備は部品の入荷待ちで一時停止。

 社内のサーバーの整備です。ファイルサーバーのHDDの入れ替えをします。
 WindowsServer2008R2上のRAID1で動かしている2台1組のうち1台が飛んだのですが、飛んだ物を交換した応急処置のままでした。動いているもう1台も同時期の物ですから壊れる前に交換しようという作業です。
 RAIDとは複数のHDDやSSDを1台のストレージとして動かす方法です。RAID0はストライピングと呼ばれ、主に速度の向上を狙ったものです。RAID1はミラーリングと呼ばれ、複数のHDDに同じデータを書き込みバックアップを目的にしたものです。その他にもRAID0やRAID1を複雑に組み合わせる方法もあります。
 ファイルサーバーですからRAID1(ミラーリング)を用いています。複数のHDDに同じデータを書き込みますので、同時に壊れない限りデータを失うことなく機能が継続します。新しいHDDに入れ替えれば自動的にデータがコピーされてミラーリング状態が回復します。同時にバックアップが出来、稼働させながらHDDを交換できるとても便利な方法です。
 ただし、RAIDにはOS(ソフトウェア)によるものとチップセット(ハードウェア)によるものがあり、違うシステムではRAIDとして機能しないばかりでなく読み出せないことがあります。今まで扱った中ではIntelのハードウェア式が他のシステムでも読み出せることが多いので、Windows系を組む場合はIntelのハードウェアRAIDを使うようにしています。これならWindowsでなくてもLinuxでも読み出せます。Linux系であればOS標準のソフトウェアRAIDが良いようです。

 今はバックアップを取っています。
 他のサーバー機で日常的にバックアップを取っていますから余計な手間っちゃ手間ですが、こういった「おまじない」というか「願掛けに」に近いことをしてから進めるようにしています。何故かわかりませんが、どんなに丁寧に日常バックアップを確認してから始めても余計な手間をすっ飛ばして作業すると高確率でデータ異常が発生し、日常バックアップを確認しなくても余計な手間をかけると異常が発生しません。不思議ですが、当然のようにそうなるのです。
 持って生まれた運みたいなものでしょうけど、どうせかかる時間なら精神的なストレスが少ない方がいいかなと。

#サーバー
Icon of admin
 サーバーはIntelのRSTに便利な機能があって比較的少ない手間でいけていますが、使っているマザーボードが古いためにSATAの上限が2TB。購入当時のお値段は2TBのHDDと大差ありませんでしたが、せっかくの4TBのHDDがフル機能せず。2TBでも容量は十分足りていますが、その制限がわかるまでに余計な時間を使ったかも。将来的にマザーボードを替えれば容量を拡張出来るのでいいでしょう。

 ムービングは部品が入荷したので電源モジュールを修理。
 あえてサージアブゾーバーはそのままにFETだけ替えて試したところ一発アウト。サージアブゾーバーとFETを替えたところOKでした。
 ただ、電源モジュールのコンデンサが完全に空になった状態で試さないと意味がありません。コンデンサが完全に空の状態で電源を投入すると大きな突入電流が発生し、その瞬間に大きな電圧も発生するからです。数日放置して再チェックです。この機体はRだけ弱い不良もあります。照度計で測ると1/3くらいですが、弱いなりに調光は効くので電流検出抵抗がおかしいと思われます。基板上の計測ですから正確ではありませんが、ツジツマは合うので抵抗を付け替えれば治ると思います。ただ、国内では手に入りにくい抵抗(表面実装の2512サイズ)なので中華電器にオーダー。連休明けに入荷予定です。
 もう一台ダメなのがあります。起動直後は元気一杯動くのですが、LEDフル点灯で動かし続けるとおかしくなってきます。挙動を見ると使っているウチに電源電圧が下がるのだと思われます。この微妙な不良は頂けません。ハンダ不良か部品の不良によって過加熱が起こってのことだと思いますが、原因を特定するのはかなり難しく、電源モジュールを替えたいところです。中華電器の販売店に電源モジュールの手配を相談していますが最終的な返答はありません。
 電源モジュールは12vと24vのデュアル。デュアルで小型だから代替品が無いのです。12vが制御とLED、24vがモーターといった分別みたいです。動きは正常だけどLEDがおかしくなるので12v系がダメなんだと思います。ハンダ不良くらいなら見てわかるからいいけど、そうでないと特定は難しい・・・

#照明器具 #サーバー
Icon of admin
 サーバーの保守は終了。ストレージの容量が数倍に増えたのでしばらく大丈夫でしょう。読み書き領域の他に読み出し専用の領域も作り、古いデータのアーカイブにしました。
 時間が余ったので電話の交換器の無停電電源のバッテリーと内部メモリー用のボタン電池も交換。設定のバックアップも整理して保存。電池交換の際に設定データが消えますがバックアップを使って回復。
 用務員風味な一週間でした。

#サーバー
Icon of admin
 サーバーは順調に動いてくれています。RAIDも問題ありません。
 案外複雑なバックアップも取っていますので、これらの動作確認も大切です。

 連休は何気に忙しくなりました。
 コロナが収まった感での「やっぱり開催」的なバレエのおさらい会が数本あります。
 舞監ではなくリノ敷き道具さんですから大変ではありませんけど。

 そんな準備があるので工作は一時休業です。
 Art-Netドライバを仕上げたいところですが、微妙な書き加えなのでアタマを全振りしないと出来ません。空いた時間に少しづつって訳にはいかないのです。

#本業
Icon of admin
 デジタル庁が「デジタル推進委員」と称する人材を募集するそうです。
 岸田首相の掲げる「誰ひとり取り残されないデジタル化」を実現するための方策とのこと。
 平均的にパソコンやスマホを苦手とする年配者にそれらの使い方を教える先生的な役割らしい。
 雇用の促進になるならいいんでないか?と思ったら、交通費等の必要経費は出るものの無給だそうな。。。
 耳を疑う話ですが、デジタルな知識や技術に社会的な価値は無いとデジタル庁が言っているに等しい。
 専門知識と人に教える技能と忍耐を持った人でなければ何の成果も出ないのにアホかと思います。

 そもそも、年配者にそこまで配慮する必要があるのかな?必要なら自ら学ぶべきことでしょう。
 実母はスマホはおろか携帯すら持ったことのない人ですが、何不自由なく生活してます。
 別段求める訳でもなく、無いなら無いなりに生活出来ている人たちに何を学んでもらおうというのでしょう。

 デジタル化の究極は「電子執事」です。
 主人の意図を読み取って先んじて準備を進めて遅れることなくサービスを提供していれる存在です。
 「デジタル化」と呼ばれることは程度の差はあっても目指している先はこれだと思います。
 ならば、年配者に対してはデジタル化というサービスがまだまだ未熟です。一方的に気を使ってくれるレベルに達していないのですから。

 そもそも「デジタル化に取り残される」とはどういった社会問題なのでしょう?
 政治家さん自身がゴール地点をイメージ出来ているのか?そこが一番の問題点だと思います。

 1985年時点で坂村教授(当時助教授)が提唱したTRONの思想を国が守るべきでした。
 あくまで思想であって商品とは言いませんが、当時坂村教授が書いたTRONに関する書籍を読んで目からウロコでした。
 そして、その本に書かれていた未来像が正に今実現されています。
 必要なのは、過去の事例を沢山知っているだけの専門家ではなく、未来を予言出来る専門家です。そして、その未来像を理解して実現出来る政治家です。
 デジタル化とか言いますが、その実態は機械であっても、そこにある思想が最も大事なことに偉い人がもっと敏感になるべきです。

#雑談
Icon of admin
 実作業はなかなか進みませんが、Art-Netドライバの方針が整理出来ています。
 Pythonについて継続して調べていますが、そんな中で遭遇した「PythonはC++で書かれたライブラリを呼び出すプラットホーム」というご意見に納得。
 Pythonは処理が遅い。変数の型の定義が曖昧でも何となく動くのは便利だけど、大事な時に変数の型のミスマッチでエラーが出るのは面倒。けれど処理の構図を作る生産性は高く、変数の型も意識して書けば問題になりません。C++で部分の関数を書いてPythonでまとめるのは良い方法だと思うのです。
 なので、先のご意見には納得なのです。
 Cythonではなく、Pythonコードから完全なバイナリに直接コンパイルする方法があったらなと思います。

#Python
Icon of admin
 このところ本業が忙しい。
 現場があるのは嬉しいことでありますが、発注側の段取りの悪さの尻拭いで時間を割かれることが多く気分は良くない。

 Art-Netはアイデアだけまとまって書くところまで行けてません。ちょっと寂しい。
 ちなみに、Art-Netの処理モジュールは「Art-Netエンジン」と呼ぶことにしました。
 受信したデータにスタックフェーダー、ディレイ、パッチ、プロファイルの処理を施して送信するまでを1プロセスのモジュールにしてしまったので、やっていることがドライバって括りにするには広すぎるからです。
 書き加えてない機能はスタックフェーダーですが、現時点の処理負荷は26%前後です。最終的に50%を割ればいいのではないかと思います。
 処理負荷ですが、ANSIエスケープシーケンスによる表示処理が思った以上に重いことが判明。純Pythonでの繰り返し処理が多いからか、そもそもテキスト表示が遅いのか、いずれにしてもArt-Netエンジンと表示処理は完全にプロセスを分けないといけません。
 まだ試していないのですが、ひょっとするとテキストベースよりもグラフィカルの方が処理が軽い可能性があります。扱う情報量は多くなりますが、ハードウェアでアクセラレーションされてるならひょっとするかもです。

 表示モニタは中華電機で良さそうなのを見つけました。1024x768(4:3)で8インチです。組み込み用のオープンフレームモニタなので取り付けが楽です。価格も案外安い。
 今どき4:3?って気もしますが、表示するのは表ですから、16:9よりも4:3の方が見やすい気がします。
 また、あえての4:3だし、扱っているセラーが多く、組み込み用なので長期間の入手が期待出来ます。普通のモニターですと足が早くて半年後には同じ物が手に入らなくなることが多いのです。

#ガチ工作 #[Art-Net]

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

Icon of admin
 久しぶりにホール卓で本番調光。ガッツリ反復横跳びをしてきました。
 100ch/3段のプリセット卓があり、その右隣に制御卓があるレイアウトです。一人で操作するならば、明かりを作って、横移動して記憶して、また横移動して次の明かりを作って・・・の繰り返し。延々と左右に動くワケです。正に反復横跳び。
 以前もボヤきましたが、改めて「なんじゃこりゃ!?」です。

 調光卓は複数人で扱うモノでしょ??って発想なのかもしれませんが、組み手が当たり前の時代と今は違うのですよ。一応ホローしておくと、クロス1名、組み手2名の布陣なら使いやすいレイアウトだと思います。でもさ、記憶卓なのに組み手向けのレイアウトって組み合わせがよくわからん。
 導入時期を考えれば「組み手がぁ~」とおっしゃる照明チーフも沢山居たと思いますので致し方ないところもあると思いますが、この卓のレイアウトをデザインした方には1時間で100シーンくらいの入れ込みを体験して頂くと私の言わんとしてしているところが伝わるように思います。
 
#照明器具
Icon of admin
 部品を買ってあった用品の製作も進めています。
 今は「裸族のパイ」と名付けたサーバー機を組んでいます。
 センチュリーさんの「裸族のカプセルホテル Ver.2(CRCH35U3IS2)」にRspberryPiを内蔵してサーバー機にしたものです。
20220504112545-admin.jpg
 お好み次第ですが、ファイル共有(owncloud含む)とメール程度の自宅サーバーならRaspberryPi4BとUSB3.0でつないだHDDの組み合わせで私は十分です。自分のデータをowncloudで扱っているのもありますが、所属会社のデータのバックアップもしているので、巨大なクラウドストレージを省電力で運用することが第一目的です。サービス対象は自分だけなので処理能力は求めないし。
 裸族のカプセルホテルはUSB3.0のHDDケースです。これにRaspberryPiを入れてコネクタ類を追加するには物理的な改造が多いのですが、3Dプリンタで作ったマウントにKeystoneモジュールのコネクタ類を取り付けると小型でスッキリした物になります。Linuxが使えるNASを使えって話もありますが、こういった改造そのものが楽しいのでいいのです。
 なぜこんなことをするかというなら、HDDケースとして裸族のカプセルホテルを普通に使っていたのが始まりで、これにRaspberryPiを繋げてみたら良かったので、どうせなら一台にまとめてしまえって何となく思ったのです。1年前に作った第一作は無理やりが多くて内部配線的にスッキリとは言い難いものでしたが、サーバー機としては設置感も使い勝手もイイ感じなので改修版を3台くらい作ってネットサーバーもコレにしてしまおうってところです。現在のサーバー機がボチボチ寿命っぽいし。
 裸族のカプセルホテルは8TBのHDDまで扱えます。4台内蔵可能ですから最大32TBですが、実際にはRAID1でデータの保存性とメンテナンス性を優先に使います。3TBのHDDが沢山あるので、これを4台使ってRAID1の3TBを2組かな。

#サーバー #ガチ工作
Icon of admin
 裸族のパイの部品を3Dプリンタで作っていますが、試しに線幅を決めるパラメータを警告が出るくらい細くしたところビックリ。寸法が出るわ1層目から綺麗だわ反りが少ないわでとてもキレイなプリントになりました。もちろん金型射出成型の様にはいきませんが、これなら当面は買い替えを考えなくても良さそうです。
 先日購入したドライキーパーも効果があったのかもしれません。フィラメントが湿気を吸うと仕上がりがとても汚いので、プリントが終わったらフィラメントのボビンを外して入れておきます。
 3Dプリンタは条件が出れば放置プレイです。寝ている間に部品を作ってくれるので「靴屋の小人」って感じです。

 コネクタの変換基板が必要になってしまったのですが、市販品には無さそうなのでKiCADで書いてPCBGOGOさんにオーダー。
 今回はサイズが小さいからか、発注後4日で届くとのこと。凄いですね。
 1枚1.9US$。円が安くなっているので割高になってますが、そもそもが安いので問題無し。10枚オーダーしましたが送料の方が高い。

 工作の質やコスパが向上してご満悦なオジサンでした。

#工具や資材
Icon of admin
 方針を変えたので部品が揃っていませんが、裸族のパイを仮組みしてHDDのセッティングをしています。
 以前はLVMがいいかなぁ~って思っていましたが、データの保存性や保守はRAID1が良いかなと。
 LVMは、複数のHDDを一つのストレージに見立てることで大きな容量を得ることが出来、不良が発生したストレージからデータを他に移して交換することが出来ますが、ストレージが物理的に壊れた際にはデータを失う可能性があります。RAID1は複数のストレージを並列で使うため1台が完全に壊れても他が生きていればデータを失うことはありません。RAID5やRAID10はRAID1より重装備ですが扱いが少し難しいので却下。
 どれを使うかはお好みですが、データの保存性を優先したいのでRAID1にしようと思います。ディスクを入れ替える際の保守も比較的簡単だし。

#サーバー
Icon of admin
 田舎の舞台・イベント業者は何でもやらないといけませんのでリノリュームを敷いたりします。
 搬送や保管を考慮して厚1.5mm幅3尺の物しか所有しませんが案外稼働しています。
 ただ、最近はストリートダンス系の発表会などでも敷くことが増えたため、スモークマシンのオイルが付着して微妙に「にちゃ」っとした状態になります。細かい砂汚れも付着します。
 これはクリーニングしたいところですがどうしたものか・・・。
 リノリュームは床材ですので床掃除の方法で色々考えてみましたが、素足で踊る方もいるので素肌に優しいことも大事かと。
 今は薄い重層水(1リットルあたり重層を小さじ2)を噴霧器で吹きかけて布モップで拭き、セスキ炭酸ソーダ系のウェットシートで拭き上げています。弱アルカリ性で油と脂を落とし、弱酸性で中和しながら細かい砂汚れを取る感じです。脂が大したことなければ重層系のウェットシートでもいいようです。砂汚れは弱酸性のウェットシートが何故かよく取れます。水だけで拭くよりも手間が多いように見えますが、結果的には少ない手間でキレイになるようです。
 そもそもスモークマシンの環境下でリノリュームを使うなって話なんですがね。

 粘着テープの糊残りにはオレンジ系界面活性剤が入ったスプレー洗剤が良いようです。オレンジの皮もそうですが、ゴムを溶かす性質があるのでキレイに落ちます。ただし、ゴム以外の樹脂も犯してしまうことがあるので端やテストピースで試してから使った方がいいでしょう。出来ることならテストピースは処置してから一か月くらい様子を見ましょう。ユックリと反応が進むことがあり、気が付くとボロボロになったりします。

#本業
Icon of admin
 裸族のパイは部品が揃うまで半月待たねばなりませんが、仮組み品はいい感じで動いています。
 さて、これを使ってサーバーをどう組む?
 やりたいことはメールとwebとファイル共有(主にowncloud)ですが、今までと同じ役割り分担で機械を入れ替えるだけでいいのかよく考えないといけません。

#サーバー
Icon of admin
 私が勝手に中華電器と呼ぶAliExpressですが、最近は物が届かないことが増えています。
 発送出来なくて売り手キャンセルならまだいいですが、配達履歴は届いたことになっているのに現物が来ていないことがありました。配達履歴上届いたことになれば、買い手が受領確認をしなくても所定の期日後には売り手に入金されて売買完了となります。もちろん申し立てをすればほとんど場合返金されますが、申し立てをしないと決済されます。マイルドな詐欺?
 あちらの感覚は売り手と買い手の立場が対等です。売り手よりも買い手が上位とされる日本の感覚とは違いますので、権利や立場は自ら主張しないといけません。
 驚くのは、まったく別の国へ送られた履歴で配達完了となった事例です。先日はアメリカ合衆国、その前はベラルーシでした。何がどうしてこうなるのかわかりませんが、「配達完了とあるが受け取ってはいない。私は送付先を日本にしているが配達履歴は別な国だ!支払うつもりはない!!」と言い切れば100%返金されます。優しく遠巻きにお伺いを立てて暗黙に気遣いを求める日本的な物言いはダメです。故意にやっていることですから入金までの時間稼ぎをされるだけです。

 そんでも、中国の現状を僅かでも耳にすると同情もしたくなります。
 大雑把に言うとこれまでの様には製品を作れず出荷も出来ない状況らしいのです。ですが、受注した物は出荷したことにしないとAliExpressからペナルティを食らうので、返金手数料持ちでこんなことをしてるんじゃないかと想像するのです。あくまで想像ですけどね。

 新型コロナとウクライナ侵攻が収まらないと色々不自由しますねぇ。

#雑談
Icon of admin
20220508095829-admin.gif

 裸族のパイを作るには筐体の加工が必須です。要は切った貼ったです。
 丸穴はドリルやホールソーでいけますが、角穴はなかなか面倒です。
 こんなとき、プロクソン(PROXXON)ミニルーターセット No.28512-Sが便利です。ちょっと削るにも重宝します。
 ビットや砥石はサイズの割に安くありませんが、これだけ簡単に出来るならアリです。

#工具や資材 #サーバー
Icon of admin
 中華電器に頼んでいた抵抗が入荷しましたので、Rが暗いムービングライトに取り付けてみました。
 ビンゴです。他の機体と同じ明るさを出すようになりました。部品代15円くらいですから御の字でしょう。
 この手の故障は原因を特定するのが難しく、可能性がありそうな部品を交換しながら試すしかありません。
 もし抵抗が原因でなかったら次に疑わしいのはドライバICとなり、ドライバICが正常だったらインダクタが疑わしいとなります。
 動くには動くけれどスペックが出ない不調は何ともイヤらしい。

 次は電源モジュールが疑わしい機体です。
 電源投入直後は正常に動くのですが、しばらくするとLEDが暗くなってきて、さらにしばらくすると突然明るさが戻ってLED周辺から煙が出てくるという難解な不調です。
 たぶんですが、通電しているウチに電源電圧が下がっていき、電圧が一定以下になるとドライバICが不正動作を始めるか、状態が変わって定格以上の電圧になるかだと思います。原因を特定するには電源モジュールから出力される電圧の変化を見ないといけません。
 と、難しいことをする前に、別な機体の電源モジュールを使って試すのが早いかな。

#照明器具
Icon of admin
 電源モジュールが疑わしいと思われたムービングライトですが、LEDドライブ基板をチェックしたところハンダクラックを発見。パッと見にはキレイなハンダ付けですが、電源の入力コネクタのピンが完全に浮いてました。これでは電源モジュール以前に正しく動くワケがありません。もちろん、これを直して全てが解決するとは限りませんけれど・・・
 ハンダ付けを直してランニングテストを試みたところ、ファンが動いていないことも発見。どうやら、電源ピンが浮いたことで発生したスナバで飛んだっぽい。近所には適合するファンが売っていないのでアマゾンでポチリ。明日入荷です。
 電源モジュールに不良がなければいいのですが、負荷側が正常に動かなくては確認が出来ません。
 ということで、本日のジャンク弄りは終了。

#照明器具
Icon of admin
 裸族のパイは問題なく動いています。自宅のSSHサーバーを経由して外からもアクセス出来ています。
 課題はサーバー群全体をどう組むかです。
 現在はCeleron直付けのマザーボードを使っています。速くはないけれど、グラフィック処理をしませんので十分だったりします。RaspberryPi程ではありませんが消費電力が少なく扱いやすいマザーボードです。痛みは少ないと思うのですが、かれこれ7年くらい使っていますからボチボチ交換時期です。
 裸族のパイに交換するのは、消費電力を更に減らしたいのと、HDDの交換を簡単にしたいことからです。HDDは頻繁に交換するものではありませんが、イザという時に手早く済ませたいのです。原型の「裸族のカプセルホテル Ver.2」は個別の電源スイッチがあるので交換作業がしやすいのです。

#サーバー
Icon of admin
 電源モジュールが疑わしいと思われたムービングライトはキッチリ治りました。
 原因は複合です。複数の故障と複数の勘違いで遠回りをしたようです。
 主たる原因は基板のターミナルのハンダ浮きです。中国産の安い機器は着くべき様に着いていないことがままあります。使われているハンダに鉛入りや鉛無しが混ざっていてフラックスの相性が悪いのか弾いてしまったり、ランドの面積が広くて温度が上がりにくく着かなかったりするようです。今回のは正にそれが原因の様子。付きが悪い時は軽くペーパーで削って地金を出すと素直になります。
 約1時間、電力的に負荷が多い動きをさせてチェックしましたが不調は見られず。大丈夫とは言い切れませんが、修理前は電源投入直後か15分後に不調が出ていましたのでヨシとします。
 これで全数復活です。

 中華電器の機器は「半完成品のキット」と思って買ってますから入荷した新品にNGがあっても気にしませんが、使える様に手直しをするのは面倒臭い作業です。
 国内でのサポートが充実した上等な物を買えば不要な手間でしょうけど、借り入れの返済のために日々の仕事をするようでもどうかと思うのでどっちもどっちです。
 「直せるからいいよねー」などと同業者に言われますが、時間もお金もかけて勉強してきたナレの果てですからご容赦頂きましょう。

 今はあえて底値の物を選ぶようにしています。底値よりは高価でも明らかに安い製品の不良率は底値品と大して変わらないからです。底値品の目安はPAR球1~2個相当ですが、これなら最初から10%くらい壊れていても懐は痛みませんし気分的にも割り切れます。半数が使えなくなったら全数球切れと思って廃棄すればいい。PAR球の寿命は300~500時間ですから30回くらい使えたら十分でしょう。機材の進化は早いので、時代遅れの高級品より今の安物の方が良い面が多かったりもします。
 高級車よりママチャリの方が日々の生活には便利かな?(笑

#照明器具
Icon of admin
 Art-Netパッチに使おうと買ってみた8吋のオープンフレームモニタが入荷しました。
20220510184810-admin.jpg
 オープンフレームモニタは単体で使うモニタではなく機器に内蔵するためのモニタです。無骨ですが、取付金具やネジ穴があって筐体作りには向いています。
 今後の確認次第ですが、いい感じだと思います。

 当初使おうと思った公式の7吋ディスプレイは16:9の800x480ドットです。表示される文字の大きさは老眼にも優しく丁度いいのですが、情報量が不足な上に16:9は表が読みにくい感じがします。
 8吋の800x600が希望だったのですが、取り扱い店が少なく将来的な入手に不安を感じるので、取り扱いが多い8吋の1024x768を選びました。
 文字が小さい気もするのですが、512スロットを1画面に表示出来そうなのは悪くありません。かなり進んだ老眼には見えない文字サイズになりそうですが、ムービング卓の画面を読める人基準で考えます。明日は我が身ですけど(笑

 先ほどまでこのモニタを仮に立てておく脚を3D-CADで描いてました。帰宅したらプリントです。
 つか、現場の音源のフォーマット変換(m4a→wav)がなかなか終わらなくてそのヒマつぶしをしているところですが・・・

#[Art-Net]
Icon of admin
 モニタの脚をプリントしていますが、ドライキーパーで保管したフィラメントはいいですね。
 外湿度マイナス35%のドライキーパーですが、内部湿度は25%を示しています。カラカラですね。どの程度がいいかわからんのですが、低すぎてダメってこともなさそうです。
 性能の良いプリンタが良いに決まってますが、フィラメントを低湿度で保管しなければ性能は発揮できないと思います。同じ予算ならドライキーパーに予算を向けることをお勧めします。

#工具や資材
Icon of admin
 オープンフレームモニタの脚を作っていますが、形状的にABSでは厳しそうです。失敗の連続・・・
 ABSは丈夫で保管温度を気にせず使えますが長い羊かん形状は苦手です。露骨に反ります。
 形にならないと意味がありませんのでPLAで作ってみます。PLAの製作物は真夏の倉庫や車の中に据え付けや保管をするとヘニャヘニャになりますが、保管温度に気を付ければ問題はありません。

#工具や資材
Icon of admin
 3Dプリンタの特性を勘違いしていました。温度についてです。
 温度はエキストラクターとビルドプレートのことです。エキストラクターはフィラメントを溶かしてインクよろしく送り出す先端部、ビルドプレートは造形物を作る作業面です。これらの温度が仕上がりに大きく影響します。
 勘違いしていたのはビルドプレートの温度です。1層目をプリントする際はフィラメントの特性に合わせた温度にしておき、2層目以降は温度を下げてもいいと思っていたのですが真逆でした。プリントが終わるまで造形物全体の温度を出来るだけ1層目と同じ温度にしておくのが正しい条件なので、2層目以降はビルドプレートの温度を上げる方が良いようです。
 某ブログで目にして試したところかなりの改善。ABSをPLA並みに仕上げることはそもそも無理っぽいですが、これならABSを主体にしても良いと思われます。

#工具や資材
Icon of admin
 3Dプリンタは形状やその時の運で仕上がりに違いがありましたが、ABSでも安定的にいい感じにプリントしてくれるようになりました。
 Ender製のミドル級の最新機を買おうか悩んでいましが、しばらくはこのままでいけそうです。
 されど、ABSで背の高い箱状の物を作ると角が持ち上がる現象は解決しきっていません。今回の対策で以前よりは良くなったものの更に改善したい点です。
 試したいパラメータがいくつかあるので、テストピースのデザインを考えて進めてみましょう。

#工具や資材
Icon of admin
 今週末はストリードタンスの発表会です。
 コロナが収まった感もあって出演者が多い。400名弱です。
 曲数も60曲。1曲10場面としても600場面。こんな数の明かりを作ってオペすんかい・・・。しかも音源のマスタリングと制作業務もあり。
 ようやく照明のCUEシートまとめに入れたところですが終わるかな?

 3Dプリンタは靴屋の小人なのでほとんの時間放置なので色々できますが、Art-Netパッチが進まない。
 来週以降はヒマなので進めたいですね。

#雑談
Icon of admin
 RaspberryPi4Bが高値。
 4GBモデルが以前は7,000~8,500円で買えたのに即納可能な筋で25,000円前後。amazonや中華電器もです。秋月さんや千石さんは在庫切れ。
 半導体不足なので多少の価格変動は致し方ありませんがちょっと高すぎる。
 開発機は1台残してありますが製品が作れません。以前収めた製品に増産の話が来ているのに請けようにも請けられない。まだまだ開発中ですがArt-Netパッチもどうしたものか。考えたくありませんが、開発中に配線ミスで飛ばしたらえらいこっちゃです。

追記
 2GBモデルがアスクルにありました。私はターミナルでコマンド操作しかしないので2GBで十分なのです。これまでに作ったシステムのメモリ使用量はすべて1GB未満です。
 価格は8,160円と2GBモデルにしては少し高値ですが、10,000円を切っているのでヨシとしましょう。

#雑談
Icon of admin
 3Dプリンタはパラメータを調整して更に良くなりました。
 購入直後のプリントでは悪影響になっていた積層部への冷却ファンを稼働させたところ品質が更に向上。縮みによる角の捲れ上がりがあからさまに減りました。購入直後は何故悪さをしたのか不思議な程です。スライサーがヴァージョンアップして何かが良くなったのでしょうか。

#工具や資材
Icon of admin
 卓上譜面台といいますか、CUEシートを置くためのイーゼルみたいな物をこさえました。
20220520205439-admin.jpg 202205202054391-admin.jpg
202205202054392-admin.jpg 202205202054393-admin.jpg
 木材で本体を作り、スタンド部は家電屋で買った小さなカメラスタンドです。
 カメラスタンドの取付けは裏面に接着した5.0tのアルミ板を介します。高さ調整の幅を持たせるためにタップは数カ所空けてあります。
 A4ファイルを見開き(A3よりも少し大きなサイズ)で置ける物が無かったので作りました。実作業30分くらいです。
 これを使って仮打ちをしていますがいい感じ。なぜ今まで作らなかったのだろうと思う程です。

#ガチ工作
Icon of admin
 3Dプリンタがいい調子なので間数マーカーを再開発しております。発光部がイマイチでしばらく止まっていました。
 最近、デュアルノズルで黒と透明の2色プリントに成功したのですが、これでプリントすると発光の具合いが良いかもしれない。
 一気に解決かと思いきや、そう甘くもありません。常に二つのエキストルーダーが温まっているため低層ではお漏らしが発生。黒に透明のお漏らしが被るのは気にならないけれど、透明部に黒のお漏らしが被ると台無し感。
 4-5層以降ではほとんど発生しないので解決策はありそうですが、ちょいと思案が必要です。

#工具や資材
Icon of admin
 テストピースの印刷中ですが、次の対策で低層における3Dプリンタのお漏らしは無くなりました。

1)スタンパイ温度を下げる
 同レイヤーにおいて、一方のエキストルーダーのジョブが終わるまでもう一方はお休みです。スタンバイ温度とはお休み中のエキストルーダーの温度のことですが、コレを下げることでフィラメントのダレを防止出来ました。

2)レイヤー間でのノズル拭き取りを行う
 ノズルの清掃機構が付いているワケではありませんが、プリント物の周囲に囲い線(捨て線)を描くことでノズルに付いた余計なフィラメントを落とす動作の様です。
 それ程汚れないので本来の効果は不明ですが、レイヤー間だけでなくエキストルーダーを変える際にも実行されるので、(1)の温度を下げる時間稼ぎになるようです。

 今のところ黒も透明も同じ温度条件でやっていますが、特性が違う感じがします。黒は申し分ありませんが透明のプリントがイマイチです。温度条件を何パターンかやってみます。
 ・・・ただ、テストピースとはいえ5時間半かかります。今はお漏らしチェックですからこのまま終わりまで進めますが、温度条件のサンプルを幾つか取るにはかなりの時間がかかりそうです。

#工具や資材
Icon of admin
 先日作って現場で使ったCUEシート置きは素晴らしく良い使い心地でした。
 目線に正対した角度で見られるので薄暗い環境でも読みやすい。
 久しぶりに会心の出来です。

#ガチ工作
Icon of admin
 テストピースは65点でしょうか。
 お漏らしは無くなりましたが、プリント中に落ちるカスが透明の中に入ってしまいます。使えるレベルですが気分は良くありません。
 透明のフィラメントは黒に比べて神経質みたいで、温度条件が合わないと表面が荒れます。見えてはきましたが、条件がまとまるまで時間がかかりそうです。
 一番の問題は第1層面の荒れです。第1層が表になるのですが、若干の波打ちがありキレイとは言えません。ペーパーで削り、ミッチャクロンマルチと艶消しクリアーを吹けば誤魔化せそうですが、削り分を見越してプリントしなければなりません。この辺りの条件出しにも時間がかかりそうです。

 面倒なことがまだまだ続きますが、デュアルノズルによる2色刷りが出来るようになっただけでも大進歩なのでヨシとしましょう。
 ・・・デュアルノズルなのにサポートする機能が無いのです。わかれば簡単なことでしたが、この辺りの設定はマニュアルにも無いので手探りです。

#工具や資材

Icon of admin
 3Dプリンタの条件ですが、スティック糊の塗り方で随分違うことが判明。
 その前にスティック糊の意味ですが、プラットホームへの喰いつきを良くするために使います。私は幅広のマスキングテープを貼った上に塗ります。
 スティック糊は厚すぎず薄すぎず出来るだけ均一に塗ることが重要です。塗りムラが1層目のプリントにそのまま転写されると言っても過言ではありません。プラットホームを温め、糊を溶かして馴染ませながらユックリと一定の速度で一定の間隔で塗り進めます。溶かして馴染ませないと効果が半減するようです。スティック糊を使う場合の話ではありますが、スライサーのパラメータと同じくらい重要な下準備だと思われます。

 実はこの週末が珍しく3連休です。腰を据えて間数マーカーの試作を進めています。
 Art-Netエンジンを進めるつもりでしたが、部下がデータ作りで卓を使っているので別な作業です。

#工具や資材
Icon of admin
 テストピースでの条件出しは見えたので、昨日から本データで間数マーカーの仮刷りを始めました。カスの対策で手を焼いてはいるものの、全体としては思った以上に良い仕上がり。今は仮刷りの2刷目です。目下の相手物は文字が書かれた上蓋ですが、16〜20時間かかるので条件を追い込みきるまで日数がかかりそうです。

#工具や資材
Icon of admin
 間数マーカーは2刷り目でほぼ条件が出ました。思った以上に綺麗に仕上がっています。
 ただ、黒いフィラメントの細かいカスが透明の部分に入ってしまいます。15時間以上プリンタの前で監視しているワケにもいきませんし、遠目に見れば気にならない程度ですから妥協の範囲です。デュアルノズルの高級機を導入出来ればいいのでしょうが、欲しいと思っている機種は28万円もするのでとても無理。あぶく銭が入ればと思っていますが、今の株価ではとても無理そうです。
 余談ですが、工作の軍資金の大半は株で得ています。博才は皆無ですが、ここ数年現物のみで欲張らずに売買して年収の1/5~1/10くらい稼げています。朝昼晩、値動きを数分見るだけで工具やら部品が手に入るなら悪くありません。今は株価が下げ止まりで大きく負けていますが・・・。
 工作も株も自分の能力や運に合わせて欲張らないことが肝要です。

#工具や資材
Icon of admin
 今日はカラッとした夏日。3Dプリンタにとって高気温低湿度は良い条件です。除湿器を稼働させれば3Dプリンタ内は温度40度弱、湿度30%弱になりますが、これは今まで試した中でも良い結果が出せる条件です。
 ですが、こんな部屋で人が作業をするのは無理。プリンタ内よりは低いとはいえ室温は30度以上あります。
 1個あたり30時間はかかるプリントを取り急ぎ10個近くやらねばなりませんが、工作部屋で人が作業するのはしばらく無理っぽい。

#雑談
Icon of admin
 RaspberryPiが無い。世界中のどこにも無い。いわゆる転売屋系にはあるようですが、アホみたいに高いので余程のことが無ければ手を出したくありません。
 rpilocator.comってところに世界の正規代理店の在庫が一覧されていますが、RaspberryPi4Bは全く無い(2022年5月30日現在)。
 先日手に入りそうって話をしましたが、納品予定日に不達による納期未定とのメールがやってきました。そんで、改めて調べなおしたら・・・という話です。
 製作依頼があっても手に入らないか高値なのでこれまでの価格では作れないって話にしていますが、裸族のパイやArt-Netパッチを作るために今必要な数が揃わないのは困りものです。
 2023年には供給体制を戻せるって話ですが、財力があって数を使うところが優先されるでしょうから、下々のガレージメーカーにお零れが落ちてくるのはいつのことでしょう。

#電子工作 #RaspberryPi
Icon of admin
 間数マーカーver4.3が1台組めました。
 重箱の隅を突く様な目で見るなら改善したい点はありますが現場で使えるレベルです。
 電池の持ちを確認していますが、目標値である単三電池1個で12時間はクリア。現場的にはOKでしょう。
 乾電池は特性的にエネループなどの容量の大きな充電池がよさそうです。なぜなら、アルカリ電池などの1次電池は一定の割合で電圧が下がっていきますが、エネループは使用開始直後に一定値まで下がってからは切れる直前まで電圧がほとんど下がりませんので、一定の光量で発光し続けることが期待できるからです。
 発光面には不満が残りますが使えるレベルです。φ3mmの砲弾型LED2個からの光を厚み5mmの透明樹脂板を通して130×65mmの面に誤差±20%くらいの輝度で散らしていますが、これ以上は導光機構を金型から起こさないと難しいと思います。これ以上時間とお金をかけて精彩を求めても使用感は違わないと思われるので落としどころでしょう。
 試作は終わりとし、1個30時間かかるプリントをチマチマやっていきます。

追記
 消える瞬間は見ていませんが、13時間経過で点いており、14時間経過で消灯していました。
 電池のコンディションもありますので、公称値を8割の10時間とします。
 推奨電池はPanasonicのeneloop(エネループ・単三電池型・1.2v1900mAh)です。

 販売は予定しておりません。
 3Dプリンタの稼働コストを500円/時としていますが、30時間では15,000円です。電気代とフィラメントの消費量からするとこんなもんです。
 内部の部品原価は3,000円くらい。発光部を構成する専用基板や樹脂部品がそれなりにします。
 組み立ても何気に面倒なので開発費を含む手間賃やらで10,000円は欲しい。
 合計28,000円/台(笑
 自分だったら買わない価格です。

 アチコチにモックアップを見せて価格イメージ聞いたところ3,000~5,000円でした。自分もそう思います。
 試作品の価格は量産品の10倍でも安い部類ですが、量産化の初期費用や在庫を抱える気はないので、作るなら毎回試作価格になってしまいます。
 これでは売る側にも買う側にもメリットがありませんので、自分が使う分だけ作ることにしました。

#舞台の小物

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

Icon of admin
 間数マーカーは2度目の電池テストでも13時間でした。公称10時間でよいでしょう。
 自宅では3Dプリンタさんが延々と仕事をしています。痛みが出始めていますが、全部作るまで持ってくれるでしょうか。

 ということで、間数マーカーは繰り返しの製作作業になりましたから次のネタに行きましょう。
 RaspberryPiを使った物を進めたいのですが、物が入らないのではどうにもなりません。
 この際ですから、自宅の工作部屋の部品類を再整理ですかね。一部魔窟と化していますし。

#雑談
Icon of admin
 久しぶりにArt-Netエンジンを書く時間が取れそうです。
 丁度よい冷却期間になったのか、そもそもの修正点を思いつきました。
 そもそもというのは処理の全体像のことです。Art-Netを受信して、パッチ処理などをして、送信するワケですが、これらの処理を無駄なく適切なタイミングで行うことはとても大切なので、それを目指して書き直しをするのです。偉そうな言葉を使うなら「最適化」です。
 正直言いますと大きな無駄を見つけたのです。何しろ経験豊富の真逆ですから、設計書を書いてコーディングして・・・なんて上品な製作は出来ません。思い付いて書いては実験、思い付いて書き直しては実験を繰り返すので、付け焼刃の繰り返しで各所に歪みやら無駄が溜まるのです。一応機能するようになったら全体の見直しをするのはいつものことですけど、3歩進んで2歩下がるを繰り返す自分の様は残念です。つーても、誰かが書いてくれるワケでも添削してくれるワケでもないので仕方ありません。

 全体の直しはあるとしても、作業の要はスタックフェーダーへの対応です。
 ちょっと前まではスタックフェーダーのシーンデータをエンジン内に持たせ、別プロセスからマスター値を送り込んでエンジン内で出力値の計算をさせるイメージでしたが、エンジンの処理がやたら重くなるし拡張性も低いのでやめます。Art-Net受信値とMIXする一意のデータをエンジンに送り込むことにし、シーンデータを持つのもマスター値による出力値の計算もスタックフェーダ間のMIXも別プロセスにさせることにします。こうすれば、将来的に卓へ拡張してもArt-Netエンジン自体の変更は不要です。

#[Art-Net]
Icon of admin
 急に入ったライトアップを仕込んできました。
 例年年末に実施している仕込みで色を変えたものです。

 今回は単色なので灯体のプレイバック機能で十分ですが、ライトアップ特化した卓が欲しいなと。何月何日何時からシーンの何番を実行するとプログラム出来るものです。

 DMXレコーダー系は実尺での取り込みが必要なのでイヤ。
 DAS-Lightの上位機種にはカレンダー機能がありますが、明かり作りの操作感が肌に合わないのでイヤ。
 設備系は高価だし明かり作りが面倒なのでイヤ。

 そういや、今作っているArt-Netパッチを拡張すればよくね!?
 エフェクトエンジンを搭載するにはあと100年くらいかかりそうですが、単純なステップタイプの卓を作るのはそれほど難しく無いと思います。シーケンスの実行トリガに日時、シーンの実行トリガに経過時間を設定出来るものとする。チェイスはシーンのループ処理がしやすいことで対策。贅沢を言い始めたらキリがありませんが、単純なステップタイプのシーケンスにライトアップで便利なちょい機能を加える考え方です。
 高度なことをするなら高度な卓を使えばいいのですし、今困っている簡単そうで簡単に出来ないことに特化したモノであればいい。私の要望は、LEDスポットに内蔵されたシーン機能がプログラムしやすくて実行の日時指定が出来ればいいレベルです。「LEDカラーミックススポットを使ったライトアップで、何年何月何日何時何分何秒から指定したパターンが実行できるシンプルな卓」とします。
 決して、MAやAVOにカレンダー機能を搭載したモノな物は目指さない。「MAなら簡単にでき・・・」とか言う輩はMAを使えばいいのです。

#[Art-Net]
Icon of admin
 仕込んだ方々、おつかれさまです。


#雑談
Icon of admin
 これはおバカで好きです。


#雑談
Icon of admin
 ホールの増員でヒマな時間があったので、MAの3Dシュミレータに配置する3Dデータの試作をしてみました。
 MAの3Dは拡張子.3dsのファイルを読み込めますが、今となっては少し古い形式のファイルらしく、Fusion360では対応していません。ですが、各種3Dデータを3dsに変換するサイトが幾つかあるので、それを利用すればFusion360で作ったデータをMAの3Dの読ませることが出来ます。
 ただ、XYZの3軸の扱いがCADによって違うので注意が必要です。Fusion360のZ軸方向はMAの3DではY軸方向となったり、Fusion360は奥方向がマイナス値なのにMAの3Dはプラス値です。この辺りを整理してモデリングしないと扱いが面倒なデータとなります。3DプリンタのCAM(スライサー)に持っていく時にも起こることですが、一番大切と思われる前提がマチマチなのは不思議でなりません。
 あと、Fusion360から出力する際に精彩過ぎてもいけません。MAの3Dはベクタではなくポリゴンですが、1オブジェクトの頂点数が65536以下でなければならず、精彩にし過ぎると丸パイプがもの凄い頂点数の多角形とされるので、イントレなどの丸材で構成されたオブジェクトが読み込みエラーを起こすことがあります。
 寸法の単位も違います。Fusion360はmm(ミリメートル)で出力しますが、MAの3Dはそれをm(メートル)として読み込みます。1000倍のサイズのオブジェクトとなって読まれるのです。読み込みの際にこの辺りを変換する機能があるのでわかっていれば大丈夫ですが、ファイルに書かれているハズの寸法定義が読み飛ばされるってのも不思議です。

#3D
Icon of admin
 ホールの増員です。
 空き時間があったので、間数マーカーの明るさを舞台でチェックしました。
 視認性が良いのにドン帳を照らし出すことがありません。ELを使った以前の物に近い特性です。
 明るさがちょうどいいので十分に使えるでしょう。

#舞台の小物
Icon of admin
 マイコン内蔵RGB LED WS2822S
20220605134751-admin.jpg
 5mm角のLEDモジュールです。電飾さんが使っているLEDリボンに搭載されている素子の部類です。
 DMX-512(拡張互換プロトコル)で動かせます。3色ですから3スロットで制御します。信号の電気特性はTTL5vですのでRS485から変換する必要がありますが、LT1785などで変換するだけなので簡単です。
 この製品で言うところの拡張互換プロトコルとは、DMX-512が最大512スロットのところ1536スロットまで扱えるようにしたものですが、データ量が3ユニバース分に増えただけで基本的な考え方は同じです。電気特性を変換すればDMX-512(1990)で直接制御出来ると思っていいでしょう。

 面倒なのはアドレスの設定です。RDMではない専用の設定プロトコルを用います。
 データシートの説明ですとイマイチわかりにくいのですが、接続順に3スロットづつ拾って設定する方法です。DMX-512にとても似た信号ですが、ビット列のエンディアンがDMX-512と違うことに注意です。

 以前からWS2812の類を使って電飾が出来ないかと考えていましたが、アドレスの設定器さえ作ってしまえば、舞台照明の環境ではこのWS2822Sの方が扱いやすいと思います。

#LED
Icon of admin
 間数マーカーのプリントを進めていますが仕上がりにムラがあります。
 プリンタのケース内温度が高めであれば仕上がりが良くなるのですが、高すぎるとフィラメントの送りが滑って出なくなり空振りが始まります。
 このところ夏日が続いた後にいささか肌寒い日が続いたために気付いたことです。夏日には滑りが起こるのでケースの扉を開けていましたが、そのまま肌寒い日になったところプリントの品質が落ちたのです(特に層剥離は問題)。
 細かいサンプルは取っていませんが、仕上がりが良いのは35度以上、フィラメントの滑りが起こるのは40度以上の様です。35~40度でケース内を維持する必要がありそうです。

 さて、どうしましょう。

 ケース内の温度を一定に保つ機能を付加するのが一案。温度センサを使い、高温ならケース内に外気を取り入れ、低温ならケース内を加温するのです。
 もう一案は、庫内の温度は加温して出来るだけ高めにし、フィラメントの送り装置を冷却するファンにだけ外気を導く手です。ケース内の温度は高めでフィラメントの送り装置は低めが望ましいならば、それぞれの温度をそれぞれに管理した方がいいかもしれません。
 どちらにするにせよ、温度リレーがアホみたいな数あるので制御にはこれが使えそうです。

#工具や資材 #舞台の小物
Icon of admin
 間数マーカーのLEDの制御にはCL0117を使っていますが、この制御レギュレータが廃番で入手出来ません。
 100個パックを買っておいたので当面は大丈夫ですが、乾電池1個で使える物が見つからず、これを使い切ったらどうするか。
 と思っていたら、比較的近い特性を持った制御レギュレータがありました。
 YX8115です。
 CL0117よりも電流が多いようなのでインダクタの値を調整しないといけませんが、YX8115の扱い方はこのサイトが参考になります。
 今はCL0117に47uHを使い、LED2個並列で1個あたり30mA弱流れているハズです。LEDのスペックに合わせてインダクタを調整しますが、47uH、68uH、100uH、120uHあたりを試していけば良きところが見つかりそうです。

#舞台の小物 #電子工作
Icon of admin
 最近、中華電器からLED-BARを仕入れましたが、LHQの代替として使うならもちっと広がって欲しいなと思っております。
 フロストを入れたら解決しそうですが、プロストはエッジをボカすのが役目であって広角を広げる物ではありません。
 レンズを前にかざすのが効果的ですが、スペックが出ているレンズは高価で、スペックがわからないソレっぽいカタチをしたレンズは安価です。中華電器に安い物がありますが必ずしも同じ物が来ません。ならば、ポリエステル樹脂で作ってしまった方が結果的によくね?
 精度はボチボチでよいので型を作って流し込むだけ。初期段取りに手間はかかるけど、段取りが出来てしまえば同じ物が安価に作れる。
 真空ポンプが欲しくなるのは目に見えているけど、表面仕上げはジクロルメタンを塗れば済むので、少しの気泡は気にしない?

#ガチ工作
Icon of admin
 近所に新しい劇場が出来ます。
 ホール管理の業務が取れたので舞台資料を作ることになりました。
 まだ建築中なので舞台の細かい仕様はわかりませんが、基本図面がCADデータとして手に入ったので、各種資料に使える施設全図をまとめています。

 これがまた手ごわい。

 まずデータのフォーマットで躓く。
 最新のAutoCADのデータの様ですが、VectorWorks2016でも開けず、ネットやフリーウェアでもデータが大きすぎて変換できず。
 困り果てていたのですが、ふと思い出してAutoCAD互換のDraftsightを使ったところすんなり変換完了。最強のフリーCADだったので便利に使っていましたが、最近サブスク化(ようは有料化)してしまいました。されど、30日間は無料で全機能のお試しが出来るので取り急ぎはこれで対応。後日もっと細かいデータが入荷すると思いますが、お試し期間が切れたらサブスク登録するしかありません。一番低いグレードで変換出来るかわかりませんが、AutoCADとの互換性が極めて高いCADが年間1万円(一番安いグレード)ですから文句を言ったらいけません。

 本製作は骨董品のVectorWorks9.5を使います。2016は便利ですが、データが大きすぎるのと、3Dデータのカスで右往左往して反応が遅い。線を描くだけなら9.5が反応が軽くていい。
 そんでも、オブジェクトがグループ化されたりパーツ化されているので丁寧に処理(分解)しなければなりません。最終的にイラストレーターでも読めるDXFで書き出すことも重要です。

#本業
Icon of admin
 LED-BARの拡散レンズをクリスタルレジンで作ったらどうかと考えています。
 ネットで先達の書き込みを読む限り、手順を守れば難しく無さそうですし、必要な用品は小分け少量でも手に入る。手間は少なくないけど、型を作って段取りがまとまればそれ程大変でもない感じ。
 屈折率は1.5前後。ガラスと大きな違いはないから、好みのレンズを見つけて型取りすればいい。
 今は時間がありませんが、近々試したい手段です。

 そういや、間数マーカーもレジンで作ったらどうだろう。3Dプリンタで元型を作って鋳造型を起こせばいい。
 計算しないとわかりませんが、安く出来るかもしれません。

#ガチ工作
Icon of admin
 新しい劇場のホール資料作りは振り出しに戻しました。試行錯誤の過程でデータのステータスがおかしくなってしまったからです。
 AutoCADのデータをVectorWorks9.5に読ませることには成功したものの、VectorWorks9.5では正しく解釈が出来ないステータスがあるようで、これをどうにかしようとしたところダメなデータにしてしまったと思われます。クセが見えてきたので、あと2-3回試せば思ったように処理出来るでしょう。
 手間っちゃ手間ですが、建築データを基にすれば白紙から書き起こすより早いですのでヨシとしましょう。

#本業
Icon of admin
 夢想妄想で電子回路を設計していたんですが、ほんの少しロジックICを使いたい。ANDが2個とORが1個。
 14ピンくらいのDIP-ICを2個使えばいいのですが大柄になるので避けたい。
 ちょっと前までは表面実装トランジスタと同じくらい小さなワンゲートロジックと呼ばれる物が秋月さんでも手に入ったのですが今は微妙。
 共立エレショップさんで何となく探したところ便利そうなロジックICが見つかりました。
 コンフィギュラブル マルチファンクションゲートIC 
 SN74LVC1G97DBV 

 これはワンゲートロジックの一種ですが、つなぎ方で様々なロジック回路になります。SN74LVC1G97DBVはANDもORもどちらも出来ます。電圧の対応範囲も広く、20mAくらいドライブ出来るので小さなLEDなら直接点灯も出来そう。これは便利。

 実は、WS2812Bというマイコン内蔵型のLEDをPICでドライブする方法を考えていたのですが、PICではほんの少しロジック回路が必要です。
 CLCと呼ばれる小規模GALが内蔵されたPICならこれを用いれば済みますが、表面実装のPIC16F1939を大量に在庫しているので出来ればこれを用いたいのです。

追記

 以前、DMX-512を入力できるWS2822Sのことを書きましたが、アドレス設定機を作れば便利に使えそうなものの、国内はおろか中華電器も含め、取り扱いが秋月電子さんだけになっていました。
 秋月さんに問い合わせればわかることですが、もし製造元で廃番になっていると将来的な入手に不安があります。WS2812やそれと近しい制御信号の製品はamazonでも中華電器でも手に入るので、どうせ作るならこの系統にしようかなと。
 PICのメーカーであるmicrochip社のサイトにWS2811を動かすアプリケーションノート(AN1606)があってそれを参考にしています。信号のプロトコルはWS2811、WS2812(前期型)、WS2812(後期型)、WS2815で微妙に違うのですが、PICの条件も含め、出来る限り互換性を持った方法を見つけてみようと思います。信号のレートが800kbps相当と速いのでPICには少し荷が重いのですが、出来るだけフルアドレスに対応出来る様に考えてみたいと思います。

#電子工作
Icon of admin
 間数マーカーは取り急ぎのプリントが終わりました。センターを「T」とし、「1」~「4」を2個づつです。まずはこれを完成させます。
 フルセットですと「T」「0」~「9」なので、引き続きプリントを続けています。1個あたり30時間弱かかるので、今月中に終わるかなぁ~・・・ってところです。
 透過文字に黒のカスが入ってホクロになる症状はパラメータの調整で治るかもしれませんが、使用距離における目視では気にならないので、このままフルセット作ってみます。

#工具や資材 #舞台の小物
Icon of admin
 相変わらずRaspberryPiが手に入りません。
 4Bは少し価格が下がった感じがしますが、それでも最安値が18,000円強。CM4に至っては48,000円を付けているところもあります。
 もともと教育用の安価なマイコンとして登場したのに凄いことになっています。大きなお友達にとっても楽しいオモチャですから仕方ないのかな。。。

 可能性を探るって意味でCM4について調べてみました。
 I/Oボードが無ければ何も出来ない仕様ですが、100ピンの端子2個にあらゆるインターフェースがアップされていて、必要な物だけ取り出したI/Oボードを作れば最小構成のシステムが構成出来ます。USB3.0が無いのですが、USB2.0はフルスピードの480Mbpsですし、PCI-Ex1が出ているので、I/Oボードを作ってしまう人にとっては何の問題も無いと思われます。
 回路は本家のI/Oボードのデータシートに全て書かれています。大半のインターフェースがコネクタに配線するだけで機能します。専用基板を作る敷居は高いですが、頑張れば私でも作れそうです。

#RaspberryPi
Icon of admin
 ディスクドライブを使って音楽を奏でるネタはかなり前からありますが、これはあまりに見事です。

 才能の有効利用か無駄遣いか・・・

#雑談
Icon of admin
 間数マーカーの「T」「1」〜「4」が完成しました。
 ホクロや輝度むらなど不満はあるものの、使えるレベルではあるので次の現場で使ってみます。
 「5」〜「9」「0」の製作は継続です。

#工具や資材 #舞台の小物
Icon of admin
 LED-BARの修理で使おうと中華電器で買った本命の電源モジュールがようやく入荷。2ヶ月以上かかりました。
 ちょっと前に入ったのは本命が入荷しなかった時の予備。アホみたいに安いのてジャンク箱の肥やしになってもヨシとしています。
 製品は12vですが、機器の定格は10.8vなので改造です。センシング抵抗を変えるだけですから簡単です。
 センシング抵抗を計算しましたが、手持ちに無い物なので入荷までしばらく待ちです。

 中華電器で手に入る小型の電源モジュールはTL431を使っているモノが多いようです。TL431に与えるセンシング抵抗を変えれば電圧を変えられますが、純正状態の抵抗値でデータシートの計算式に合致するか検算してから改造した方がいいと思います。これが合わないと何か変化球な処理をしている可能性があるからです。
 また、変更後の電圧にその他の部品が対応するとは限りませんので、あまり大きく電圧を変えることは避けた方がいいと思われます。回路図が無いのですから無理は禁物です。

#照明器具 #電子工作
Icon of admin
 「The PiHut」
 世界で数少ない(?)定価でRaspberryPiを販売しているところ。ラズベリー財団の直営なのかな?
 御一人様1個しか買えませんが、それでも1個手に入ったのでヨシとします。高い高い送料を含んでもamazon価格の半分。
 需要と供給の間に割り込み、流通を妨害して価格を引き上げる転売行為は止めていただきたいものです。

#RaspberryPi
Icon of admin
 電圧を変更した電源モジュールはDC12vから10.8vに変わりました。計算通り10.86vを示します。後日、実機に接続して様子を見ます。
 12v物と一緒に買った24v物もセンシング抵抗を交換してみましたが電圧が脈動します。半分以下の電圧にするのは流石に無理があるのかもしれません。今回は10%程度の電圧変更ですが、改造はこの程度に抑えた方がいいのでしょう。
 今後の補修を考え電源モジュールは買い増しをしておきます。同じ物が手に入るウチに買っておいてもいいでしょう。

#照明器具 #電子工作
Icon of admin
 先日「The PiHut」にRaspberryPi4Bをオーダーしましたが、一週間ほどして見たところ在庫無しになっていました。人気製品ですからすぐに売り切れても仕方ありません。アチコチ見ると11月には供給が回復と書かれていますので期待しましょう。
 先にも書きましたが、高値なら入手可能なのでいわゆる転売屋が物を押さえているだろうと思います。彼らは買占めて価格を吊り上げることを一般小売りと同じ「ビジネス」だと言い張りますが、需要と供給の間に割って入って流通を妨害する迷惑行為ですからやめて欲しいものです。余剰在庫処分と同じ感覚で10%増しくらいで売るならまだ許せますが・・・

#雑談
Icon of admin
 間数マーカーのプリントは「9」まで進みましたが、電池ケースが付いた底部もあと12個プリントですからまだまだです。
 1セット21個ですから1ヶ月弱かかります。なんとも時間のかかることで・・・

#工具や資材 #舞台の小物
Icon of admin
 楽天で RaspberryPi zero WH が手に入りました!
 オーダー後に「やっぱりムリぽ、テヘペロ♪」ってリアクションになると思ったのに数日で現品が届きました。事実上の売り手キャンセルが3-4回続きましたから期待はしてなかったのです。
 価格は品薄前よりほんの少し高いくらい。半導体不足と円相場を考えたら破格ぢゃね?と思える価格。変動が激しいので手配先や価格は書きませんが、過去の最安購入額の2倍以上とはいえ5,000円よりずーっと安い。良心的な販売店もあるものです。
 追加製造を相談されている物件があるのですが、3品セットのウチ2品には zero W を使うので、半導体不足で今すぐには作れないと言ってありますが、仕入れる努力はしないといけません。
 先日オーダー出来たと書いた4BはRaspberryPi発祥の地イギリスへの手配です。PayPalでの支払いが成立していますので「ダメっす」とはならないと思いますが、さて、我が家に来るのでしょうか。

 ちなみに、ヨーロッパ方面で買い物をする場合はPayPalでの支払いを望む販売店が多いようです。最終的にはカード決済になりますし、決して安くない手数料を取られますが、カード情報を直送りするよりも安全が担保されると思われます。見方を変えれば、PayPalが使えるところは第三者による信用証明がされていると思っていいのかもしれません。中国の基板屋さんもPayPal決済です。

#RaspberryPi
Icon of admin
 Art-Netエンジンが全く進みません。頭を全振り出来るまとまった時間が取れないのです。

#[Art-Net]
Icon of admin
 RaspberryPi4Bがどうしても必要になったので、すこしお高いamazonでポチリました。
 それがなんと中1日で入荷。あるところにはあるんですねぇ。やはり買い占め転売されているのかな?

 イギリスにオーダーした物は操作を間違えたのか何なのかキャンセルになっていました。もちろん今は在庫なし。

追記

 千石電商さんにRaspberryPi4Bの4GBモデルと8GBモデルが出ていました。お一人様1個ですが手に入るのはありがたい。
 価格はネットの小売り界隈では最安値。もちろん過去の最安値よりはお高いですが、RaspberryPiが入手しずらくなる直前の価格とほぼ同等。半導体不足や円相場を考えれば良心的過ぎ。市場原理はアリアリでも本家は定価で出していますから、2万前後の価格は乗せすぎだと思うのですけどね。
 RaspberryPi4Bは自宅サーバーの分も含めて10個くらい欲しいのでポチリました。

#RaspberryPi
Icon of admin
 ソフトウェアを書く時間はありませんが、Art-Netパッチのハードウェアの基本方針を考えています。必須事項はEtherNetが独立して2系統あることです。
 RaspberryPiには1系統しかありませんので増設が必要です。USBで増設してもいいのですがスッキリしているとは言えません。
 そういや、RaspberryPiCM4はPCIeX1を出しています。4BではUSB3.0のアダプタに接続されていて表に出ていませんが、CM4ではUSB3.0が無い代わりに出ています。これにEtherNetアダプタを取り付けたらいいかなと。
 通常のPCIeX1コネクタでもいいし、M.2で使われるNGFFコネクタ(M-key)でもいい。汎用性ならPCIeX1で、小型化を考えるならNGFFかな?いずれにしてもMACアドレスの取得を考えるとチップだけ使うより既製品のネットワークカードを使うのがよいでしょう。現実的には通常のPCIeX1ロープロファイルでIntelチップを使うデュアルタイプがよろしいかな?

#[Art-Net] #RaspberryPi
Icon of admin
 間数マーカーのプリントはほぼ終わりましたが、最後に「0」をプリントする直前に透明フィラメントを使い切ってしまいました。
 気泡が入りやすく一般論としてはイマイチなフィラメントでしたが、その気泡がイイ感じのフロストになっていたので間数マーカーにとっては悪くありません。
 同じ仕上がりにしたいので同じ物を探しましたが見つかりません。随分前に買った物ですから仕方ありませんが、別な物ではどうなることでしょう。
 どうせならと、色入りの透明も買ってみました。初作はすべての文字が色なし透明ですが、色違いでも悪くありません。特性が違うなら違う方向性で作ってもいいでしょう。
 LEDも文字色に合わせて各色を手配しました。白、赤(ピンク?)、黄色、緑の4色です。青は明るいと読みにくくなりそうで今回は却下です。

#工具や資材 #舞台の小物
Icon of admin
 先日、千石電商さんでRaspberryPi4Bが買えると書きましたが、数日経った今でも4GBモデルは在庫があるようです。
 8GBモデルは完売していますが、私は2GBモデルでも十分なので4GBモデルを買えるなら欲しいところです。
 お一人様1個の条件ですが、以前のオーダーから数日経過していますので、試しにもう1個頼んでみたところ通ったようです。カード決済まで済んでからダメとはならないでしょう。
 買占め・転売が目的ではありませんが、使いたい数を買えるなら買っておきます。

追記

 約3時間後にもう一回オーダーしたところ通ったようです。受注確認のメールも来ましたので大丈夫かな?
 欲しい数にはまだ足りませんが、同類達も不自由していることですから乱発はやめておきましょう。
 せめて1日に1回かな。

さらに追記

 1日に2回はダメでした。丁寧なお断りメールがやってきました。
 今日の1回目は先週頼んだ現品が届いた後でした。商いが終了した後の追加は可能なのかもしれません。

#RaspberryPi
Icon of admin
 最近、明るくするだけのご要望が何件か来ています。会場の設備では規定の明るさに至らないので照明を追加したいという話です。
 仮設ですから設備工事ではなく、明るくするだけですから舞台・イベントの様な演出照明でもありません。こんなケースでは蛍光灯が便利ですが、ある程度の指向性も必要なケースですと蛍光灯ではちょっと違います。なんといいますか、ありそうで無い器具が必要です。
 
 ならば作るしかありません。
 最近はちょっと前のLED素子が激安です。中華電器では3wのナチュラルホワイト(210lm4500K)が50個で500円程度です。1個10円です。実効効率60%としても126ルーメンですから、1mあたり24個並べて3000ルーメンあります。3000ルーメンなら500フレネルくらい?。費用対効果のバランスは悪くない。
 ドライブ回路は既製品で良い物はなかなかありませんが、DMX調光を求めなければ CL6807 を使えば簡単に作れますし、 秋月電子通商さんのキット  を使えば更に簡単です。PICなどでDMXを受信してPWMを生成すれば調光できるっちゃできます。
20220628173053-admin.jpg
 CL6807は少し前の中華電器製のLEDスポットにはよく使われていました。調光特性は微妙ですが、35v1Aまでドライブ出来てここまで簡単に使えて安価なドライバも他にありません。こういったものをうまく利用すれば安価で簡単に作れそうです。

 今は弓道の的をライトアップする灯具を考えています。
 射手の後方から吊りバトンやイントレに仕込んだ数十台のPARライトで的をライトアップすれば要求は満たせますがコストも電力もかかります。舞台照明屋にとってはあり物で組める一番簡単な方法ですけど・・・
 公式の競技規定では的の最低照度が1000ルクス、願わくば1500ルクス前後は欲しいそうですから、薄暗い体育館でも環境光は400ルクス程度はあるので+1000ルクスすれば要求を満たします。
 射場全体を明るくすることは求められておらず的を中心に明るさを確保できればいいので手前3mくらいに灯具を置くのが照明的に効率がよく影も少ない。灯具1台あたりの責務を間口1m、的位置の仰角も1mとするなら1000ルーメン(1ルクス=1ルーメン/平方メートル)出るスポットで良いことになります。直感ですが、300wのワイド球を入れた2灯ミニブルを的の手前5mに3mピッチで置けば良いでしょう。
 ただし、射手から見てあからさまな障害物があってはいけませんし、熱で床を傷めそうなのでミニブルではたぶんダメです。

 カラーミックスも調光もしないなら、上記のCL6807と3wのナチュラルホワイトLEDを使ったLED-BARを出来るだけ薄い筐体にまとめれば解決かなと。背丈の低いフットライトを作るワケです。
 100vを直接入力できるスマートLEDを使ってもいいですけど、半減角を20~40度くらいにしたいのでスマートLEDだと集光で難儀しそう。

 半減角30度、色温度4500K、3000ルーメン、高さ40mm程度、長さ1mくらいのLED-BARがあればこの案件は解決するし案外便利に使えるかなと。
 LEDだからとカラーミックスが正解とも言えないなぁ~と思う今日この頃。

#LED #本業
Icon of admin
 LEDライトの部品を整理してみました。
● パワーLED Nature White 4500K
● ミニLED光学レンズ
● LEDドライバIC CL6807
 レンズが小さいので効率が心配ですが、出来るだけ薄く作りたいので小型品を選んでみました。このレンズはφ8mmのLEDにちょうどハマる製品です。
 LEDはアルミ基板に実装するのが望ましいですが、PCBGOGOさんで見積もったところ、LEDを5発実装する200×20mmのアルミ基板が100枚製造で1枚あたり225円です。
 ドライバ回路は秋月さんのキットとデータシートを参考に5発用の基板を作って400円くらい。熱問題が無ければLED基板に部品を乗せてコストダウン?。
 電源モジュールは中華電器の24v3Aが600円くらいです。これを2-3台。
 30発並べるとして中身の部品代は5,000円くらいかな。
 筐体の方が金額かかりそうですが、総原価10,000円くらいで作れるかなぁ~。

#ガチ工作 #LED
Icon of admin
 今週末はバレエ教室の発表会です。舞台監督モドキをしますが小品集とコンサートだけなので難しいことはありません。
 先週のウチに資料と音源をまとめてホールと音響と照明と打ち合わせが済んでいるので時間に余裕が出来ました。飾りを少し増やしたいなぁ~なんて思っていたのでジャンクの幕を改造してジョーゼット幕モドキをこさえています。
 どこかの小ホールで使われていた白紗幕を切り分けた物と思わる幅8尺半/タッパ23尺のフラット幕が6枚。このままでは使い道が微妙なので組み直してドレープ幕にしてみたワケです。古い物なのでとっくに落ちていると思いますが、防炎加工の表示もあります。
 袖幕にするにはタッパが足りませんが、裾を斜めにカットすれば飾り幕にはなるかなと。裾をカットしてもイントレ3段の化粧幕にも使えるのでアリです。
 今日はドレープの折り返しと紐付け終わったので、明日、裾を加工しようと思います。
 この他に3.11の際に天井が落ちて廃業した結婚式場からもらってきた全面ジョーゼット幕とアーチジョーゼット幕もあります。今回作り直している幕を引っ張り出したら発掘されました。存在を忘れていたのです。天井高が20尺程度の宴会場用なので無加工ではタッパも幅も微妙ですが、全面ジョーゼットはほどいて生地にして渦巻のシャンデリア・ジョーゼットでも作ってみようと画策中です。アーチジョーゼット幕は少し組み直せば小ホール用のアーチジョーゼット幕になりそう。5-6間間口の小ホール用のジョーゼットアーチ幕はありそうで無いのでいいかも。
 電子工作だけでなくミシンも手掛けるアホなオジサンであります。

#ガチ工作 #本業

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

Icon of admin
 秋月さんからLEDとドライバのキットが入荷したので灯を入れてみました。
 LEDは中華電器に発注した物とほぼ同じです。
 ドライバは可変抵抗で電流を調整する作りですが計算した固定抵抗を取り付けました。CL6807には所定のセンス電圧が入っていますので期待値通りの電流が流れていると思います。
 照度計を勤務先に置いてきてしまったので計測はできませんが、3wと言われたら納得できる明るさです。これを30発使って間口1.2m分にあてて1200~1500Lxという試算は間違っていない気がします。

#ガチ工作 #LED
Icon of admin
 とにかく暑い。いや、熱い。
 電力事情が悪化していますが、エアコンを適度につかって乗り切りたいものです。
 ちなみにですが、今どきのエアコンとテレビを比較するとエアコンの方が電気喰いません。たぶんですけど。
 エアコンはピーク動作時は電力喰います。コンプレッサーが動くときです。ですが、それ以外では大した電力を喰いません。比べてテレビは常に一定の電力を喰います。
 テレビを観なくても死にゃしませんが、熱中症になればリアルに死の危険性を伴います。
 エアコン切ってテレビを観るのが最も愚かな選択肢であることは間違いありません。

#雑談
Icon of admin
 auが障害を起こしています。
 かく言う私はIDOから数えて30年来のauユーザーですので障害が直撃しております。
 ただ、通話はダメですが4Gでもwi-fiでもネットは繋がります。通話をあまり使わないので直接的な被害は僅かです。
 今回の件、交換機に相当するVoLTEと呼ばれる装置の故障だとか。間違ってもamazonでは手に入らないオーダーメイドの機械でしょうから数日で復旧するとは思えません。
 罵声を浴びせてもゴネてもダメなモノはダメなんですからしばらく待ちましょう。3.11の直後だってしばらくは使えなかったのですから同じことです。無きゃ無いで無いなりに何とかすりゃいいんです。それに、クレームを言うためにショップに並ぶ時間あるなら急ぎの要件は無いのでしょうから静かにして欲しいかも。

 今回の件、みつほ銀行の一件と近い匂いがします。
 「動いているのでナゼ交換する!?」
 て奴です。
 この思想が厄介でして、イザ故障してサービスが落ちると
 「なんで対策してなかったんだ!!」
 とされるワケです。技術側からすれば踏んだり蹴ったりです。
 権限があるだけのコストダウンを勘違いした機械音痴が原因となって発生するトラブルの典型例ですね。システム障害ですがその実は人災です。技術者のモチベーションも測定限界以下まで下がります。
 今回の真相はまだ不明ですが、上級技術者ほど連絡が取れないとの話もありますので、あれだけ言ったのにそれを無視した権限があるだけのアホの尻拭いを休日出勤してまでしてやる気はねーし、お客には悪いけどアホには痛い目を見てもらいましょう、といったところだと想像します。
 関係者に連絡する手段がauの携帯なので通じないって話もありますが。

 「動いているのにナゼ交換する!?」は裏を返せば「サービスが落ちてもかまわない!!」と言っているのと等しいんですけど、権限というか権力を求める人ほどこういったことが理解出来ない傾向にあるようです。求める権力の裏付けは何?と聞きたいけど。

 この流れで長期停電も起こるんでしょうかねぇ。

#雑談
Icon of admin
 auの回線が復帰していました。
 まずは現場の技術者の皆様に感謝とお疲れ様をお伝えしたいです。

 正直、通話依存が高い人は大騒ぎしていましたが、ネットは早々に回復したので通話依存が低い人は「仕方ねーなー」って感じでそれほど気にしてない様子でした。
 私は、実家の父母以外、連絡の大半がメール、LINE、SMSですので大きな問題なりませんでした。連絡相手の大半が電話を取れない時が多い方々だからです。
 数年前にソフトバンクでも似たようなことがあったのですから、2日で治ったのなら取り立てて大騒ぎしなくてもいいっしょ。

 今回の件、誰が悪いとかいう魔女裁判など聞いても意味がありません。こういうのは権限のある人が逃げて逃げにくい人が責任を取らされることが多いからです。現場の技術者に責任を押し付けることなく原因を明らかにしてもらいたいものです。
 昭和の時代は上司が盾になって部下を守る感じがありましたが、今は部下を盾に上司が逃げる感じが強いです。必ずしもではありますが、この件に関してはそうならないことを祈ります。
 ただ、記者会見などでの上層部の言い訳を聞くと「あーぁ」って感じはします。現場の落ち度であって経営陣はむしろ被害者なんよと聞こえてしまう。問題の原因となったVoLTEを最終的に決めたのは誰なんよと聞きたい。
 私個人が現場の技術側を擁護したい気持ちが強いのもありますけど(笑

#雑談
Icon of admin
 auの障害のせいで通話が出来ず高額の契約を落としたなんて書き込みをする方がいます。ありえないとは言い切れませんが、本当にそうなのかな?
 疑問なのは、そんなレベルの契約を担当する方が手持ちの携帯電話が使えなくなっただけで仕事が出来なくなるほど不器用だとは思えないことです。他のキャリアを持つ同僚知人、固定電話、数は減っても公衆電話もあります。タクシー飛ばして直接話しをしに行ってもいい。
 本当ならお悔み申し上げますが、未熟者の自己紹介のようなブラフはネタだとしても書くもんぢゃありません。

#雑談
Icon of admin
 現場がひと段落したらホール資料の図面描きです。こちらの別件や作業量など考慮されずに知らないところで決まった納期とはいえ、過ぎていますから1日でも早く出さなきゃなりません。
 建築のCADデータの使い方は要領が見えたのでピッチを上げましょう。
 つか、どんな資料が必要か依頼主から仕様が来ないので何をどう描いたらいいかよくわからんのですけどね。

#本業
Icon of admin
 現場もホール資料の作成も一息つきました。
 終わっていませんが、自分の領分に区切りが付いて投げたところなのでしばらくは少しサボれます。
 なので、Art-Netエンジンを再開しています。
 基本的な機能の製作は済んでいるので最適化をします。常にそれなりの負荷で動くモジュールなので可能な限り動作負荷を軽減し例外エラーも出にくくしたいからです。
 特に処理の順位とタイミングの精査が重要です。無駄な繰り返し処理を極力減らし、やるべきことは適切に実行させるのです。パッと見はスマートでも順位が最適じゃないとか、状況確認のIF文が無駄に実行されていたりするのはよくあることです。自然な流れで実際の処理量をどれだけ減らせるかが勝負です。
 改めてフローを書いています。実験段階ではフローを書かず処理が成立するかコマンドを試しながら思いつきで書くことが多いのですが、最適化をするには分割した部分を並べ直して見直すのがいいようです。いわゆるフローチャートを書くのではなく、付箋に要素を書いてホワイトボードに並べるブレインストーミングみたいな作業です。一人作業なのでパソコンの中でやってますけど、LibreOfficeのドローがこの作業では使いやすいですね。

 時間も開発費も乏しいところですが、出来るだけ多くの製品を作りたいものです。

#[Art-Net]
Icon of admin
 Art-Netエンジンの構成を整理していますが、そういやプロセス間通信はどうしましょう。

 PythonではmultiprocessingのQueueが予想以上に遅くて使い物になりません。便利なんですけどね。
 ネットの情報ではPipeや共有メモリが速いとあります。ですが、socketもQueueより速そうなレポートが多く見受けられます。
 実験してみないとわかりませんが、速度が足りるならsocketにした方が将来性があります。なぜなら、内部でのプロセス間通信も別プロセッサとの協調動作も設定するIPアドレスとポートが違うだけで全く同じプログラムで実現可能だからです。Pipeや共有メモリよりもsocketはシンプルで扱いやすいので速度が十分なら尚更です。
 Art-NetとEtherNetを共用するのは避けた方が良さそうですが、ローレベルのハードウェアを扱いやすいRaspberryPiと計算能力が高いPCを組合せば得意分野を活かして良い結果を出せるような気がします。もし調光卓を考えるならこの方法は必須かもしれません。もちろん、Art-NetエンジンそのものをPCに実装するのもアリでですけど。

 これまではQueueベースで書いてきましたが、タプルをバイナリ化してsocketで通信する方法から試してみましょう。

#Python #[Art-Net]
Icon of admin
 numpy.arrayを含むtupleをsocketで送るにはシリアル化ってのをすればいいらしい。pythonのオブジェクトをバイナリ化する方法とのこと。
 pickleというライブラリを使います。pickle.dumps()でシリアル化し、pickle.loads()で戻します。
 テキストと3次元のnumpy.arrayが混在するtupleが一発で処理出来ました。
 変換したデータのtypeはbytesですからsocketで送れるハズです。

 ただ、pickleのシリアル化/復号には時間がかかる様子。
 先人の調査によると、scoket自体はとても速いけれどpickleの処理が案外遅くて総処理時間は他の方法と似たり寄ったりみたい。
 ただ、先人の比較方法はデータ量を起点にする比較が主で、都度のデータは少なくコネクションの回数が多いケースの比較ではありません。multiprocessingのQueueはコネクション毎のマネージ処理が重い感じがするので、コネクション自体は軽いsocketに分があるかもしれません。
 また、DMXのスロットデータを格納するnumpy.arrayは何も指定しないとint32やint64になりますが、uint8やuint16を指定すれば1スロット当たりのデータ長は小さくなります。つまり、データ総量が小さくなります。
 試さないとわからんですけど、オーバーヘッドが大きい通信処理でデータ量を減らせば十分な速度を確保できる期待感があります。DMXの1スロットは1バイトですから、Art-Netエンジンではスロットに対する計算処理をせずにuint8で運用するのがいいのかもしれません。今のところ、比較抽出のnumpy.maxはあってもスロットデータに計算らしい計算は当てないのでuint8で運用しても問題無さそう。
 つか、通信自体はsocketが凄く軽いことに驚いた。PythonというよりOS本体に依存するので当然かもしれませんが。

#Python
Icon of admin
 シリアル化の手順は次の通りです。
 オレメモです。

1) ライブラリをインポートします。
>>> import numpy as np
>>> import pickle

2) テスト用のnumpy.arrayを作ります。とりあえずはすべてゼロのuint8です。
>>> z = np.zeros(( 192, 8, 512 ), dtype=np.uint8 )
※ dtypeで変数の型を指定します。指定しないとOSのbit長のintになります。
※ 値の計算をするならuint16以上の型にしなければなりませんが、今のところArt-Netエンジン内では置き換えと比較しかしませんのでuint8で運用できそうです。

3) テスト用のtupleを作ります。
>>> y = ( 'tests', z )
※ 'tests'という文字列と(2)で作ったnumpy.arrayのtupleです。

4) シリアル化します。
>>> x = pickle.dumps( y )

 これでtuple:yが一列のバイナリとなり、scoketで通信できる状態になります。

5) 復号します。
>>> w = pickle.loads( x )
※ wはyと同じtupleです。正しく復号されました。

 numpy自体にもシリアル化/復号の方法があるようですが、型の違うデータを一括でやり取りしたいのでtupleをpickleで扱います。
 この処理の速度が十分かどうかはこれからの確認です。

#Python
Icon of admin
 先日の現場で新作の間数マーカーを使ってみました。思った以上に良い感じです。
 発光面のホクロは気になりません。売り物にするにはどうかと思いますが、手に取って使う物ではありせんので。
 電池は1次電池のアルカリを使ってみました。エネループが推奨ですが、アルカリも使えないと現場的には問題があるのでリハ時にテストです。忙しくて細かくチェックしていませんが、12時間以上使えたみたいです。
 今後カラーバリエーションを作る予定です。

#ガチ工作 #舞台の小物
Icon of admin
20220711175339-admin.jpg
 以前購入した加熱台ではリフローハンダがうまくいきません。
 専用の機械を買おうかと思いましたが、ネットの書き込みを読むと「TESCOM TSF601」がイイ感じとのこと。庫内に熱風を回すタイプのコンベクションオーブンです。これで成功されている例が多いようです。
 温度の管理は、盤面の温度設定だけでは不十分で、熱電対などでの実測が必要みたいです。手持ちで試して具合がいいなら専用の温度計を買いましょう。
 懸念するのはハンダペーストです。溶解温度138度の低温タイプを使ったレポートが多いので購入を考えましたが今は品薄で手に入りません。185度の物は手元にあるので当面はこれで試してみましょう。

追記

 帰宅して試しました。
 ストップウォッチを片手にやってみましたが簡単でした。本体のリレーのカチカチ音とヒーターの発光を参考に計測します。
 テストピースは3wのLED素子を秋月さんの六角アルミ基板に取り付ける作業です。
 ソルダーペーストはXG-50。溶解温度185度の物です。
 基板にソルダーペーストを塗ってLEDを置きます。
 基板を庫内に入れ160度設定で起動します。時間管理はストップウォッチなので、TSF601のタイマは作業中に落ちない15~20分くらいの設定にします。
 リレーが切れる音が鳴ってヒーターが切れたところからストップウォッチで計測します。予熱です。
 90秒予熱したら温度設定ダイヤルを230度まで回します。ストップウォッチもリセットします。
 温度が上がってソルダーペーストが溶け始めたところから20秒後に電源を切って網ごと取り出し冷却。
 部品の耐熱限界を考えると230度に切り替えてから90秒たってもソルダーペーストが溶けない場合は失敗と思ってよさそう。この場合はハンダゴテで誤魔化すしかありません。
 上記のレシピでLEDは正常に点灯しました。これでいいのかまだわかりませんが、LED素子が大丈夫なら他の部品でも良いと思われます。

さらに追記

 上記のレシピではLEDの透明カバーが変形しました。低融点のソルダーペーストを使ってリフローの温度を下げる必要があると思われます。
 リフローでハンダ付けしたLEDを5灯直列ツナギにし、DC24v電源のCL6807ドライブで問題無く点灯しました。電流値も設計通りです。
 長時間点灯を試すにはヒートシンクを取り付けないといけません。
 今日のところはヨシとします。

#電子工作
Icon of admin
20220712115329-admin.jpg
 低融点ソルダーペーストを手配しました。入荷には1週間弱かかるとのことですが、手配ルートや在庫状況が微妙なので手に入るかは届いてみないとわかりません。
 TS391LT50
 50gでこのお値段はお高い感じもしますが、かなりの量を作らないと劣化するまでに使い切るのは難しい量ですし、低融点という特殊な性能を考えれば、1作あたりのコストは納得できる範囲だと思います。
 (たぶん、1g以上使うのはかなり大きな基板になると思います)
 この手の製品の消費期限は半年から1年間です。冷蔵庫等に入れて低温での保管が推奨されますが、使用の際には常温まで戻さなければなりません。この製品は常温保管も可とされているようですが、扱いや管理には注意が必要です。

#電子工作
Icon of admin
 LEDのデータシートを見直したところ、リフローのピーク温度は220度だそうな。最初からよく見ろって話ですが、完全にオーバーしてました。
 低融点ソルダーペーストを使えばピーク温度を160〜180度に抑えられますから大丈夫っしょ。

 ※ 参考ページ
 おうちリフローやってみた

#電子工作
Icon of admin
 低融点ソルダーペーストの入荷は2-3週間先のようです。
 製作は急ぎじゃありませんが、早々にテストして次の課題に移りたい気持ちなのでちょっと不満。
 不思議なのは小売りで扱われる製品が少ない事です。趣味として日常的にハンダ付けをする人が少ない上にリフローハンダを使う人は更に少ないのですから仕方ないのでしょうけど、国内メーカーのハンダ付け関連品はとても優秀で品数も多いのにソルダーペーストの類を避けている感じがします。工場向けの製品は多いので尚更不思議です。
 とは言っても無いものは仕方ありません。

#電子工作
Icon of admin
 低融点ソルダーペーストは入荷までしばらくかかりそう・・・なんて書いたのに出荷されたとか。
 自宅は不在が多いので勤務先に送る様にしていますが、週末では現場かオフです。明日は現場がないのでオフです。
 仕方ないので勤務先で工作作業をしましょう。
 受け取ったら帰宅してリフローの条件出しです。

#電子工作
Icon of admin
 低融点ソルダーペーストは入荷したのですが、落ち着いて作業する時間が取れずテストは出来ておりません。自宅の冷蔵庫で休憩中です。

#電子工作
Icon of admin
 今週は比較的時間に余裕があるのでホール資料の編集です。
 今日の課題は小ホール(大練習室)です。約7.5間四方で天井も高いのでリハーサル室としてはかなり贅沢な寸法です。
 建築図面を整理することにも随分慣れましたし、線が少ないので、取り急ぎ必要な図面は1日で終わりました。
 ちなみにまだ建築中ですが、議員さんの後援者様は内部の見学が出来て、資料を作っている私は立ち入ることが出来ないのはアルアルですね。

#本業
Icon of admin
 3D-CADとしてFusion360を使っていますが、初めてインストールしてから5年以上経っていますから無料で使うのは難しくなり、昨年からサブスクにしています。サブスクの価格は65,000円/年。機能からすれば妥当な価格だと思いますが、小遣い払いとしては厳しい価格。
 フリーな3D-CADには「FreeCAD」があります。私が3D-CADを使い始めた当時ではFusion360が実質無料で圧倒的に高性能だったので他に選択肢はありませんでしたが、Fusion360が実質有料化しFreeCADが高機能化したならば改めて比較評価してみる意味はありそうです。

#CAD
Icon of admin
 ちょっと気になって「ESP32」について調べてみました。
 IoT向けの汎用マイコンです。安価な割に処理能力が高く、wi-fiでIPネットワークが組めて、私にとってはRaspberryPiとPICマイコンの間を埋められる製品だと思われます。
 Arduinoの使用も考えたことはあるのですが、私にとってはPICマイコンをアセンブラで書いた方が手っ取り早く、ケースバイケースのハードウェア製作ではArduinoだとパッケージの調整が面倒です。画期的で素晴らしい製品だと思いますが、私にとっては立ち位置が中途半端です。
 RaspberryPiも含め、この手のマイコン製品は開発環境が重要です。安価で高性能でも開発環境がボトルネックになってアマチュア界隈では普及しなかったマイコン製品は少なくありません。AVR対PICにおいても高性能なAVRよりも少し劣るPICなのは開発環境の影響です。AVRはArduinoの本体なので別な意味で普及はしていますけどね。ESP32はArduinoの開発環境が使えます。Arduinoではありませんが、ArduinoIDEに開発ライブラリを追加すればほぼ同じに使えるようです。間借りと言えば間借りで、関数ライブラリに違いはありますが、ほぼ同じ使用感。Arduionoを使える人ならわずかな違いを勉強すれば使えてします。これは画期的かもしれません。
 Arduino言語はANSI-Cがベースでフル実装でないもののC++っぽいオブジェクト指向な書き方も出来る言語です。基本書式と変数の考え方がANSI-Cと同じマクロ言語と思えばストレス無く使えそうです。

#電子工作
Icon of admin
 色んなデバイスを考えますと表示装置は避けて通れない課題となります。
 数個のLEDで済む事もありますが、ガッツリモニタを組まないといけない事もあります。この中間が望ましいこともあります。
 案外必要にして十分なのが16字×2行や20字×4行くらいのLCDディスプレイモジュールです。ただ、制御は難しくありませんが、パラレル信号なので面倒が少なくありません。ならばエスケープシーケンスをシリアルやI2cで受けて動く様にしたらどうかと。PICでインターフェースを作るワケです。
 幸い16F1939が沢山あるのでコレを使えばI/Oピンに余裕を持って作れます。
 色んなアイデアを出しても製作が進まないのは補助的な周辺機器を作らんからかもしれません。

#ガチ工作 #電子工作
Icon of admin
 これまではPIC16系でI2Cを扱う方法はデータシートを読んでも理解出来なかったのですが、次のページのサンプルプログラムを読みながらフラグの意味を整理したところなんとなくわかってきました。
 「I2Cのスレーブモードの使い方」
 サンプルソースはPIC18系っぽいですが、違いを読み変えればPIC16系のサンプルにもなります。

 SPIもそうですが、シフトレジスタ系の通信方法で重要なことは受信値を処理して次の受信コンディションが整うまで送信を一次停止させることです。
 I2Cではこの処理をハードウェア的に行うことが可能です。SSPCON2:SENをセット(フラグを1に)しておくと1バイトの受信が終わったところでクロックストレッチングと呼ばれる一時停止がハードウェア的に自動発生するモードになります。クロックストレッチングを解除し受信コンディションにするにはSSPCON1:CKPをセットするだけです。

 スレーブ受信処理の流れは、
1)SSPCON2:SENとSSPCON1:CKPをセットして受信コンディションにする(SSPCON2:SENのセットは初期化処理の時だけでいい)
2)バイトデータが受信されたらSSPBUFからデータを取り出す(この時点でSSPCON1:CKPはハードウェアでクリアされクロックストレッチングが発生している)
3)データを取り出したら(取り出したデータの処理が済んだら)SSPCON1:CKPをセットし次の受信コンディションにする
4)以下、ストップビットが検出されるまで(2)から繰り返し
 となります。

 スレーブ送信(返信)の場合も同様で、所定のレジスタにデータを入れた後、SSPCON1:CKPをセットするとマスターがクロックを刻み始めて送信となります。
 所定のレジスタにデータを入れると自動的にSSPCON1:CKPがセットされて送信が始まるモードもあるようです。

 ただ、SSPCON3:AHENとSSPCON3:DHENの意味がわかったようなわからないような状況です。両方ともクリア(=0)で良いような気もしますが、便利機能かもしれないのでデータシートを良く読んで整理しましょう。

 I2Cは敷居が高いイメージがありましたが、ハードウェアによる自動処理が多くソフトウェアで細かいタイミングを考える必要が無いため、この調子で整理していけば案外簡単に使えるかもしれません。
 PICでI2Cを扱うことが可能になれば、今回のパラレルバスLCDなどのI2Cに対応していないデバイスをI2C化することが容易になります。
 通信速度や即応性、RTOS的なリアルタイム性を求めるのは難しいと思われますが、7bitアドレスのノーマルモードでもI2Cバス上に126個のデバイスを置けますので、RaspberryPi、Arduino、ESP32などの製作の幅が広がるような気がします。

#電子工作
Icon of admin
 ちょいと調べたところ、RaspberryPiのI2Cにはバグがあってクロックストレッチングが機能しないとか・・・マジかい!?
 確かに、クロックストレッチングを多用すると噂のジャイロセンサBMX055を扱った時に数値が変だったりしたかも。
 i2c-gpioと呼ばれるソフトウェアI2Cを使えばクロックストレッチングが機能するとのことですが、こんな大事な機能にバグがあるとは困ります。
 クロックストレッチングを使わなくても機能する様にPIC側を作ればいいか。100kbpsならACKの間に10usecありますから、割り込みを使い5usec程度で処理すれば大丈夫と言えば大丈夫です。複雑な返信はしませんしね。

#電子工作 #RaspberryPi
Icon of admin
 クロックストレッチングについて改めて調べましたが、最新のRaspberryPiで治っている情報はありません。
 2022年7月現在、Broadcom社製のBCMシリーズを使ったRaspberryPiは総じてダメなようで、ソフトウェアデバイスであるi2c-gpioを使うのが有効な対策だと思います。
 もちろん、ハードウェアデバイスに比べたらCPUに負担がかかるので、CPU負荷が多いシステムやI2Cメモリなどの扱うデータ量が多いデバイスでの使用は避けるべきかもしれません。
 あくまで、扱いデータ量が比較的少なく多少の遅延が発生しても支障がない機内通信で使うのがよいと思われます(I2Cはそもそもそういうモノらしいですけど)。

 今回はPICをインターフェースとして用い、パラレルバスのLCDキャラクタディスプレイ(SC1602やSC2004を用いた製品)をI2Cで接続しANSIエスケープシーケンスっぽいASCII文字列で制御できるシステムを目指します。
 もちろん、UART(シリアル)でも動く様に考えます。8PのDIPスイッチを取り付け、1PでI2C/UARTを選択し、残りの7PでI2CのアドレスやUARTのビットレートを設定できる様にすれば汎用性が高まるでしょう。

#RaspberryPi #電子工作
Icon of admin
 RaspberryPiのハードウェアI2Cをマスタにしてどうにかならないかと考えてみました。
 BFで送受信の終了を監視し、SSPIF(ACKの終了)を監視してCKPをセットすれば良いっちゃ良いのだけど、不可能ではないけど面倒くさい処理の典型と化します。
 クロックストレッチングを使わなくても(ACKの直後に次の送受信が始まっても)動く様にしておけばよいのはわかっていますが、PICのI2Cはクロックストレッチングが前提の構成(特にスレーブ送信)だし、RaspberryPiに限った問題なのでi2c-gpioを使ってクロックストレッチングを用いた方が素直な気がします。i2c-gpioが凄い足かせになるワケでもないようですし。

追記
 どうにもモヤモヤするのでクロックストレッチングを使わない方法を考え続けてみました。帰りの車中は考え事に最適です。
 条件を整理します。RaspberryPiのI2CがクロックストレッチングをしてくれないのですからPIC側の条件です。
 タイミングチャートを読みますと、ACKのクロック(ワードの9クロック目)の立下りで割り込みフラグSSPIFがアクティブになった後、次のワードの最初のクロックの立ち上がりまでに送受信のコンディションを整えられれば何事もなく次のワードが扱えるようです。これはSSPIFで割り込みが発生してから半クロック分の時間が使えるとも言えます。I2Cのビットレートは一意ではありませんが、標準的なビットレートである100kbpsに限って考えるなら半クロックは5usec。32MHz動作のPICなら40命令ステップに相当する時間です。
 PICは割り込みの入りと出にパイプラインロスが発生するのでそれぞれ1命令ステップが消費され、I2CのクロックとPICの動作クロックは同期していないし信号の立ち上がり立下り時間もあるので2命令ステップくらいの誤差は起こりえます。となると実処理のために使える命令ステップ数は最大で36程度です。
 ザックリと考えるならSSPIFで割り込みに入ってから30命令ステップ以内に送受信コンディションを整えて割り込みから抜ければよいのでは?となる。
 30命令ステップあれば書き込み(RaspberryPi→PIC)は間に合いそうです。
 I2Cは1フェーズ内では読み出しか書き込みかどちらかしか出来ませんので、Pythonの読み出しコマンド(PIC→RaspberryPi)はI2Cにおいて2フェーズ(1つ目のフェーズでコマンドや読み出すアドレスを書き込み、2つ目のフェーズでデータを読み出す)で実行されます。すなわち、PICが受け取ったワードをキーに処理して次のワードで即応する必要はありません。受け取るだけ受け取ってから処理をし、次の返信フェーズに備えればいいのです。もし鬼連続でコールされても2つ目の読み出しフェーズでデバイスアドレスを送受信する時間は返信データを作るのに使えます。1ワードは9bit分ですから100kbpsなら720usecです。足りる足りないではなくこの時間で済むように作ればいいのです。つか、PICにとっては5,760命令ステップに相当する時間です。私はPIC16をアセンブラで書きますが、5000ステップ以上の処理など書きたくもない・・・。
 割り込みベクタが一つしかないPIC16系で多重割り込みをするとI2Cのタイミングを外す可能性があります。他の処理はポーリングとなりますが、DMX512の送受信や位相制御のトリガー処理もポーリングで十分間に合っているので問題ないっしょ。むしろPIC1個にそんな沢山の仕事させるなってね(笑

 あれ?クロックストレッチングを使わないで組めそうな気がしてきた。

 なんのことやらオレメモ暴走独り言ですみません。

#RaspberryPi #電子工作
Icon of admin
 ようやくですが、138度の低融点ソルダーペーストでリフローを試してみました。
 熱電対温度計で計測しながらの作業です。

 まず100度設定でオーブン自体の予熱。外装が暖かくなるまで行い、庫内温度が85度くらいになるようにする。
 物を入れてダイヤルを140度にし、庫内温度が100度になるまで待つ。
 庫内温度が100度になったらダイヤルを100度にし90秒計測開始。この間、庫内温度が100~110度を維持する様に操作する。
 90秒経ったらダイヤルを180度にし、ソルダーペーストを観察。
 庫内温度が150度近くになるとソルダーペーストが熔け始めるのがわかる。
 庫内温度が160度になったらダイヤルを100度まで下げ20秒計測開始。この時間ならヒーターの残熱で庫内温度が上がるくらいですが、160~170度を維持するように操作。180度は越えない方がいい。
 20秒経ったら(30秒を越えない様に注意)オーブンの電源を落としフタを開いて冷却。
 素手で触れるくらいに冷めたら完成。

 ハンダの溶ける様が分かりやすいので思ったより簡単で、前回の様にLEDの樹脂が変形することなく綺麗にハンダが付きました。
 185度のソルダーペーストと違い部品の耐熱温度に対して十分に余裕のある温度ですから、高すぎず長すぎずに注意しながらも十分に余熱をし、160~170度20秒間をキッチリやればよいようです。予熱後から最高温度までの過程はオーブンの成り行きに任せてOK。部品を100度以上の環境にさらす時間は3分以内ってイメージも大事かもしれません。

#ガチ工作 #電子工作
Icon of admin
 リフローは基本が見えたので、棚上げになっていたSPI-DMXの組み上げも可能になりました。
 これは表面実装部品を多用しているのでリフローの条件が整わないとどうにもならなかったのです。
 リフローでこれに付ける部品はチップ抵抗とチップコンデンサですから温度条件は比較的緩い。185度のソルダーペーストでも部品は持つと思いますので、138度のを使えば比較的簡単に出来そうです。

 このSPI-DMXはRaspberryPiからレガシーDMXを出力するためのインターフェースです。PICのファームウェアを書かなければなりませんし、トリッキーな処理の検証もあるので完成まで時間がかかりますが、最終的にはArt-Netデコーダになるので速やかに進めたいですね。LCDディスプレイモジュールをI2C化するのもこれに使いたいからだったりしますが・・・。

#電子工作
Icon of admin
 パワーLEDをリフローして秋月さんのドライバ基板で点灯させました。
 単色の3w品はかなり明るく、LEDの樹脂部品の変形もありませんので思ったよりも良好な照射をしています。

 30度のレンズを取り付けた5発が2m離れた位置で中心150Lx。期待値は200Lxだったので足りませんが、電流値を調整すれば180Lxくらいまで上げられそうな気もします。
 課題は明るさを増して個体ムラを軽減することです。実作業はLEDに送り込む電流値の調整となります。半導体は付加電圧に入力電流が単純比例しないために半導体と呼ばれますがLEDもその部類です。LEDの明るさは主に入力電流に比例しますが、電圧特性が個体によってバラつきがあるくせに入力電流は付加電圧によって増減します。制御回路は電流を計測してフィードバック制御してはいますが、電流の計測も結局は電圧の計測なので累積誤差は決して少なくありません。設計値のままの部品で回路を組んでもある程度の範囲には収まるのですが10%くらいの照度差は発生するようです(抵抗やコンデンサの誤差は5%程度あるので当たり前?)。なので、最後は人の手で計測して調整できるようにしなければなりません。
 さて、どうしよう!?

追記
 気になったので再計測。
 同条件で260Lx出ている・・・十分に期待値なのでホッとしましたが、なんで100Lxもアップ?
 考えられるのは温度。
 昨日のチェックはリフローの熱が完全に抜ける前に実施したと言ってもいい。アルミアングルをヒートシンクにしているけど冷却不足かも。制御回路には気になる発熱が無いので無関係だと思う。
 しばらく点灯して十分に熱を持たせて再計測します。

追記・・・30分後
 ヒートシンクが十分に温まったところで計測。
 照度258Lx。
 わずかに下がったけれど計測の誤差レベルでしょう。十分に期待値が出ているので細かい調整は考えないことにします。
 アルミアングルは温まっても素手で握っていられる程度なので、筐体放熱だけで足りそうな気がします。触った感じ、昨日よりも低い気がしなくもないけど・・・
 これなら実試作を始めてもいいので、基板を設計して中国に発注しますかね。
 LED基板も制御基板もアルミの片面基板にしましょう。短絡を避けるために基板の周囲にパターンの余白を大きめにとる必要がありますが、基板を筐体やヒートシンクに直付け出来るなど、クーリングの処理にメリットがあります。それに、国内でアルミ基板を作ると樹脂基板の数倍の価格になるのに対し中国ではほんの数割しか違いません。クーリングの機構が簡単になるならアルミ基板を用いた方が全体としては安く仕上がります。

#電子工作 #LED
Icon of admin
 パワーLEDに先が見えてきたところですが、LHQの代替機材も作れんぢゃね?
 今回はφ8mmの単色3wLEDにφ13mmのレンズを被せています。出来るだけ薄い筐体で必要なナマ明かりを確保することが優先課題なので大柄になりがちなフルカラーLEDやリフレクタータイプのレンズを避けただけですが、この延長線でマーブルタイプのカラーミックスLEDバー作ったらLHQの代わりになるんぢゃないかと。発光部を見せないならマーブルタイプでも同じことだし、発熱点が集中しないので作りやすい。
 今回のレンズは収差によって半減角の周囲に色温度の低いエリアが出来てしまいますが、4in1などのフルカラーLEDでよくあるエッジの色ムラと比べたら特筆する支障でもありません。それに、LHQの代替にするにはどんなレンズを使っても拡散フィルタやバウンサーを使ってエッジの減光変化を柔らかくしなければなりませんので、発光部を細く作れる今回のφ13mmレンズは悪くないと思うのです。何と言っても安いし軽いし。
 また、薄く作れるならカマチに並べるフットライトとしても私好みです。
 まずは今の製品を完成させるべきですが、これらのことも考えながら進めるべきでしょう。

#LED #照明器具
Icon of admin
 再度LEDの照度を計ってみましたが270Lx出ています。
 必ずしも芯に照度計を置ける訳ではないので5%くらいの違いはアリアリですが、最初の計測値が妙に低かったのは何故でしょう。
 原因はわかりませんが、大事な時にこの現象が起きないことを祈ります。

 基板を設計するにあたり照度をあたり直してみます。
 目指す製品は2.4m離れて1200~1500Lx出す物です。

 現在の計測条件は距離2.2mですので設定値より1割ほど近い。距離の差分で照度は85%くらいになりますので、現在値を260Lxとすると期待値は220Lxです。
 製品は幅1.2mにLEDが30発並んだ構成を想定しています。現在の有効照射面は直径1.0m程ですから照射面の1点には製品1台の83%が当たることになります。
 現在は5発で実験していますので1発あたり44Lx。30発の83%なら24.9発見当。単純計算では1097Lxになるハズです。

 設計値より低いので、仮に製品幅を1.0mにすると照射面の1点には100%当たることになり1320Lxです。
 この値なら十分ですが、現実には経年劣化等によりこの値よりも落ちると思います。10%減として1188Lxですが、この値ならかろうじて目標値。
 仮に製品幅を0.9mにすると1467Lxで10%減でも1319Lx。放熱はいけそうなので、部品類が収まるならこの幅かな?

 通風口やらケーブル口を考慮し、LEDを27.5mmピッチで取り付ければ30発でも0.9mに収まります。

#LED #照明器具
Icon of admin
20220728181009-admin.jpg
 LEDフットライトのLEDモジュール基板を発注しましたので、KiCADの3D画を揚げてみました。
 KiCADは回路図から基板を作れて3Dまで出るので便利です。
 LEDの3DキーはFusion360で描いたものをSTEP形式で出力してKiCADに読ませています。 
 逆に、KiCADで描いた基板の3DもSTEP形式で出力すればFusion360に読ませられます。配線パターンまでは表現されませんが、基板の外形に部品が乗った状態のものが出力されます。
 改めて描くことなく部品が乗った基板をFusion360の部品としても使えるので便利です。

 今回は最大4.0vのLEDをDC24v電源のCL6807で駆動させますので5発です。LEDを直列で使いますので、電源電圧はLEDの総電圧+3~5v程度になります。
 LED1発分くらいはドライバ回路で消費となります。

 価格は20枚で$81(USD・送料別)です。消費税は後請求か着払い扱いになるようです。
 為替レートを今日現在の135.5円/USDとすると10975.5円です。1枚あたり548.8円程度。アルミ基板がこの価格は安いと思います。
 ドライバ基板はLEDの動作や照度を確認してからにしますが、基板の価格はサイズよりも枚数に左右されるので1枚の基板に2回路入れましょう。電源モジュールも2回路で1台ですから丁度いい。

#電子工作

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

Icon of admin
 オーダーした基板が出荷されたそうです。先日のオーダーはロックダウンの渦中で時間がかかりましたが、今回は3営業日で出荷です。
 後は輸送次第ですが、こればかりはその時によります。経路のハブの地域がコロナ等で混乱していれば時間がかかります。
 今回は速い。輸送状況を確認しますと中国から航空便に乗せるための通関手続き中とのこと。すんなり航空便に乗れば明日には日本国内に到着すると思われます。
 日本国内の輸送は通関と配送で通常2日間くらいです。どの国際空港に降ろされるかによって1-2日違いますが、今週中には届くでしょう。

#お買い物
Icon of admin
 LEDドライバの回路図を書いてみました。 
20220802000847-admin.jpg
 秋月さんの1000mA 可変定電流パワーLEDドライバーキットを参考にしています。
 違いは電源の入力部とADJに対する回路です。
 電源の入力部は電源が15vより高い場合に突入電圧が大きくなるらしいので、バリスタやツェナーダイオードを入れて対策しています。
 ADJは、解放(Hi-Z)だと電流センス抵抗(R4)で定義される電流を出力し、0.4v未満になると消灯するそうです。100%で点灯させるだけならPWM回路を省いてADJを開放にすればOKです。

 この回路はPWMが負論理動作になりますから、Lowにしてトランジスタを閉じれば点灯、HiにしてトランジスタでADJをGNDに落とせば消灯します。トランジスタは2SC1815に特性が近い表面実装タイプの2SC2712です。増幅率は在庫にGRグレードがあるので200倍くらいを見てますが、ICEは5vなら150mA、3.3vなら100mA程度です。IADJは1uAとのことですから十分に飽和しているので大丈夫でしょう。・・・トランジスタをもう1個入れて正論理にするか思案中。
 回路図上のR4は1個ですが、パターンとしては2個書いてセンシング抵抗を調整しやすくするつもりです。世の中に0.1Ωや0.14Ωの抵抗はありますが、単品で0.286Ωの抵抗などありませんので2個使って近しい値にするのです。世の中のパワーLEDは350mAの物が多いので、対応できるようにしておけば遊べるかなと。

 まずはCL6807単体でのドライバ回路を習得しますが、CL6807のLXはオープンドレインなので、パワーMOS-FETを外付けすれば電流値を上げられるハズです。
 電源電圧を28v以上にするとCL6807では物足りなくなると思いますが・・・。

#電子工作 #LED
Icon of admin
 PWMを正論理にしてみました。
20220802005305-admin.jpg
 トランジスタを追加して反転しています。
 トランジスタ周りの抵抗値がこれでいいのか不安はありますが試せばいいのです。

#電子工作 #LED
Icon of admin
 中国に頼んだ基板は日本国内に入った様です。今日は発注後4日目ですから相当早いです。基板のサイズによって製作期間が違うものの、リードタイムは1週間から10日みておけばいいでしょう。
 正直、感光基板で作るのと所要時間は大差ありません。その気になれば半日で作れますが、思い立った時に半日確保出来るワケも無く、図面を描いてから1週間から10日はかかるのです。
 価格も、薬品、道具、手間を考えたら中国に頼んだ方が間違いなく安いと思います。感光基板は案外高価ですし。
 ガーバーデータを作れるところまでKiCADを習得するのはそれなりに大変ですが、プリント基板を自作するなら結果的に一番楽かもしれません。

#電子工作
Icon of admin
 所属会社の事務所内で席替えがありました。机の引っ越しです。
 どちらかと言えば片づけは苦手です。出てくる出てくる捨てても構わないモノたち。。。
 断捨離で整理したら荷物が半分。常日頃から片づけていればこんなことにはなりませんよねぇ~
 机は部屋の角なので書類を入れる棚を置けます。動的な書類の置き場所として棚をこさえました。ただ書類を置くだけなので既製品のカラーボックスみたいな物でもいいのですが、近所のホームセンターには望む寸法の物がありませんでした。
 集成材の板を切ってネジ止めし、艶消しの透明ウレタンニスを塗るだけなので簡単です。
 ニスにはワシンの水性を使いましたが、気温も湿度も高いのであっという間に硬化しました。気温や湿度によって違うかもしれませんが、原液のままより20-30%ほど水を加えると伸びが良く硬化も早いようです。薄付きになりますから4-5層塗るのがよさそうですが、1層目は木目に深く染み込んで繊維を固めてくれるし、2層目以降も乗りと伸びが良くて塗料の消費が少ないようです。求める仕上がりによりますので必ずしもではありますけど、今回は最低限の目止めになればいいので希釈は正解でした。

#ガチ工作
Icon of admin
 LED用のアルミ基板が入荷しました。データ入稿後1週間でした。
20220804103639-admin.jpg
 20枚製作で1枚549円(送料別)とは思えない仕上がりです。
 同じ物を自作するのは不可能ですねぇ~
 帰宅したら早速リフローをテストしましょう。

追記
 色々あって帰宅が遅くなったのでリフローのテストは後日。

##電子工作 #LED
Icon of admin
 これ、なーんだ!?
20220804204026-admin.jpg
 ここ数日、右手首に妙な痛みがあったのです。
 年齢も年齢だしなぁ~って思っていたのですが、ふと気付く。マウスを握ると机の縁に手首がずーっと当たっている。マウスを動かす際に細かく動く腱がずっと圧迫されています。痛いのは正にココ。試しに肘の下に抑えを入れて手首が当たらない様にしてみたら楽だこと楽だこと。ビンゴですわ。
 席替えって話を書いたと思いますが、諸事情でパソコンのモニタが机の右角です。体をモニタに正対させたいので少し右向きになり右肘が浮きます。今までは机に乗せた肘を軸にマウスを動かしていたのですが、その癖のままですとテーブルの縁に当たる手首が軸になります。かといって肘を上げていたら別な問題が出そう。
 このままではイカンと思い、薄い箱状の物(今回の主役)をこさえて引き出しの上に乗せ、肘を置く場所を作ったワケです。机をL字化したと言ってもいいですね。
 快適とはニュアンスが違いますが、手首が楽になりました。

 この品の板材にはMDF材を使っています。圧縮材の一種です。細かくは知りませんが、木材というよりボール紙に近いような気もします。実際紙なのかな?
 これまでは比較的高価だったので使うことが少なかったのですが、合板の価格が高騰している今は相対的に安い部類になっています。
 細かくした繊維を固めていますので合板に比べて強度が劣り水気にも弱いのですが、強度を求めない用途ならば厚み寸法が出ているし表面も滑らかなので使いやすい板材です。
 もちろん表面塗装をするのですが、希釈した水性ニスと相性がいいですね。グイグイ吸い込んで固まると無垢の時とは別素材の様です。手触りがよく、木板と樹脂板のいいとこ取りをした仕上がりが好印象です。
 急いで仕上げたので塗りムラが凄いけど(笑

 ひょっとすると、MDFはポリエチレン(FRPを作る樹脂)とも相性が良かったりして。
 専用のガラス繊維程ではないでしょうけど、サラサラにして塗ったらグイグイ吸い込んでガチガチに固まってくれるかも。
 しばらく前に余ったポリエチレン溶液をMDFに塗ったことがありますが、普通の粘度だったので表面が堅くなっただけで特筆する何かにはなりませんでした。アリっちゃアリな方法ですけどね。
 端材があるので、アセトンでサラッサラにしてブヨブヨにする勢いで塗布したらどうなるか試したくなりました。
 型を使って造形するのではなく、作った形を樹脂化するイメージです。

#ガチ工作
Icon of admin
 昨日こさえたアームレストは良い感じです。
 一晩経過して思ったのですが、ニスの硬化が明らかに早い。
 今までは原液のまま塗って完全に硬化するのに2-3日かかっていましたが、今回は20%くらいの希釈で24時間で完全に硬化しています。
 猛暑で気温が高いのもあるかもしれませんが、水を足した方が早いのも不思議な気がします。原液のままですと表面が先に固まって中が固まらないのでしょうか。
 正直言いますと、少し前に作った品でニスが足りない感じだったので水でカサ増ししたのが最初です。カスが落ちない程度に目止めになればと塗ったのですが、僅かな不足のために新品買うのもなぁ~というケチ心が由来です。面白い結果が出たので良かったのですが。

#ガチ工作
Icon of admin
 LEDのドライバ基板を発注しました。
 例によってKiCADの3D画像。部品の一部は3Dキーを作っていませんが気にしない。
 これで90×20mm。先日作ったLED基板に合わせて細身にしています。
20220808095858-admin.jpg
20220808100102-admin.jpg
 PWM回路も実装しています。とりあえずはフル点灯出来ればいいのですが、スペース的に入ったので後々遊ぼうかと。
 PCBGOGOさんによると製造3-4日、輸送1-2日とのことです。1週間ですね。

追記
 あ、シルクに誤植発見!
 KiCADのデータは直しましたが、製造に入ってしまったので止めることは出来ません。
 パターンの間違いではないので、入荷したら手書きで修正しておきましょう。

#電子工作 #LED
Icon of admin
 LED-BARのオプションです。
20220807122958-admin.jpg
 手持ちのLED-BARは広がりがあるのでジョーゼット幕などを染めるのに便利に使えますが、LHQの代替にするにはもう少し広がって欲しい。
 中華電器のレンズ (ここのφ38の物)を試したところいい感じに拡散しました。LED-BARのリフレクタタイプのレンズの前にかざします。
 このレンズは平凸レンズですが、平側に小さなレンズが沢山付いている構成です。エッジが柔らかくなり、カラーミックスでありがちな色むらが軽減されます。
 照度は1/4くらいに落ちますが、エッジが無くなり広く柔らかい光です。今のところレンズが1本分しかありませんのでLHとしての評価は出来ていませんが、たぶん使えると思います。

 レンズをハメている黒いのは3Dプリンタで出力したものです。
 これをLED-BARに被せて使います。
 手持ちのプリンタですとLED3発か4発分のサイズしかプリント出来ませんが、3発なら3個同時にプリント出来ますし、LED-BARの制御単位は3発なので都合がいいようです。

#照明器具 #LED
Icon of admin
 LCDモニタモジュールをI2CやSerialで制御する補助基板を書いてみました。
 制御チップがSC2004の「LCDキャラクタディスプレイモジュール 20×4行」用です。
20220808095639-admin.jpg
202208080956391-admin.jpg
20220808030316-admin.jpg
 LCDの裏側から挿して使います。
 ちょっと面倒なパラレル制御なのをI2CやSerialでANSIエスケープシーケンスっぽい制御が出来る様にします。
 補助的な品物ですが、これがあると製作が楽になります。
 ちなみに、信号の電圧変換とバッファを兼ねてPCA9306Dを入れています。LCDは5v制御ですがRaspberryPiなどは3.3vだからです。

 そういや手首は痛くありません。アームレストのおかげ?
 作業姿勢は大事ですね。

#電子工作
Icon of admin
 寸法を調整したレンズマウントです。
20220808094316-admin.jpg
 ゆるくもなくきつくもなく、ごく自然に取り付けられます。
 乗っているだけなので固定手段はこれからですが、レンズとは別面にスイッチやコネクタ類があるので取り回し位置を替えられるマジックテープかなと。
 全数分作ると288個にもなります。これを手持ちの3Dプリンタで作ると3個セットで96ジョブ。1ジョブ12時間ですから目一杯やっても48日間かかります。
 最小でも26台分208個。これでも35日間。
 どうしよう。

#照明器具 #LED
Icon of admin
 コロナの反動で5月から7月の中旬まで忙しくさせて頂きましたが、例年なら夏祭りが続く8月上旬が中止の多発で少し空きました。
 このところ基板を書きまくっているのは時間が取れたのと秋の現場に向けて作っておかねばならない案件だからです。
 それにしてもKiCADは慣れると素晴らしく使いやすいです。基板CAD全般が持つ独特の風味に違和感を感じるところはありますが、CADLUS-Xは覚えるのに数か月かかったのに対して数時間です。CADLUS-Xで基板CADの流儀を覚えたからかもしれませんけどね。
 KiCADの良い所は、回路図と基板がリンクしていることです。自動ではありませんが回路図の修正がワンクリックで基板に反映されます。やったことはありませんが、基板を修正して回路図に反映することも出来るようです。CADLUS-Xではこれが出来なかったので大きな変更が出ると大変でした。
 また、3Dビューもいいですね。単にそれを見て楽しむのもいいですが、シルクの仕上がり具合いと部品の干渉を確認出来るのがいい。ガーバーデータのビュワーもシームレスに使えますので、入稿データを2つの手段で確認出来るのは校正手段としてとてもありがたい。

 ver6になって「シュミレーター」というメニュー項目を見つけました。以前からあったのかもしれませんし、まだ試していませんが、回路シュミレーターのSpiceなどを当てられるとしたらこれは凄いです。Spiceは少し扱いが面倒ですが、条件を整えてあげるとどの端子にどういう波形が出るかを確認出来るので、特にアナログ回路を作る際には初期確認として便利です。もっとも、私が組むアナログ回路ならSpiceをセッティングするよりブレッドボードで仮組みしてオシロを眺めた方が短時間で済むのですけどね。

 漠然とした気持ちを汲んで作ってくれるほど優しくありませんが、回路図からガーバーデータまで一貫した作業環境を提供してくれるKiCADは素晴らしいの一言です。

 ちなみに基板とは層を成した板切れです。ガーバーデータはどの層にどんな形を描くかを指示するデータですので、基板の層の構成とそれに対応したレイヤーの名前の関係性を理解すればイラストレーターに馴染んだ人なら描くことは難しくないと思います。実際の層とデータレイヤーの関係には暗黙の縛りがあり、作者が勝手に決めることはまず無いってだけです。この辺りを丁寧に説明してくれている情報が皆無なので取っ付き難いのはあります。
 工程としては、回路図作成、基板デザイン、ガーバーデータ作成、入稿となりますが、基板製作を学ぶには逆順で理解していくといいのかもしれません。

#CAD #電子工作
Icon of admin
 LCD Monitor Controller の基板を中国に発注しました。
 試してもいない回路を発注するのはどうかって話もありますが、感光基板で自作するには密度があり過ぎますし、間違いがあっても許せる金額だからいいかなと。

 そんな品物、PICに与えるクロックを内蔵のRC発振子か外付け発振子で8MHzにしようかと思っていたのですが7.3728MHzにしようかと。
 一見半端な数値ですが、PICでRS232系のシリアル通信でありがちなボーレート(例えば9600bps)などを扱うならキリがいいのです。計算上ですがエラー率が0%になります。
 目的のLCDモニタは単純なパラレルなので厳密な時間管理は不要だし、I2Cはクロック同期式のスレーブなのでタイミングはマスター任せです。しかし、シリアル通信は非同期なので受信側もボーレートを合わせなければなりません。PICはシステムクロックでボーレートを起こしますので、他に支障を来さない範囲でシリアル通信に都合の良いシステムクロックを使った方がいいのです。
 これまでは国内の販売店で7.3728MHzの水晶発振子を見つけられなかったので使っていませんでしたが、試しに中国で探したら普通にあります。1個59円と安いので買っておきました。例によって送料の方が高い。。。
 シリアル通信に都合が良いクロックは他にもありますが、この値を使うのはPICの都合です。16系PICのクロックは32MHzが上限で、そのままのクロックを与えてもいいのですが、内蔵の4倍PLLを使えば8MHzを与えることで32MHzで動作します。PLLを使った方が外部ノイズに強いのもありますから、8MHz以下でシリアル通信に都合が良い最大値である7.3728MHzはよろしいのです。

 同じ理由で、PICでDMXを扱うなら250kHzの二乗数倍がよろしいのです。

#電子工作
Icon of admin
 中国に発注した基板2種は発送されたそうです。早すぎ。
 土曜日にオーダーして火曜日発送、月曜日にオーダーして水曜日発送。
 搬送はDHL。先付物件はすでに日本国内に入ったとのこと。つまり、発送翌日には日本国内。
 うーん、部品の手配が追いついてないぞ。

#電子工作
Icon of admin
 所属会社の社屋から撮影。
20220810223433-admin.jpg
 あまりに空がキレイだったので。
 見た通り、田舎なんすよ。
 手前の青々としたのは田んぼです。草原っちゃ草原?。

#雑談
Icon of admin
 どうにも不思議です。
 コロナが明けた気配を受けてお仕事が増えていることはありがたいのですが、ほんのりと人任せで無自覚に無責任な話が多すぎます。
 丸投げ話ならまだわかるのですが、最下請けに大局的な判断や指示を求めてくる。「察しろよ」というニュアンスを含めて言っているのはわからなくもないのですが、あなたの役回りはなんですかと問いたくもなる。
 コロナ前は下請けに対する指示がもっと明快で、それが無茶振りであっても落としどころは分かりやすかった気がします。
 なんだかなぁ~

#本業
Icon of admin
 自前インターネットサーバーはSSLに対応させないとイチイチ面倒です。クライアントのデバイスによってはOSが接続を拒否することがあるからです。
 SSLに対応させるにはインターネットの元締めが認めた認証局が発行する電子証明書が必要です。少し前までは自前で発行した俺様証明書でも済むことが多かったのですが、今は認証局による証明書を使わなければ証明書無しで運用するのと等しい扱いを受けます。これではインターネットサーバーとして機能しないことを意味します。
 フル仕様の電子証明書なら言うことはありませんが、これを真っ当に手に入れるにはかなりの費用がかかります。されど、最低限の電子証明書なら let's encrypt が無料で発行してくれます。万全のセキュリティを求められると不足しますが、大概のことはここで手に入る電子証明書で事足ります。
 ちなみに最低限の電子証明書とは「サーバーの所有者の身元は保証しませんが、IPアドレスからサーバーの所在は保証します」というものです。ウェブサーバーを用いたコール・アンド・レスポンスで確認しますので簡易的ではあるのですが、これで確認されたものを騙すのはかなり難しいと思います。悪さをする輩が居たとしても、プロバイダのログから足がつきます。

#サーバー
Icon of admin
 Windows10や11にすると古いアプリにファイルをドラックアンドドロップ出来なくなることがあります。
 セキュリティの関係みたいですが、これは不便です。

 解決策がありました。
 レジストリを書き換えます。

 regeditを開き、次の二つのDWORD値を1から0に変更します。
¥HKEY_LOCAL_MACHINE ¥SOFTWARE ¥Microsoft ¥Windows ¥CurrentVersion ¥Policies ¥System ¥EnableLUA
¥HKEY_LOCAL_MACHINE ¥SOFTWARE ¥Microsoft ¥Windows ¥CurrentVersion ¥Policies ¥System ¥SecureUIAPaths

 注:上記の¥は表示が狂うので全角にしています。

 変更後、Windowsを再起動すると有効になります。

追記
 古いアプリ繋がりの話です。
 AdobePhotoShopCS2はWindows10やWindows11では起動しないことがありますが、シフトキーを押しながら起動するとほぼ通ります。
 IME絡みで落ちるようですが、シフトキーを押すとナゼ通るのかはわかりません。

#パソコン
Icon of admin
 お仕事を頂けるのは有難いのですが、お盆だというのに現地照明。
 そういう仕事ですから仕方ありませんけどね。

 そんな現場で思いついたこと。
 ROBEのPointeを10台仕込むバトンが3本ありましたが、一斉に動くとバトンが揺れます。直後のビームはしばらくユラユラ。比較的軽量な灯体ですがクイックネスが優秀過ぎる弊害です。
 で、思ったのですが、これを止める装置は作れないものか・・・
 一番簡単なのはバトンが揺れる回転方向にアームを伸ばして先端に重量を掛ける方法です。テコや加速度などの物理の基本原則を用いた対策ですが、これではバトン荷重が悪戯に増えてしまうので多分NG。
 ならば、リアクションホイールで反作用を与えたら不動は無理でも軽量な装置で短時間で揺れを止められる気がします。
 揺れをセンシングしてもいいし、PAN/TILTEのデータを受けて先読みしても良さそう。
 振り子の物理の問題になりますので、この課題を解決するには最低でも高校以上の数学と物理が必要です。いろんな物を作りますが、小学生の算数と理科で済むことがほとんどなので、本気でやるなら高校からやり直しです。

#妄想
Icon of admin
 これは面白い。

 タイトルにある「放射性物質から金」は期待が行き過ぎた表現の様に思いますが、大きなエネルギーを使わず、条件を整えて寝かせるだけで危険な放射性物質が安全な物質に変化するなら素晴らしいことです。
 その工程が食材に塩をまぶして重しをする「漬物」にそっくりで何とも言えない感覚を覚えます。

 これも面白い。

 いろんなことを考えるもんですねぇ~。

#雑談
Icon of admin
 珍しくクリアカムが沢山出庫されました。
 今週末にホテルでディナーショーがあるのとインカムが無いホールでストリートダンスがあるからです。
 ふとクリアカムを見ると純正の巾着袋が壊れています。1個数分で終わりますし、純正品は長持ちさせたいので縫い直しです。
 壊れた原因は布の端にほつれ止めがされていなかったためです。名称はわかりませんが樹脂シートに近い布なので作った直後は切りっぱなしでもいいのですが、使っているウチに繊維がほぐれて外れてしまいます。
 対策はロックミシンでガチるか普通ミシンのジグザグ縫いなどで布の端にほつれ止めを施します。今回はロックミシンを使う程でもない感じだったので、普通ミシンのジグザグ縫いです。
 糸は#30です。これまで薄物には#60を使っていましたが、試しに太めの糸を使ってみたところいい感じ。#30はデニムなどの厚物に使う番手ですが、現場で使う袋類には厚さに関わらずこれが良さそうです。

#ガチ工作
Icon of admin
 で、クリアカムですが、なんとパワーサプライが足りない。いや、数はあるんです、数は。
 クリアカムターミネーターを内蔵したXLR-3Pを小型のACアダプタの先に付けたベルトパック4台までの物なら3-4個あるのです。しかし、それ以上のベルトパックに対応できる物は1台しかありません。なのに6台以上使用する現場が2件被っているのです。
 急いでハードオフでジャンク品のACアダプタ(DC19v6A)を買ってきて先端にクリアカムターミネーターを内蔵したXLR-3Pを取り付けて急場しのぎ。本番をやりきれるか心配はありますが、幸い本番日は被ってないので最悪何とかなるっしょ。

 ベルトパックのカタログ値は電圧がDC12~30vで消費電流は最大35mAです。電圧はDC10vでも動くのですが、電流は35mAギリギリで換算するとよろしくありません。1AのACアダプタパワーサプライに5台以上接続すると発振したり音声が途切れたりするのです。動かなくはないのですが不安定です。ギリギリの検証はしていませんが、安定して動かすならベルトパック1台あたり250~350mA見当です。クリアカムがダメというより、皮相電力と消費電力の関係よろしくACアダプタが力不足に陥っている様に見受けられます。
 そもそも一般的なACアダプタは「安定化電源」ではありません。実際、負荷をかけた状態でACアダプタの電圧波形を見ますと許容範囲ながらも大きな脈(リップル)を打っているモノが少なくありません。ですから、本来は安定化回路を挟むのが望ましく、それが無理でも大きめのコンデンサをバッファとして入れるだけも電圧の安定度が違います。

 ちなみに、ACアダプタパワーサプライにはXLR-3Pが1口しか付けられないので現場では分岐する何某を併用することが少なくありません。ならば専用パラボックスを作ってバッファコンデンサを入れたら色んなことが解決するような気もします。
 もしベルトパック1台あたり35mA換算で済んでしまったら小さなACアダプタ1個で10台以上動いてしまいます。
 ・・・重要ポイントは「どんな安定化を施せば台数を増やせるか」です。

#ガチ工作 #電子工作
Icon of admin
 クリアカムターミネーターはこんな代物です。
 本家で手に入るパワーサプライの回路図の片隅にターミネーター(TREM)として記載がある回路です。

 ┌── インカムライン(3番ピン)
 ┿
 ┿ 220Ω(2w)
 ┿
 ├─┐
 ┿ ┷ +
 ┿ ┬ 10uF(35v)
 ┿ │ 4.7kΩ(1/2w)
 ├─┘
 ┴ GND(1番ピン)
 電源DC12-30v(2番ピン)

 インカムラインとGNDの間に抵抗2個とコンデンサ1個を入れます。フィルタ回路です。220Ω(2w)に金属皮膜の小型品を使えばノイトリックのXLR-3Pの中に入ります。
 これを入れずに電源だけ供給しても動くっちゃ動くのですが、ボリュームを上げると発振します。

 言うまでもありませんが、パワーサプライを自作する際に必要な回路です。純正品にこれを追加しても意味はありません。

#電子工作
Icon of admin
 クリアカムの対応をしてて思い出しました。コール信号を取り出す回路が未完成でした。
 何をするって意味ではなく、コール信号を受けてリレーなどを動かせたら便利かなと思うのです。

 現場で長い待ち時間があったので妄想にふけってみました。
 イメージはコールボタンが押されていれば規定電圧を出力し、押されていなければ0vを出力する装置です。オープンコレクタやオープンドレインでもいいでしょう。
 まずはベルトパックの動作条件ですが、電圧がDC12-30v、電流が最大35mAです。電流が35mAで足りているかは疑問の残るところですが、この件に関係するのは電源電圧だけなので無視します。余談ですが、以前実験したところDC9vでもギリギリ動きました。
 コール信号とはなんぞやですが、インカムラインに電源電圧の約半分のバイアス電圧をかける方式です。30vなら15v、12vなら6vのバイアスがかかります。このバイアス電圧を検出するのです。
 具体的な方法はコンパレータを用います。コンパレータとは2つの信号を比較し、プラス端子の電圧が高ければプラス電圧を出力し、マイナス端子の電圧が高ければマイナス電圧を出力する回路(素子)です。簡単に言えば電圧比較器であり、挙動はオペアンプそのものです。ですから、コンパレータとして作られている製品もありますが、選択肢が広く安価なオペアンプを使うのがよいと思います。
 検出したいのはインカムラインの電圧が電源電圧の半分より上か下かです。電源電圧を抵抗で半分に分圧したモノ(基準電圧・しきい値)をオペアンプのマイナス入力に接続し、インカムラインをプラス入力に接続すれば基本的な回路は完成です。
 問題はインカムラインが音声信号で数v上下することです。電源電圧の半分と比較するだけでは誤認します。インカムラインにローパスフィルタを入れて音声を消してもいいですが、肝心要のインカム音声に影響を与えたくはないので他の方法にしたいところです。
 そこで有効な手段がコンパレータにヒステリンス特性を与えることです。ヒステリンスとは、OFFからON、ONからOFFに変化するしきい値をそれぞれ異なる値にする方法です。例えば、OFFからONになるしきい値(上り)を10v、ONからOFFになるしきい値(下り)を5vにするのです。しきい値の間では出力が変化しませんので、ノイズはもとより、今回の様に音声信号が混じっている信号での誤認を避けることが出来ます。
 コンパレータにヒステリシス特性を与えるには、入力信号と出力の間に抵抗を直列に二つ入れ、抵抗の間をプラス入力に接続します。抵抗の比率で上りと下りのしきい値を定義出来ます。
 しきい値はON電圧の最大値と最小値、振れ幅から求めます。

#電子工作
Icon of admin
 メモ程度ですが、コール信号を取り出す回路を描いてみました。
 抵抗の値と結果はネット上のシュミレータで求めたもので実証はしていません。
 この値ならインカムラインの音声が+10dBでも誤動作しないハズです。インカムラインの規定値はわかりませんが、実測では0~+4dBでした。
 ちなみに、0dBを0.775v、+4dBを1.23v、+10dBを2.45vとする比率で考えています。
20220823115716-admin.jpg
 R5はドリフト防止抵抗です。無くても動きますがあった方が安定します。Call_Signalを受ける次段回路に合わせて調整するべき要素です。
 バッファコンデンサやパスコンは適宜入れてください。

 オペアンプ用いたアンプ回路にとても似ていますが、アンプとコンパレータは出力をどこに戻すかが違います。
 この回路は非反転のコンパレータで、抵抗を介して出力をプラス端子に戻す構成です。アンプにするなら抵抗を介して出力をマイナス端子に戻します。
 オペアンプは抵抗の組み合わせで様々な動作をしますが、回路図的にはとても似たものになるので、よく見ないと何をしているのか勘違いすることが多いです。

#電子工作
Icon of admin
 忘れないウチにKiCadで回路図描いておきます。
20220823205421-admin.jpg
 ベッタベタにオーソドックスで2回路入りのオペアンプであるLM358を使っています。
 2回路あるとボルテージフォロアも出来るので計算楽だし部品点数も少ない。
 パッケージもDIP、SIP、SMDとあるのでどうにでもなります。

 出力はいいとこ10mAmaxです。

#電子工作
Icon of admin
 作業部屋があまりに酷い。自分以外の人が見たら単なるゴミ部屋状態で作業がし難い。
 とりあえず、分解されている品からボチボチ仕上げることにしました。
 まずは、センチュリー社製の「裸族のカプセルホテル」にRaspberryPi4Bを内蔵した「裸族のPi」を1台仕上げました。
 RaspberryPi4Bを手に入れるのに難儀しましたが組まないと意味がありません。
 動作確認を兼ねてHDDのフォーマット大会をしています。

#ガチ工作 #RaspberryPi
Icon of admin
 帰宅して確認したところ裸族のPiがチンチンに熱くなって止まっていました。
 HDD4台同時にフォーマットを実行しましたので過負荷だったのかな?
 とりあえず冷ましてHDDを1台毎に再フォーマット。

#ガチ工作
Icon of admin
 現場の準備が忙しい今日この頃です。
 合間に息抜きというか気分転換で少々工作。

 裸族のPiはフォーマット(mkfs)が通らない。セクタチェックを入れるとSuperblockの書き込み時点でRaspberryPiが止まってしまいます。入れないと通るので全くダメでもなさそう。
 さて何ででしょう。
 こんな基本的なことが通らないのは後々トラブルになりそうですからキチンとしたい。
 mdadmでソフトウェアRAIDに使っていたHDDを普通モードにしたのでそのせいかもしれません。RAIDの設定値が残って不具合が起こるのはよくあることです。
 もう一度gdiskで初期化してからセクタチェックをせずにフォーマットした後、セクタチェックを入れたフォーマットをしています。

 ひょっとするとですが、64bitのRasbianを使っていることが原因かもしれません。これまではメモリ容量2GBのRaspberryPiを使っていたので32bitで良かったのですが、4GB以上しか手に入らなくなったのと、時代は64bit化ですから32bitが廃番なると面倒なので64bitにしたのです。ですが、64bitのRasbianは比較的最近stableされた物ですからドライバ周りに不具合があるのかもしれません。
 64bitに対応するRaspberryPiは3系、4系、zero2です。私が使う中で対応しないのは初代zeroだけですが、私にとって64bit化するメリットは32bit版の廃番に対する対策しでしかありません。まだ早いのかな?

追記
 そういやRaspberryPiは電源電圧が5vをわずかでも下回ると動作が鈍ることがあります。
 ネットを見ると64bitOSを使うとこの現象が顕著に出るとか出ないとか。5.25vにすると解決するとかしないとか。
 ACアダプタ電源で32bitOSを使って十分な速度で安定していますから、64bitOSは時期尚早と考え、まだしばらく32bitOSを使うのがいいのかもしれません。
 簡単に言うならNASサーバーを作っているので、瞬間最大性能より絶対安定性能が重要ですしね。

#サーバー #RaspberryPi
Icon of admin
 RaspberryPiを32bitOSにしてチェックし直しました。何をやっても安定してます。
 まだしばらくは32bitOSでいきましょう。

 今はRAID1の設定と操作を色々試しています。RAID1を構成するには何かと時間がかかりますが、コマンド操作は少なく待ち時間が長いだけなので、本業が忙しい時には丁度良い作業です。
 RAID1をHDD2台で構成していますが、交換手順を試しておかないといけません。PCマザーのSATA直刺しで使うことはありましたが、RaspberryPiに接続した裸族のカプセルホテルでRAID1を使うのは初めてだからです。
 ディスクの入れ替えが容易に出来ればRAID1の扱いは一人前と言っていいのかな?

#サーバー #RaspberryPi
Icon of admin
 ソフトウェアRAIDを構成するmdadmの虎の巻を作り直しました。作成、削除、ディスクの入れ替え、ディスクをリユースするための初期化方法などです。

 単に作成するだけの俺様手順を説明している情報はネットに沢山ありますが、mdadmを扱うための「そもそも」の情報は少なく、一度RAIDで使ったディスクを別環境で使うと発生しやすい/dev/md127問題の対処方法などは見つかり難かったりします。
 ネットの情報に頼らずman(Linuxの中にある電子マニュアル)を熟読しなさいって話ではありますが、これはLinuxを十分に理解している人に向けた覚書であり、初級者にとっては草書体で書かれた巻物にも等しい存在です。
 理解した体でネットに情報を書くなら自分が理解してきた起承転結に基づいて書いて欲しいものです。「結」しか書かれていないのがほとんどなので、コピペで動けばいいけど、試行錯誤の参考にならんのです。言い方は悪いですが、有益な情報が隠れてしまうからゴミ情報を増やすなと言いたい。

 今は虎の巻の検証作業をしています。数年後の自分が参加にできるモノを作っておかないといけません。

 ついでにexim4の虎の巻もまとめました。これはメールエージェントです。postfixほど多芸ではありませんが、軽いし基本的なことは十分に出来ます。
 postfix同様にクライアント向けのメールサーバーとして機能させることも出来ますが、ユーザーにとってのOutlookやThenderbirdよろしく、サーバーがメールを送信するメールクライアントの様に構成することも出来ます。
 サーバー管理はログを読んでコンディションを知るのが基本ですが、サーバーからのお知らせメールが普段使いのメールに転送されると便利です。こういったメールをログメールやアラートメールと呼びますが、exim4はこれらの扱いに丁度いいのです。

 人様にお見せできるレベルの虎の巻は簡単に書けませんが、将来の自分向けたマニュアルを書いておくことは有益だと思います。

#サーバー
Icon of admin
 mdadmに問題発生!
 マウントして使えるところまで設定出来たと思ったのに、再起動したらmdadmがエラーを吐いてコンソールが起動しない。これでは手直しも出来ません。
 仕方ないので最初から組み直し。
 ディスクのフォーマットやRAID1の同期には半日くらいかかりますが、その他の操作は数分で終わるのでいいかなと。使い始めてからエラーになるよりマシだし。

 ひょっとするとですが、裸族のカプセルホテルはクーリングがイマイチなのでサーマルプロテクトで何かあったかな?
 RaspberryPiのCPU温度が70度近くになっていたので高いなぁ~とは思っていたのでが・・・
 試しに外枠を外した状態で再構成をしてます。これで通れば横っ腹に大穴を空けますかね。

#サーバー #RaspberryPi
Icon of admin
 mdadmによるRAID1は正常になったようです。不調だった原因が私の操作なのか温度なのかはわかりませんケド。
 温度が心配なのでケースに穴を空けようと思います。

 ちなみに、アクセスランプが2秒くらいの間隔で点滅を繰り返していました。数時間でおさまりましたが、ext4の何某なのか、mdadmの何某なのか、原因は不明です。最終的に正常になればいいのですが、こういった挙動は収まるまで待つしかありません。

#サーバー
Icon of admin
 所属会社のサーバーに障害発生。ファイルサーバーが機能しない。
 幸いRAID1のRAID1たる機能により短時間で復旧出来ましたが、障害に備えて準備しておくものだと再認識。
 オフが吹き飛んだのは困りましたが。

#サーバー
Icon of admin
 昨日補修したWindowsServerでDHCPの振り分けもしていますが、なんと、その設定ファイルが飛んでいました。
 クライアントPCによってはネットに繋がらない。DHCPでIPアドレス類が正常に割り振られているようにも見えるけれど何かおかしい。試しにIPアドレス類を直接設定すると正常に動く。
 これはDHCPサーバーが狂っている症状。
 サーバーのサービスを確認するとDHCPサーバーが落ちており、サービスの開始をクリックしても再開せずに落ちる。
 設定ファイルが消えたか狂ったかの症状なので、\windows\system32\dhcp内の設定ファイルを削除してDHCPのサービスを開始して回復。DHCPの設定は無くなっているので書き直してクライアントのネットアクセスも復旧。
 WindowsServerの再インストールにならず良かったですが、RAID1にしておいてもこんなことがあるんですね。
 ディスクが壊れる前に交換しておけばデータは壊れないのですから、動いていても時間管理でディスクを交換するのがいいのでしょうね。使いながらディスクを交換できることもRAID1のメリットですからそれを最大限に利用するべきです。

#サーバー
Icon of admin
 裸族のパイを仕上げていました。
 横っ腹に大穴を空けましたが、やはりファンを付けた方が良さそう。
 穴は120サイズのファンに合わせた物ですが、3Dプリンタで作ったマウンタを介して取り付けます。
 今はマウンタを接着しています。接着剤には2液エポキシを使っていますが、とにかく混ぜることが大事。このくらい?って思ったところから3倍混ぜます。混ぜたらヘラに付いたのを拭き取って使います。
 なぜ拭き取るかというと、どうやってもヘラには混ざっていないのが残るからです。勿体ない気もしますが、硬化しなけば意味がありませんので。

#サーバー #ガチ工作
Icon of admin
 裸族のパイにファンを取り付けるマウンタを接着したのですがダメでした。
 本体の塗装は粉黛塗装と思われるツルツル仕上げでマウンタはABS製。考えなくても接着は無理だとわかるでしょ!と自分にツッコミたい内容。
 ビス止めすればいいのですがバラして穴開けは面倒。こんな時はブチルゴム系の両面テープが便利に使えます。固形物に対して万能。これが取れたら穴開けしましょう。

#サーバー #ガチ工作

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

Icon of admin
 電子証明書を取り入れていなかったサーバーに追加しました。
 認証局は無料の let's encrypt を使います。
 俗に言うweb認証方式で、基本的な証明しかしませんが、個人サーバーなら十分です。
 このページをhttps化するのを忘れていたので設定しました。
 なお、利用する方は少しでも寄付しましょう。

#サーバー
Icon of admin
 裸族のパイは「しれーっ」と動いています。
 まるで「オラ、最初からこうだ!」と言わんばかりのオーラを放っています。
 施した改造が成立している気配なんでしょうけど、なんか腹立つ(笑

 RaspberryPiが手に入るならあと3台作りたい。
 裸族のカプセルホテルは手に入れてありますので、RaspberryPiを入れるだけの状態まで加工しておきますかね。
 時間があれば・・・ですけど。

 正直、本業の課題が多すぎて目が回ってます。
 工作ネタとここへの書き込みは現実逃避です。

#サーバー
Icon of admin
 Linuxにはcronという機能が入っています。
 指定した時間にbashコマンドを実行するものです。コマンドラインで実行出来るモノは何でも指定出来るので、自作のスクリプトももちろん実行出来ます。
 サーバーを扱っていますと定期的に自動でやって欲しいことが出て来るものです。
 先日書いた電子証明書の更新もそうです。有効期限が3ヶ月なものを2ヶ月経過すると更新出来ますが、手動では忘れそうだし、定型コマンドを打つだけなので自動でやって欲しいのです。もちろん電子証明書を扱う機能には自動更新機能も付いているのですが、更新の際に行いたい付随処理もありますので自作スクリプトで行った方がいいのです。
 しかし、その設定で驚きの結果が・・・
 毎日特定の時刻に実行して欲しいと思って設定したのですが、時だけで分を設定しなかったのです。そうしたら、その時の毎分処理が実行され、ログメールが60件届いたワケです。
 何が起こったのか戸惑いましたが、サーバーは私の指示の通り真面目に正確に処理をしてくれたってオチです。
 ユーザーがおバカだとダメっすね。

#サーバー #Linux
Icon of admin
 メールエージェントのexim4から謎のエラーメール。メモリ不足で機能出来ませんってメッセージですが、他のログメールは正常だし、機能しているからこんなメールも届くワケで何が何やら。
 ネットに対策がいくつかありました。帰宅したら試します。

追伸
 結果は、IPv6を機能させていないのにexim4のリスンにIPv6のループバックアドレスを設定していたことが原因でした。

#サーバー #Linux
Icon of admin
 私が作るサーバーにはNIC(ネットワーク・インターフェース・カード)を2つ搭載します。
 1つでもいいのですが、内向きと外向きを別々にした方がネットサーバーを構成するには都合がいいのです。
 裸族のパイの母体はRaspberryPiなのでNICは1つですから、もう1つ増やすにはUSB-LANアダプタを取り付けます。
 ところがです、標準ドライバで動いた実績のあるUSB-LANアダプタを取り付けても認識しない。全体的な挙動もおかしくなる。

 あれ?

 別なモノを挿しても同じ。
 USBコネクタがおかしいのかとUSBメモリを刺すと正常に動く。
 
 あれ?

 結論から言いますと電力不足でした。
 USBに別電源を割り込ませたところ正常に動作。
 RaspberryPiのUSBコネクタは電力供給が弱いので当然です。
 電源周りとUSBコネクタに追加工が必要になりました。

#サーバー #RaspberryPi
Icon of admin
 前にもご紹介したことがありますが、サーバーを設定するためのレシピ集です。
 Server World
 私はDebianを使いますが、基本的な設定は書いてある通りで完璧です。
 Debian11
 このサイトのレシピで基本設定をし、細かい追加をして使っています。

#サーバー #Linux
Icon of admin
 裸族のパイは基本設定が終わった感じです。
 RaspberryPiでガチのサーバーを組んだからどうなるかのお試し中ですが、今後はクライアントサービスを実装して実践確認です。
 まずはowncloudです。RaspberryPiで満足な処理が出来るかが一番確認したいところですが、ルートの振り分けもやり方を変えてみます。これまではポート番号をキーに光回線のルーターで振り分けをしていましたが、webサーバーのバーチャルサーバーとリダイレクトを使ってみようと思います。
 ただ、owncloudの姉妹品であるnextcloudの方がメインストリームになっているとの話も聞きますので、どちらを扱うかも考えないといけません。

#サーバー
Icon of admin
 久しぶりに気力体力がある状態のオフになったので修理案件に手をつけています。販売店さん、遅くなってすみません。
 自分で作ったモノが戻ってくるとどこが壊れるか傷むか凄く勉強になります。
 と、言ってないでさっさと修理しろって。。。

#ガチ工作
Icon of admin
 裸族のパイのUSB-LANアダプタですが、不調の原因が判明。
 原因はUSB3.0のA-Aケーブルがクロス結線なことでした。電源は無関係でした。
 USBは[RaspberryPi/USB3.0]-[USB3.0/A-A_Cable]-[USB3.0/A-A_KeyStone]-[USB-LAN]と繋いでいますが、ケーブルがクロス結線でキーストーンがストレート結線なのでRaspberryPiに対しUSB-LANアダプタは結線間違いになっていたのです。ケーブルを2本つなぐと正常に動くという摩訶不思議な現象だったので配線を当たったところ判明。
 正直、「なんでクロス結線!?」と思いますが、USB3.0のA-Aケーブルはクロス結線が普通でストレートは例外みたいです。
 対策は、キーストーンの中身を無理やりクロス結線に変え、クロスからクロスでストレートにしました。

 ちなみに、USB3.0/A-Aのクロス結線は・・・
 1-1 ※1番ピンから4番ピンはUSB2.0互換
 2-2
 3-3
 4-4
 5-8
 6-9
 7-7
 8-5
 9-6
 です。

 USB3.0のメモリを挿して動いたのであまり気にしていませんでしたが、USBメモリは3.0がダメなら2.0に切り替えてしまうみたいです。正確なところはわかりませんけどね。
 紆余曲折ありましたが「裸族のパイ」が完成しました。作り方を忘れないウチにもう2台作ってしまいたいけどしばらく無理かなぁ~。

 今後、裸族のパイの耐久試験を実施し、大丈夫なら自宅サーバーをコレに切り替えるつもりです。

#サーバー #RaspberryPi
Icon of admin
 このところサーバーネタが続いていましたがヒト段落しましたので、この後は舞台や照明の何某を作らんといけません。いや、作らんとマズい。
 サーバーに専念してサボっていたワケではないのです。本業の準備やら本番で目が回っていたのが少し落ち着いたという意味です。サーバーは合間の息抜きでやっていたので日数がかかっただけですし、他に書くネタもなかったのです。
 コロナは明けてませんが「もういいだろう」感で開催される催事が多く、お仕事を沢山いただいております。ありがたいことですが、主催者も準備期間が足りないのかまとまってない案件や期日が迫っての依頼が多く振り回されております。これまでの半分の時間で帳尻を合わせをしなければならず精神衛生上は良い状況とは言えませんが、これまでの閉塞感から抜ける渦中ですから仕方ないでしょう。

 そんなワケで、今後しばらくは木工屋です。
 階段やら踏み台を作らないといけません。
 「軽くて丈夫なのよろしく!」とか言うのは10秒、作るは数時間です。

#本業 #雑談
Icon of admin
 ネットで読みかじった話ですが、ヨーロッパのある地域ではテスラのEV車をフル充電するのに100ドル以上かかる様になってエライこっちゃ祭りになっている模様。
 ハイオク馬鹿食い車を満タンにしたら1万円では済まないので、高級車のテスラを満タンにするならそんなもんぢゃないのって気もしますけどね。
 EV車がエコだと言う人は送電線から電気が沸いてくると思っている傾向にありますが、原発を拒否したなら、化石燃料の価格と流通に電気が左右されることを実感して欲しいものです。地熱以外の自然エネルギー発電が不安定であることもね。

#雑談
Icon of admin
 舞台仕事の先輩から譲ってもらったLED星球が不調です。
 どうも電源モジュールがおかしい。DC12vのモノですが電圧が出ていません。スイッチング素子の前の平滑コンデンサには電圧が出ているので、スイッチング素子が飛んだか、センシング回路が誤作動している感じです。
 そもそもの原因が電源モジュール単体の故障なのか、他の部位の不調によって電源モジュールが故障したのかは不明ですが、正常な別電源に繋いでみないとわかりません。
 幸い主回路の基板には破損や焼損は見受けられませんので電源モジュール単体の不調だと思います。
 帰宅してチェックです。

 こういう故障は原因の特定が難しいことがあります。
 部品を交換して動いても現場で使ったらやっぱりダメってことが少なくありません。本丸が別なところにあって微妙な関係性で故障に至っている場合です。
 精神的にも辛い修理のパターンですが、こういった事例から学ぶことは多いので、まぁいいかなと。

追記
 電源モジュールを交換して治りました。
 中華電器から電源モジュールをまとめ買いしておいたのが役に立ったようです。

#照明器具
Icon of admin
 星球はコントローラーの電源モジュールを載せ替えて治ったのですがフューズやブレーカーが無い。
 以前の電源モジュールには交換可能なヒューズが載っていたのですが、載せ替えた物には無い。過電流保護が無いのは怖い。
 パネルに取り付けるヒューズフォルダはいくらでもあるので取り付けます。
 取り付けるにはケースにφ12mmの穴を空けねばなりませんが、アルミの薄板にこのくらいの丸穴を空けるならステップドリルが便利です。
20220909112432-admin.jpg
 ドリルとリーマーの中間といった刃物です。
 普通のスパイラルドリルやリーマーを使うよりも薄板にキレイな丸穴が空けられます。
 薄板に丸穴はホールソーを使うのが定石ですが、1本で複数の穴径に対応出来るのはコスパが良く管理も楽。
 精度は期待できませんが取付穴なら十分です。
 安い物はアルミより硬い素材に使うと刃がすぐにダメになりますが、鉄やステンレスを切るならそれ用を使うといいみたいです。自分で砥ぐのは難しい刃物ですから、高価であっても最初の1本からステンレス用を買った方がいいかもしれません。

#工具や資材 #照明器具
Icon of admin
 久しぶりに野外現場です。レゲエのフェスです。
 イベントは盛り上がっておりますが、何が辛いってひたすら音がデカイ。
 この分野には「サウンドシステム」と彼らが呼ぶ自作スピーカーを山の様に積んで鳴らす様式があります。その昔に流行った3ウェイとか4ウェイの形式なのでローの回り込みが酷い。裏側に向けてローを出しているのではないかと思う程です。今時のスピーカーが優秀過ぎるだけ?
 で、卓は袖です。スピーカーの真裏です。衣類がビリビリ振動し、相手の耳元で喋っても聞こえない程です。
 以前サウンドシステム持ちの方がミックスをやっていた頃は単なる音圧というか振動だったのですが、今はミックスをウチの音響チームがやっていて大きいことを除けば音自体は聞きやすいのでまだいいですけどね。

#本業
Icon of admin
 レゲエのフェスは天候にも恵まれ平穏無事に終わりました。
 本番10時間の2デイスでしたが、交代しながらの本番対応だったので長い休憩がありました。
 クラシックバレエやオペラの現場が控えているのでその準備を進めたかったのですが、超爆音のレゲエを聞きながらクラシック系のことを考えるなんて無理ムリ。
 なので、久しぶりにサーバーのガチメンテをしてました。SSHやVPNで遠隔操作が出来るので場所を選ばず操作出来ます。

 本当に久しぶりのガチメンテでしたが、いろんな問題が出てくる出てくる。
 一番の問題はVPNを介した遠隔ファイルバックアップが止まっていたこと。サーバー間をVPNで繋いでいたのですが、バックアップ側のTLS(認証の暗号化処理)が古くてVPNが接続していなかったのです。つまり、本体のOSをバージョンアップしてから数か月間バックアップが機能していなかったというオチ・・・。バックアップですから本体が堅調なら問題ないのですがコレはよくない。
 ところが、調べてみたらTLSを新しくするにはOSそのものをバージョンアップしないといけないとのこと。遠隔でやるのは怖いけど、主システムとは無関係なサポートサーバーなので落ちてもいいから作業を進める。幸い素直にバージョンアップが済んでVPNも復活しました。debianを使っていますが、バージョンアップはコマンドを3つ走らせるだけなので簡単。ただし、時間がかかるのに途中で質問に答えねばならんので付きっ切りになるのは頂けませんが・・・。

 こんなことがあると欲しくなるのがエラーを知らせてくれる何か。今回の場合は「バックアップに問題あるかもよ!」というシンプルなお知らせ。実行結果を診断して自動的に送信されるメールってことになるでしょうか。
 Linuxは凄いと思ったのがこういった処理。bashと呼ばれるコマンドラインにはメール送信機能が普通にあります。単なるコマンドラインですから、cronで直接実行も可能ですし、cronから呼び出されるスクリプトファイル(古い言い方ですとバッチファイル)に仕込んでおいてもいい。私ごときがやりたいと思うことの大半はbashで出来ちゃうLinux。難しいのは数多ある機能を知ることと使いこなすことでしょうか。

 ちなみにシンプルなテキストメールを送るだけならこんな感じ
$ /bin/echo -e "メッセージ本文" | /usr/bin/mail -s "メールのタイトル" root
 rootってのは固定されたシステム管理者のアカウント名。この場合は宛先になりますが、これだけでは誰にも転送されません。メールデーモンにroot宛のメールを転送する設定をしなければなりませんが、転送すればスマホでも何でも受信出来ます。
 コマンドの間にある"|"はパイプと呼ばれる機能です。上記ではechoで出力された文字列をmailに本文として引き渡すという意味になりますが、シンプルながら応用の幅が無限大なこんな機能を考えた人は天才。
 さらにです、バッククウォート(日本語キーボードならシフトキーを押しながら[@]キーで出るチョン)で囲めばコマンドの返り値をメール本文にも出来るそうな。
$ /bin/echo -e `/bin/date` | /usr/bin/mail -s "日時" root
 これはdateという現在日時を表示するコマンドの結果をメールするだけですが、固定されたテキストもコマンドを実行した結果も区別無く扱えるということです。
 bashでのテキストの扱いには正規表現に代表される難解さがありますが、パイプと合わせてこの辺りを覚えたら驚くほど色んなことが出来ます。

 [コマンドを実行] → [その結果を判別] → [管理者へメッセージを送信]
 こんなことが特別なアプリを使うことなくコマンドラインの組み合わせで出来てしまうのです。シンプルなモノをシンプルな方法で組み合わせて無限の可能性を産むと言ったら言い過ぎでしょうか。
 コンピュータを扱うことにかけては神レベルの天才達が作ったとはいえ、LinuxというかUNIXは本当にスゲー。

#サーバー
Icon of admin
 とまぁ、バックアップは正常に機能するようになったのですが・・・
 長期間バックアップしていなかったのと、過去10年以上のデータをアーカイブ化して入れ物を変えたので24時間経っても初回動作が終わらない。
 動作チェックには丁度いいっちゃいいのですが、ネット経由なのでまだまだ終わりそうにありません。

#サーバー
Icon of admin
 茨城県沖に世界でも屈指の規模の油ガス田がありそうだとのこと。

 地元のこんな話は嬉しいですね。

 程度はともかく、茨城県には日本国内のどこかにある自然、資源、産業、施設が一通りあります。食材も全国No.1の生産量を誇る物が多く、北海道に続いてNo.2も驚く程多い。意外なのは日本酒の生産量が圧倒的なNo.1であること。無いのは活火山とサンゴ礁くらいでしょうか。そこに「原油生産世界一」なんて追加されたら悪い気はしません。
 こんな地の利の割に心意気や地域の歴史や文化に自慢出来るところがありませんので「何でもあるけど何にもない所」と勝手に呼んでいます。魅力度ランキングが物語っているのでこれ以上はいいか(笑

 話を戻しますが、原油をほぼ100%輸入に頼ってきた日本にこんな資源があるとは驚きです。採掘には高度な技術と莫大な投資が必要でしょうが、採算がイマイチでも採れるという事実を構築すべきです。十分に喰って安心して寝られることがより良い生活の基本ですが、ロシアとウクライナの件に影響を受けているヨーロッパ各国の様子を見るなら、資源と農畜水産物を十分に確保することは重要だと思うのです。
 戦争などあってはいけませんが、無いことと足元をみられることがそれを引き起こす原因であることは多いので、社会を維持するのに最低限必要なモノを自国内で確保することは平和を維持するためにも必要なことでしょう。身勝手な欲張りが欲しがらない程度ってのも大事かもしれませんケド。

#雑談
Icon of admin
 RaspberryPiのUSB3.0にストレージに繋ぐと不安定になるらしい。実際不安定だったので調べたところ、故障ではなくそういうものらしい。
 アクセスを速くするためのUASと呼ばれる方法が原因らしく、このドライバがデバイスに当たらないようにすると改善するらしい。ドライバが当たらないとオーソドックスなドライバに置き換わり安定するとか。ならば最初からそうして欲しい。速くても不安定ぢゃ意味がない。

 設定方法は次のサイトが簡素でわかりやすい。
Raspberry Pi で USB接続のSSDが不安定な場合の対処法

 今課題なのは、裸族のパイにノーマルの裸族のカプセルホテルを接続すると不安定になることの対策です。
 HDDが4スロットでも良いのですが、RAID1を組むとストレージは2組です。出来れば3組使いたいので、裸族のカプセルホテルを増設して8スロットにしたいワケです。
 不安定だったので増設の裸族のカプセルホテルは外してありますが、内蔵の4スロットは上記の設定で安定度が増したので、接続テストをしたいですね。

追記
 現場上がりで帰宅して裸族のカプセルホテルの接続テストしました。なんだか圧倒的に普通に動きます。
 これまでは何だったのか、費やした数時間に何の意味があったのか、鼻クソほじり乍ら遠い目をしてしまいそうな程です。
 UASが機能すればUSB3の真価を引き出した高性能を得られるのかもしれませんが、カーネルが落ちる程の未完成品なら意味はありません。
 ちなみに、裸族のカプセルホテルのプロダクトIDは個体が違っても同じでした。ですので、追加の設定作業はありません。

#RaspberryPi
Icon of admin
 裸族のパイ&裸族のカプセルホテルはUASドライバを外すことで一応の改善が見えました。ベンチマークも本体に内蔵のHDDとほぼ同じ値を出します。
 ただ、USBハブをかますとそうはいきません。一見正常に起動してもアクセスが恐ろしく遅かったり、不安定でコンソールすら立ち上がらないことがあります。
 構成として裸族のカプセルホテル(外付けHDD)とLANアダプタを取り付けたいのですが、1本のUSB3.0でやりくりするにはUSBハブが必須なのでなんとかしたい。

 さて、何が原因か。

 まず考えられるのはUSBハブの電力不足。RaspberryPiのUSBポートは電力供給が弱いらしいのでUSBの電源を別取りしたところ、半分以上の確率で起動は失敗しますが、起動が成功した際にはアクセス速度が劇的に改善します。解決の決定打ではありませんが、これはこれで必要な対策です。

 正常に起動する時とそうでない時の違いを考えてみると、USBハブに電源が入った状態でRaspberryPiを起動すると(リブートも)ダメで、RaspberryPiが起動し始めてからUSBハブを挿すと正常に動くことが多い。ならばと、RaspberryPiが起動し始めて起動ログの表示が見え始めた直後にUSBハブの電源を入れたところ100%の確率で正常に起動することがわかった。リブートもシャットダウンログの表示が止まったところでUSBハブの電源を落とし、以下同様にすると正常にリブートが完了します。
 要するに、RasberryPiがカーネルを読み込んだ直後にUSBハブの電源を入れれば(再投入すれば)良いとなります。

 ただ、起動の度に手作業でやるのは現実的ではないし、何よりも遠隔のリブートでは不可能です。
 さて、どうする。

 方法として考えられるのは上記のタイミングを得る信号をRaspberryPiから取り出すこと。
 ・・・こんなこと出来るのか?

 RaspberryPiには基板上にLEDが付いていて、電源パイロットランプとSDカードのアクセスランプになっていますが、設定を変えることで違う状態情報も表せます。オーバーライドしてGPIOに出力することも出来ます。
 このLEDは前者がpwr_led(赤)、後者がact_led(緑)と呼ばれますが、これをGPIOに出力して丁度良いスイッチソースにならないでしょうか。
 ちょっと試験しただけなので大丈夫とは言い切れませんが、act_ledの設定をdefault-onにしてGPIOに出力すると期待するモノになりそうです。通電直後と再起動のシャットダウン直後は消灯から始まり、起動ログの表示が始まると点灯、シャットダウンが完全終了すると消灯します。これは欲しいタイミングではないのか?
 そもそもはパイロットランプですが、GPIOに出力するなら単なる信号であり、バッファを入れればリレーを動かすことが出来ます。過渡期にチャタリング的なノイズはあると思いますが簡単なパッシブ回路で何とかなるかな?。

 カーネルが起動している時を把握したいと思っていたので、この方法はなんとか手にしたいと思います。
 腰を据えて試す時間はしばらくありませんケドね。

#RaspberryPi
Icon of admin
 このところ現場続きで先の現場の準備もままならないところですが、気分転換で少しづつやってます。

 GPIOに繋げたテスト用のLEDを目視した範囲なので確実とは言えませんが、act_ledはカーネルの動作中を表す信号として使えそうです。
 pwr_ledとact_ledの挙動ですが、通電直後(再起動では一度終了した時)はデフォルト設定に戻っており電源パイロットとSDカードのアクセスランプとなっていますが、カーネルが起動して各種ドライバが読み込まれる前にcmdline.txtに書かれた設定がされます。GPIOも通電直後は初期化されており、Hi-ZかGNDになっているようでHは出力しません。
 つまり、act_ledをdefault-onにしてGPIOにオーバーライトすればカーネルが起動している時に点灯するLED、すなわちカーネルが起動していることを表す信号となるようです。
 電源が入った直後は端子の状態は不安定ですからワンショットが出るかもしれませんけどね。

 ならば、この信号を受けてUSBポートの電源を入り切りするようにすればいい。
 GPIOの信号を抵抗とコンデンサの時定数回路で受けて起動時ノイズの除去と遅延(0.5秒前後)を与え、シュミットトリガを通してヒステリンス特性とし、トランジスタを介してリレーを動かします。
 USBポートの電源は、ケースからの出力にキーストーンモジュールを使っていますので、バラシてケーブルを割り込ませます。
 懸念は、このオフ時間でUSBハブが再起動リセットされるかです。3-4秒はあるので行けると思いますが、確実なリセットになるかは試さないとわかりません。

#RaspberryPi
Icon of admin
 電源の投入を遅らせる方法は「オン・ディレイ」と呼ばれる方法だそうです。
 「QC Connect」
20220918123614-admin.png
 簡単な回路ですが、トランジスタの電気特性の裏をかいたような動作なので分かりにくいかも。肝は、トランジスタのベース端子の飽和電圧です。回路図にある2N2222も汎用品のレジェンド2SC1815もそうですが、ベースに一定以上の電圧(飽和電圧)が印加されないと通電しません。ダイオードの親戚ですから考えてみれば当然です。抵抗20kΩとコンデンサ1uFで構成される時定数回路においてコンデンサの電圧が0.6vになるまでの待ち時間をディレイタイムとしているのです。
 主目的は通電直後のノイズ除去です。GPIOがHレベルを0.5~1.0秒以上維持した場合にのみリレーがONになるなら、通電直後の意図しない信号やノイズを排除出来るハズです。
 回路図の20kΩと1uFの時定数は0.02秒(20msec)ですから、概算なら電圧比を掛けて2.4msecです。33kΩと22uFだと時定数は0.726秒ですから、電圧比を掛けて132msec。もっと欲しい気もするけどこんなもん?コンデンサを表面実装の小型品にするために10uFを上限とするなら68k~100kΩかな?
 リレーはフリーホイールダイオードと共に回路図のR2の位置に配置です。
 ただ、時定数のコンデンサを小さくするとR1の抵抗値が大きくなりベース電流が少なくなってリレーをドライブする電流が不足するので、トランジスタはGRグレードをダーリントン接続にした方がいいのかな?
 この辺りのバランスはトランジスタの増幅率と部品のサイズで考えてみましょう。

#電子工作
Icon of admin
 自動車のEV化って話がよく出ますが、EVを褒めちぎっている意識高い系の方々はEVに使う電力が送電線から無尽蔵に沸いてくるモノと思っているような気がします。
 燃料を消費するなら大規模な発電所で用いた方が効率が良く環境負荷が少ないって話は理解出来るのですが、EV化は消費するエネルギーの形態が変わるだけで総量が減る話ではありません。社会が消費するエネルギーの内、自動車が消費するエネルギーが極僅かなら構わないのですが、普通に考えたら電力インフラへの要求量は目に見えて増えるワケで、今年の春頃には盛夏時期の電力不足が懸念されたのに大丈夫なの?って疑問が生じます。
 環境負荷が減るのはヨシとしても、電力インフラを考慮せずにヨシとするなら単なるバカです。

#雑談
Icon of admin
 久しぶりに本業が過密。
 7週間に渡る毎週末、事前段取りがガッツリのディナーショーやオペラやバレエが続いています。お仕事を頂けるのはありがたいのですが、体力が保つかな?
 アタマを本業に全振りしてるので工作は暫くお休みするしかありません。現実逃避でなにかに手を付けるかもしれませんけどね。

#本業
Icon of admin
 先日Googleマップを使っていて疑問がありました。
 高速道路を使って現場に向かっていたのですが事故で通行止め。現場に支障はなかったものの30分ほど遅刻。
 ただ、Googleマップには通行止め表示はなく、高速道路を使ってあと何分と表示が出ていました。
 道路公団とGoogleマップがリンクしていないので通行止めの表示が無いのは理解出来るのですが、所要時間が出ていることが不思議。

#雑談
Icon of admin
 クリアカムのパワーサプライを増やそうと中華電機に部品を頼んだのですが、10月3日入荷予定の物が9月中に届いてしまいました。
 早いにこしたことはないのですが、良くも悪くも到着日が予想出来ません。遥か彼方から安い送料で送られてくるので運次第なのかな?

 届いたのはプラケースです。タカチ電機さんの汎用ケースを使うことが多いのですが、最近はシンプルで丈夫な製品が廃番傾向にあるため、試しに中華電機に頼んでみたのです。
 中華電機で550~1,000円で販売されている汎用ケースです。見た目や寸法精度は可もなく不可もなく、価格ナリってところでしょうか。強度はもう少し欲しい気もしますけど、合わせ目に補強を入れればいいかな?
 余談ですが、中華電機では同じ製品でも販売店によって単価が倍以上違うことがあります。特に低単価の小物にはこの傾向が強いのですが、単価が安いところは送料が高く、単価が高いところは送料が安いので、単価に惑わされず総額に注意するべきです。関税も注意ポイントですけど。

 XLRコネクタの前にリセッタブルヒューズを入れるなどの過電流対策は必要だと思いますが、クリアカムのパワーサプライの中身はDC24vの安定化電源に抵抗2個とコンデンサ1個で構成するターミネーターを取り付けるだけです。シンプルです。
 安定化電源の品質が定在ノイズの有無に直結するので出来るだけ良い物を使うべきですが、この辺りはお財布と相談ですね。
 あとは、筐体を作る工作力次第。

#電子工作 #舞台の小物
Icon of admin
 クリアカムのパワーサプライに使おうと思っている電源がコレ。
20220927072527-admin.jpg
 24v9Aですから219wです。
 このサイズで???

 以前、スクローラーを作った時に使ったデンセイ・ラムダ(現TDKラムダ)の150w電源は遥かに大きい。
 時代が進んで小型化したか、性能を表す基準が違うか、どちらかなんでしょうけど、どちらでしょう。
 先日購入したLED-BARでは電流過多が原因と思われる電圧低下で動作不良になった物があったことから、中華電機の電源モジュールの定格表現は日本のそれとは違う気がします。
 日本製の定格は連続使用に耐えうる数値、中華電機製のは動作不良が始まる限界値と思うのがいいのかもしれません。
 どちらがいいか悪いかではなく、持っている数値をどう見てどう扱うかです。基本は安全率の定義です。日本製は部品劣化を見込んで80%を実用上限とし、中華電機製は部品劣化の80%に加え安定動作のための余力60%を合わせ48%くらいで見ればいいのかな?これだと4.32Aとなり約100wです。物理的なサイズ感からしてもこの位が現実的な気がします。大雑把に言うなら、連続使用に耐えうる最大電流値を定格の半分とするのです(出力側のチョークコイルがやたら小さいのでまだ不足感はありますけど・・・)。
 今回の基板は見た目がキレイです。部品配置が整っていてハンダやネジ止めが丁寧って意味ですが、性能(主に耐久性)は見た目にも表れます。この辺りに粗雑感があるなら安全率をもっと下げて使うべきでしょう。根拠を数値で表すのは無理ですけど。

 正直、中華電機の電源モジュールをDMXスプリッターなどに使うのはまだ怖いです。中華製の器具にはこの親族が使われているのですから神経質になり過ぎなくてもいいのですが、以後に沢山の機器が繋がる用品、「壊れたら交換すればいいぢゃん!」で済まない用品に使っていいかは今後考えないといけません。

 パワーサプライの実装では電源経路にローパスフィルタ(ハイカットフィルタ)とリセッタブルヒューズが必要です。電源モジュールのバッファコンデンサが妙に小さいので、容量の大きな電解コンデンサを簡易ローパスフィルタも兼ねて追加してみましょう。

 つわけで、片手間で作れるクリアカムのパワーサプライをいじって息抜きをしています。

#電子工作
Icon of admin
 クリアカムのパワーサプライはA/B2系統としA+Bのパーティにも切り替えられるようにします。
 仕組みは、AとBそれぞれにターミネーターを入れ、A+BのパーティにするならBのターミネーターを切り離してAと繋ぎます。極々ありふれたスイッチ1つで出来ます。
 2系統必要なことは滅多にないけれど便利かもしれないし、コストも手間も大してかからないので、どうせ作るなら実装しておこうかなと。

#電子工作
Icon of admin
 鬼のデスクワーク中ですが、資料映像のレンダリング中は休憩です。
 気分を切り替えるのにクリアカムのパワーサプライのケースを作っています。
 ケース本体は中華電機製ですが、これを黒に塗装。ミッチャクロンを下地にしますが偉大な下地材です。凄い喰い付き。
 コネクタやスイッチを取り付けるフロントとリアのパネルは3Dプリンタでプリントした物にレーザープリンタで出力した紙をラミネートしたシートを貼ります。以前もご紹介しましたが、耐水紙に印刷してツヤ無しのラミネートで挟んだ物です。これは舞台のマーキングにも使えるなかなか優れた代物ですが、ケースのパネルの装飾に使うとかなりそれっぽくなります。

#ガチ工作
Icon of admin
 真夏の倉庫で保管することを考えると、3Dプリンタで機材を作るにはABSを使うべきです。
 ただ、ABSは難接着物です。専用接着剤でABS同士を接着(溶着)すると強く着くのですが、別素材と接着する場合は接着剤を吟味しないといけません。
 今回はABSでパネルをプリントしラミネートした印刷物を装飾として貼りますが、ラミネートフィルムはポリエステルなので難接着物ではないものの接着は苦手な部類です。
 この場合はスーパーXハイパーワイドが良いようですが、素材に合った接着剤を選ぶことはとても大切です。

#ガチ工作

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

Icon of admin
 アントニオ猪木さんが他界されました。プロレス好きというワケではありませんが、何かこう、言葉では表せない切なさを感じます。
 ここ数年、昭和を象徴する方々の訃報を耳にすることが多いのですが、その時代を飾った存在感とご功績に敬意と感謝を以ってご冥福をお祈りしたいと思います。
 お歳もお歳ですから仕方のないことですし、天寿を全うされたことはむしろお祝いすべきことかもしれませんが、自分にとっての現実(リアル)が歴史(記録)になっていくようで寂しいです。

#雑談
Icon of admin
 さてもさても、3DプリンタでのABSはツンデレです。
 ワガママというか奇想天外というか期待を裏切るというか何というか、予想外に良い仕上がりになることもあるのに、100%大丈夫だと思っていると変なことになる。感情があるならツンデレと呼びたい。
 温度と湿度を良い条件にすれば高確率で良い物が作れることはわかっていますが、良い条件を維持するのにも限度があるので、お相手をしているとツンデレという表現がピッタリなのです。

#工具や資材
Icon of admin
 以前、こんな加熱台を買いました。
20220315185441-admin.jpg
 リフローハンダには使えませんでしたが、3Dプリントの歪み補正に便利です。
 押さえ付けて加熱するので専用クランプをこさえないといけませんが、天板に乗せてクランプして温め、そのまま常温に戻すのです。
 温度や加熱時間はフィラメントによりますが、今使っているABSですと90℃で15分加熱です。挟んだまま常温に戻るまでに更に1時間ほどかかりますが、プリント時間に比べたら短時間なので問題ありません。

#工具や資材
Icon of admin
 忘れないウチにインターカム・パワーサプライの回路図を描いてみました。
 基板化する都合で電源モジュールと切替スイッチは記載しておりません。
20221004123553-admin.jpg
 クリアカムと称すると面倒がありそうなので、インターカム(Inter-Com)としています。

 一日に1-2時間、気分転換として触るには良いネタです。

#電子工作
Icon of admin
 回路図を描いたので基板も描いてみました。
20221005073723-admin.jpg
 描いたついでに中国に発注してみました。
 銅膜を2ozと厚めにして少し高くなりましたが、10枚で$62(1ozなら$48)、送料が$16、合計$78です。日本円にすると12,000円超。
 感光基板の価格と手作りの手間を考えたらまだまだ安価ですが、円相場の現実を実感。

#電子工作
Icon of admin
 盆と正月が一度に来た状況です。
 コロナ明け感の反動だろうがなんだろうが現場を沢山頂けることは有難いのですが、それにしても多すぎ。
 ですが、来週になるとそうでもない。明らかに休める日程。連休の魅力はわかるのですが、もちょっとバラけてくれんもんでしょうかねぇ~。

 息抜きのインターカムパワーサプライ製作はイイ感じ。
 内部の基板を中国に発注したので完成は届いた後ですがケースの仮組みが完了。
 明日にでも写真に撮って揚げてみようと思います。

 そういや、ノイトリックのXLRコネクタの値段が上がってます。インターカムパワーサプライにはなくてはならない部品です。
 原材料の高騰、製造業の混乱、その上円安ですから仕方のないことですが、ちょっと前の倍以上の価格には驚きました。
 納期はかかりますが、中華電器で65円(送料入れても160円)のXLR3Pレセプタクルをオーダーしました。

#本業 #電子工作
Icon of admin
 編集うまいなぁ~




#雑談
Icon of admin
 こんなんす。ほぼ函の習作。
20221006005012-admin.jpg 202210060050123-admin.jpg
202210060050121-admin.jpg 202210060050122-admin.jpg
 PSEの壁があるので販売出来ない製品。
 全てではないのですが、商用電源を直接入力する機器はPSEに引っかかることが多いのです。
 電源モジュールを名目別売りにし、購入者が最終組み立てをしたことにすれば逃れられるって話もありますけど。

#電子工作
Icon of admin
 忙しすぎもヒト段落。普段の忙しさに戻りました。
 そんな渦中にiPadが壊れました。仕事では補助的にPDFの資料を見る程度ですが、無いと微妙に不便。仕方ないので新調。
 ノートパソコンもそうですが、持ち歩き品にはあえて中古品を使います。初期不良と要所の強度の確認がバッチリ済んでいるからです。
 それなりの費用はかかりましたが、Apple Pencil を導入出来たことは良い結果でした。猛烈に便利。

#雑談
Icon of admin
 現時点では目新しさだけだけど、大気中に捨てていた熱エネルギーを電力化していることが興味深い。

 保守や改修の費用も含めた長い目でプラスならアリですよね。
 肝は低沸点の物質を利用した「バイナリー発電」です。ちょっと前までは低沸点の物質は腐食性や摩耗性が強く実用化が難しいとされていましたが、これを解決したのでしょうか。
 440kwで900世帯って勘定にも少々疑問があります。平均値で見ればそうかもしれませんが、ピーク電力はどうでしょう。1世帯でドライヤー2個使ったら簡単にオーバーです。発電施設はピークに耐えてナンボですが、440kwと900世帯という数字が安易な皮算用でないことを祈りたいですね。現実をシビアに見ない夢物語は始まりから破綻することが決定していますので、バブルで弾けた温泉街の二の舞にならないといいのですが。
 EVの開発で進歩した蓄電池の技術を応用し、今後普及するであろう家庭蓄電システムと併用することが前提なのかな?そうなら猛烈にアリですけどね。今の法律ですと家庭蓄電システムに対する電力源は商用電源に限定されるので、今後の法改正にも注目です(家庭のソーラーパネルは売電を前提にしているなら商用電源と見なされるのでグレーゾーン)。

#関心したネタ
Icon of admin
 インターカムパワーサプライの基板が入荷しました。
 今までより少し時間がかかった感じがしますが、それでも土日含めて8日間。十分満足。
 仕上がりもキレイです。

#電子工作
Icon of admin
 iPadでApplePencilを使える様にしたのですが、GoodNotes5と合わせて使うとアイデアメモにすばらしく良い。慣れるとポンチ絵も楽に書けます。図線を後から直せるのがいいですね。
 字が汚いのはどうしようもありませんが、考えながらも丁寧に書こうとすれば許せるかな。自分が今までとても雑に字を書いていたことがよーくわかったので、それはそれでよい発見かなと。

 このところ、ずーっと何か作ってます。
 先週は平台でした。一昨日と昨日は溶接してました。今日は針金曲げて金具です。明日は午前中溶接し、現場に持ち込んで設置。
 明日設置する物はどう作ったらいいか悩んでいた案件ですが、ギリギリセーフなタイミングでアイデアが出ました。明朝早起きして早開きのホームセンターで材料購入です。

#雑談
Icon of admin
 段取りモノやら作り物が伴う現場が毎週の様に続いています。
 んで、上流の奴らは自分の段取りが追いついていないことを「なんとかしといて♪」と投げてきやがる。
 一晩寝ればほぼ回復・・・とはいかないお年頃ですので心身が悲鳴を上げています。特に精神的な胆力の落ち込みが酷い。
 コロナが抜けた感じでイロイロやりたいのはわかりますし、売り上げを得られることは有難いことですが、限度ってものがあります。
 12月の下旬まで持つかな・・・。

 趣味の製品も作り進めたいのですが、カラダにムチ打って取り組む様では趣味の製作とは呼べません。

 120%愚痴ですが、ちょっとシンドイ今日この頃。

#雑談
Icon of admin
 JASRACの敗訴が確定したそうです。
 yahooニュース
 著作権者の権利と利益を守ることは大切ですが、言い掛かりにも等しい理由で取り立て先を増やそうとするのはどうかと。
 器を大きくしたり中身を増やそうとせずに自分の取り分だけより多く求めるのは半島貴族っぽい思考ですねぇ。まぁ、そういうことなんでしょうケド。

 私が気に入らないのは「包括的利用許諾契約」。誰に支払われるのかわからん金を支払えってやつ。あと、足切りと呼ばれる利用率が低い著作権者には支払いがされない制度。
 どちらも1曲単位で管理するのは事務処理が膨大で現実的に無理という理由。権利を預かって金銭を取り立てる立場が許される言い訳なのか?。

 音楽著作権の管理が利用された回数ならカラオケ屋さんのシステムを利用すればいいのに。誰が作ったナンて曲が何回再生されたか1曲単位で瞬時にわかるので不透明さが無い。明瞭会計。
 明瞭だと困るから今のシステムなんだろうなぁ、って勘繰ってしまいますけどね。

#雑談
Icon of admin
 今週末は持ち仕事が無かったのでホール管理の増員。
 置物になるだけの役回りだったので、先日思い付いたRaspberryPiのカーネル動作をact_ledから拾って外部USBの電源を制御する方法を思案してみました。
 そもそもの問題は、RaspberryPiを再起動するとUSBハブとの通信がおかしくなる現象です。解決策は、再起動でカーネルが落ちたらUSBの電源を落とし、カーネルが起動し始めたらUSBの電源を入れるというもの。act-ledを見ながら手操作でUSBの電源を切り/入りすれば正常に動くので、act-ledをGPIOに出力し、それを受けて動くリレーを作れば解決するハズ。ただし、カーネルが起動し始める瞬間はact-ledの挙動が不確定になるっぽいので対策を施す必要があります。
 対策はワンショットパルスです。入力信号の反転を検知したら出力信号を反転し、入力信号が戻っても一定時間出力信号の反転状態を維持する方法です。ある種のタイマーです。これなら起動初期の不確定な挙動を読み飛ばしますので期待する動作になると思います。
 方法は、マイコンを使ってもいいのですが、往年の名機NE555をタイマーとして使うのが良さそうです。レベル変換やリレードライバとしてトランジスタが数個必要ですが、やりたいことの中核はNE555で構成できます。電源電圧が不安定な時にも確実に動いて欲しい回路には電圧の対応幅が広いアナログ回路が望ましいので尚更適役です。
 NE555は2個のコンパレータとRSラッチと時定数回路のコンデンサを放電するためのトランジスタで構成されたICです。一見簡単そうに見えますが、アナログとデジタル(論理回路)の知識とそれらを扱うセンスが試される一品です。奥が深いと言ったら安直すぎる評価だと思いますが、妄想すればするほど使い方のアイデアが広がる感じがします。中の電子回路をよく理解してICを使うトレーニングになるかもしれません。改めてRSラッチから始まるフリップフロップの勉強にもなりました。
 今回の課題は、時定数回路とコンパレータの組み合わせで解決出来んぢゃないかと妄想していましたが、NE555は正に適役でした。
 まだ妄想状態ですが、ブレッドボードなどで回路を試験したいですね。

#電子工作
Icon of admin
 本業系では「階段」を作っております。
 一体の豪勢なモノではなく、4寸厚の平台を組み合わせて構成するための補助的な物です。
 一般的な舞台道具で台を作りますと、高さが4寸、7寸、1尺、1尺4寸、1尺5寸、2尺1寸、2尺8寸になろうかと思います。
 この中の数字を拾いますと、均等段差の階段を構成するなら7寸ピッチが都合良いと思うのですが、履きなれないヒール、着慣れない和装、ご高齢の方に7寸ピッチの段差は大きすぎる様子。特に降りる時が辛そう。
 なら適切な段差はどのくらいかと聞かれれば正解は無いかもしれませんが、平台の厚み以上で組み合わせ的に都合が良く出来るだけ低い段差がよろしいかなと。1尺4寸を1/3にした4寸6分7厘(約141mm)などいかがでしょう。
 先日、先の現場の舞台リハがあったので試作品を持ち込んで試してみたのですが、和装の方が裾を引くことも無く自然に昇り降りしていました。いいんでないかなと。

 この考え方で整理しますと、4寸高の平台の高さを増すという意味で、7分高のゲタ、1寸高のゲタ、5寸3分4厘高の箱、6寸5分高の箱を作ったらどうかと。1尺高には5寸高、1尺4寸(2尺8寸)高には4寸7分高と9寸3分4厘高、2尺1寸高には5寸高と1尺5分高と1尺5寸8分4厘高の階段を当てられます。完全な均等ピッチにするのは面倒なのでやりたくありませんが、現実の平台の精度と自分工作精度からすれば、ピッチ誤差は3分以下で収まればいいかなと。
 もちろん、1×3、1×6の平台も作っています。

 ちょっと手間ですが、階段を構成しやすい体制を作っておくと何かとよろしいかなと。

#ガチ工作

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

Icon of admin
 カゲ段はこんなモノです。
20221104083535-admin.jpg 202211040835351-admin.jpg
202211040835352-admin.jpg 202211040835353-admin.jpg
 1×3の平台を使った1尺4寸用の構成です。段差は4寸7分くらいです。
 薄ゲタと呼ぶ7分高の角材を付けた1段目、中箱と仮に呼ぶ5寸3分4厘を取り付けた2段目です。
 中箱は1尺×7寸の合板(4分厚=12mm)と4寸5分4厘(1寸5分角)の角材を組み合わせた物ですが、平台の側面の穴と角材にクランプを当てて連結出来ます。当初はボルト連結も考えたのですが、工作精度や床の平面精度を考えると許容誤差が大きい大雑把なのがいいかなと。
 写真では空いていませんが、箱の合板にも同様の穴を空けて上下連結出来る様にします。2尺1寸用の3段目は5寸3分4厘の中箱と6寸5分の高箱を重ねて使うからです。

#ガチ工作 #本業
Icon of admin
 久しぶりに3Dプリンタを使ったのですが、室温が低すぎてプリントが荒れまくり。
 ワーク周辺の気温が摂氏25~30度だといいのですが、プリントするために部屋全体を暖めるのは勿体ない。
 幸い3Dプリンタはオープンフレームではなくケース式です。amazonさんを覗いたら300wの小さなヒーターがあったので、これを庫内に入れて温度リレーで動かすことにしました。温度リレーはある仕事のために数十個買った際の予備があります。温度の精度はそれほど必要ないのでこんな安物の組み合わせでもいいかなと。
 ヒーターは2日後に入荷予定です。

#ガチ工作
Icon of admin
 久しぶりに車で都内に行きましたが帰りに大渋滞。普段なら多少渋滞があっても2時間もあれば走り切ってしまう行程に4時間半もかかる。
 都心の道ですから仕方ないと思っていたのですが、原因が事故の見物。
 乗用車3台が車種の判別できないくらい大破していたのは気の毒なことですが、その横を安全のための徐行でなく見物のためと思われる必要以上の低速で進む数台先の車たち。ほんの数秒ではあるものの一時停止をしている車さえある始末。事故を起こしたドライバーも誉められたものではありませんが、何の価値もない見物のために渋滞を作り出すドライバーには免許を返上していただきたいものです。
 ちょっとの身勝手なら構わないよね・・・といったことをとても沢山の方々から頂戴している最中でもあるため、殺意にも似た感情すら込み上げます(笑

#雑談
Icon of admin
 最近道具屋です。

 躯体作りは舞台作りに外せない要素です。
 イントレで済むことが多いのですが、済まない場合は難儀します。

 今回のネタは、人が乗らず、100kg以下の機材を乗せる高さ7尺以下の台ならこんなんでよくね?、というヤツ。
 丸パイプの両端にクランプを取り付けた物を主材とします。
202211162017481-admin.jpg
 これを立体に組めば手早く台を作れるんじゃないかと。イントレより難しく手間がかかりますが、単管クランプと単管パイプだけで組むよりはずっと簡単です。
202211162017482-admin.jpg
 この形ならビケ足場を使うのがいいような気もしますが、この方法はアレンジの幅があります。鉦(カネ=組み合わせの直角)と水平をキッチリ出すのは少し難しいかもしれませんが、反面、段差に台組みするのはイントレよりも簡単だと思われます。客席にプロジェクタやムービングを乗せる台を作るにはいいかなと。そもそも、ちょっとした台としてイントレはオーバースペックなのです。

 筋交いを入れるならこんなモノを使うといいかも。
 筋交いを取り付けるピンだけも売ってます。
20221116201748-admin.jpg

 もちろん、この手のモノは崩れるとシャレになりませんし、ちゃんとした設計の元に資格を持った技術者が溶接をしないと自己責任とかいう言葉で済まない事態になります。
 PL法に対応しない物を使って事故を起こせば、民事を通り越して刑事になる可能性があるってことです。
 つーて人に売らないだけで、自分の現場なら気にせず使いますよ。

#ガチ工作
Icon of admin
 不調の3Dプリンタは改善をみました。

 原因は複数かな。
1)フィラメントの湿気
2)ノズルの劣化
3)低温

 対策は、フィラメントをドライキーパーに数日入れ、ノズルを交換し、先日購入したセラミックヒーターで装置全体を長めに予熱。

 予熱はプリンタの筐体が全体的に温かくなるまでやってみました。ヒーターはプラットホームの中央に1点ですから、ヒーターの直近と離れたところでは温度差があるのは当然としても、庫内の温度が低すぎるとプラットホームの温度ムラが想定より大きくなるのでしょう。
 フィラメントが違えばノズルの劣化具合いも違うようですが、フィラメントのリールを1巻使い切ったら交換するのが目安かもしれません。1巻程度で使えなくなることもないので勿体ない気もするのですが、ノズルがNGなことで無駄にしてしまうフィラメントや時間を考えればコスト的にアリだと思います。ノズルが正常なら仕上がりも良いですし。
 終わらないと何とも言えませんが、今のところ許容範囲でプリントされています。
 結果は明朝。

#3D
Icon of admin
 ちょっと過労気味です。
 アドレナリンを出せば瞬間的に動くことは出来ますが、気を抜くと立ち眩みが起こることもしばしば。
 ヤバイ。

 ですが、出てしまったアイデアを試さずにいることはモヤモヤして気持ちが悪い。
 このところ客席に卓を据える現場が続いているので客席テーブルを使うことが多いのですが、テーブルとしてはとても良いものの重い。改造に改造を重ねてきたので余計な重量が加わっていることはわかっているのですが、全く同じ物を新造しても十分な軽さになるとは思えません。機能や強度を損なわず十分に軽くできないか。
 ひょっとしてのアイデアですが、スタイロフォームを薄合板でサンドイッチしたら軽くて強い板材にならないかと以前から夢想していたのですが、今回の解決策になりそうな予感がして試しかったので、現場上がりの深夜、ジャンク材料を貼りあわせてみたのです。スタイロフォームを芯材にしたモノコック板みたいと思いながらニヤニヤ。
 接着には木工用ボンドを水で薄めてローラーで塗布。水で薄めたので硬化には時間がかかりそうですが、数日先まで忙しいので丁度良いかも。
 どうやって脚を取り付けるかという設計上の課題はありますが、軽くて強度のある板材を得られれば新しいアイデアが出てくるかも。

#ガチ工作
Icon of admin
 こんなん試作ってみました。
20221127203406-admin.jpg
 ケーブルをリングスリーブで接続した際のカバーですが、防滴のブンキーになったらいいなと。
 3Dプリンタの精度確認をしたかったので、現場で待ち時間が長かった時に描いたデータをプリント。精度確認の目的でもありますが、外皮をかなり肉厚にしてインフィルも細かくしたので強度はありそうです。バイスに挟んでハンマーで叩いたり、コンクリ目掛けて投げつけて壊れなければ使えるかなと。どのくらいで壊れるかを試すのも大事。いや、試作の醍醐味(笑
 水没に耐えられる完全な防水は目指してはいませんが、雨風を受けてもへっちゃらならOKです。

#3D #照明器具
Icon of admin
 薄合板とスタイロフォームを貼り合わせた試材を確認してみました。

 スタイロフォームは30mm厚、薄合板はラワンの2.0mm厚、双方3×6サイズ。
 接着は木工用ボンドCH38を50%水で薄めたモノ(元の重量に対し半分の重量の水を加えたモノ)をローラーで両材に塗布して貼り合わせ。
 丸3日放置しましたが思った以上に頑丈です。板の3尺辺に角材を挟んで私(約68kg)が乗ってたわみが15~20mm。接着が剥がれたところがありましたが、折れることなく耐えました。
 接着の剥がれはスタイロフォームが丸ノコの下敷きで使っていたジャンクで切り傷があったことと接着剤を薄め過ぎたことが原因だと思います。剥がれたのは丸ノコで削られていたところですから、新品のスタイロフォームにローラーで塗布できるギリギリの粘度に薄めた木工用ボンドを塗布すれば耐えるでしょう。
 今回はありものでのお試しでしたが、引っ張り強度が強い薄材でスタイロフォームをサンドイッチする方法には期待が持てます。

 次のお試しは、スタイロフォームを厚くして50mm厚にし、50×12mmの杉材を縁に入れ、脚を付ける場所には木のブロックを入れてみます。
 スタイロフォームの厚さが過剰な気がしないでもありませんが、不足感とやり過ぎ感の両方を試しませんと落としどころは見つかりません。

#ガチ工作
Icon of admin
 分岐カバーを9個同時にプリントしています。
 これが欲しいというよりプリンタの試験です。プラットホームの場所によって仕上がりが違う気がしたのですが、プラットホームに3×3の9個乗ったので試験に丁度いいかなと。
 分岐カバーも1個や2個では試験にならないので、ついでに作れるなら丁度いいかなと。
 CAM曰く2日と14時間かかるそうです。明日の夕方には終わるかなと。

 全天候型のLEDスポットに中華TRUE1を取り付けて使っていますが、水没さえしなければ思った以上に雨風に耐えてくれるので便利です。直電源のケーブル類はすべて中華TRUE1にしてもいいかなと思ったりしているのですが、分岐が出来ないと不便です。防滴の分岐も中華電器で手に入りますがちょっと高価だし、中華電器ではコピー品以外の製品は同じモノを継続的に入手することが期待できませんので二の足を踏んでいるのです。
 分岐はリングスリーブで繋げた部分に機械強度を与えて風雨から保護できればいいので、シンプルを極めた機能的な物を模索しています。

#3D #照明器具
Icon of admin
 試作2号に手を付ける時間はありませんが、スタイロフォーム・サンドイッチ板の試作1号の状態を再確認しました。
 思った通り、発泡材を芯にしてモノコック構造が成立しています。期待感はあります。
 ただ、接着に用いているコニシの木工用ボンドCH38は水性なので湿気に弱いのです。強度は十分ですが、水気に強い物を使った方が良さそうです。

 価格や性能を考えますとコニシの再生ゴム系溶剤形接着剤G2002が良さそうな感じ。建築で断熱材などの発砲樹脂をコンクリート等に貼るための物です。ゴム系なので水で溶解せず木材とも相性が良いでしょう。売り文句には伸びが良く塗布しやすいとありますので施工も楽だと思います。
 気になるのは仕上がり重量です。広い面積ですと接着剤の重量も無視できません。試作で確認したいポイントでもあります。
20221130144024-admin.jpg

 構造ですが、脚を取り付ける周辺にはスタイロフォームではなく木材を挟みます。額縁もスタイロフォームが露出しないように薄い貫板状の材料を取り回します。
 十分な強度を持ちながら重くならないように構造を調整することは難しいと思いますが、軽量化は強度とのせめぎ合いです。

 強度と言えば同時進行で試作している分岐カバーも同様です。
 3Dプリンタの造形物は繊維方向は強いのですが積層面で割れやすい傾向があります。
 分岐カバーの破壊試験をしたところ正にコレが発生。
 丁寧に扱わない人がいる以上、片手ハンマーで叩いたくらいで割れが入る様ではいけません。しかし、割れが入るのです。
 どうしたものでしょう。

#ガチ工作
Icon of admin
 資料映像をレンダリングしている待ち時間に分岐カバーの3Dデータを描き直してみました。
 形状的にポリゴン系の3Dモデラーが良いのかな?と思いつつFusion360を使っています。

 少し前にも書きましたが、積層痕で割れる事への対策を考えねばなりません。
 ネットを徘徊したところ、ABSなら「アセトン蒸し」と呼ばれる方法があるそうな。
 参考ページ
 揮発したアセトンで造形物の表面を僅かに溶かして積層痕を消す方法です。密閉容器にアセトンと造形物を入れて3時間ほど常温で放置するだけですから簡単です。
 層の内部の組成まで融合させることは不可能でしょうが、表面の積層痕を消せれば強度は増すかなと。

 先人の知恵には関心するばかりです。

#3D

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

Icon of admin
 アセトン蒸しを試す為に新たな分岐カバーをプリントしています。プリント済みのは全てハンマーで壊したので試す物がありません。
 CAM曰く1個のプリントには7時間半を要するそうですが、3個を一括プリントするジョブにすればラップが1日なのでセット替えに丁度いでしょう。
 1日3個かぁ~って本音はさておき・・・

追記

 考えてみたら、アセトン蒸しは繊細なプリント向けではないかと。
 アセトンをハケで塗ったところ、これでいいんじゃないかという仕上がり。
 ボッテリ塗ると垂れてしまいますので薄く3回くらい塗り重ね。プリントの割れはアセトンを流し込めば埋まるようです。塗って1分もすれば触れる状態になるので作業性もいいです。
 キレイな仕上がりとは言えませんが、積層痕が消えて割れの要因は軽減したかと。
 ケーブルクランプの取り付けは、ABS対ナイロンですが、ネジ穴にアセトンを塗って捻じ込めば強烈に固定されます。防水もいけてる気がします。
 強度は壁面を肉厚にして十分になったようです。
 完成品を数本作って試してみましょう。

#3D
Icon of admin
 コレ、すげー。

#雑談
Icon of admin
 3Dプリンタそのものが旧式なのも原因でしょうが、相変わらずABSは難しい。
 反る、寸法が出ない、高積層だと割れるなど、求める形にするのに難儀します。
 されど、機械特性は良く真夏の倉庫に保管しても形が崩れることがありません。
 求めると応えてくれない、諦めようとすると応えてくる、相変わらずのツンデレさんであります。

 形状に合わせた条件を探っていけばそれなりに仕上がるのですが至るまでが大変。どうにかしたい。
 息抜きになんとなくネットを検索したところ、「polymaker(ポリメーカー)」というブランドのフィラメントが良いとの書き込みを見つける。
 PLAやPETG並みに扱いが簡単って意味ではありませんが、ABSにしては画期的に条件が出やすいとのこと。人によってはコレ一択だそうです。
 amazonで検索したところ扱いがありました。他のフィラメントより20-30%ほどお値段は張るものの、仕上がりを探る手間、つまりテストプリントの回数が減るならむしろ安いと言えます。

 もちろんポチリました。
 入荷は週明けですが、試すのが楽しみです。

#3D
Icon of admin
 本業が過密日程ですが、3Dプリンタを用いた試作はプリンタが働くだけなのでボチボチと進めています。

 仕上がりが良いとされているpolymakerのフィラメントの入荷は明日以降ですが、今使っているフィラメントでも仕上がりが良くなりました。
 FDM方式3Dプリンタの仕上がりを左右する主な要素は、
1) ノズルの移動速度
2) ノズルの温度
3) プラットフォームの温度
 となります。
 このところ気温が下がりましたので、少し高めに設定すると良いようです。特に、ABSで難儀する反りはプラットフォームの温度を上げることでかなりの改善をみました。

#3D
Icon of admin
 分岐カバーは様々な形を試しています。取り急ぎは中華TRUE1用です。ケーブルかレセプタクルかの組み合わせとなりますが、コストや手間を考えるとナカナカ決めきれません。
 今のところ、40×80のアルミ角パイプにプリントしたフタを取り付けるのが良さそうです。すべてをプリントすると割れやすいのもありますが、アルミ角パイプを使った方がコストを抑えられそうだからです。4m材からの切り出しですと1個あたり320円程度です。コストは全てをプリントした際のフィラメントと大差ありませんが、プリント時間を考えればアルミの方が安いと言えます。浸水しない接着が課題ですが、ABSとアルミの接着なのでどうしたものか思案中です。

#照明器具 #ガチ工作
Icon of admin
 今は資料映像の書き出し待ちです。
 polymakerのABSフィラメントが入荷したので試したいけど時間がありません。
 本業では「私だけ、ちょっとだけ」のオーダーが山積しており、ここ数日は自由な時間がほとんど取れません。つか、睡眠時間を確保するだけで精一杯。
 お仕事を頂けるのはありがたいのですが、自分の用件を優先的に捻じ込もうと言質を取るというか揚げ足を取るというか勝手な解釈をする輩が居てとても不愉快だったりします。「この3日間のどれかは空くかもしれない」と伝えたのに「その3日のウチ、客先の都合で調整します」と返して来たアホがいる。なぜ、指定には合わせられないとかすべてダメかもしれないと言っていることを理解出来ないことが理解不能。
 自分に向けての言葉でもありますが、なんかこうコロナを経て世の中の心が狭くなっているような気がします。

#雑談
Icon of admin
 このところライトアップのご要望を多く頂きます。
 特定の日時に人集めることが難しいため、特に行政さんではイベント予算の消化のためにライトアップをお考えになる事例が多いようです。

 ただ、長くて2か月の半仮設に適したライトアップの制御システムは既製品にありません。電源は電気工事さんにタイマーとリレーを施工してもらえば何とでもなりますが、DMXを出力する制御盤はありそうで無いのです。5時間のライトアップをDMXレコーダーで現尺保存などしたくありませんし。
 ならば作ってしまえとなるワケです。時刻をトリガーにシーンをめくる簡素なDMXコンソールってイメージですが、どうせならIoT的な手法でインターネット経由の遠隔操作が出来たらいいんじゃないかと。制御の核にRaspberryPiなどのLinuxベースのマイコンを用い、ポケットwi-fiを介してVPN接続するのです。VPNによってローカルLANと等しい接続をしてしまえばJAVA-scriptとPythonのsocketで自由度の高い制御が出来ます。現地の装置との接続を仲介するサーバーが別途必要なので、インフラ整備に物と手間と維持費がかかりますし、インターネットサーバーを扱うスキルも必要です。ナンのことすか?って話ですけどね。
 未解決の課題は少なくありませんが、インターネットを介したVPNで遠隔操作する手段はとうの昔に獲得済みですから、ブラウザで操作できるコンソールをRaspberryPi上に構成すれば必要な要素は揃います。IoT照明コンソール(笑
 未解決の主な課題はC言語によるPython用の計算ライブラリを書くことです。調光データの計算(マスター値を当てるとか、複数のシーンのレベルをマージするとか)に特化したものですが、繰り返し処理が激遅なPythonを補完するだけですので、PtyhonライブラリをC言語で書く教科書を熟読すればいけると思います。もちろんnumpyでも出来ることですが、繰り返し処理を軽くするには専用ライブラリがいいかなと。特化しといた方が書きやすいし。この案件に限らず、いずれ獲得したいライブラリです。

 本題のような余談ですが、PythonはC言語より100倍楽に書けるけど100倍遅いイメージです。Pythonは変数の型に自由度があること(整数の除算の結果が自動的に浮動小数点なるとか)が書きやすい特徴の一つですが、Pythonのコアが変数の「型」を推測するのに時間がかかるのだそうです。代表的な例がfor文を多用した際の激遅っぷりです。for文は繰り返しのステップ毎に扱う変数の型を推測しますから遅くなるのは当然です。C言語は変数の型が厳密に扱われて気難しい反面、優しさ全開のアシスト機能が無いので速いのです。あちらを立てればこちらが立たず。処理内容に寄ると言ってしまえばそれまでですが、単精度で単純な計算を延々と続ける調光卓みたいなシステムでは繰り返しが多い計算をC言語によるライブラリとして書くメリットは多大なのです。どうやら、Pythonというシステムはそんな使い方をするようにデザインされているとのこと。PythonはC言語で書かれたガチなライブラリを出来るだけ楽に使うための踏み台だとイメージすると良いようです。

 懸念されることは、世の中がコロナ前の状況に戻ってしまうと、ライトアップの件数も元に戻ってしまうことです。作っても使わないと意味ありません。

#照明器具 #Python
Icon of admin
 やってもやっても本業が終わりません。
 このところ、毎週火曜日水曜日頃、週末に人を貸してくれないかと相談が来ますので、同業者の皆さんも大変な日々を送られているのだと思います。お互い、体を労わって乗り切りましょう。

 そんな渦中ではありますが、少しは息抜きをしないと精神が持ちません。
 3Dプリンタの試作や製品構成の妄想は時間を取られないし途中でも切りやすいので本業の切れ目にやっています。
 そんな息抜きをしていて想うことは「なんで自分の仕事の身の丈に合った道具が無いのだろう」という疑問です。
 客席テーブルや先日作った平台箱足の一般的な規格に合わせた汎用のカゲ段もそうですが、誰でも思い付きそうなアイデアだけに無いことが不思議です。
 身近なところに題材があって作って使えば仕事が楽になるのですから、工作が趣味の身としては面白いっちゃ面白いのですけどね。

 今年はバレエ教室の発表会と簡単なライトアップをやれば落ち着きます。
 「舞監」と呼ばれたなら時給100円でも完璧な下準備をするのが当然と思っている馬鹿な制作の仕事が年明けにあります。仮に予算が50万円あって、舞台進行、音響、照明をやったとして、舞台進行50万、音響50万、照明50万みたいな見方をしてくるのです。最初は「何言ってんだ、コイツ!?」でしたが、それが分かった時に唖然。金額でこちらの仕事にモノ言うなら、せめて3で割ってからにしろよって思います。不満をぶつけても理解出来ない人だし、年末年始を時給100円で潰したくないので適当にいなすつもりです。

 さて、少し休んだので本業再開しましょう。

#雑談
Icon of admin
 オレメモです。

 PythonからC言語の関数を呼び出す(基本編)

 タイトルの通りです。

 部分の説明で満足しちゃって全体が見えない解説がネットにも書籍にも多い中、この作者は部分の説明から入って全体を見せてくれるのでわかりやすい。
 C言語とPythonの両方を知らないと意味不明の暗号でしかありませんが・・・

#Python
Icon of admin
 Pythonはとても書きやすい。インタプリタなので即実行出来てデバッグも楽だし、処理速度を求めないなら短時間で書けて生産性がいい。
 けど、重要な部分をC言語で書くなら全部C言語で書いてもいいんでないか?
 Pythonが私の用途でイマイチな点は条件分岐を多用する繰り返し処理が遅いことです。だからこそPythonのライブラリをC言語で書こうとしているのですが、目的が機械制御ですからPythonを使っている時点でそもそも間違っていると言われても仕方ありません。

 ならなぜC言語を使わないのか。
 何十年も前の話ですがC言語に挫折したトラウマがあるからです。MS-DOS上のTurbo-Cを触ってみましたが、書けるには書けるものの、やりたい機械制御は霞の向うの桃源郷の様でした。正しくはデバイス制御が出来なかったとなるでしょうか。それが故にPICマイコンに目が向いたとも言えます。

 ですが、今は良い教科書が多く、ネットにも先達の情報があふれています。デバイス制御をするにも先達たちが作り上げた資産の恩恵に与れます。
 ケースバイケースでありますが、C/C++をもっと積極的に使った方がいい気がしてきました。

 機械制御を目的とした製作なら、Pythonで試作をしてC/C++で本命を書くのがいいかもしれません。
 PythonもC/C++も作法が違うだけで本質的には同じですし。

 てなわけで、PythonのライブラリをC言語で書くことを勉強するのではなく、RaspberryPiをC/C++で開発する勉強をすることにします。
 手始めに何十年も前に買ったANSI-Cの教科書を読み直しましょうか。Art-NetエンジンをC/C++で書くことを当面の目標にしましょう。これはPythonベースでほぼ完成していますからね。

#Python
Icon of admin
 そんなワケでC/C++の再勉強を始めたワケですがPythonよりも難しい。
 基本的な文法は簡単ですが、ライブラリの考え方が前世代的ですので、どの関数がどのライブラリからの物なのか因果関係を理解するのに一手間余計にかかります。
 また、ポインタの考え方も理解はしているつもりですがソースを書こうとすると頭が混乱します。このあたりは慣れなんでしょうが、マネージされている今時の言語の便利さを痛感。
 だとしても、ポインタとライブラリの扱い方を攻略出来ればPythonと大差なく書けそうです。

#C言語
Icon of admin
 昼休みにC言語の教科書を読み直しています。
 「改訂第3版 ANSI C 対応 はじめてのC」
 (ANSIとはアメリカの工業規格です。ANSIの影響力は絶大で、C言語を名乗るならコレを基本とするのが絶対条件です。派生や方言はあれど、ANSI Cに準じて書かれたコードが動かなければC言語環境ではないのです。)
 平成7年改訂の少々古い版ですが、変化球な例題が少なく理解しやすい教科書です。
 買った当時は内容の1/5も理解出来ませんでしたが、今は書いてあることがストレス無く理解できるような気分。あくまで気分ですケド。
 Pythonなどの今時言語に比べるとC言語の表記は堅苦しいのですが、PICのアセンブラが一番好きな身には違和感が無く、堅苦しさの裏返しは曖昧さが無いことですから私はストレスを感じません。Pythonだってnumpyに代表されるライブラリを使うなら変数の型に気を配った堅苦しい書き方をするのですから同じことです。
 まずは基本記述と変数とポインタの扱い方をシッカリ頭に入れましょう。この教科書には改訂版(2008年改訂5版)があるのでポチってみました。基本となるこの2冊を読破すれば何とかなるっしょ。道のりは長いものの、オブジェクト指向(C++)の記述まで習得出来れば初級卒業です。アセンブラな感覚で書くならば純ANSI-Cだけでいいのですが、今時のライブラリを使うにはオブジェクト指向の習得が必須です。
 Art-NetパッチとライトアップIoTコンソールが当面の課題です。

#C言語
Icon of admin
 Pythonで難儀したオカゲ・・・ですが、C言語の基本が頭に入っていくと書きやすいなぁ~って気分になります。

 私が一番好きなのはPICのアセンブラです。アセンブラをガツガツ書いていると変人扱いされますが、機械を直接触っている感じがイイんです。
 C言語はこの感覚に近い気がします。優しさがないので取っ掛かりは大変ですが、見えてくると機械に直接触れている感じが強いのです。変数の型が厳密だと言っても、歯車だってタイミングベルトだってモジュールが合わなきゃ動かないのと同じことです。違いは物を理解するためのキーワードに過ぎず。むしろ共通点を見つけて利用した方が機械イジリは絶対に楽しい。
 コマンドの向こうにあるコンピュータの機械としての動作をイメージしないと出来ないことですが、コンピュータも歯車機械もバイナリコードか鉄板かの違いだけで部品が協調して動いていると思えば垣根なく感じられます。

 ・・・冒頭の書きやすいって言葉には語弊があるかも。
 変人が新しいオモチャを手に入れて嬉しくなってるだけです。すみません(笑

 分類は必要ですが、それが目的になって全体が見えなくなるのはつまらないと思うのです。
 分けることで理解を深め、よりよい組み合わせを見つけたいですね。

#妄想
Icon of admin
 オレメモです。

● C言語のポインタ

 私の理解ですが、ポインタとは変数の扱い方の一つで、定義した名称ではなくメモリ上のアドレスを指定して変数にアクセスする方法です。変数のアドレス得る方法と、アドレス指定で変数を読み書きする方法の二つを総称したものとなります。
 OSやプログラム言語はハードウェアを直視せずに済ませるためにあるのですが、ポインタはその意図に反して原始的なアプローチでメモリに直接アクセスする方法だと言ってもよいようです。

 様々な解説では変数のアドレス得る方法アドレス指定で変数を読み書きする方法、さらにポインタの効能を混在させて説明するので分かりにくいのです。
 先達の意図には反しますが、少しアプローチを変えて書いてみようと思います。
 ただし、変数とは保存先を表す<アドレス>と保存されている<数値>で構成されているので、この辺りが頭にイメージ出来ないと以下は理解不能だと思います。
 任意のアドレスをユーザが設定することも可能ですが、OSや言語が割り当てるアドレスを使うのが普通。いや、勝手に決めて正常に動くことはまず無いでしょう。

変数のアドレスを得る方法

 変数を定義するなら、
  int data;
 などと書けばいい。この段階で保存先のアドレスは決定されています。というか、変数が持つ情報の実体は保存先を表すアドレスです。
 この変数のアドレス値を得るなら、
  &data
 とすればいい。変数名の前に<&>(アンパサンドと読むらしい。アンドではないそうな)を付けて装飾すると変数のアドレスを表します。
 単に変数名とすれば中身を読み書き出来、変数名の頭にアンパサンドを付ければ保存先アドレスを読み書き出来るのです。

 例えば、変数の中身を表示するなら、
  printf("変数の中身:%d\n", data);
 アドレスを表示するなら、
  printf("変数の格納先アドレス:%d\n", &data);
 となります。

アドレス指定で変数を読み書きする方法

 変数のアドレスを保存するための変数はポインタ変数と呼ばれる特殊なものです。
 通常変数と違って
  int *addr;
 とか
  char *str_addr;
 などと定義します。変数の前に<*>(アスタリスク)を付けて装飾することでポインタ変数だと宣言します。
 アドレスを格納するには<*>を付けず、
  addr = &data;
 とします。

 アドレス指定(ポインタ)で変数を読み出すには、
  num = *addr;
 とします。上記に続くなら変数dataの内容が変数numに入ります。

 書き込むなら、
  *addr = 10;
 となり、変数dataの内容も10になります。何故なら、dataも*addrも同じアドレス(実体)にアクセスするからです。

 ポインタの活用方法、動的変数、静的変数なども理解しなければなりませんが、先達の情報以上のことは書けそうありません。
 自分ナリの整理は付きましたし、数か月後の自分が再理解できると思うのでここまで。

#C言語
Icon of admin
 今扱っている課題ではハードウェアの処理能力を出来るだけ主題の処理に振り向けたいのです。
 C/C++の使用やポインタの活用は大いに貢献しそうですが、プロセス間通信をポインタを介して行うことは今時のOSでは無理っぽい。プロセスの独立性をOSがガッチリ固めるからです。
 プロセス間で通信するにはOSがマネージするpipeや共有メモリを用いないといけません。幸い、pythonで同様のことをするよりも処理速度が速いようなので現実的ではありますが、このレベルの情報になりますとその筋の上級者が書いているので前提が高度で完全理解には程遠いところです。もっと基礎を固めないといけません。

 現時点では同プロセス内でのスレッド処理で構成するのが現実的かなと。
 同プロセス内ならポインタを介してスレッド間で変数を共有できるそうです。
 ただ、Art-Netエンジン(受信/パッチ/送信の一連処理)を独立したプロセスにしたいので、いずれはプロセス間通信を多用出来る技術も習得しないといけません。
 理解には及んでいませんが、芸は無いけど速度が出せる共有メモリが一番良さそうです。

追記

 プロセス間でのメモリ共有
 説明は少ないですが、サンプルコードに余計な装飾がありませんし、ほぼANSI-Cで書かれているので理解しやすい。
 共有メモリを宣言し、そのメモリのアドレスを数値としてポインタ変数に渡しているだけです。別プロセスへのアドレスの渡し方が地味ですが、動作を理解するにはこれでいいのです。単に値が渡ればいいのか、特別な手段で渡すのか、明確にわかります。
 これを習得出来たら楽になりますね。

#C言語
Icon of admin
 もう数日頑張れば本業が落ち着きます。夏休み前の小学生みたいにワクワクした気持ちですが何をしましょう。
 手つかずの課題は特盛です。自由に何でも出来そうな解放感はあっても時間も気力も体力も資金も有限です。
 物理装置を作るのもいいのですが、暖かい部屋に籠ってヌクヌクと出来る課題がいい。
 まずはArt-Netエンジンですかね。これが出来れば幾つかの課題をクリアするキーになります。
 調光制御の底辺で必要になる計算ライブラリも重要でしょうか。レベル値にマスタ値を与えて出力値を得るとか、幾つかのレベル値をマージするライブラリです。調光卓的なシステムでは必須です。
 さらにはANSIエスケープシーケンスを用いた画面表示ライブラリです。これはpythonが苦手なfor文を多用せずには書けないのでC言語で書くのが必須だからです。
 明日は数か月ぶりの完全オフなのでゆっくり考えましょう。

追記
 ゆっくり考えようと思ったのですが、アホみたいに疲れが出て何も出来ませんでした。
 アドレナリンに頼って誤魔化すと反動が酷いお年頃。

#雑談
Icon of admin
「行燈」を作らねばなりません。
 灯台の様な円筒の建物のライトアップを依頼されているのですが、歴史のある代物なので落ち着いた雰囲気にしたいと。
 建築デザイン的に窓の存在感が強いのでライトアップでも窓を主張したいと。
 カーテンを付けて光を透かせばいいのですが、ライトアップをしない面の窓からは出来るだけ光を漏らしたくないと。
 と、なりますと、内側から窓に向けた面だけが光る「箱」をこさえねばなりません。「行燈」なワケです。
 お金も手間も時間もかけられないし、どうしたものかと思案しておりますが、看板屋さんの知恵と資材を使わせてもらうことにしました。
 全体を木枠で作り、光を漏らしたくない面には肉厚のターポリンを張り、光らせる面にはノボリ看板で使う生地を張ります。相手物が相手物ですから防炎素材を使わないといけませんが、看板で使う素材は余程の安物でなければ防炎素材。
 ちょいと年末年始休暇を減らして製作ですねぇ。

#本業 #ガチ工作
Icon of admin
 ライトアップのご依頼が多くなっています。
 自家製の制御システムがあるので安く提供出来るのが強みですが、このところはリレーやタイマーが手に入らず難儀してました。
 今月に入ってダメもとでモノタロウさんを見直したところ在庫あり。メーカーのサイトを見ると「供給量が少ないのでご注意ください」とはあれど供給は復活している。
 速攻でオーダー。
 リレーはOMRONさんのG7L-2A-BUBですが、フランジ形状なので取り付けが楽で、小型で動作電流も少なく、20A流せるので使い勝手が良いリレーです。AC100vで駆動する物を主に使いますが、制御用のDC電源が不要だし、横繋ぎで動かせるし、既設のタイマーで動いているAC100v負荷があれば制御信号として電源を盗み出して使うことも出来ます。
 タイマーも数量限定ながら手に入りました。近い将来IoT化するつもりですが、電源の制御はシンプルなタイマーリレーに限ります。

#本業 #ガチ工作
Icon of admin
 C言語を習得する壁として代表的な機能は、
1)ポインタ
2)構造体、共有体
3)typedef(自分なりの変数の型を定義する)
 でしょうか。
 ポインタは以前も書きましたが、変数をアドレス値で読み書きする方法です。CPU、メモリ、デバイスというハードウェアの基本要素が頭に入ってないと捉えにくいのですが、わかればシンプルだと思います。
 構造体はPythonで言うところのタプルみたいなものです。
 共有体は機能はわかっても意味がイマイチピンときませんが、高度なことを書く際に便利なのでしょう。
 typedefにはじんわりとオブジェクト指向を感じますが、データベースにアクセスするなど、構造体を多用する際に便利な気がします。
 他は計算記述とループコマンドですが、これらは方言のレベルで受け入れればいいようです。配列に対する計算はPythonと少し違うみたいなので整理が必要です。
 要所の基本は理解できたっぽいので、とにかく書いて慣れることですね。
 呆れる程書いて体に馴染ませたPICのアセンブラ並にC言語を書けるようになれたら御の字です。

 実習はこれからですが、共有メモリも見えてきました。
 名前のままですが、複数のプロセスからアクセス(共有)できるメモリ領域を定義する方法です。
 mmap(メモリマップドファイル)とかpipeに似ていますが、mmapはRAMディスク上のファイルを共有するイメージで、pipeは変数の内容をシステムを通じて送受信するイメージです。どれもプロセス間で情報を共有する手段ですが、共有メモリはこの中でもローレベルでシンプルな方法だと思います。ローレベルすなわち速度が期待でき、最初の定義は面倒だけど定義さえ済めば単なる変数として扱えます。
 今時のOSは特定のプロセスがアクセスできるメモリ領域を制限することで動作の安定とセキュリティ(セキュア)を担保します。このため、別プロセスの領域にある変数(メモリ)にはポインタを使ってもアクセス出来ないのです。
 MS-DOSなどの初期のOSではありえなかった制限ですが、利便性とセキュアは矛盾するシステム要件ですから、抜け道として共有メモリが用意されたのしょう。アクセスが許可されたプロセスからはただのメモリ領域ですからポインタで普通に読み書き出来ます。動作速度が通常変数と大差ないのも嬉しい。
 共有メモリを定義して得られる情報はID、先頭アドレス、メモリサイズ、パーミッションだけです。OSやコンパイラがマネージしてくれない変数ですから、メモリに展開する構造体を手作業で管理しなければなりません。読み書きもマネージしれくれませんので、プロセス間で動作が衝突して誤動作に繋がる可能性があるので、セマフォを使うなり、データを一方通行にするなりして対策する必要もあります。この辺りはPICのアセンブラと同じですけどね。

 学んでて思うのですが、C言語はアセンブラを抽象化して書きやすくしたものだとするのが私には自然です。アセンブラを補助するマクロ集を膨らませていったらマクロ命令だけでもプログラムソースが書けるようになってしまい、ならばマクロの内容を整理したら更に便利ぢゃね?となったんじゃないかと勝手に想像しています。プログラム言語としてJAVAやPythonと同類に位置付けされますが、性根のところでは別分野の代物なんですよ。学ぶ側にとっては、俗に言う高級言語に分類するから逆に理解し難いんだと思うのです。ハードウェアが直に読むマシンコードを便利マクロだけで書くと思えばポインタなどは超お気楽な便利機能に見えてきます。
 つーて、アセンブラとかマシンコードって何?って聞かれてしまうと困ります。色彩をカラーフィルターの番号と光源のレベルで例えてしまう照明屋の言葉が一般には通じないことと同じです。

#C言語
Icon of admin
 マルチプロセスについて調べていました。
 fork()、exec()、共有メモリをセットで使えば良いようです。

Linuxプロセスの生成と実行 fork/exec

 fork()は現プロセスを別プロセスに完全コピーします。実行状態も含めてです。同じプログラムが別々のプロセスでfork()を実行する直前のコンディションで並列実行されますが、自身がコピーされた子プロセスなら別プロセスで実行したいプログラムをexec()で起動するというもの。exec()で別プログラムを起動すると呼び出したプログラムは終了しますので、結果として別プロセスで別プログラムが起動したことになります。共有メモリなどの設定を済ませてからfork()を実行すれば、共有メモリの情報を別プロセスの別プログラムに簡単に渡せるのでスマートです。

 以下、いささか愚痴ですし、教えを頂いている立場が言うことではないのですが、fork()、exec()、共有メモリがセットであることに触れずにfork()だけを切り取った情報が多いこと多いこと。ゴッタ煮説明が理解しにくいのは事実ですが、fork()だけではfork()の意味すらわからないと思うのです。私と同じことを調べている方がいたら、exec()に触れずにfork()だけを力説している情報は読み飛ばした方がいいと思います。もちろん、瞬間的に計算能力を増やすのにサブルーチン的な別プロセスを使う方法あるのでexec()を用いずfork()と共有メモリで組むこともあるとは思いますけど。
 マルチプロセスというとfork()単独の話ばかりが目につきますが、共有メモリをキーに掘り下げたところfork()、exec()、共有メモリの3点セットが理解出来たところです。

 話を戻しますが、共有メモリの情報を別プロセスに渡す方法も含め、具体的に解決した感じです。
 これなら、複数ある機能のどれかから別機能のプロセスを起動するより、必要な機能の全プロセスを起動するだけのメインプログラムを書いた方が管理しやすいような気がします。共有メモリなどを設定し、機能ごとのプロセスを起動していく最初に起動するプログラムです。一種のランチャーですね。

 うーん、やっぱりC言語は高級言語というよりアセンブラ風味だなぁ。

#C言語
Icon of admin
 書き方を考えています。
 PICマイコンを書く場合は、表面の機能からではなく、全体の構造からまとめていくからです。
 表面的な機能だけで装置は動きません。これらを後回しにすることを推奨するのではありませんが、機能と機能を能動的に結びつけなければ結果に至らないからです。
 DMXのディマーも、DMXを受信するだけでなく、アドレスを設定したり、ACの波長とゼロクロスポイントを取得したり、得た情報を結びつけて適切なタイミングでSCRをON/OFFしなければなりません。
 PICにおいてはハードウェアモジュールの割り込みフラグを用いるのは当然としても、1個のタイマーで複数の実行タイミングを生成出来なければなりません。タイマーはほんの数個しかありませんので、実行モジュール毎にタイマーを割り付けてタイムアップを取るのは不可能だからです。細かい構造は割愛しますが、環境に合わせた工夫を仕込んでおかないと動くモノも動かないのです。

 PICとは事情が違いますが、RaspberryPiを開発するなら複数のCPUスレッドに仕事を分散させて処理能力を出来るだけ引き出さないといけません。
 PythonでもC言語でも、プログラムをマルチスレッド化するだけならプロセスは一つでありCPUスレッドは1つしか使われません。CPUスレッドを振り分けるのはOSの仕事でプログラムの記述で指定することは出来ないようですが、CPUスレッドを最大限利用するにはマルチプロセスで書くことが最低条件となるようです。
 マルチプロセス化する方法はいくつかありますが、プロセスとプロセスの間に継承と共有をする情報があるならば工夫が必要です。これらを都度の例外とするのは開発においてもメンテナンスにおいても効率が良くありませんので、継承と共有の仕組みを最初から作っておくのが良いと思います。
 これから取り組もうとしている工夫は正にコレです。この仕組みがまとまればC言語での開発が飛躍的に発展します。

#C言語
Icon of admin
 2022年の大晦日です。
 コロナの感染拡大は完全に収まりはしなかったものの、仕事ではその影響も和らぎ忙しくさせて頂いた一年でした。
 ご協力を頂いた各方面の方々に改めて感謝申し上げます。

 ただ、体力的には過負荷が続いたもので、年末休暇に入ってからの2日間は完全にシャットダウン。大晦日の今日になってようやく普通に戻ってきた感じです。
 年末にやるべきことの大半が出来ませんが、少しはこなして実家にも顔を出しましょう。
 C言語の書き方は妄想だけなので合間に少し進めます。

#雑談