全年2月13日の投稿[4件]
2025年 この範囲を時系列順で読む この範囲をファイルに出力する
この先数日は現場が続くので Antari F1-FAZER のお相手が出来ません。ここまでの成果を見るのに組み直してみました。
フルパワーの爆煙には程遠く20%くらいって印象ですが、間違いなく煙が増えています。今日最大の瞬間煙量を継続してくれるなら空調が激しくない小ホールでは使えそうです。
と、喜んでいたらツンデレのツンさん来ましたよ。朝一でチェックしてしばらく放置したのですが、1時間後には振り出しのショボショボに戻った感じ。焦げカスが移動して塞いでしまったか、発煙器内部の逆止弁的な機構の動きが悪くてツンデレしているのか、これまでも何度もありましたので気にしません。テンションは下がりますけど。
これからも継続して処置してみましょう。
#器具の修理
フルパワーの爆煙には程遠く20%くらいって印象ですが、間違いなく煙が増えています。今日最大の瞬間煙量を継続してくれるなら空調が激しくない小ホールでは使えそうです。
と、喜んでいたらツンデレのツンさん来ましたよ。朝一でチェックしてしばらく放置したのですが、1時間後には振り出しのショボショボに戻った感じ。焦げカスが移動して塞いでしまったか、発煙器内部の逆止弁的な機構の動きが悪くてツンデレしているのか、これまでも何度もありましたので気にしません。テンションは下がりますけど。
これからも継続して処置してみましょう。
#器具の修理
2022年 この範囲を時系列順で読む この範囲をファイルに出力する
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]
製作環境は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]
Art-Netのアプリは画面表示とキー操作まで一応の完成をみました。
キー操作はレスポンスに少しムラがあるので改善したい点です。使えるレベルなので今のところは将来課題としておきますが、ユーザーがご機嫌をうかがいながら使うユーザーインターフェースは大嫌いなのでとても重要です。
余談ですが、売れている卓とそうでもない卓の違いにはこういった点の僅かなストレスの差もあります。卓は手段としての道具ですが、国内メーカーはカタログスペックばかり求めて手に馴染む道具を作ろうとしない。買うのは使う人ではありませんから仕方ないことでもありますが、国産のホール卓がダメな点です。国産で唯一、松村さんの卓にはこういったストレスが少ないのですが・・・。
とまぁ愚痴はおいといて、これで本丸であるArt-Netの受信に取り掛かれます。
単純な受信は別回しするThread内のsocketで受けるだけなので難しくないと思うのですが、パケットのデコードが少し面倒かもしれません。Art-Netのパケットはバイト列ですが、これらをPythonで扱いやすい様に分解して変換しなければなりません。Pythonはバイト型の扱いが少し苦手ですし、パケットにはアスキーテキスト、LSBの2バイト数、MSBの2バイト数、バイト型が混在しているので、よく考えて作らないといけません。実行回数が多い処理なだけに軽さも重要です。
#[Art-Net] #Python
キー操作はレスポンスに少しムラがあるので改善したい点です。使えるレベルなので今のところは将来課題としておきますが、ユーザーがご機嫌をうかがいながら使うユーザーインターフェースは大嫌いなのでとても重要です。
余談ですが、売れている卓とそうでもない卓の違いにはこういった点の僅かなストレスの差もあります。卓は手段としての道具ですが、国内メーカーはカタログスペックばかり求めて手に馴染む道具を作ろうとしない。買うのは使う人ではありませんから仕方ないことでもありますが、国産のホール卓がダメな点です。国産で唯一、松村さんの卓にはこういったストレスが少ないのですが・・・。
とまぁ愚痴はおいといて、これで本丸であるArt-Netの受信に取り掛かれます。
単純な受信は別回しするThread内のsocketで受けるだけなので難しくないと思うのですが、パケットのデコードが少し面倒かもしれません。Art-Netのパケットはバイト列ですが、これらをPythonで扱いやすい様に分解して変換しなければなりません。Pythonはバイト型の扱いが少し苦手ですし、パケットにはアスキーテキスト、LSBの2バイト数、MSBの2バイト数、バイト型が混在しているので、よく考えて作らないといけません。実行回数が多い処理なだけに軽さも重要です。
#[Art-Net] #Python
ありがちな1液式の塗料は1週間以上放置しないと現場で使えませんが、ポリエステル樹脂は2日もあれば完全硬化して使えます。扱いが面倒なところや少なくない制限もありますが、現場投入までの工程としてはむしろ使いやすいかもしれません。
そんなポリエステル樹脂を塗布した客席テーブルは今日から現場に出向です。自分は行きませんが、在籍園児が数百人いる幼稚園のお遊戯会で部下が一週間ほど使います。客席に卓を仮設するので客席テーブルの本業であります。使い勝手の確認はもとより、荷重をかけ続ける状況なのでロードテストにはうってつけです。
この幼稚園は若園長が好き者で、スモーク炊いてムービング使って有名アイドルのアリーナコンサートよろしくゴリゴリにしたいとか。過去映像を見ましたが、明かりは頑張ってイイ感じに作ってますが、園児たちが自由過ぎてアンバランスなのか面白いのかよーわからん。お遊戯会でここまでしてどうする!?ってのが本音ですが、園児たちの思い出になって親御さんが楽しんでくれるなら仕事としては成立。
ということで、ダメなところと傷みやすいところがもっともっと見えてくるといいかな。
#ガチ工作
そんなポリエステル樹脂を塗布した客席テーブルは今日から現場に出向です。自分は行きませんが、在籍園児が数百人いる幼稚園のお遊戯会で部下が一週間ほど使います。客席に卓を仮設するので客席テーブルの本業であります。使い勝手の確認はもとより、荷重をかけ続ける状況なのでロードテストにはうってつけです。
この幼稚園は若園長が好き者で、スモーク炊いてムービング使って有名アイドルのアリーナコンサートよろしくゴリゴリにしたいとか。過去映像を見ましたが、明かりは頑張ってイイ感じに作ってますが、園児たちが自由過ぎてアンバランスなのか面白いのかよーわからん。お遊戯会でここまでしてどうする!?ってのが本音ですが、園児たちの思い出になって親御さんが楽しんでくれるなら仕事としては成立。
ということで、ダメなところと傷みやすいところがもっともっと見えてくるといいかな。
#ガチ工作