全年7月8日の投稿[2件]
2024年 この範囲を時系列順で読む この範囲をファイルに出力する
移動中に RaspberryPi pico について調べてみました。
RaspberryPi というより Arudino に近いのは言うまでもありませんが、PWM を16系統も出せるのがポイントかもしれません。
PWM を沢山出せるならモーターやLEDの制御に優位です。DMXを受信するライブラリを作ってしまえばLED-PARやムービングを作ることも出来そうです。
なんとかして作りたい状況ではないので、妄想だけ進めてみましょう。
#RaspberryPi
RaspberryPi というより Arudino に近いのは言うまでもありませんが、PWM を16系統も出せるのがポイントかもしれません。
PWM を沢山出せるならモーターやLEDの制御に優位です。DMXを受信するライブラリを作ってしまえばLED-PARやムービングを作ることも出来そうです。
なんとかして作りたい状況ではないので、妄想だけ進めてみましょう。
#RaspberryPi
2022年 この範囲を時系列順で読む この範囲をファイルに出力する
シリアル化の手順は次の通りです。
オレメモです。
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
オレメモです。
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