全年全月9日の投稿[34件]
2024年2月 この範囲を時系列順で読む この範囲をファイルに出力する
オーブントースターは復活しました。
塗装が落ちたり細かい錆があったりしますが、使えるモノを捨てるのは忍びない。
表記には「05年製」とある。つまり「2005年製」ってことです。間もなくハタチぢゃないすか!
マイコンなど入っていないシンプルな製品ですから長持ちするんかな?
しばらく空焼きしたら現場復帰です。
#器具の修理
塗装が落ちたり細かい錆があったりしますが、使えるモノを捨てるのは忍びない。
表記には「05年製」とある。つまり「2005年製」ってことです。間もなくハタチぢゃないすか!
マイコンなど入っていないシンプルな製品ですから長持ちするんかな?
しばらく空焼きしたら現場復帰です。
#器具の修理
客席テーブルを思い出す。
忘れていたワケではないのですが、現場で仮設卓を組んでいたらアイデアが出たのです。
ナニが出たって木材の組み方とそれを加工する治具です。
写真や図面を揚げないと伝わり難いのですが、トリマーでこんな加工したら比較的簡単でイイ感じに強度が出るんでないか!?ってイメージが湧き、その加工治具は3Dプリンタで作ったら簡単で精度が出るんじゃね?って物語。早速プリントしてますが、CAM曰く23時間以上かかるとか。始めたら放置するだけですので時間はあまり関係ないけど。
あと7時間くらいかな?明け方には終わりそうですから明朝試そうと思います。
この治具が行けるなら、2X4材の突合せを加工する治具もこの方法を応用してみようと思います。
全ては試すことから始まり、根気よく結果を求め、他に応用するのです。
追記
プリントが終わりました。思ったよりいい仕上がり。
最終的な歪みは芯まで冷めないとわかりませんが、ヤスリ掛けして調整すれば十分な感じです。
#ガチ工作
忘れていたワケではないのですが、現場で仮設卓を組んでいたらアイデアが出たのです。
ナニが出たって木材の組み方とそれを加工する治具です。
写真や図面を揚げないと伝わり難いのですが、トリマーでこんな加工したら比較的簡単でイイ感じに強度が出るんでないか!?ってイメージが湧き、その加工治具は3Dプリンタで作ったら簡単で精度が出るんじゃね?って物語。早速プリントしてますが、CAM曰く23時間以上かかるとか。始めたら放置するだけですので時間はあまり関係ないけど。
あと7時間くらいかな?明け方には終わりそうですから明朝試そうと思います。
この治具が行けるなら、2X4材の突合せを加工する治具もこの方法を応用してみようと思います。
全ては試すことから始まり、根気よく結果を求め、他に応用するのです。
追記
プリントが終わりました。思ったよりいい仕上がり。
最終的な歪みは芯まで冷めないとわかりませんが、ヤスリ掛けして調整すれば十分な感じです。
#ガチ工作
オーブントースターはとても綺麗になりました。
焼き付きも含め油汚れはほぼ落ちました。これ以上落とそうとすると表面処理を削ってしまいますから十分かと。耐熱と防錆を兼ねた物理的耐久性のある表面処理を再施工するのは難しいのです。ドブ付けメッキや粉体塗装なんて無理無理。少し錆がありますが見えなかったことにしましょう。
汚れの落とし方ですが、焼かれて積もった大きめの油汚れをスチームクリーナーで落としつつ柔らかくし、粉石鹸を溶かしたぬるま湯に漬けこみます。その後、表面処理を落とさない程度にナイロンブラシやらスチールウールなどで擦り、ブラシ付きのスチームクリーナーに石鹸水を含ませながらゴシゴシ。落とせる汚れはここまでで落ちますが、最後は中性洗剤で石鹸を洗い流します。石鹸水はアルカリ性ですから中和の意味も含めて中性洗剤で洗い流すのがいいようです。
今は部品類を乾かしています。乾いたら組み直しです。
油を落とすって意味ではグリスが固着した機械類の掃除にも応用できそうです。
#器具の修理
焼き付きも含め油汚れはほぼ落ちました。これ以上落とそうとすると表面処理を削ってしまいますから十分かと。耐熱と防錆を兼ねた物理的耐久性のある表面処理を再施工するのは難しいのです。ドブ付けメッキや粉体塗装なんて無理無理。少し錆がありますが見えなかったことにしましょう。
汚れの落とし方ですが、焼かれて積もった大きめの油汚れをスチームクリーナーで落としつつ柔らかくし、粉石鹸を溶かしたぬるま湯に漬けこみます。その後、表面処理を落とさない程度にナイロンブラシやらスチールウールなどで擦り、ブラシ付きのスチームクリーナーに石鹸水を含ませながらゴシゴシ。落とせる汚れはここまでで落ちますが、最後は中性洗剤で石鹸を洗い流します。石鹸水はアルカリ性ですから中和の意味も含めて中性洗剤で洗い流すのがいいようです。
今は部品類を乾かしています。乾いたら組み直しです。
油を落とすって意味ではグリスが固着した機械類の掃除にも応用できそうです。
#器具の修理
2024年1月 この範囲を時系列順で読む この範囲をファイルに出力する
ちょっと大きな賀詞交歓会でした。
昨年末から準備を進めていた案件ですので、自分の2023年がようやく終わった気分です。明日も現場ですが一区切りです。
工作したい欲求がウズウズで、カラダを休める必要がなければ今すぐにも作業を始めたいくらいですが、気が抜けると疲れも出ますのでまずは休息から。
回復したらネタの整理からです。この半年、ネタを思いついては息抜きに妄想をし部品の購入と作業を中途半端に進めてしまいましたのでアタマも作業台もゴチャゴチャです。綺麗好きには程遠いものの、少しは整理しないといけません。
#器具の製作
昨年末から準備を進めていた案件ですので、自分の2023年がようやく終わった気分です。明日も現場ですが一区切りです。
工作したい欲求がウズウズで、カラダを休める必要がなければ今すぐにも作業を始めたいくらいですが、気が抜けると疲れも出ますのでまずは休息から。
回復したらネタの整理からです。この半年、ネタを思いついては息抜きに妄想をし部品の購入と作業を中途半端に進めてしまいましたのでアタマも作業台もゴチャゴチャです。綺麗好きには程遠いものの、少しは整理しないといけません。
#器具の製作
2023年11月 この範囲を時系列順で読む この範囲をファイルに出力する
カムロックケーブルが故障です。ユニットのレセプタクルから外れなくなってしまいました。固定ネジが折れて樹脂製のシェルが空回りするのです。
バイスグリップで挟んで外せましたが交換しないといけません。カムロックの取り付けは何度もやっているので問題ありませんが取り外すのは別です。
固定ネジがダメになっているので樹脂製のシェルは廃棄です。遠慮なくカッターで割り、端子を外して新品に付け替えます。丈夫な物を壊すのは一苦労ですが無事に交換完了です。
外れなくなった原因は潤滑不足による捻じ込みトルク過多です。カムロックは最大180度、最小でも120度捻じ込まないといけませんが、強引な捻じ込みを繰り返しますと固定ネジに負担がかかって破損するようです。KURE556(666)やWD40、シリコンなどを塗布して接点のロックピンが必要以上に噛まない様に管理しなければなりませんが、コロナでしばらく使っていなかったのでメンテナンスを忘れていました。
接点の洗浄を兼ねてKURE556の塗布をするすることを定期メンテナンスの課題にします。また、固定ネジも緩むことがありますから塗布の際に締め付けを確認することも追加です。
#器具の修理
バイスグリップで挟んで外せましたが交換しないといけません。カムロックの取り付けは何度もやっているので問題ありませんが取り外すのは別です。
固定ネジがダメになっているので樹脂製のシェルは廃棄です。遠慮なくカッターで割り、端子を外して新品に付け替えます。丈夫な物を壊すのは一苦労ですが無事に交換完了です。
外れなくなった原因は潤滑不足による捻じ込みトルク過多です。カムロックは最大180度、最小でも120度捻じ込まないといけませんが、強引な捻じ込みを繰り返しますと固定ネジに負担がかかって破損するようです。KURE556(666)やWD40、シリコンなどを塗布して接点のロックピンが必要以上に噛まない様に管理しなければなりませんが、コロナでしばらく使っていなかったのでメンテナンスを忘れていました。
接点の洗浄を兼ねてKURE556の塗布をするすることを定期メンテナンスの課題にします。また、固定ネジも緩むことがありますから塗布の際に締め付けを確認することも追加です。
#器具の修理
2023年9月 この範囲を時系列順で読む この範囲をファイルに出力する
「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 #器具の製作
開発・販売元のクワテックさんでは 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年8月 この範囲を時系列順で読む この範囲をファイルに出力する
次の2つの関数を作成しました。
・時間値をフレーム数に変換
・フレーム数からタイムコード値に変換(30・29.97・25・24fpsNDF、29.97fpsDFをサポート)
29.97fpsでは±1フレームの誤差が出ますが、他のfpsの様にキリ良く計算出来ないからです。演出機器を動かすなら29.97fps以外を使った方がいいと思います。
ドロップフレーム(DF)の処理はパズルでした。規則は単純ですが、計算式だけで解を得られない数の置き換えは思った以上に難儀します。
この後は LTC Player から得られる時間値からタイムコード値を自動でカウントし続けるモジュールを作ります。すでに試作品があるのでそれを参考にします。ここでもDFが面倒な課題となります。
#タイムコード
・時間値をフレーム数に変換
・フレーム数からタイムコード値に変換(30・29.97・25・24fpsNDF、29.97fpsDFをサポート)
29.97fpsでは±1フレームの誤差が出ますが、他のfpsの様にキリ良く計算出来ないからです。演出機器を動かすなら29.97fps以外を使った方がいいと思います。
ドロップフレーム(DF)の処理はパズルでした。規則は単純ですが、計算式だけで解を得られない数の置き換えは思った以上に難儀します。
この後は LTC Player から得られる時間値からタイムコード値を自動でカウントし続けるモジュールを作ります。すでに試作品があるのでそれを参考にします。ここでもDFが面倒な課題となります。
#タイムコード
2023年5月 この範囲を時系列順で読む この範囲をファイルに出力する
LTC音源で卓が動きました。「MA dot2 core」です。
トリガータイムは手打ちも出来ますが「TC Record」機能を使えばLTCを受けながら「GO」を押すことでタイムが取れます。タイムの修正も現在値に対するプラスマイナスで行えます。
ただし、LTCが走り出してから認識するのに0.3sec.程度かかります。また、エグゼキューターをOffにしておいてもその時刻が来るとCUEが走ってしまいます。
装置を構成するには卓の挙動をよく観察しないといけませんが、一度覚えさせればその通りに再現してくれる感覚は良いですね。
追記
LTCの認識は同じ値を送り続けたら解決出来るかもしれません。スタートするまで1フレーム前のデータを繰り返し送り続けるのです。1:00:00.00からスタートするなら0:59:59.29(29.97fps)のデータを送り続けるのです。試すしかありませんが、アクティブな一時停止が実現出来れば手段が広がるように思います。
#器具の製作 #タイムコード
トリガータイムは手打ちも出来ますが「TC Record」機能を使えばLTCを受けながら「GO」を押すことでタイムが取れます。タイムの修正も現在値に対するプラスマイナスで行えます。
ただし、LTCが走り出してから認識するのに0.3sec.程度かかります。また、エグゼキューターをOffにしておいてもその時刻が来るとCUEが走ってしまいます。
装置を構成するには卓の挙動をよく観察しないといけませんが、一度覚えさせればその通りに再現してくれる感覚は良いですね。
追記
LTCの認識は同じ値を送り続けたら解決出来るかもしれません。スタートするまで1フレーム前のデータを繰り返し送り続けるのです。1:00:00.00からスタートするなら0:59:59.29(29.97fps)のデータを送り続けるのです。試すしかありませんが、アクティブな一時停止が実現出来れば手段が広がるように思います。
#器具の製作 #タイムコード
「LTC Sound Player」を本格的に製作する前にLTCによって生産性が上がるのか検証しなければなりません。本番操作が楽でも結果的に作業量が増えたら本末転倒だからです。
音源を加工せずにLTCを出すことが目標ですが、まずはテスト音源を作成。花火屋さんに倣い、L-chに音楽、R-chにLTCです。今回は29.97fps(NDF)と25fpsの2種類を作ってみました。
LTCはここで作ってもらいました。便利なサイトがあるものです。
1時間目から本編開始とし、マイナス2フレーム(29.97fpsなら00:59:59.28)からのLTCです。2フレームは01:00:00.00を確実に掴んでもらうためのノリシロですが、普段の音源編集でも0.05秒程度のノリシロ(余白)を付けているので問題無いと思います。
吉と出るか凶と出るか。
そうそう、VLCをベースにするなら映像を元にしてもLTCが出せそうです。
#器具の製作 #タイムコード
音源を加工せずにLTCを出すことが目標ですが、まずはテスト音源を作成。花火屋さんに倣い、L-chに音楽、R-chにLTCです。今回は29.97fps(NDF)と25fpsの2種類を作ってみました。
LTCはここで作ってもらいました。便利なサイトがあるものです。
1時間目から本編開始とし、マイナス2フレーム(29.97fpsなら00:59:59.28)からのLTCです。2フレームは01:00:00.00を確実に掴んでもらうためのノリシロですが、普段の音源編集でも0.05秒程度のノリシロ(余白)を付けているので問題無いと思います。
吉と出るか凶と出るか。
そうそう、VLCをベースにするなら映像を元にしてもLTCが出せそうです。
#器具の製作 #タイムコード
オレメモです。
LTCジェネレーターの制御は、パソコンやらRaspberryPi(以下、母艦と呼称)でLTCのバイナリを生成し、PICで所定のbpsの差動バイフェーズに変換することにします。
PICにはFIFOバッファーを構成しようと思っていますが、母艦からPICへの送信がバッファオーバーフローか遅延にならない様にタイミングを考慮しないといけません。PICから母艦へデータ送信要求(許可)をする方法が必要でしょう。FT232RLはフロー制御も出来ますからそれを使ってもいいのですが、RaspberryPiのUARTにはフロー制御がありません。GPIOを直接制御してその様な信号を作ってもいいのですが、フロー制御を持ちなくても済むならそれに越したことはありません。UARTはデータを双方向でやり取りできますので、PICから母艦へデータ送信要求を送ることにしましょう。
SMPTE12Mのフォーマットを8bit(1byte)区切りで見ますと、バイナリグループのビットを常に0にすることが条件ですが、上位4bitは0x0,0xB,0xF,(0x3)のどれかにしかなりません(0x3は逆再生した際にシンクワードで発生する値)。これ以外の値ならば制御コードとして使えます。ASCIIテキスト制御ではありませんから0x00と0xFF以外なら何でもいいので、双方で使える制御コードにしておけば後でわかりやすいかなと。
この場合、上位4bitは0x5か0xAが一般的でしょうか。2進数ならb0101またはb1010です。0x7F以下のASCII文字になる値がデバックしやすいかもしれないので0x5かな。
例えばですが、
0x50 初期化(LTC送信停止・バッファクリア)
0x51 これに続くデータは設定データ(設定はfpsとDF/NDF)
0x52 これに続くデータは送信データ
0x57 データエンド
0x58 データ受信要求
0x59 データ送信要求
0x5F データ(動作)エラー
こんな感じ?
後はbpsの精度をどこまで求めるかです。
タイムコードの項に延々と書いていますが、波形周期を得るタイマー割込みのコンペア値を動的に変化させることで長周期の精度を水晶発振子の精度ギリギリまで出すことは可能です。ですが、どこまでの精度が必要なんでしょうね。
#器具の製作 #タイムコード
LTCジェネレーターの制御は、パソコンやらRaspberryPi(以下、母艦と呼称)でLTCのバイナリを生成し、PICで所定のbpsの差動バイフェーズに変換することにします。
PICにはFIFOバッファーを構成しようと思っていますが、母艦からPICへの送信がバッファオーバーフローか遅延にならない様にタイミングを考慮しないといけません。PICから母艦へデータ送信要求(許可)をする方法が必要でしょう。FT232RLはフロー制御も出来ますからそれを使ってもいいのですが、RaspberryPiのUARTにはフロー制御がありません。GPIOを直接制御してその様な信号を作ってもいいのですが、フロー制御を持ちなくても済むならそれに越したことはありません。UARTはデータを双方向でやり取りできますので、PICから母艦へデータ送信要求を送ることにしましょう。
SMPTE12Mのフォーマットを8bit(1byte)区切りで見ますと、バイナリグループのビットを常に0にすることが条件ですが、上位4bitは0x0,0xB,0xF,(0x3)のどれかにしかなりません(0x3は逆再生した際にシンクワードで発生する値)。これ以外の値ならば制御コードとして使えます。ASCIIテキスト制御ではありませんから0x00と0xFF以外なら何でもいいので、双方で使える制御コードにしておけば後でわかりやすいかなと。
この場合、上位4bitは0x5か0xAが一般的でしょうか。2進数ならb0101またはb1010です。0x7F以下のASCII文字になる値がデバックしやすいかもしれないので0x5かな。
例えばですが、
0x50 初期化(LTC送信停止・バッファクリア)
0x51 これに続くデータは設定データ(設定はfpsとDF/NDF)
0x52 これに続くデータは送信データ
0x57 データエンド
0x58 データ受信要求
0x59 データ送信要求
0x5F データ(動作)エラー
こんな感じ?
後はbpsの精度をどこまで求めるかです。
タイムコードの項に延々と書いていますが、波形周期を得るタイマー割込みのコンペア値を動的に変化させることで長周期の精度を水晶発振子の精度ギリギリまで出すことは可能です。ですが、どこまでの精度が必要なんでしょうね。
#器具の製作 #タイムコード