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

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

or 管理画面へ

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

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

Icon of admin
 共有メモリを使う場合、読み書きが衝突しないように配慮しなければなりません。
 今回は情報が一方向ですから比較的簡単ですが、よく考えないとトラブルのもとです。
 一番簡単なのは、DMX512 の値の配列の共有メモリと読み書きフラグの共有メモリを使う方法です。読み書きフラグは送り側がセットし受け側がクリアします。送り側はフラグがクリアならば共有メモリに書き込んでフラグをセットし、受け側はフラグがセットしてあれば共有メモリから読み込んでフラグをクリアします。
 双方の待ちを考慮しないとといけませんが、送り側が受け側のフェーズ時間の数倍でチェックをすれば遅延は1フレームです。何よりも Queue に比べ処理時間が短く情報の渋滞も起き難いことを優先しましょう。

#Python #器具の製作
Icon of admin
 Python での Open DMX USB の制御は8時間経過でも正常に動いている様子。
 不定期に一瞬の不整合が起きているとしても確認の方法がありません。とりあえずこんなもんでいいのかな?
 この後は Class 化と Thread 化をします。Thread 間通信は Queue ではなく 共有メモリを使いましょう。共有メモリは Tuple を FIFO で使うような便利なことは出来ませんが、今回は数値の配列を一方向で渡すだけですので、速度が期待できる共有メモリがいいでしょう。
 下記は Thread ではなく Prosess の例題ですが、共有メモリのさわりが分かりやすい。
「Pythonでプロセス間の値の共有」

#Python #器具の製作
Icon of admin
 Python で Open DMX USB を動かすことに成功しました。
 setbreakon と setbreakoff の挙動は予想の通りでした。
 以下がテストソースです。
 slot1 と slot512 を 0 から255 までカウントして終了します。
### Open DMX USB test ###
import ftd2xx as ftd
import time

if __name__ == '__main__' :
 baudrate = 250000
 word_length = 8
 stop_bit = 2
 parity = 0
 purge_tx = 2
 try :
  d = ftd.open( 0 ) # Open first FTDI device
  d.setBaudRate( baudrate )
  d.setDataCharacteristics( word_length, stop_bit, parity )
  d.purge( purge_tx )
  channelVals = bytearray( [ 0 ] * 513 )
  channelVals[ 0 ] = 0 # start code
  for i in range( 256 ) :
   try :
    channelVals[ 1 ] = i
    channelVals[ 512 ] = i
    channelbytes = bytes( channelVals )
    # Send Slot
    cstart = time.perf_counter_ns( )
    d.write( channelbytes )
    while time.perf_counter_ns( ) - cstart < 22800000 :
     pass
    # Break Time
    d.setBreakOn( )
    cstart = time.perf_counter_ns( )
    while time.perf_counter_ns( ) - cstart < 192000 :
     pass
    # Mark After Break
    d.setBreakOff( )
    cstart = time.perf_counter_ns( )
    while time.perf_counter_ns( ) - cstart < 12000 :
     pass
   # Press Ctl+C to Exit
   except KeyboardInterrupt :
    break
  d.close( )
 except :
  print( 'No Device' )

 time.sleep() は求める精度に足りないので time.perf_counter_ns() を用いています。
 0 から 255 のカウントが5.9秒強で終わるので 43fps くらい。ほぼ規格最大値です。
 本当にコレでいいのかわからんけど、モヤモヤしてたのがスッキリした。

#Python #器具の製作

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

Icon of admin
 LTC Player を作るのにPythonのGUIライブラリを検討しています。
 Python標準のtkinterも良いと思うのですが少し物足りない感じ。
 マルチプラットホーム対応で無料の条件ですと kivy が良さそうです。出来ることが多すぎて難しそうですが、これは贅沢な悩みです。
 kivyはkv言語と呼ばれるコマンド群を使うことでスタイルシートの様な使い方が出来る様です。Tkinterよりも細かい画面作りが可能ということです。
 何が出来るのか、どこまで出来るのか、どうやったら使えるのかはこれからの勉強です。

追記
 仕事の合間にkivyについて調べてみましたがとても難しい。これで出来ない表現は無いように思える程ですが、ここまで必要か疑問。正直、kivyの学習には時間がかかり過ぎます。
 別なGUIライブラリが無いかと調べたところ「PySimpleGUI」というのがありました。必要な表現が出来るかわかりませんが簡単です。コマンドで画面を描きますが、難易度はFileMakerProの画面描きと大差ない感じです。

