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

能登半島地震で被災された方々にお見舞い申し上げます。

or 管理画面へ

2023年9月の投稿(時系列順)[30件]

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

Icon of admin
 pyinstaller でexeファイルを作ってみましたが環境によって微妙な不具合が出ます。原因は不明ですが、pyinstaller の操作手順かもしれません。
「PyinstallerでPythonプログラムをexe化する手順書(Windows編)」
 上記を参考に作った exeファイルは自分の環境では問題なく動いたのですが、ここに一工夫加えてみようと思います。
 仮想環境での実行が推奨されていますが、pyinstaller 自体も仮想環境にインストールするべきなのかもしれません。別の先達情報にはその様に書かれている物があります。
「PyInstallerを使ってみた」

追記
 作業手順のオレメモ。
 仮想環境に pyinstaller を入れての実行の方が良いようです。
作業ディレクトリに移動
> cd <作業ディレクトリ>
pipenv をインストール
> pip install pipenv
pipenv で使う python のバージョンを指定
> pipenv --python 3.9
pipenv(仮想環境)を開始
> pipenv shell
仮想環境にpyinstaller をインストール
> pipenv install -d pyinstaller
必要なライブラリをインストール
> pipenv install pyserial
> pipenv install PySimpleGUI
> pipenv install python-vlc
・・・etc
ビルドする
> pyinstaller ltcplayer.py --clean --noconcole --onefile
・・・数分で終わる。
作業ディレクトリ内の distフォルダ内 に ltcplayer.exe が出来ている。

終了なら仮想環境のshellから抜ける
> exit
仮想環境を削除
> pipenv --rm

作業ディレクトリは Python のソースコードがある階層でもいいのだけれど、
ゴチャゴチャするので私は一つ下の階層で作業をしています。
ソースコードがある階層で
> mkdir env
> cd env
> pyinstaller ..\ltcplayer.py --clean --noconcole --onefile
相対パスでソースコードを一つ上の階層として呼びます。
お好みですけど。


#Python #タイムコード

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

Icon of admin
 VLC が入っていて Python を入れていないパソコンが一台あったので exeファイルを試してみました。
 問題なく動きます。
 python-vlc は VLC を入れていなくても動くハズですが、入れておいた方がいいのかもしれません。

 VLC をアンインストールして試す手もありますが、DLL などが残る可能性もあるので、一度 VLC に触れたパソコンはインストール済みと思うしかありません。
 いずれにしても、VLC のインストールを推奨することにしましょう。
「VLC media player」
 とても便利なアプリです。特にこだわりがなければ、デフォルトアプリとしてもお勧めする一品です。

#Python #タイムコード

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

Icon of admin
 ボーダーケーブルを修理しています。
 シースを剥いてバラになった芯線をカバーするチューブが酷い状態になっています。チューブが縮んだのか芯線がシースから出てしまったのか七分丈になっています。これにビニテを巻いて誤魔化していたのですから困りものです。これは機能を失っている故障ですから要修理品だと思って欲しいなぁ~。
 取り急ぎなのでホームセンターを徘徊しましたがよさそうなビニールチューブがありました。
「三洋化成 特殊耐寒チューブ T-12」
 カタログスペックを読む限り環境耐性は良いと思われます。溶けるギリギリまで加熱しましたが寸法の変化は見受けられません。ビニル製品は熱、紫外線、水気を受けると形状がゆっくり変化していきますので数年経過を見ないとわかりませんが、安価なビニールチューブより期待出来そうです。
 ビニールチューブの固定方法ですが、被覆付き針金を巻き付けて本体ケーブルのシースと繋げてみました。電気工事のバインド線処理やカムロックコネクタの組み立て方法などをヒントにしています。ビニテやロックタイで巻くだけより長持ちしそうな気がします。
 一番の問題は作業時間です。バラして組み直すのに1本あたり2時間強かかります。安全のためにやらねばなりませんがかかりますねぇ。

#照明器具
Icon of admin
 LtcPlayer 0.2.2βです。
 細かいバグを修正しました。
