全年全月7日の投稿[41件](2ページ目)
2023年7月 この範囲を時系列順で読む この範囲をファイルに出力する
LTC Player はいい感じに進んできました。
PlayListには「Continue」って項目を入れています。音終わりで止める(AutoPauseする)か曲を続けるかの設定です。単に止めて続けても面白くないし、曲間の時間を設定出来たら面白そうなので、曲が終わって次の曲が始まるまでの待ち時間を設定出来るようにしました。0秒にしておけば普通の曲ツナギです。もちろん、待ち時間が終わらなくても PLAY を押せば次の曲に行きます。ついでにマイナス秒も設定出来るようにしてみました。前倒しで曲を終りにする機能です。お尻の無音が長い曲を曲続きにしたい場合に便利かなと。使う人がいるかわかりませんが、ソースを見たら簡単に入れ込めそうだったので欲を出してみました。ライブラリがVLCなので厳密な時間再現は出来ませんけどね。
それにしても、Python のソースなのに明らかにアセンブラっぽい。どう見ても一般的な Python の流儀から外れています。勉強しながら考えなら書いていると体に染みついたアセンブラ風味になってしまうようです。ソースコードを誰かに納品するワケじゃありませんのでオレ流で構わないのですけどね。けど、オブジェクト指向でクラス・インスタンスをベースにするより、フラグベースでリニアな処理手順にした方が分岐が少なくてバグを見つけやすいかもと思ったり。リニアに書くのが非合理的なのでオブジェクト指向なんでしょ!という正論は聞きませんwww
#Python
PlayListには「Continue」って項目を入れています。音終わりで止める(AutoPauseする)か曲を続けるかの設定です。単に止めて続けても面白くないし、曲間の時間を設定出来たら面白そうなので、曲が終わって次の曲が始まるまでの待ち時間を設定出来るようにしました。0秒にしておけば普通の曲ツナギです。もちろん、待ち時間が終わらなくても PLAY を押せば次の曲に行きます。ついでにマイナス秒も設定出来るようにしてみました。前倒しで曲を終りにする機能です。お尻の無音が長い曲を曲続きにしたい場合に便利かなと。使う人がいるかわかりませんが、ソースを見たら簡単に入れ込めそうだったので欲を出してみました。ライブラリがVLCなので厳密な時間再現は出来ませんけどね。
それにしても、Python のソースなのに明らかにアセンブラっぽい。どう見ても一般的な Python の流儀から外れています。勉強しながら考えなら書いていると体に染みついたアセンブラ風味になってしまうようです。ソースコードを誰かに納品するワケじゃありませんのでオレ流で構わないのですけどね。けど、オブジェクト指向でクラス・インスタンスをベースにするより、フラグベースでリニアな処理手順にした方が分岐が少なくてバグを見つけやすいかもと思ったり。リニアに書くのが非合理的なのでオブジェクト指向なんでしょ!という正論は聞きませんwww
#Python
2023年6月 この範囲を時系列順で読む この範囲をファイルに出力する
今後のこともあり、移動時間にPICのI2Cを勉強し直してみました。
これまではイマイチ理解出来なかったのですが、ボチボチ使い方がわかってきました。わからなかったのはハードウェアとソフトウェアの棲み分けとソフトウェアの手順です。
I2Cの規格を頑張って説明するのはありがたいのですが、一番知りたいソフトウェアの手順がボンヤリした文書ばかり。ちょっと複雑な手順を踏むので突っ込んだ理解が望ましいのはわかるのですが、その説明で力尽きしまうのか、どとのつまりどうすればいいの?に応えてくれる資料が少ないように思います。特に、I2Cの特徴的な要素である「ACK」を扱うのがハードウェアなのかソフトウェアなのかが見えないのです。
正直、Pythonなどではライブラリを使うだけで済んでしまいますので、いくらPICマイコンでもそこまでローレベルの機構まで理解しないといけないのか不思議です。
わかったことは、設定さえしてしまえばソフトウェアの手順はUARTと大差ないことです。
マスタが送信する場合はスレーブアドレスを先頭にしたバイトリストをハードウェアモジュールに渡す(PICではバイト単位で渡す)。
マスタが受信する場合はスレーブアドレスを送り、返信されたバイトデータを取り込んだら取り込み済みのフラグを立てる。
スレーブは、自分のアドレスを設定しておけば自分向けの通信かハードウェアが判断してくれるので、マスターの要望に従って受信値を取り込むか返信値を投げる。
データの終りのストップコンディションは、マスター/スレーブ・送信/受信の立ち位置で違うけどフラグを立てるだけ。
波形をコマンド操作で作るワケじゃありませんし、前後関係で調整することもありません。規格はザックリ概要がわかっていれば十分なのに、ソフトウェアの手順の説明がボンヤリしているのはイマイチ理解不能なワケです。
#PIC
これまではイマイチ理解出来なかったのですが、ボチボチ使い方がわかってきました。わからなかったのはハードウェアとソフトウェアの棲み分けとソフトウェアの手順です。
I2Cの規格を頑張って説明するのはありがたいのですが、一番知りたいソフトウェアの手順がボンヤリした文書ばかり。ちょっと複雑な手順を踏むので突っ込んだ理解が望ましいのはわかるのですが、その説明で力尽きしまうのか、どとのつまりどうすればいいの?に応えてくれる資料が少ないように思います。特に、I2Cの特徴的な要素である「ACK」を扱うのがハードウェアなのかソフトウェアなのかが見えないのです。
正直、Pythonなどではライブラリを使うだけで済んでしまいますので、いくらPICマイコンでもそこまでローレベルの機構まで理解しないといけないのか不思議です。
わかったことは、設定さえしてしまえばソフトウェアの手順はUARTと大差ないことです。
マスタが送信する場合はスレーブアドレスを先頭にしたバイトリストをハードウェアモジュールに渡す(PICではバイト単位で渡す)。
マスタが受信する場合はスレーブアドレスを送り、返信されたバイトデータを取り込んだら取り込み済みのフラグを立てる。
スレーブは、自分のアドレスを設定しておけば自分向けの通信かハードウェアが判断してくれるので、マスターの要望に従って受信値を取り込むか返信値を投げる。
データの終りのストップコンディションは、マスター/スレーブ・送信/受信の立ち位置で違うけどフラグを立てるだけ。
波形をコマンド操作で作るワケじゃありませんし、前後関係で調整することもありません。規格はザックリ概要がわかっていれば十分なのに、ソフトウェアの手順の説明がボンヤリしているのはイマイチ理解不能なワケです。
#PIC
LTC Generator は入荷した修正基板を用いてプリアンプが完成。+4dB(1.23Vp-p)の波形を出しています。
まだPythonプロンプトのレベルですが、シリアルでデータを送ると波形が変化します。Pythonからデータを送る場合、バイト毎ではなく、配列にバイナリを格納してpyserialに渡すのが良さそうです。
タイミングが正しいかは確認出来ませんが、PICからの送信要求も受信出来ています。これを受けてデータを送る段取りです。
本業が詰まっていますのであまり長い時間は出来ませんが、1日0.5課題くらいの気持ちで少しずつ行きましょう。
明晩は仮のLTCデータを送出するPythonプログラムを書いてみます。
あらかじめ2-3秒分の配列データを作っておいて送信要求があれば1フレーム分送出する物ですが、卓に接続してLTCがカウントされれば最大の山場を越えます。
#PIC #タイムコード
まだPythonプロンプトのレベルですが、シリアルでデータを送ると波形が変化します。Pythonからデータを送る場合、バイト毎ではなく、配列にバイナリを格納してpyserialに渡すのが良さそうです。
タイミングが正しいかは確認出来ませんが、PICからの送信要求も受信出来ています。これを受けてデータを送る段取りです。
本業が詰まっていますのであまり長い時間は出来ませんが、1日0.5課題くらいの気持ちで少しずつ行きましょう。
明晩は仮のLTCデータを送出するPythonプログラムを書いてみます。
あらかじめ2-3秒分の配列データを作っておいて送信要求があれば1フレーム分送出する物ですが、卓に接続してLTCがカウントされれば最大の山場を越えます。
#PIC #タイムコード
2023年5月 この範囲を時系列順で読む この範囲をファイルに出力する
昨日に引き続きバレエ発表会です。
道具の転換だけですからリハ中の今はヒマなのでアイデアを整理しています。
課題は「LTC Sound Player」です。
wavやmp3の音源プレイヤーですが、再生している音源と並列のLTCも出力します。先日も書いたネタですが、折角の空き時間ですから改めて整理しています。
音源再生にはVLCのライブラリであるlibvlcを使います。もっと直接的にOSとやりとりする方法もあるようですが、フォーマットやコーデックの違いをVLCが吸収してくれるので頼った方が間違いありません。記述はC言語系ならC++ですから勉強が増えますが、Pythonなら比較的簡単に書けそうです。
LTCの出力にはPICを挟みます。LTCの変調は差動バイフェーズですが、RaspberryPiには専用モジュールはありませんし、ソフトウェアで波形を起こすよりPICを使った方が自分には簡単です。RaspberryPiとはUARTやSPIで通信します。
レイテンシーを管理したガチの業務用ならC++記述しなければなりませんが、とりあえず作ってみようならPythonでイイと思います。
#器具の製作 #タイムコード
道具の転換だけですからリハ中の今はヒマなのでアイデアを整理しています。
課題は「LTC Sound Player」です。
wavやmp3の音源プレイヤーですが、再生している音源と並列のLTCも出力します。先日も書いたネタですが、折角の空き時間ですから改めて整理しています。
音源再生にはVLCのライブラリであるlibvlcを使います。もっと直接的にOSとやりとりする方法もあるようですが、フォーマットやコーデックの違いをVLCが吸収してくれるので頼った方が間違いありません。記述はC言語系ならC++ですから勉強が増えますが、Pythonなら比較的簡単に書けそうです。
LTCの出力にはPICを挟みます。LTCの変調は差動バイフェーズですが、RaspberryPiには専用モジュールはありませんし、ソフトウェアで波形を起こすよりPICを使った方が自分には簡単です。RaspberryPiとはUARTやSPIで通信します。
レイテンシーを管理したガチの業務用ならC++記述しなければなりませんが、とりあえず作ってみようならPythonでイイと思います。
#器具の製作 #タイムコード
2023年4月 この範囲を時系列順で読む この範囲をファイルに出力する
PythonならVLCを簡単に扱えそうですが、C言語で扱うのはちょっと難しそうです。
ネットには先達の情報が少なく、VLCライブラリのヘッダーファイルを読んでも理解不能。ヘッダーファイルには更なるヘッダーファイルが記述してあり、そのヘッダーファイルの中にも更なるヘッダーファイルがあります。どこまで深いのかわからんくらいです。プロトタイプ宣言と思わしき記述もゴリゴリのC++なので何がどうなっているのか追いかけられません。高度で大きなアプリケーションですから簡単ではないのです。
当面はPythonでの実装を目指し、C言語での実装を夢見るってところでしょうか。
となると、Pythonでタイムコードの生成をするのがカギになるかもしれません。
Pythonで安定したLTCの波形を生成するのは厳しそうなのでMIDI-TimeCodeにするのが現実的でしょうか。MIDIは9600bpsのUARTですからPythonでも余裕を持って作れます。ただ、音源操作と照明操作の場所が離れているとMIDIでは接続が難しいので、音声信号として送れるLTCが望みです。MIDIをRS485に変換すればいいって話もありますけどね。
C言語でLTC生成のPythonライブラリを作るのがいいのでしょうか。PythonライブラリをC言語で書いたことはありませんが、C言語のライブラリとして成立していれば比較的簡単な記述でPythonライブラリが作れるそうです。
#タイムコード
ネットには先達の情報が少なく、VLCライブラリのヘッダーファイルを読んでも理解不能。ヘッダーファイルには更なるヘッダーファイルが記述してあり、そのヘッダーファイルの中にも更なるヘッダーファイルがあります。どこまで深いのかわからんくらいです。プロトタイプ宣言と思わしき記述もゴリゴリのC++なので何がどうなっているのか追いかけられません。高度で大きなアプリケーションですから簡単ではないのです。
当面はPythonでの実装を目指し、C言語での実装を夢見るってところでしょうか。
となると、Pythonでタイムコードの生成をするのがカギになるかもしれません。
Pythonで安定したLTCの波形を生成するのは厳しそうなのでMIDI-TimeCodeにするのが現実的でしょうか。MIDIは9600bpsのUARTですからPythonでも余裕を持って作れます。ただ、音源操作と照明操作の場所が離れているとMIDIでは接続が難しいので、音声信号として送れるLTCが望みです。MIDIをRS485に変換すればいいって話もありますけどね。
C言語でLTC生成のPythonライブラリを作るのがいいのでしょうか。PythonライブラリをC言語で書いたことはありませんが、C言語のライブラリとして成立していれば比較的簡単な記述でPythonライブラリが作れるそうです。
#タイムコード
2023年3月 この範囲を時系列順で読む この範囲をファイルに出力する
クリアカムのピンアサインは「音響・映像・電気設備が好き」さんの「Clear-Com(クリアカム)のヘッドセット・ピンアサイン」がわかりやすい。XLRは品番によってピン配置が違う点も解説されているのでとても良い情報です。
#電子工作
#電子工作
JAXAのH-3が失敗したようです。2段目のエンジンが着火しなかったため遠隔操作で自爆させたそうです。今回ばかりは衛星を含めた機材を失っていますので中止・中断とは言えません。
かとって、あげつらってJAXAはダメだぁ~三菱はダメだぁ~とするのも短絡過ぎます。1段目は正常に機能し分離まで成功したのですから、H-3最大の売りである新機軸満載のLE-9は正常に機能したと言えます。これはこれで正しく評価するべきです。事業としては言い訳の余地がない失敗ですが、LE-9の何がこれまでと違うのか、何が凄いのか、この辺りを抜きに今回を語るのは避けていただきたいものです。
超難題のLE-9を機能させたのに2段目のエンジンが着火しなかったことは「脇が甘い」と言われても致し方ありませんが。
#雑談
かとって、あげつらってJAXAはダメだぁ~三菱はダメだぁ~とするのも短絡過ぎます。1段目は正常に機能し分離まで成功したのですから、H-3最大の売りである新機軸満載のLE-9は正常に機能したと言えます。これはこれで正しく評価するべきです。事業としては言い訳の余地がない失敗ですが、LE-9の何がこれまでと違うのか、何が凄いのか、この辺りを抜きに今回を語るのは避けていただきたいものです。
超難題のLE-9を機能させたのに2段目のエンジンが着火しなかったことは「脇が甘い」と言われても致し方ありませんが。
#雑談
ムービングライトの予防修理と平行して棚上げネタを進めています。今はクリアカムのパワーサプライです。
クリアカムはDC12v~30vのスイッチング電源とターミネーターがあれば動きます。
電源は中華電機のDC24v/9Aを用いています。ベルトパックの電源電流は1台あたり150mA勘定です(カタログスペックはもっと少ないのですが経験則から余力を持たせてます)から20台くらいは動くかな?。
ターミネーターは抵抗220Ω(2w)x1、抵抗4.7kΩ(1/2w)x1、電解コンデンサ10uF/35vx1です。このあたりは過去記事No.371に書いています。
専用基板にターミネーターを実装し、XLR3Pを4口搭載し、4口同系統と2口2系統に切り替えられるようにしています。
組んでて困ったのは、DC24vのスイッチング電源の入出力ターミナルが小さいことです。M3ネジですが、壁(フェンス)の間隔5.2mmしかありません。0.75スケアに対応した圧着端子の幅は最小でも5.6mm。ほんのわずかの違いですが入りません。削ればいいけど面倒です。0.3~0.5スケアに対応した圧着端子なら幅5.2mmなのでギリギリ入りますが、近所の電材屋さんやホームセンターさんでは在庫していなかったのでポチりました。額面9A出力でこんな小さなターミナルはどうかと思います。性能は悪くないだけに不思議です。
ちなみに、中華電機のスイッチング電源に表示される最大電流値は絶対最大定格(これ以上使ったら壊れる値)と思うのがいいみたいです。国内感覚の定格(安定して使い続けられる最大値)は半分くらいのようです(今回の場合は4.5A)。
本体ページにクリアカムについてまとめるのがいいのかな?
XLRのピンアサイン、簡易パワーサプライの作り方、音声信号の割り込ませ方、音声信号への変換の仕方、製作の注意点などです。
#電子工作
クリアカムはDC12v~30vのスイッチング電源とターミネーターがあれば動きます。
電源は中華電機のDC24v/9Aを用いています。ベルトパックの電源電流は1台あたり150mA勘定です(カタログスペックはもっと少ないのですが経験則から余力を持たせてます)から20台くらいは動くかな?。
ターミネーターは抵抗220Ω(2w)x1、抵抗4.7kΩ(1/2w)x1、電解コンデンサ10uF/35vx1です。このあたりは過去記事No.371に書いています。
専用基板にターミネーターを実装し、XLR3Pを4口搭載し、4口同系統と2口2系統に切り替えられるようにしています。
組んでて困ったのは、DC24vのスイッチング電源の入出力ターミナルが小さいことです。M3ネジですが、壁(フェンス)の間隔5.2mmしかありません。0.75スケアに対応した圧着端子の幅は最小でも5.6mm。ほんのわずかの違いですが入りません。削ればいいけど面倒です。0.3~0.5スケアに対応した圧着端子なら幅5.2mmなのでギリギリ入りますが、近所の電材屋さんやホームセンターさんでは在庫していなかったのでポチりました。額面9A出力でこんな小さなターミナルはどうかと思います。性能は悪くないだけに不思議です。
ちなみに、中華電機のスイッチング電源に表示される最大電流値は絶対最大定格(これ以上使ったら壊れる値)と思うのがいいみたいです。国内感覚の定格(安定して使い続けられる最大値)は半分くらいのようです(今回の場合は4.5A)。
本体ページにクリアカムについてまとめるのがいいのかな?
XLRのピンアサイン、簡易パワーサプライの作り方、音声信号の割り込ませ方、音声信号への変換の仕方、製作の注意点などです。
#電子工作
2023年2月 この範囲を時系列順で読む この範囲をファイルに出力する
そういや中華電機のムービングが故障しました。
調光以外、起動後の初期化は正常にするけど卓の信号を受け付けない。画面やキー操作は正常。
製品によりますが、ムービングライトは調光、PAN/TILT、その他の機能が別々の脳味噌で制御されていることが多いようです。タコみたいですね。
内部を見ますと、DMXを受信している基板から調光ドライバにPWM信号が出ていて、PAN/TILTとその他の機能の脳味噌に向けて1本のRS485の信号が出ています。
起動後の初期化が正常に出来て一部の機能だけ卓から操作が出来ないとなればRS485信号がPAN/TILTとその他の機能の脳味噌に届いていないとしか思えません。
回転軸を通っているケーブルが断線するのはよくあることですが末端まで正常に導通しています。受信側の脳味噌基板は3枚ですが、初期化動作が正常なのに3枚とも壊れているとは考えにくい。
DMXを受信して中向けのRS485を出している基板が怪しいとなるのですが、この基板上のRS485ドライバICをテスターで当たるとおかしい。3.3v仕様のSN75176互換品みたいですが、SN75176の故障でありがちな症状を示しています。SN75176は静電気にとても弱いので珍しいことではありませんケドね。
このICを交換してみようと思いますが、レア品ではないものの日本国内では1000個単位でしか手に入らない製品なので中華電機に発注。2/15着ですからしばらく待ちです。
#照明器具 #電子工作
調光以外、起動後の初期化は正常にするけど卓の信号を受け付けない。画面やキー操作は正常。
製品によりますが、ムービングライトは調光、PAN/TILT、その他の機能が別々の脳味噌で制御されていることが多いようです。タコみたいですね。
内部を見ますと、DMXを受信している基板から調光ドライバにPWM信号が出ていて、PAN/TILTとその他の機能の脳味噌に向けて1本のRS485の信号が出ています。
起動後の初期化が正常に出来て一部の機能だけ卓から操作が出来ないとなればRS485信号がPAN/TILTとその他の機能の脳味噌に届いていないとしか思えません。
回転軸を通っているケーブルが断線するのはよくあることですが末端まで正常に導通しています。受信側の脳味噌基板は3枚ですが、初期化動作が正常なのに3枚とも壊れているとは考えにくい。
DMXを受信して中向けのRS485を出している基板が怪しいとなるのですが、この基板上のRS485ドライバICをテスターで当たるとおかしい。3.3v仕様のSN75176互換品みたいですが、SN75176の故障でありがちな症状を示しています。SN75176は静電気にとても弱いので珍しいことではありませんケドね。
このICを交換してみようと思いますが、レア品ではないものの日本国内では1000個単位でしか手に入らない製品なので中華電機に発注。2/15着ですからしばらく待ちです。
#照明器具 #電子工作
コレ、欲しいかも。
公道は走れませんけどね。
#雑談
公道は走れませんけどね。
#雑談