#Python

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

Icon of admin
 ダイレクトボックスってのがあります。主に楽器の信号をミキサーで受けやすく変換する装置です。
 メジャーな普及機はBOSS(Roland)のDI-1でしょうか。安価で安定した製品ですが、可も無く不可も無く色気はありません。ダメではないけど物足りなさはあります。BassのLINE取りに使われることが多いように見受けられますが、音が丸くなってしまうというか何というか、当たり障りの無い音になってしまうような気がします。楽器の音は演奏者さんや音響さんの調整、何よりも好みに寄るので絶対値は無いと思いますが、某音響さん曰く「何を繋げてもDI-1の音になっちゃうよね」とのこと。もう少し楽器の個性を引き出せたらいいんじゃないかとか、今どきの高品質な部品を替えたら改善しないのかとか思ったり。
 アナログ音声回路は組み合わせのバランスが重要ですから一部を良い部品に替えれば単純に良くなるモノでもないと思いますが、オペアンプやコンデンサを交換したらどんな変化をするか凄く興味があります。
 DI-1の回路を見ますとオペアンプには4558直系のM5218が使われています。安定したとても良いオペアンプだと思いますが、可もなく不可もなくに徹したちょっと古い製品です。これを高音質とウワサのJRCのMUSES01やMUSES02に替えたらどうなるのだろうと数年前からモヤモヤしてました。MUSESシリーズはコストを度外視し理想を求めて作ったオペアンプらしいですが、オーディオ改造オタク界隈では評価が高く、並みの4558互換品が数十円で買えるところMUSES01は3,500円もします。100倍良い音(?)が出ることはないでしょうが、試したい酔狂な気持ちは抑えられません。
 ただ、DI-1に使われているM5218はSIP8PでMUSESシリーズはDIP8Pです。ピンアサインは同じですが形状は違います。単純に載せ替えは出来ませんので変換基板が必要です。連休明けに時間があったので基板を描いて中華基板に発注してみました。先ほど届いたので取り付け。取り急ぎは手元にあるNJM4580で動作テストをし、MUSES01が入荷したら付け替えてみようと思います。
 個性を持った高品質なダイレクトボックスは沢山ありますので、あえてDI-1を改造することに意味があるのかと問われそうですが、「純粋に興味によるもの」なので。。。
 もしオペアンプの交換で良い変化を得られるなら、INPUTの直下に使われている0.01uFのセラミックコンデンサを高品質な物に替えるのもアリです。実装されているのはベッタベタの普及品ですから、高品質でレスポンスが良いセラミックコンデンサに替えたらどうなるか「興味深々」であります。

#音の世界
Icon of admin
 オレメモです。
 LTCの差動バイフェーズのクロックをPICで起こす計算です。
 Fosc32MHz(8MHzPLLx4)にすると、Timer1でコンペアモードとするクロックは最速で8MHz。
 1時間は3,600秒。
 8MHzで1時間カウントすると28,800,000.000.カウント。
 1時間あたりの総カウント数をこれに近づける。

 CCPRxH/Lに与える値は次の通り。

● 30fps(2,400bps相当)
 ベース値は1,666.
 3回に2回、1,667.にする。
 (1,666count×2,400bps×2倍周期×3,600秒)
 +(((2,400bps×2倍周期×3,600秒)÷3)×2)
 =28,800,000,000.
 誤差無し

● 29.97fps(30÷1.001fps、約2,397.602bps相当)
 ベース値は1,668.
 3回に1回、1,669.にする。
 (1,668count×2,397.602bps×2倍周期×3,600秒)
 +((2,397.602bps×2倍周期×3,600秒)÷3)+0.25
 =28,800,000,000.004238...
 誤差 004238...
 水晶発振子の精度からして十分だと思う。
 ※ 最後の+0.25は4時間1回+1するって意味。タイムコードは24時間時計なので因数だからいいかな。

● 25fps(2,000bps相当)
 ベース値は2,000.
 (2,000count×2,000bps×2倍周期×3,600秒)
 =28,800,000,000.
 誤差無し