「VLC media player」のインストールを推奨します。入れなくても動きますが、入れた方がいいみたい。

#タイムコード

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

Icon of admin
 なんとなーくネットを眺めていたところ「Open DMX USB」に目が止まる。
「Open USB USB」
 PCから DMX512 を出力する USB インターフェースです。仕様がオープンになっていてハードウェアは極めてシンプルです。FT232RL を用います。
 ライセンス仕様は GPLv2 です。大雑把に言うなら、改変しない限り商用/私用を問わず自由に使えます。
 FT232RL は LTC Generator でも使っているので、その延長線で使えるなら悪くないなぁ~と。

 このところ JASCII のオフライン打ち込みソフトのリクエストがあります。もちろん、ASCII や Comos-Text との変換を含めてです。
 正直言うと面倒臭い。有料にするとライセンスの管理やサポートが面倒だし、無料にすると空振り感が強い。プロでない私がコレを開発するには本業を1/3にして半年かかります。卓を持ち込めば済むことに掛ける手間ではありません。
 ですが、JASCII 関係は解決したいなぁ~って気持ちはあります。最近は、劇場間でデータを使いまわすためではなく、事前の空打ちが目的になっているからです。有志がお作りになったオフラインソフトもありますが、操作感に照明を作るリズム感がありません。テンキー操作でバンバン打ち込めるシステムがあってもいいのかなとは思います。
 もし作るなら、JASCIIベースでプレイバックも出来る様にしてPC卓にしてもいいのかなと。DoctorMX や Open DMX USB で DMX512 を出せばいいのです。

 イロイロ想うことはあるので、システムの構成だけでも考えていいのかなと。

#ガチ工作 #照明器具
Icon of admin
 「Open DMX USB」について考えていたのは移動中アタマが空いていたからです。
 学園祭への機材レンタルで搬送をしていたのですが、片道1時間半くらいかかるので考え事をするには丁度良い時間でした。

 そんな中で Art-Net Patch も思い出す。余りに難しく、数日アタマを全振りしないと進められないネタのために止まっています。
 ミキサー(マージ)、プリディレイ(入力に施す)、プリプロファイルカーブ、パッチ、ポストプロファイルカーブ、ポストディレイ(出力に施す)が主な機能ですが、これらの処理(エフェクターと呼称)は参照して計算、参照して計算、参照して計算をひたすら繰り返します。一つ一つはとても簡単な処理ですが、タイミング良く群のデータを短時間で処理しないといけないので構成が難しく、僅かな無駄が後からボディブローの様に効いてきます。

 年齢が年齢なので経験量に対し学習量が少ないなぁ~と思いつつも、オブジェクト指向やマルチスレッドなどが普通に使える様になってきますと今までと違った構成がアタマに浮かんできます。全体を一度に見ると難しい処理ですが、構成を分解・整理すれば分割したライブラリとして進められるんじゃないかと。
 厄介なのはミキサーとディレイですが、これらを実現するには最大遅延時間分の過去を送信元分保存しておく必要があります。このデータ構成を良く考え、エフェクターの出入りを一般化して進めれば機能単位での製作が可能になりそうな気がします。

 目的に対しその環境や言語をどう使えばいいか具体的な見込みを付けてからデータ構造と処理アルゴリズムの本構成を考えることが大切だと思う今日この頃。
 開発のプロからしたら当たり前過ぎることなんでしょうけど。

#[Art-Net] #C言語 #器具の製作

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

Icon of admin
 FT232RLで一般的なシリアル通信以外のことをするにはドライバを直接叩かないといけないらしい。250kbps 送信と長い長い BreakTime を生成するには OS のシリアルを叩いても不可能ですからね。
 FT232RL のメーカーである FTDI のサイトに D2XX Programmer’s Guide がありました。これが理解出来ればいいのでしょうが全く理解出来ません。

 Open DMX USB の Python ライブラリが落ちていました。これなら理解できます。
「PyFtdi」
 次の使用例はとてもわかりやすい。
