<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title><![CDATA[ 2023年9月の投稿［30件］ - 電装工芸日記 - 舞台照明機器の製作とか - ]]></title>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi</link>
	<description><![CDATA[ 今年は開発案件を進めたい ]]></description>
	<language>ja</language>
	<copyright>Copyright 2026</copyright>
	<lastBuildDate>Thu, 23 Apr 2026 19:10:27 +0900</lastBuildDate>
	<generator><![CDATA[ <!-- てがろぐ Version: -->Powered by <a href="https://www.nishishi.com/cgi/tegalog/" target="_top">てがろぐ</a> Ver 3.4.0 ]]></generator>
	<!-- BEGIN ENTRIES -->
	<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　客席テーブルのことを考えていたのですが、塗装が重いのかもし… ]]></title>
	<description><![CDATA[ 　客席テーブルのことを考えていたのですが、塗装が重いのかもしれません。<br />　塗装で固めれば強度は増しますが、２平方メートルに厚塗りしたら無視できない重量でしょう。<br /><br />　使用した塗料は１平方メートルあたり0.12～0.17kgだそうです。これを５回塗りしています。<br />　塗料の種類によって違いはありますが、溶剤が揮発して硬化すると70%くらいの重量になるらしい。<br />　これらの条件で計算しますと１kg程度です。無視はできないけど大したことないな・・・。<br />　実測は１４.５kg、無塗装の計算値が７.５kgです。違いが大きいな・・・。<br />　エポキシで固めてみたりイロイロやりましたのでそのせいかな？<br /><br />　ちなみに、角スタッドと呼ばれる軽量材を試しましたが、限界を越えると一気に座屈するのでだめでした。<br /><br />　結局のところ、現行品と同じくファルカタ合板で平台作りにするのがいいのかもしれません。<br />　合板の表面を固めるならワシンの１液油性ニスがいいみたい。１層目を限界まで緩くして染み込ませてから積層していく方法です。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%ac%e3%83%81%e5%b7%a5%e4%bd%9c" class="taglink" title="ガチ工作">#ガチ工作</a> -- Posted by 電装工芸 〔456文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=735</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=735</guid>
	<category>tegalog</category>
	<pubDate>Fri, 29 Sep 2023 16:54:06 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　中国で倒産が多いとかナンとか言われておりますが、基板製造の… ]]></title>
	<description><![CDATA[ 　中国で倒産が多いとかナンとか言われておりますが、基板製造のPCBGOGOさんは健在でした。<br />　ちょっと急ぎの基板製造があって先ほど入稿したのですが、２４時までの受付のところ２３時４３分に原稿を送ってデータ確認から送金まで終了しました。<br />　なんだかこれまでよりレスポンスがいい・・・。業務改善をしたのか、受注が減って手が空いているのかわかりませんが、早いのは助かります。<br />　単価は自作より安い。最小ロッドや送料を考えれば総額はそこそこになりますが、レジストのかかったキレイな基板が手に入ると思えば十分に安いと思う。<br />　リードタイムは一週間です。入稿して受け取りまでですから十分すぎる程早い。感光基板での自作は防腐処理まで一気にやらねばならないため丸一日かかりますが、丸一日使える日を待っていたら何時になるかわかりません。<br />　結果、PCBGOGOさんみたいなサービスは私にとって有難いワケです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e9%9b%bb%e5%ad%90%e5%b7%a5%e4%bd%9c" class="taglink" title="電子工作">#電子工作</a> -- Posted by 電装工芸 〔403文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=734</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=734</guid>
	<category>tegalog</category>
	<pubDate>Fri, 29 Sep 2023 01:01:04 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　客席テーブルについて頭が空いている時に色々考えてみました。 ]]></title>
	<description><![CDATA[ 　客席テーブルについて頭が空いている時に色々考えてみました。<br />　軽量化には強い材料に替えるか材料を少なくするかのどちらかが主軸になります。<br />　となると材料の強度を評価できなければなりません。<br />　ようやくわかったことですが、材料の耐荷重強度は形状寸法と荷重支持条件、「ヤング率」と「断面２次モーメント」で求められるようです。ヤング率とは材質の強度。断面２次モーメントは断面形状の強度らしい。<br />　計算式は条件によって様々ありますが、評価の目安ならこの二つの数の積で行えます。試作品は必要な強度を持っていますので、これが持つ値を評価値として使えばいいからです。<br />　試作品の梁はファルカタ合板9.0tを縦方向に使っています。ラワン合板のヤング率は6.9G/Paとのこと。ファルカタは少し強度が落ちますので減るハズですが、塗装によって強度が増していますし、安全率の一部と考えてこのまま使います。断面２次モーメントは 32N/cm4 くらいなので、評価値を 220 くらいとします。<br />　他の材質のヤング率の目安ですが、鉄なら200G/Paくらい、アルミなら70G/Paくらいです。<br />　この辺りの数値をもとに、コストやら加工条件やらを加味し、評価値程度の材料を見繕えばいいのかなと。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%ac%e3%83%81%e5%b7%a5%e4%bd%9c" class="taglink" title="ガチ工作">#ガチ工作</a> -- Posted by 電装工芸 〔541文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=733</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=733</guid>
	<category>tegalog</category>
	<pubDate>Thu, 28 Sep 2023 09:09:37 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　アタマが空いた時のパズルとして客席テーブルの改修を妄想して… ]]></title>
	<description><![CDATA[ 　アタマが空いた時のパズルとして客席テーブルの改修を妄想しています。<br />　課題は軽量化です。基本機能や耐荷重は実用レベルですが、１BOX車に積み込んだりカマチから客席後方まで手運びするには重い。<br />　現在の総重量は21kgです。長テーブルとしては格別重いワケでもありませんが、希望は12kg以下です。<br />　軽量化の方法は、<br />１) 材を薄く<br />２) 材の肉を抜く<br />３) 軽い材に変更<br />　とかでしょうか。<br />　一番単位重量があるのは天板です。平台に似た構造ですが、ここから見直しです。14kgありますが、半分を目指しましょう。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%ac%e3%83%81%e5%b7%a5%e4%bd%9c" class="taglink" title="ガチ工作">#ガチ工作</a>  -- Posted by 電装工芸 〔264文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=732</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=732</guid>
	<category>tegalog</category>
	<pubDate>Wed, 27 Sep 2023 13:29:19 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　自宅の本棚を整理していたら「空飛ぶ円盤製作法」なる書籍を発… ]]></title>
	<description><![CDATA[ 　自宅の本棚を整理していたら「空飛ぶ円盤製作法」なる書籍を発掘。<br /><img class="embeddedimage" src="https&#58;//www.densokogei.jp/tegalog/images/20230923203814-admin.jpg" alt="20230923203814-admin.jpg"><br />　中学生だか高校生だか、厨二病真っ盛りの頃に買った思い出があるので懐かしー。<br />　内容は難しい数式の羅列。たぶん、理系大学レベルの数学だと思われますので全く理解できません。<br />　一つだけ面白いなぁ～って思ったのは、電場を高速回転させることで重力に反する(相当する)力場を作れるって話。<br />　オカルト方面のネタになりますが、コマは回転中にほんの少しだけ軽くなるとの説もあり、物体は高速で回転すると軽くなるとかなんとか。<br />　前出の書籍によりますと「電場を３ＧＨｚの三相交流で回転させる」とあります。物質を３ＧＨｚの周期で回転させるなど不可能だと思いますが、物質を回転させずに電場の状態を回転させるなら３ＧＨｚも不可能ではないでしょう。今どきのパソコンも３ＧＨｚで動くCPUはザラですからね。<br />　回転中のコマが持つ電場が構成する物質に対して一定の位置関係ならコマの電場も回転していると見立てることが出来ます。高速回転が静止状態と違った物理現象を起こすならば、この本で言うところの電場を高速で回すことに興味が湧きます。<br /><br />　厨二病当時の自分が今の知識を持っていたらこんな妄想をしただろうなぁ～って話www<br />　ただ、３ＧＨｚの三相交流を作ることには今の自分が興味深々です。これを作れたらインバーター回路の神になれそうです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e9%9b%91%e8%ab%87" class="taglink" title="雑談">#雑談</a><br /> -- Posted by 電装工芸 〔593文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=731</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=731</guid>
	<category>tegalog</category>
	<pubDate>Sat, 23 Sep 2023 20:38:14 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　防滴のLEDスポットを使っていますが、本体に直接彫り込んで… ]]></title>
	<description><![CDATA[ 　防滴のLEDスポットを使っていますが、本体に直接彫り込んである雌ネジがバカになっています。<br />　雌ネジを再生しなければなりませんが、肉が無くなっていますのでタップを当てただけではダメです。となると、何かで肉盛りして雌ネジを再生します。<br />　こんな時、インサートが便利です。<br /><img class="embeddedimage" src="https&#58;//www.densokogei.jp/tegalog/images/20230920184803-admin.jpg" alt="20230920184803-admin.jpg"><br />　管の表と内側にそれぞれネジが切ってあります。今回は止ネジがM6ですので、表がM8(ただし細ピッチ0.75)の物を使います。<br />　M8の下穴(ネジピッチが0.75ですのでΦ7mmくらい)を空けてタップを切り接着剤を塗布してネジ込みます。接着剤は密閉状態でも硬化する２液式のエポキシを使います。もちろん仕上がり性能は脱脂に大きく左右されます。<br />　面倒ですが、溶接等で肉盛りするワケにはいきませんので、こんなことをするしかありません。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e4%bf%ae%e7%90%86" class="taglink" title="器具の修理">#器具の修理</a> -- Posted by 電装工芸 〔359文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=730</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=730</guid>
	<category>tegalog</category>
	<pubDate>Wed, 20 Sep 2023 18:48:03 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　FT232RL の送信終了を把握する方法が見つかりません・… ]]></title>
	<description><![CDATA[ 　FT232RL の送信終了を把握する方法が見つかりません・・・。FT232RL 内のキャッシュが空か(送信がアイドル状態か)という意味です。<br />　どうやら、FT232RL は Break 送信の指示を受けると問答無用に Break 状態に切り替えてしまうようなのです。DMX512 では送信フレームの折り返しを示しますのでキャッシュデータの一つとして扱って欲しいものですが、FT232RL では強制リセットに等しい扱いなのだろうと思われます。<br />　出来ないなら出来ないで発想を変えてみましょう。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔254文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=729</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=729</guid>
	<category>tegalog</category>
	<pubDate>Wed, 20 Sep 2023 10:19:24 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　FT232RL の Windows ドライバである FTD… ]]></title>
	<description><![CDATA[ 　FT232RL の Windows ドライバである FTD2XX.DLL について解説している本家の資料を読めるようになってきました。<br /><a class="url" href="https&#58;//ftdichip.com/wp-content/uploads/2023/09/D2XX_Programmers_Guide.pdf" target="_blank" title="https&#58;//ftdichip.com/wp-content/uploads/2023/09/D2XX_Programmers_Guide.pdf">「D2XX Programmer&apos;s Guide」</a><br />　Ｃ言語の勉強をした成果だと思われます。<br /><br />　私が求めているのは FT232RL がすべてのデータを送信しきってアイドル状態にあるかどうかです。<br />　先の getstatus( ) は、パソコン側のドライバにデータが残っているかを得るものらしく違うようです。<br />　私が使わせて頂いている ftd2xx.py は ftd2xx.dll のラッパーですので ftd2xx.dll の解説を読んで ftd2xx.py の本文を読めば何がどうなっているかおおよそ検討はついてきました。<br />　けれど、FT232RL のセッティングや受信状況を読み取る方法はあっても送信状況を読み取る方法が見つかりません。<br /><br />　Open DMX USB の 仕様書を見つけるしかないのかなぁ。<br />　本家の ENTTEC を探しても見当たらないないんですよね・・・。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔475文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=728</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=728</guid>
	<category>tegalog</category>
	<pubDate>Tue, 19 Sep 2023 17:46:47 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　先のテストプログラムでは送信終了を経過時間で見ています。大… ]]></title>
	<description><![CDATA[ 　先のテストプログラムでは送信終了を経過時間で見ています。大丈夫なハズですが、本来ならデータを送りきってバッファが空になったのを確認して送信終了としたい。<br />　データシートを読み直したところ、getstatus( ) で バッファの Queue の残りデータ数と実行中のイベントが読めるらしい。ただ、残りデータ数の意味がパソコン側なのか FT232RL側なのかがわからない。パソコン側なら欲しい情報ではない。イベントの意味も不明。この辺りは試すしかなさそう。<br /><br />追記<br />　getstatus( ) では求める物を得られない様子。戻り値は ( 0, 0, 0 ) だけである。<br />　テストプログラムでは送信を開始してから 23msec 弱の待ち時間で送信が完了しているとしています。理屈では十分なハズですが、送信が終わってアイドル状態なことを確認する方法を見つけたいところです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔394文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=727</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=727</guid>
	<category>tegalog</category>
	<pubDate>Sun, 17 Sep 2023 14:23:29 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　共有メモリを使う場合、読み書きが衝突しないように配慮しなけ… ]]></title>
	<description><![CDATA[ 　共有メモリを使う場合、読み書きが衝突しないように配慮しなければなりません。<br />　今回は情報が一方向ですから比較的簡単ですが、よく考えないとトラブルのもとです。<br />　一番簡単なのは、DMX512 の値の配列の共有メモリと読み書きフラグの共有メモリを使う方法です。読み書きフラグは送り側がセットし受け側がクリアします。送り側はフラグがクリアならば共有メモリに書き込んでフラグをセットし、受け側はフラグがセットしてあれば共有メモリから読み込んでフラグをクリアします。<br />　双方の待ちを考慮しないとといけませんが、送り側が受け側のフェーズ時間の数倍でチェックをすれば遅延は１フレームです。何よりも Queue に比べ処理時間が短く情報の渋滞も起き難いことを優先しましょう。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔346文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=726</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=726</guid>
	<category>tegalog</category>
	<pubDate>Sat, 16 Sep 2023 19:01:17 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　Python での Open DMX USB の制御は８時… ]]></title>
	<description><![CDATA[ 　Python での Open DMX USB の制御は８時間経過でも正常に動いている様子。<br />　不定期に一瞬の不整合が起きているとしても確認の方法がありません。とりあえずこんなもんでいいのかな？<br />　この後は Class 化と Thread 化をします。Thread 間通信は Queue ではなく 共有メモリを使いましょう。共有メモリは Tuple を FIFO で使うような便利なことは出来ませんが、今回は数値の配列を一方向で渡すだけですので、速度が期待できる共有メモリがいいでしょう。<br />　下記は Thread ではなく Prosess の例題ですが、共有メモリのさわりが分かりやすい。<br /><a class="url" href="https&#58;//qiita.com/t_okkan/items/4127a87177ed2b2db148" target="_blank" title="https&#58;//qiita.com/t_okkan/items/4127a87177ed2b2db148">「Pythonでプロセス間の値の共有」</a> <br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔331文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=725</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=725</guid>
	<category>tegalog</category>
	<pubDate>Sat, 16 Sep 2023 12:08:13 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　Python で Open DMX USB を動かすことに… ]]></title>
	<description><![CDATA[ 　Python で Open DMX USB を動かすことに成功しました。<br />　setbreakon と setbreakoff の挙動は予想の通りでした。<br />　以下がテストソースです。<br />　slot1 と slot512 を 0 から255 までカウントして終了します。<br /><small class="decorationS"><span class="decorationF deco-code">### Open DMX USB test ###<br />import ftd2xx as ftd<br />import time<br /><br />if __name__ == &apos;__main__&apos; &#58;<br />　baudrate = 250000<br />　word_length = 8<br />　stop_bit = 2<br />　parity = 0<br />　purge_tx = 2<br />　try &#58;<br />　　d = ftd.open( 0 )    # Open first FTDI device<br />　　d.setBaudRate( baudrate )<br />　　d.setDataCharacteristics( word_length, stop_bit, parity )<br />　　d.purge( purge_tx )<br />　　channelVals = bytearray( &#91; 0 &#93; * 513 )<br />　　channelVals&#91; 0 &#93; = 0 # start code<br />　　for i in range( 256 ) &#58;<br />　　　try &#58;<br />　　　　channelVals&#91; 1 &#93; = i<br />　　　　channelVals&#91; 512 &#93; = i<br />　　　　channelbytes = bytes( channelVals )<br />　　　　# Send Slot<br />　　　　cstart = time.perf_counter_ns( )<br />　　　　d.write( channelbytes )<br />　　　　while time.perf_counter_ns( ) - cstart &lt; 22800000 &#58;<br />　　　　　pass<br />　　　　# Break Time<br />　　　　d.setBreakOn( )<br />　　　　cstart = time.perf_counter_ns( )<br />　　　　while time.perf_counter_ns( ) - cstart &lt; 192000 &#58;<br />　　　　　pass<br />　　　　# Mark After Break<br />　　　　d.setBreakOff( )<br />　　　　cstart = time.perf_counter_ns( )<br />　　　　while time.perf_counter_ns( ) - cstart &lt; 12000 &#58;<br />　　　　　pass<br />　　　# Press Ctl+C to Exit<br />　　　except KeyboardInterrupt &#58;<br />　　　　break<br />　　d.close( )<br />　except &#58;<br />　　print( &apos;No Device&apos; )</span></small><br />　time.sleep() は求める精度に足りないので time.perf_counter_ns() を用いています。<br />　0 から 255 のカウントが5.9秒強で終わるので 43fps くらい。ほぼ規格最大値です。<br />　本当にコレでいいのかわからんけど、モヤモヤしてたのがスッキリした。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔1366文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=724</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=724</guid>
	<category>tegalog</category>
	<pubDate>Sat, 16 Sep 2023 02:47:01 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　Open DMX USB の BreakTime について… ]]></title>
	<description><![CDATA[ 　Open DMX USB の BreakTime について考えていたところ PIC の BreakTime についてもアイデアが出ました。<br />　拡張ミッドレンジPIC16系の EUSART には Break 機能があります。ただし、11bit分の L を出力して StopBit(H) を出すまでが一連の動作なので２回繰り返しても DMX512 の BreakTime にはなりません。今は I/O ピンをプルダウンしておき、入出力設定(TRIS)を Input(Hi-Z) にしてから捨て送信をすることで BreakTime を作っています。<br />　本題です。DMX512 の BreakTime は 最小 88usec ですから 250kbps なら 22bit 分の連続した L を出力すれば成立します。PIC16系の EUSART の Break が DMX512 の BreakTime に使えないのはこれが理由ですが、BaudRate を変更した Break を出力したらよくね？ってのが今回のアイデアです。手段を問わず、L 送信が 88usec 以上ならいいのです。私の理解が間違っていなけば、アイドル時なら BaudRate をバイト送信毎に変更しても EUSART は正しく動くハズです。単純計算なら BaudRate を半分にすれば規格値が出ます。現状でも BaudRate の調整だけで 1/50 くらいには出来ますから十分な BreakTime を作れると思われます。もちろん、BaudRate を 1/3 以下にして Break ではなく 0x00 を通常出力しても同じことです。こちらの方が汎用性が高いかも。受信も併用する構成ではＮＧですけどね。<br />　この方法が成立すればプルダウン抵抗は不要です。たった一つの抵抗ですが、部品を減らすことは絶対の正義ですので検討する価値はありそうです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%49%43" class="taglink" title="PIC">#PIC</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔817文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=723</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=723</guid>
	<category>tegalog</category>
	<pubDate>Fri, 15 Sep 2023 17:35:50 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　オレメモです。 ]]></title>
	<description><![CDATA[ 　オレメモです。<br />　Open DMX USB が期待通りに動かないのは BreakTime が正しく出ていないのが原因かと予想しています。<br />　FTD2xx には setbreakon と setbreakoff がありますのでこれを使うのが肝だと思われますが、これらのコマンドを実行するだけでは求める BreakTime に至らないのだろうと思われます。<br />　違うライブラリを用いたソースコードでは Break を有効化するコマンドが２回と Break 無効化するコマンドが続きで書いてありましたので FTD2xx では Break に関するコマンドを発行すると１バイト分の送信が行われるのかな？と思っていました。２バイト分ですと BreakTime の最小時間と等しいですからね。<br />　検証しないとわかりませんが、setbreakon と setbreakoff は FT232RL の動作モードを変える( setbreakon を実行すると待機状態が L となる / setbreakoff を実行すると待機状態が H に戻る)だけで Break の時間を確保するものではないってのが現在の予想です。テストプログラムでは setbreakon を２回、setbreakoff を１回実行していましたが、setbreakon と setbreakoff の間に空送信か待ち時間を入れてみようと思います。まずは time.sleep( 0.001 ) (Windowsだと15msec前後になる)を差し込むことから始めて setbreakon の状態で空送信をしたらどうなるかです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔705文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=722</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=722</guid>
	<category>tegalog</category>
	<pubDate>Fri, 15 Sep 2023 12:44:25 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　「ftd2xx.py」を使って Open DMX USB … ]]></title>
	<description><![CDATA[ 　<a class="url" href="https&#58;//github.com/snmishra/ftd2xx/blob/master/ftd2xx/ftd2xx.py" target="_blank" title="https&#58;//github.com/snmishra/ftd2xx/blob/master/ftd2xx/ftd2xx.py">「ftd2xx.py」</a>を使って Open DMX USB から DMX512 が出るか試してみました。<br />　うまくいかない・・・。<br />　値は表示されますが、テストプログラムでは値を変化させているのにそれが出ません。Break Time あたりに問題があるように思いますが、オシロスコープかロジアナで信号波形を見ないとわかりません。<br />　波形を見るにはテスト環境を整えないといけませんので空き時間にちょっとお試しってワケにはいきません。しばらくお預けです。<br />　そんでも、値は一応表示されるのであまり遠くないところにいるような気がします。<br /><br />　頑張って読み解くしかない本家の資料<br /><a class="url" href="https&#58;//ftdichip.com/wp-content/uploads/2023/09/D2XX_Programmers_Guide.pdf" target="_blank" title="https&#58;//ftdichip.com/wp-content/uploads/2023/09/D2XX_Programmers_Guide.pdf">「D2XX Programmer&apos;s Guide」</a><br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔327文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=721</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=721</guid>
	<category>tegalog</category>
	<pubDate>Fri, 15 Sep 2023 10:21:09 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　「ftd2xx.py」ですが、Open DMX USB を… ]]></title>
	<description><![CDATA[ 　<a class="url" href="https&#58;//github.com/snmishra/ftd2xx/blob/master/ftd2xx/ftd2xx.py" target="_blank" title="https&#58;//github.com/snmishra/ftd2xx/blob/master/ftd2xx/ftd2xx.py">「ftd2xx.py」</a>ですが、Open DMX USB を認識しました。<br />　テストで使ったのは次のコード<br /><small class="decorationS"><span class="decorationF deco-code">### ftd2xx test ###<br />import ftd2xx as ftd<br /><br />if __name__ == &apos;__main__&apos; &#58;<br />　try &#58;<br />　　d = ftd.open( 0 )    # Open first FTDI device<br />　　d.setDataCharacteristics<br />　　print( d.getDeviceInfo( ) )<br />　　d.close( )<br />　except &#58;<br />　　print( &apos;No Device&apos; )<br />　　exit( )<br /><br />### 実行結果 ###<br />{&apos;type&apos;&#58; 5, &apos;id&apos;&#58; 67330049, &apos;description&apos;&#58; b&apos;FT232R USB UART&apos;, &apos;serial&apos;&#58; b&apos;B000T33S&apos;}</span></small><br />　実行結果は期待値を得ています。「ftd2xx.dll」を通じて FT232RL とやり取りが出来ていると思われますので、Open DMX USB として動かせそうな気がします。<br />　今後は<a class="url" href="http&#58;//tokiwa-west.co.jp/twadmin/wp-content/uploads/2015/04/FTD2XX.pdf" target="_blank" title="http&#58;//tokiwa-west.co.jp/twadmin/wp-content/uploads/2015/04/FTD2XX.pdf">「ftd2xx.dll」の解説書</a>とソースコード読みながら解明していきましょう。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a><br /> -- Posted by 電装工芸 〔542文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=720</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=720</guid>
	<category>tegalog</category>
	<pubDate>Wed, 13 Sep 2023 16:04:52 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　以下を参考に少し試してみました。 ]]></title>
	<description><![CDATA[ 　以下を参考に少し試してみました。<br /><a class="url" href="https&#58;//iosoft.blog/2018/12/02/ftdi-python-part-1/" target="_blank" title="https&#58;//iosoft.blog/2018/12/02/ftdi-python-part-1/">「Programming FTDI devices in Python&#58; Part 1」</a> <br /><br />　Open DMX USB や FT232RL が実装されたデバイスが手元にありませんので何ともですが、pip で ftd2xx をインストールするとVSCode ではそれらしい関数の候補が出ます。候補が出るということはアクセスできる可能性が高いという事です。<br />＞ pip install ftd2xx<br />　pywin32 もインストールされます。<br /><br />　「ftd2xx」のサイト見ますと、「ftd2xx は、ctypes を使用した FTDI の D2XX DLL の単純な Python ラッパーです。」とあります。<br />　システムコールを直球で使えるってことだと思われます。<br /><br /><a class="url" href="https&#58;//github.com/jlbrogdon/dmx_controller/blob/master/OpenDmxUsb/__init__.py" target="_blank" title="https&#58;//github.com/jlbrogdon/dmx_controller/blob/master/OpenDmxUsb/__init__.py">「jlbrogdon/dmx_controller」</a><br />　ここで使われている関数とは呼び出す文言が違いますが、VSCode で表示される関数の候補にはそれと思われる関数が存在しています。<br /><br />　明日以降になりますが FT232RL が実装されたデバイスを繋げた状態で色々テストしてみましょう。<br />　今考えているアイデアでいけるなら Open DMX USB の制御が Python で完結します。<br /><br />　これはいいかも<br /><a class="url" href="http&#58;//tokiwa-west.co.jp/twadmin/wp-content/uploads/2015/04/FTD2XX.pdf" target="_blank" title="http&#58;//tokiwa-west.co.jp/twadmin/wp-content/uploads/2015/04/FTD2XX.pdf">「Ftd2xxドライバー説明」</a> <br />　本家の資料では理解出来なかったことが分かりやすく書いてあります。欲しかった資料そのものです。<br /><a class="url" href="https&#58;//github.com/snmishra/ftd2xx/blob/master/ftd2xx/ftd2xx.py" target="_blank" title="https&#58;//github.com/snmishra/ftd2xx/blob/master/ftd2xx/ftd2xx.py">「ftd2xx.py」</a> <br /><a class="url" href="https&#58;//github.com/xiangruili/RTBox_py/blob/master/serFTDI.py" target="_blank" title="https&#58;//github.com/xiangruili/RTBox_py/blob/master/serFTDI.py">「xiangruili/RTBox_py」</a> <br /><br />　これらの資料で行けそうな予感がムクムク。<br />　ENTTEC 純正の Open DMX USB と DMXチェッカーを事務所に置いてきたことを後悔。<br />　すでに帰宅して呑んでいるので取りに行けませんので明日以降ですね。<br /><br />　それにしても、敷居が高いと思っていた DLL をここまで簡単に使えるとは予想外です。<br />　ドライバに対する DLL があれば、少なくともＣ/Ｃ＋＋なら簡単にアクセスが可能で、それを単純なラッパーにしてしまえば Python からストレスなくアクセス出来てしまうのです。<br />　この辺りの手段は手にしたいですねぇ～。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔941文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=719</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=719</guid>
	<category>tegalog</category>
	<pubDate>Tue, 12 Sep 2023 19:35:49 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　Open DMX USB を扱うには FTD2XX.dll… ]]></title>
	<description><![CDATA[ 　Open DMX USB を扱うには FTD2XX.dll をコールするのが肝らしい。<br />　チンプンカンプンな領域なのでこれから勉強ですが、次のサイトがヒントになりそう。<br /><a class="url" href="https&#58;//qiita.com/satoysan/items/890b542a28e163a96e0d" target="_blank" title="https&#58;//qiita.com/satoysan/items/890b542a28e163a96e0d">「PythonからDLLを使う」</a> <br /><a class="url" href="https&#58;//zenn.dev/qt6hy/articles/e89d862cc41a16" target="_blank" title="https&#58;//zenn.dev/qt6hy/articles/e89d862cc41a16">「Python から DLL を利用する」</a> <br /><a class="url" href="https&#58;//zenn.dev/t_ibe/articles/400aa60a12434d" target="_blank" title="https&#58;//zenn.dev/t_ibe/articles/400aa60a12434d">「C++で書いたコードをPythonで動かすには【pybind11】」</a> <br /><br />　以下も参考になりそう。<br /><a class="url" href="http&#58;//mikibicycle.blogspot.com/2019/07/usbpython.html" target="_blank" title="http&#58;//mikibicycle.blogspot.com/2019/07/usbpython.html">「USBを使って制御できるリレーモジュールをpythonで動かしてみる」</a> <br /><a class="url" href="https&#58;//iosoft.blog/2018/12/02/ftdi-python-part-1/" target="_blank" title="https&#58;//iosoft.blog/2018/12/02/ftdi-python-part-1/">「Programming FTDI devices in Python&#58; Part 1」</a> <br /><br />　上記の記事と以下を合わせるといけるのかな？<br /><a class="url" href="https&#58;//github.com/jlbrogdon/dmx_controller/blob/master/OpenDmxUsb/__init__.py" target="_blank" title="https&#58;//github.com/jlbrogdon/dmx_controller/blob/master/OpenDmxUsb/__init__.py">「jlbrogdon/dmx_controller」</a><br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔321文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=718</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=718</guid>
	<category>tegalog</category>
	<pubDate>Tue, 12 Sep 2023 19:03:13 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　「PyOpenDmxUsb」の「DMXServer.cs」… ]]></title>
	<description><![CDATA[ 　「PyOpenDmxUsb」の「DMXServer.cs」を読むと「FTD2XX.dll」をコールしているがわかります。<br />　ならば、Ｃ＋＋ 化することは可能っぽいです。先日書き込みした Ｃ/Ｃ＋＋ による Python ライブラリ化を参考にすれば作れるかも。<br />　Ｃ＃のコードを Python ライブラリ化してもいいのでしょうけど。<br /><br />　ちなみに DoctorMX については Ｃ/Ｃ＋＋ の世代変わりの壁で対策がわかりません。<br />　kuwatecさんが公開されているのは VC6 世代のコードようですが、Ｃ＋＋はその後の時代に多くの改変がされているらしいのです。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%ef%bc%a3%e8%a8%80%e8%aa%9e" class="taglink" title="Ｃ言語">#Ｃ言語</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔302文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=717</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=717</guid>
	<category>tegalog</category>
	<pubDate>Tue, 12 Sep 2023 18:23:31 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　ENTTEC 純正の Open DMX USB を入手しま… ]]></title>
	<description><![CDATA[ 　ENTTEC 純正の Open DMX USB を入手しました。<br />　しかし、先日調べたネタではデバイスの認識すらしません。README.md を読み返したところRaspberryPi用でした。動かなくても仕方ない。<br /><br />　調べ直したところGitHubに次の様なモノがありました。<br /><a class="url" href="https&#58;//github.com/Coronon/PyOpenDmxUsb" target="_blank" title="https&#58;//github.com/Coronon/PyOpenDmxUsb">「PyOpenDmxUsb」</a> <br />　README.md を読む限り、Windows 上の Python で Open DMX USB を扱う代物のようです。<br />　使い方が少し難しいようですが、調べてみる価値はありそうです。<br /><br />追記<br /><a class="url" href="https&#58;//github.com/Coronon/PyOpenDmxUsb" target="_blank" title="https&#58;//github.com/Coronon/PyOpenDmxUsb">「PyOpenDmxUsb」</a> <br />　は予想外に簡単でした。<br />１）pip で pywin32 をインストール<br /> ＞ pip install pywin32<br />２）GitHub からダウンロードしたファイルを メインの Python ソースがあるフォルダにまとめる。<br />　・フォルダ「PyOpenDmxUsb-master」内の「Ｃ＃」フォルダにある「DMXServer.exe」。<br />　・フォルダ「PyOpenDmxUsb-master」内の「Python」フォルダにある「DMXClient.py」。<br /><br />　あとは、サンプルプログラムを参考にソースを書きます。<br /><small class="decorationS"><span class="decorationF deco-code">from DMXClient import DMXClient<br />import time<br /><br />dmxClient = DMXClient(&quot;PODU&quot;)<br />dmxClient.connect()<br /><br />while True &#58;<br />　for i in range( 256 ) &#58;<br />　　try &#58;<br />　　　dmxClient.write(&#91;1, i, 2, i&#93;)<br />　　　time.sleep( 0.1 )<br />　　except KeyboardInterrupt&#58;<br />　　　dmxClient.close()<br />　　　break<br />　break</span></small><br />　DMX の アドレス001とアドレス002をカウントしていくだけの動作を確認出来ました。<br />　コマンドコンソールか PowerShell から DMXServer.exe を起動してから上記の Python コードを実行します。<br />＞ .\DMXServer -n PODU<br />　この後、別コマンドコンソールから Python コードを実行します。<br /><br />　DMXServer.exe を起動してから本プログラムを実行する手順が少し面倒だし Python らしくない。<br />　出来ることなら Python モジュールとして import して使えるようにしたいと思います。<br />　DMXServer.exeのＣ＃ソースが付属しているので、これを参考に Python モジュールを作れたらいいのかな？<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔1140文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=716</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=716</guid>
	<category>tegalog</category>
	<pubDate>Tue, 12 Sep 2023 16:59:11 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　VSCode でＣ言語の Python ライブラリを作る際… ]]></title>
	<description><![CDATA[ 　VSCode でＣ言語の Python ライブラリを作る際、ラッパーには Python.h が必須です。<br />　ですが、<br /><span class="decorationF deco-code">＃include ＜Python.h＞</span><br />　と書くと「Python.h なんて無いよ」と言われてしまいます。<br />　フルパスで指定すれば通りますがこれは避けたい。<br />　VSCode の拡張機能 Ｃ/Ｃ＋＋ の設定に追加をします。「C/Cpp ＞ Default：Include Path」の「項目の追加」から Python.h がある階層のパスを追加します。Python のインストールによってパスが違うのでそれに合わせて指定します。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%ef%bc%a3%e8%a8%80%e8%aa%9e" class="taglink" title="Ｃ言語">#Ｃ言語</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔287文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=715</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=715</guid>
	<category>tegalog</category>
	<pubDate>Mon, 11 Sep 2023 08:45:57 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　「error&#58; Unable to find vc… ]]></title>
	<description><![CDATA[ 　「error&#58; Unable to find vcvarsall.bat」とのエラーで困ったものの解決しました。<br />　以下、オレメモであります。<br />　あえて gcc を使うのは Linux で標準だからです。<br /><br /><small class="decorationS"><span class="decorationF deco-code">VSCode で gcc を使う<br /><br />2023年9月10日実施<br /><br />● OS<br />エディション&#58; Windows11 Pro x64<br />バージョン&#58; 21H2<br /><br />● Visual Studio Code<br />バージョン&#58; 1.74.2 (user setup)<br /><br />※ ダウンロード量が 1.8GB くらいあるのでネット回線が良好な環境での作業を推奨します。<br /><br />● gcc をインストールする<br />・gcc を GitHub からダウンロード<br />　<a class="url" href="https&#58;//github.com/niXman/mingw-builds-binaries/releases" target="_blank" title="https&#58;//github.com/niXman/mingw-builds-binaries/releases">https&#58;//github.com/niXman/mingw-builds-b...</a><br />　「Release of 13.1.0-rt_v11-rev1」の項から Windows64bit版<br />　ダウンロード項目&#58; x86_64-13.1.0-release-win32-seh-msvcrt-rt_v11-rev1.7z<br />・圧縮ファイルなので解凍する。.7z ファイルは CubeICE で解凍可能。「mingw64」フォルダが出来る。<br />・「mingw64」フォルダごと任意の位置に配置する。&quot;C&#58;\Program Files&quot;が適当？」<br />・PATH を通しておく。環境変数のPATHに「mingw64\bin」を追加する。今回は&quot;C&#58;\Program Files\mingw64\bin&quot;とする。<br />　「Windowsメニュー」→「設定」→「システム」→「バージョン情報」<br />　→「関連リンク」の行の「システムの詳細設定」をクリック。<br />　→ ウィンドウ下の方の「環境変数」をクリック。<br />　→ 上段のリスト、PATHの行をクリックし、「編集」をクリック。<br />　→ 表示されたリストに&quot;C&#58;\Program Files\mingw64\bin&quot;を追記する。<br />　→ 追記したら閉じる。<br />・確認<br />　コマンドプロンプトか Power Shell で次を実行<br />&gt; gcc -v<br />　もろもろ表示された最後に以下が表示されればOK。<br />gcc version 13.1.0 (x86_64-win32-seh-rev1, Built by MinGW-Builds project)<br /><br />● Microsoft C++ Build Tools をインストールする<br />・microsoft のサイトよりインストーラーをダウンロード<br />　<a class="url" href="https&#58;//visualstudio.microsoft.com/ja/visual-cpp-build-tools/" target="_blank" title="https&#58;//visualstudio.microsoft.com/ja/visual-cpp-build-tools/">https&#58;//visualstudio.microsoft.com/ja/vi...</a><br />　※「Microsoft C++ Build Tools」で検索しても上記 URL に行きつかない。試行錯誤中、偶然行きついた。<br />・ブラウザの「Build Tools のダウンロード」をクリックすると「vs_BuildTools.exe」がダウンロードされる<br />・ダウンロードしたインストーラーを起動する。<br />・「Visual Studio Installer」と画面が出てファイルのダウンロードが始まる。<br />・画面が切り替わり、右項目「インストールの詳細」に「MSBuild Tools」が表示されているの確認。<br />・左項目「C++によるデスクトップ開発」をクリック。右項目「インストールの詳細」に追加されているのを確認。オプションはデフォストのまま。<br />・右下の「インストール」をクリック。終わるまで待つ。ダウンロード量が 1.7GB ある。かなり時間がかかる。<br />・終了したら Windows を再起動する。<br /><br />● VSCode の設定・・・拡張機能をインストール<br />・C/C++ Extension Pack<br />・Code Runner<br /><br />● VSCode の設定・・・拡張機能の設定<br />・Code Runner<br />　Code-runner&#58; Run In Terminal<br />　 → チェックを入れる<br />　Code-runner&#58; Executor Map<br />　 → settings.json をクリック<br />　 → &quot;c&quot; に -fexec-charset=CP932 を書き加える<br />　- &quot;c&quot; &#58; &quot;cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt&quot;,<br />　+ &quot;c&quot; &#58; &quot;cd $dir && gcc -fexec-charset=CP932 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt&quot;,</span> </small><br /><br />　次のサイトの例題がコンパイル出来、Python からの呼び出しで動作しました。<br /><a class="url" href="https&#58;//daeudaeu.com/python-c-call/" target="_blank" title="https&#58;//daeudaeu.com/python-c-call/">「PythonからC言語の関数を呼び出す（基本編）」</a> <br /><br />　Ｃ/Ｃ＋＋のライブラリを Python で呼び出せると製作の幅が広がります。<br />　手始めにしては難しい課題ですが、DoctorMX を Python から使えるようにしてみたいですね。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%ef%bc%a3%e8%a8%80%e8%aa%9e" class="taglink" title="Ｃ言語">#Ｃ言語</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> -- Posted by 電装工芸 〔2121文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=714</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=714</guid>
	<category>tegalog</category>
	<pubDate>Sun, 10 Sep 2023 12:24:04 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　「Open DMX USB」をオリジナルのアプリで使うこと… ]]></title>
	<description><![CDATA[ 　「Open DMX USB」をオリジナルのアプリで使うことを考えていきますと「DoctorMX」も使えたらなと思ってしまいます。<br />　開発・販売元のクワテックさんでは DoctorMX を使うためのライブラリとサンプルコードを公開してくださってます。C/Ｃ＋＋ 向けですが、サンプルコードは私でも読めるので扱えるかもしれません(その昔は全く理解出来ませんでした。ちょっと感動。)。<br />　小屋卓のPC版を作るかはともかく、DoctorMX と Open DMX USB の扱い方を習得しておくのはいいかもしれません。<br /><br />　2023年9月現在、クワテックさんから DoctorMX の Python ライブラリの提供はありません。リクエストしたら作ってくれそうな気もしますが、まずは自力で解決を目指しましょう。工夫や努力もせずに安易なリクエストをされるのは私も嫌ですしね。<br /><br /><a class="url" href="https&#58;//daeudaeu.com/python-c-call/" target="_blank" title="https&#58;//daeudaeu.com/python-c-call/">「PythonからC言語の関数を呼び出す（基本編）」</a><br /><br />追記<br />　上記がコンパイル出来るか試みましたがエラーを吐いて終わらない。<br />　「error&#58; Unable to find vcvarsall.bat」とのこと。<br />　なんじゃこりゃ！？<br />　環境は VSCode の上で gcc です。<br />　日本語サイトには直球な解決策は見つかりませんでしたが、某英語サイトに「Microsoft Visual C++ Build Tools」を入れたら解決するとの書き込み。<br /><br /><small class="decorationS"><span class="decorationF deco-code">Microsoft Visual C++ ビルド ツールをインストールする<br /><br />システムに Microsoft Visual C++ がインストールされていない場合、または古いバージョンがインストールされている場合は、Microsoft Visual C++ Build Tools をダウンロードしてインストールできます。Microsoft Visual C++ Build Tools には、Windows 上で C++ コードをビルドするために必要な環境変数とツールが含まれています。<br /><br />Microsoft Visual C++ Build Tools をインストールする手順は次のとおりです。<br /><br />1&#58;Visual Studio Build Tools Web サイトに移動します。<br />2&#58;インストーラーをダウンロードして実行します。<br />3&#58;「C++ ビルド ツール」ワークロードを選択します。<br />4&#58;「インストール」をクリックします。</span></small><br /><br />　開演時間になったのでお試しはお預けですが、２時間ほど悩んでいたので期待感大。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%79%74%68%6f%6e" class="taglink" title="Python">#Python</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔1089文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=713</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=713</guid>
	<category>tegalog</category>
	<pubDate>Sat, 09 Sep 2023 11:14:38 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　FT232RLで一般的なシリアル通信以外のことをするにはド… ]]></title>
	<description><![CDATA[ 　FT232RLで一般的なシリアル通信以外のことをするにはドライバを直接叩かないといけないらしい。250kbps 送信と長い長い BreakTime を生成するには ＯＳ のシリアルを叩いても不可能ですからね。<br />　FT232RL のメーカーである FTDI のサイトに <a class="url" href="https&#58;//ftdichip.com/wp-content/uploads/2023/09/D2XX_Programmers_Guide.pdf" target="_blank" title="https&#58;//ftdichip.com/wp-content/uploads/2023/09/D2XX_Programmers_Guide.pdf">D2XX Programmer’s Guide</a> がありました。これが理解出来ればいいのでしょうが全く理解出来ません。<br /><br />　Open DMX USB の Python ライブラリが落ちていました。これなら理解できます。<br /><a class="url" href="https&#58;//eblot.github.io/pyftdi/" target="_blank" title="https&#58;//eblot.github.io/pyftdi/">「PyFtdi」</a> <br />　次の使用例はとてもわかりやすい。<br /><a class="url" href="https&#58;//github.com/jlbrogdon/dmx_controller/blob/master/OpenDmxUsb/__init__.py" target="_blank" title="https&#58;//github.com/jlbrogdon/dmx_controller/blob/master/OpenDmxUsb/__init__.py">「jlbrogdon/dmx_controller」</a><br />　細かい例外対策まで仕上げるには PyFtdi の API documentation を熟読しなければなりませんが、本丸が見えればナンとかなりそうな気分になります。<br />　PyFtdi の世代の問題なのか、少し手直しをしないとエラーになります。<br />　・・・注意：READMEを読み返したらコレは RaspberryPi 向けに書いたモノだとか。動かなくても不思議はありません。<br /><br />　Open DMX USB の回路図はこちらがわかりやすい。<br /><a class="url" href="https&#58;//www.sugakoubou.com/docs/opendmxusb.pdf" target="_blank" title="https&#58;//www.sugakoubou.com/docs/opendmxusb.pdf">「菅工房 Open DMX USB」</a><br /><br />　汎用の FT232RL 基板を使うならここが参考になります。<br /><a class="url" href="https&#58;//qiita.com/Ina3/items/f88a584d2011e99fc7ed" target="_blank" title="https&#58;//qiita.com/Ina3/items/f88a584d2011e99fc7ed">「Open DMX USB コントローラによる　DMX512制御」</a><br />　汎用の FT232RL にほんの少し設定を加えるだけで Open DMX UASB として使えます。FT232RL の電気特性は UART なので RS485 に変換する必要はあります。<br /><br />　忘れちゃいけない本家。<br /><a class="url" href="https&#58;//www.enttec.com/product/dmx-usb-interfaces/open-dmx-usb/" target="_blank" title="https&#58;//www.enttec.com/product/dmx-usb-interfaces/open-dmx-usb/">「ENTTEC Open DMX USB」</a><br /><a class="url" href="https&#58;//ftdichip.com/wp-content/uploads/2023/09/D2XX_Programmers_Guide.pdf" target="_blank" title="https&#58;//ftdichip.com/wp-content/uploads/2023/09/D2XX_Programmers_Guide.pdf">「D2XX Programmer&apos;s Guide」</a><br /><br />　習作ですので急ぐつもりはありませんしアイデアだけで終わるかもしれませんが、Open DMX USB を扱えたら応用の幅がありそうな予感はあります。テンキーでガツガツ打てて、MIDI でクロスフェーダーやサブマスターまで組めたらいいかなと。<br />　ホール卓のPC版ってのもネタとして面白いかも。「KOYATAKU」とでも名付けます？。ホール卓の基本構成をパソコンで構成してフリーウェアにしたらメーカーさんに嫌がられるでしょうけど、10年間違いなく動くのがメーカーさんのクウォリティであって、ここを真似するのは絶対不可能な領域です。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a><br /> -- Posted by 電装工芸 〔1034文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=712</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=712</guid>
	<category>tegalog</category>
	<pubDate>Fri, 08 Sep 2023 10:57:05 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　「Open DMX USB」について考えていたのは移動中ア… ]]></title>
	<description><![CDATA[ 　「Open DMX USB」について考えていたのは移動中アタマが空いていたからです。<br />　学園祭への機材レンタルで搬送をしていたのですが、片道１時間半くらいかかるので考え事をするには丁度良い時間でした。<br /><br />　そんな中で Art-Net Patch も思い出す。余りに難しく、数日アタマを全振りしないと進められないネタのために止まっています。<br />　ミキサー(マージ)、プリディレイ(入力に施す)、プリプロファイルカーブ、パッチ、ポストプロファイルカーブ、ポストディレイ(出力に施す)が主な機能ですが、これらの処理(エフェクターと呼称)は参照して計算、参照して計算、参照して計算をひたすら繰り返します。一つ一つはとても簡単な処理ですが、タイミング良く群のデータを短時間で処理しないといけないので構成が難しく、僅かな無駄が後からボディブローの様に効いてきます。<br /><br />　年齢が年齢なので経験量に対し学習量が少ないなぁ～と思いつつも、オブジェクト指向やマルチスレッドなどが普通に使える様になってきますと今までと違った構成がアタマに浮かんできます。全体を一度に見ると難しい処理ですが、構成を分解・整理すれば分割したライブラリとして進められるんじゃないかと。<br />　厄介なのはミキサーとディレイですが、これらを実現するには最大遅延時間分の過去を送信元分保存しておく必要があります。このデータ構成を良く考え、エフェクターの出入りを一般化して進めれば機能単位での製作が可能になりそうな気がします。<br /><br />　目的に対しその環境や言語をどう使えばいいか具体的な見込みを付けてからデータ構造と処理アルゴリズムの本構成を考えることが大切だと思う今日この頃。<br />　開発のプロからしたら当たり前過ぎることなんでしょうけど。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%41%72%74%2d%4e%65%74" class="taglink" title="Art-Net">#&#91;Art-Net&#93;</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%ef%bc%a3%e8%a8%80%e8%aa%9e" class="taglink" title="Ｃ言語">#Ｃ言語</a> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e5%99%a8%e5%85%b7%e3%81%ae%e8%a3%bd%e4%bd%9c" class="taglink" title="器具の製作">#器具の製作</a> -- Posted by 電装工芸 〔763文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=711</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=711</guid>
	<category>tegalog</category>
	<pubDate>Thu, 07 Sep 2023 18:14:56 +0900</pubDate>
</item>

	<!-- END ENTRIES -->
</channel>
</rss>

