🗐 電装工芸日記 - 舞台照明機器の製作とか -

今年は開発案件を進めたい

or 管理画面へ

全年全月13日の投稿[34件](3ページ目)

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

Icon of admin
 RaspberryPiのGPIOでリレーを動かす回路です。
 今回はUSB電源を制御するので諸々名称はそれに合わせています。
20230315121152-admin.jpg
 リレーのB接点はオープンでもいいと思うのですが、放電経路と見なし、抵抗を介してGNDに落としています。

#電子工作 #RaspberryPi

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

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

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

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

#3D

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

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

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

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

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

#Python #[Art-Net]

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

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

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

#雑談

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

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

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

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

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

#ガチ工作

■思ってみた

春ですねぇ~。
花粉症の部下は死にそうですが、暖かいってのはいいことです。

編集

■全文検索:

複合検索窓に切り替える

■複合検索:

  • 投稿者名:
  • 投稿年月:
  • #タグ:
  • カテゴリ:
  • 出力順序:

■日付検索:

■カレンダー:

2023年3月
1234
567891011
12131415161718
19202122232425
262728293031

■カテゴリ:

■最近の投稿:

最終更新日時:
2025年4月29日(火) 20時16分48秒