「jlbrogdon/dmx_controller」
 細かい例外対策まで仕上げるには PyFtdi の API documentation を熟読しなければなりませんが、本丸が見えればナンとかなりそうな気分になります。
 PyFtdi の世代の問題なのか、少し手直しをしないとエラーになります。
 ・・・注意:READMEを読み返したらコレは RaspberryPi 向けに書いたモノだとか。動かなくても不思議はありません。

 Open DMX USB の回路図はこちらがわかりやすい。
「菅工房 Open DMX USB」

 汎用の FT232RL 基板を使うならここが参考になります。
「Open DMX USB コントローラによる DMX512制御」
 汎用の FT232RL にほんの少し設定を加えるだけで Open DMX UASB として使えます。FT232RL の電気特性は UART なので RS485 に変換する必要はあります。

 忘れちゃいけない本家。
「ENTTEC Open DMX USB」
「D2XX Programmer's Guide」

 習作ですので急ぐつもりはありませんしアイデアだけで終わるかもしれませんが、Open DMX USB を扱えたら応用の幅がありそうな予感はあります。テンキーでガツガツ打てて、MIDI でクロスフェーダーやサブマスターまで組めたらいいかなと。
 ホール卓のPC版ってのもネタとして面白いかも。「KOYATAKU」とでも名付けます?。ホール卓の基本構成をパソコンで構成してフリーウェアにしたらメーカーさんに嫌がられるでしょうけど、10年間違いなく動くのがメーカーさんのクウォリティであって、ここを真似するのは絶対不可能な領域です。

#器具の製作

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

Icon of admin
 「Open DMX USB」をオリジナルのアプリで使うことを考えていきますと「DoctorMX」も使えたらなと思ってしまいます。
 開発・販売元のクワテックさんでは DoctorMX を使うためのライブラリとサンプルコードを公開してくださってます。C/C++ 向けですが、サンプルコードは私でも読めるので扱えるかもしれません(その昔は全く理解出来ませんでした。ちょっと感動。)。
 小屋卓のPC版を作るかはともかく、DoctorMX と Open DMX USB の扱い方を習得しておくのはいいかもしれません。

 2023年9月現在、クワテックさんから DoctorMX の Python ライブラリの提供はありません。リクエストしたら作ってくれそうな気もしますが、まずは自力で解決を目指しましょう。工夫や努力もせずに安易なリクエストをされるのは私も嫌ですしね。

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

追記
 上記がコンパイル出来るか試みましたがエラーを吐いて終わらない。
 「error: Unable to find vcvarsall.bat」とのこと。
 なんじゃこりゃ!?
 環境は VSCode の上で gcc です。
 日本語サイトには直球な解決策は見つかりませんでしたが、某英語サイトに「Microsoft Visual C++ Build Tools」を入れたら解決するとの書き込み。

Microsoft Visual C++ ビルド ツールをインストールする

システムに Microsoft Visual C++ がインストールされていない場合、または古いバージョンがインストールされている場合は、Microsoft Visual C++ Build Tools をダウンロードしてインストールできます。Microsoft Visual C++ Build Tools には、Windows 上で C++ コードをビルドするために必要な環境変数とツールが含まれています。

Microsoft Visual C++ Build Tools をインストールする手順は次のとおりです。

1:Visual Studio Build Tools Web サイトに移動します。
2:インストーラーをダウンロードして実行します。
3:「C++ ビルド ツール」ワークロードを選択します。
4:「インストール」をクリックします。


 開演時間になったのでお試しはお預けですが、2時間ほど悩んでいたので期待感大。

#Python #器具の製作

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

Icon of admin
 「error: Unable to find vcvarsall.bat」とのエラーで困ったものの解決しました。
 以下、オレメモであります。
 あえて gcc を使うのは Linux で標準だからです。

VSCode で gcc を使う

2023年9月10日実施

● OS
エディション: Windows11 Pro x64
バージョン: 21H2

● Visual Studio Code
バージョン: 1.74.2 (user setup)

※ ダウンロード量が 1.8GB くらいあるのでネット回線が良好な環境での作業を推奨します。