● 24fps(1,920bps相当)
 ベース値は2,083.
 3回に1回、2,084.にする。
 (2,083count×1,920bps×2倍周期×3,600秒)
 +((1,920bps×2倍周期×3,600秒)÷3)
 =28,800,000,000.
 誤差無し

 以前の計算と何か違うのだけど、まぁいいか。

#器具の製作 #タイムコード

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

Icon of admin
 工作の軍資金の一部は株で得ています。
 博才がゼロなのか大儲けはできませんし損切りで負けることもありますが、年利換算で10%くらい取れているのでヨシとしています。銀行に預けても実質目減りするだけですしね。
 原資の額は秘密ですが、信用を使わず現物のみなので、儲けは少ないけど大負けすることもありません。倒産に引っかかったこともありましたが、夜逃げでもされない限り公開買い付けになるので溶けて無くなることもありません。
 倒産の可能性が低い企業の株を平均株価が下がった時に買い、平均株価が上がった時に売るだけです。ここしばらくの平均株価は2-4ヶ月で大きく上下しているのでわかりやすいと思います。目先の僅かな増減に一喜一憂せず、数か月スパンで見るとストレスもありません。現物なら何年持っていても単なる株主なだけで、配当が無かったとしても取られることはありません。もちろん、配当目的でもいいと思います。配当の利回りが銀行の金利より安いことは滅多にありません。
 所詮博打ですから利益は約束されておりませんのでお勧めはしませんが、稼ぐって意味ではパチンコやスロットより確実な気がします。

#雑談
Icon of admin
 ここ数日ライトアップの架台を作っていますが、部品点数が多く作業工程も多いのでナカナカ終わりません。もちろんデスクワークもあるでの終日とはいきません。
 今日はガチの溶接作業をしましたが、立ったり屈んだりの繰り返しだったので全身筋肉痛。
 それにしては力尽きた感じは無く即日筋肉痛ですから年齢を考えれば悪くないのかな?アドレナリン・ハイなだけで明朝は起動出来ないかも?
 日が暮れると細かい作業が難しいので午前様までやらずに上がり。ワークが見えないのですから目は年齢ナリかな?
 残り作業はあと6時間くらいですが先が見えてきたので何とかしましょう。現地設置は3日後ですが、溶接作業と細かい作業が無ければ遅くまでやれます。現場やデスクワークもありますけどね・・・。

#ガチ工作

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

Icon of admin
 ここ最近、中華電機からのお届け物が速い。
 これまでは「お届け予定日」から数日以内に届けば良い方で、下手すりゃ数週間遅れることも珍しくありませんでした。
 何がどう変わったのかわかりませんが、最近は予定日よりも早い。
 数日前に届いた物は予定より半月も早い。好印象を持たせるためのふかした予定日だったとしても、DHLなどを使わずに1週間で届いたのですから間違いなく速い。

 てなわけで、RaspberryPiCM4が入荷しました。小さいとは聞いていましたが、思った以上に小さい。
 半導体不足で入手難でしたから現物を見るは初めてです。箱を見た瞬間、あまりの小ささにRaspberryPiのロゴが入ったノベルティが送られてきたのか?、やられたのか?と思ったくらいです。
 灯を入れてチェックする時間はしばらく取れそうにありませんが、想像が広がる楽しい一品です。

#RaspberryPi #中華電機
Icon of admin
 照明器具のメンテナンスでは製作中のArtNet-Engineを通してDMX信号を送っています。
 入力をデコードして一時スタックし、それをエンコードして送るだけの状態ですが、目に付く遅れもなく不審な挙動もなく何の芸もなく普通に動きます。
 今のところ遅れても1フレームなので、このレスポンスでまとまれば御の字かなと。当たり前が当たり前に出来ればそれでいいのです。

 ボチボチ現場対応も増えつつあり、部下の仮打ちが終わって作業スペースを確保出来たので本業の道具もメンテナンスしなければなりません。ArtNet-Engineなど趣味の開発はペースダウンです。

#[Art-Net] #電子工作

■思ってみた

稲刈りが終わったと思ったら夜のBGMは秋の虫の音です。

編集

■全文検索:

複合検索窓に切り替える

■複合検索:

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

■日付検索:

■カレンダー:

2023年9月
12
3456789
10111213141516
17181920212223
24252627282930

■カテゴリ:

■最近の投稿:

最終更新日時:
2025年10月21日(火) 07時10分40秒