● gcc をインストールする
・gcc を GitHub からダウンロード
 https://github.com/niXman/mingw-builds-b...
 「Release of 13.1.0-rt_v11-rev1」の項から Windows64bit版
 ダウンロード項目: x86_64-13.1.0-release-win32-seh-msvcrt-rt_v11-rev1.7z
・圧縮ファイルなので解凍する。.7z ファイルは CubeICE で解凍可能。「mingw64」フォルダが出来る。
・「mingw64」フォルダごと任意の位置に配置する。"C:\Program Files"が適当?」
・PATH を通しておく。環境変数のPATHに「mingw64\bin」を追加する。今回は"C:\Program Files\mingw64\bin"とする。
 「Windowsメニュー」→「設定」→「システム」→「バージョン情報」
 →「関連リンク」の行の「システムの詳細設定」をクリック。
 → ウィンドウ下の方の「環境変数」をクリック。
 → 上段のリスト、PATHの行をクリックし、「編集」をクリック。
 → 表示されたリストに"C:\Program Files\mingw64\bin"を追記する。
 → 追記したら閉じる。
・確認
 コマンドプロンプトか Power Shell で次を実行
> gcc -v
 もろもろ表示された最後に以下が表示されればOK。
gcc version 13.1.0 (x86_64-win32-seh-rev1, Built by MinGW-Builds project)

● Microsoft C++ Build Tools をインストールする
・microsoft のサイトよりインストーラーをダウンロード
 https://visualstudio.microsoft.com/ja/vi...
 ※「Microsoft C++ Build Tools」で検索しても上記 URL に行きつかない。試行錯誤中、偶然行きついた。
・ブラウザの「Build Tools のダウンロード」をクリックすると「vs_BuildTools.exe」がダウンロードされる
・ダウンロードしたインストーラーを起動する。
・「Visual Studio Installer」と画面が出てファイルのダウンロードが始まる。
・画面が切り替わり、右項目「インストールの詳細」に「MSBuild Tools」が表示されているの確認。
・左項目「C++によるデスクトップ開発」をクリック。右項目「インストールの詳細」に追加されているのを確認。オプションはデフォストのまま。
・右下の「インストール」をクリック。終わるまで待つ。ダウンロード量が 1.7GB ある。かなり時間がかかる。
・終了したら Windows を再起動する。

● VSCode の設定・・・拡張機能をインストール
・C/C++ Extension Pack
・Code Runner

● VSCode の設定・・・拡張機能の設定
・Code Runner
 Code-runner: Run In Terminal
  → チェックを入れる
 Code-runner: Executor Map
  → settings.json をクリック
  → "c" に -fexec-charset=CP932 を書き加える
 - "c" : "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
 + "c" : "cd $dir && gcc -fexec-charset=CP932 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",


 次のサイトの例題がコンパイル出来、Python からの呼び出しで動作しました。
「PythonからC言語の関数を呼び出す(基本編)」

 C/C++のライブラリを Python で呼び出せると製作の幅が広がります。
 手始めにしては難しい課題ですが、DoctorMX を Python から使えるようにしてみたいですね。

#C言語 #Python

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

Icon of admin
 VSCode でC言語の Python ライブラリを作る際、ラッパーには Python.h が必須です。
 ですが、
#include <Python.h>
 と書くと「Python.h なんて無いよ」と言われてしまいます。
 フルパスで指定すれば通りますがこれは避けたい。
 VSCode の拡張機能 C/C++ の設定に追加をします。「C/Cpp > Default:Include Path」の「項目の追加」から Python.h がある階層のパスを追加します。Python のインストールによってパスが違うのでそれに合わせて指定します。

#C言語 #Python

■当面の課題

桜のライトアップの季節です。花粉症の季節でもあります。
自分は平気ですが、花粉症の部下は死にそうな顔をしています。

編集

■全文検索:

複合検索窓に切り替える

■複合検索:

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

■日付検索:

■カレンダー:

2023年9月
12
3456789
10111213141516
17181920212223
24252627282930

■カテゴリ:

■最近の投稿:

最終更新日時:
2024年4月28日(日) 10時15分49秒