<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title><![CDATA[ 全年5月24日の投稿［5件］ - 電装工芸日記 - 舞台照明機器の製作とか - ]]></title>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi</link>
	<description><![CDATA[ 今年は開発案件を進めたい ]]></description>
	<language>ja</language>
	<copyright>Copyright 2026</copyright>
	<lastBuildDate>Fri, 24 Apr 2026 10:26:19 +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[ 　eth0 と eth1 に Art-Net のIPアドレス… ]]></title>
	<description><![CDATA[ 　eth0 と eth1 に Art-Net のIPアドレスを設定する bashスクリプトです。<br />　体裁の都合でタブ下げを全角空白にしています。パクってくださる方はテキストエディタなりで全角空白を削除するか半角空白に変換してください。utf-8でも全角空白はエラーの元です。<br />　Art-Net の OEMコードを取っていませんので、0x29DA を勝手に使ってます。身近な器具で使われていないのと「肉だ」の語呂です。製品化する際には OEMコードを取得します。<br /><br /><small class="decorationS"><span class="decorationF deco-code">set_artnet_ipaddress_eth0eth1.sh<br /><br /> // RaspberryPi：4B<br /> // OS：RaspberryPiOS(bookworm) 32bit-Lite<br /> // パーミッション：755<br /> // bashスクリプトですのでファイルに実行権限を与え、Sudo で実行してください。<br /><br />#!/bin/bash<br /><br /># 定数定義<br />OEM_CODE_H=41　　 # Art-NetのOEMコードの上位バイト10進数で表記<br />OEM_CODE_L=218　　# Art-NetのOEMコードの下位バイト10進数で表記 仮に0x29DA Oem_hdl_dmxnode8_1 HDL<br />NETWORK_SWITCH=2　# NetworkSwitch/ON=2,OFF=10<br />ETH0_NAME=&quot;artnet-in-eth0&quot;<br />ETH1_NAME=&quot;artnet-out-eth1&quot;<br /><br /># 必要なファイル、コマンドの有無を確認<br /># bcコマンド<br />if !(type &quot;bc&quot; &gt; /dev/null 2&gt;&1); then<br />　/usr/bin/echo &quot;&#91;Art-Net&#93; Please Install the bc command.&quot;<br />　exit<br />fi<br /><br />## ipアドレス設定<br />ETH_NAME=$ETH0_NAME<br />for (( i=0; i&lt;2; i++ )); do<br /><br />　## ethの有無を確認<br />　P_eth=$(/usr/sbin/ifconfig | /usr/bin/grep eth$i)<br />　if &#91; -z &quot;$P_eth&quot; &#93;; then<br />　　/usr/bin/echo &quot;&#91;Art-Net&#93; eth&quot;$i&quot; does not exist&quot;<br />　　exit<br />　fi<br /><br />　## ethのMACアドレスを変数に格納する<br />　MAC_ADDR_eth=$(/usr/bin/cat `find /sys/devices/ -name eth$i`/address)<br /><br />　## MACアドレスの有無を確認し、あればIPアドレスの設定を実行<br />　if &#91; -n &quot;$MAC_ADDR_eth&quot; &#93;; then<br />　　# ethのIPアドレス作成<br />　　# 区切り文字「&#58;」で配列変数化<br />　　MAC_eth=(${MAC_ADDR_eth//&#58;/ })<br />　　# 16進数の文字列を数値に変換する<br />　　MAC_eth_4=$((16#${MAC_eth&#91;3&#93;}))<br />　　MAC_eth_5=$((16#${MAC_eth&#91;4&#93;}))<br />　　MAC_eth_6=$((16#${MAC_eth&#91;5&#93;}))<br />　　# Art-NetのIPアドレスを計算<br />　　ArtNet_IP_eth_1=$NETWORK_SWITCH<br />　　ArtNet_IP_eth_2=$(((MAC_eth_4 + OEM_CODE_H + OEM_CODE_L) % 256))<br />　　ArtNet_IP_eth_3=$MAC_eth_5<br />　　ArtNet_IP_eth_4=$MAC_eth_6<br />　　ArtNet_IP_eth=$ArtNet_IP_eth_1&quot;.&quot;$ArtNet_IP_eth_2&quot;.&quot;$ArtNet_IP_eth_3&quot;.&quot;$ArtNet_IP_eth_4<br />　　/usr/bin/echo &quot;&#91;Art-Net&#93; &quot;$ETH_NAME&quot; is &quot;$ArtNet_IP_eth<br />　　# NetworkManager設定ファイルの有無確認<br />　　if &#91; ! -e &quot;/etc/NetworkManager/system-connections/&quot;$ETH_NAME&quot;.nmconnection&quot; &#93;; then<br />　　　# 設定ファイルが無いので新規設定し有効化<br />　　　/usr/bin/nmcli connection add con-name $ETH_NAME type ethernet ifname eth$i connection.autoconnect yes ipv4.addresses $ArtNet_IP_eth&quot;/8&quot; ipv4.method manual ipv4.never-default no ipv6.method disabled &gt;&gt; /dev/null<br />　　　/usr/bin/nmcli c reload<br />　　　/usr/bin/nmcli c up $ETH_NAME &gt;&gt; /dev/null<br />　　else<br />　　　# 設定ファイルがある IPアドレスが違うなら更新<br />　　　# 現在のIPアドレスを取得<br />　　　Current_IP_eth=$(/usr/bin/ip -f inet -o addr show eth$i|cut -d\　-f 7 | cut -d/ -f 1)<br />　　　# 現在のIPアドレスがArt-NetのIPアドレスと違うなら更新<br />　　　if &#91; &quot;$Current_IP_eth&quot; != &quot;$ArtNet_IP_eth&quot; &#93;; then<br />　　　　/usr/bin/nmcli c modify $ETH_NAME ipv4.address $ArtNet_IP_eth&quot;/8&quot;<br />　　　　/usr/bin/nmcli c down $ETH_NAME &gt;&gt; /dev/null<br />　　　　/usr/bin/nmcli c reload<br />　　　　/usr/bin/nmcli c up $ETH_NAME &gt;&gt; /dev/null<br />　　　　/usr/bin/echo &quot;&#91;Art-Net&#93; Updated eth&quot;$i&quot; IP address.&quot;<br />　　　else<br />　　　# IPアドレスが同じなので何もしない<br />　　　/usr/bin/echo &quot;&#91;Art-Net&#93; eth&quot;$i&quot; does not need to be changed.&quot;<br />　　　fi<br />　　fi<br />　else<br />　　# MACアドレスを取得出来ません<br />　　/usr/bin/echo &quot;&#91;Art-Net&#93; Unable to obtain IP address for eth&quot;$i&quot;.&quot;<br />　fi<br />　## eth1に切換え<br />　ETH_NAME=$ETH1_NAME<br />## for 折り返し<br />done</span></small><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> -- Posted by 電装工芸 〔2922文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=882</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=882</guid>
	<category>tegalog</category>
	<pubDate>Fri, 24 May 2024 21:16:31 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　資料映像のレンダリング中に Art-Net の IPアドレ… ]]></title>
	<description><![CDATA[ 　資料映像のレンダリング中に Art-Net の IPアドレスを設定する Bashスクリプトを書いてみました。<br />　実機は自宅ですが ssh で遠隔操作が出来ます。<br />　dhcpcd.conf の書き換えを NetworkManager のコマンドに置き換えるだけですので難しくはありません。<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> -- Posted by 電装工芸 〔186文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=881</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=881</guid>
	<category>tegalog</category>
	<pubDate>Fri, 24 May 2024 18:09:40 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　オレメモです。 ]]></title>
	<description><![CDATA[ 　オレメモです。<br />　PICにおいてPORTx,nに対するbit反転方法。<br />　TMR1のコンペアで割り込みしてPORTの出力を反転すればパルスになりますから、差動バイフェーズで重要です。<br /><br /><small class="decorationS"><span class="decorationF deco-code">; PORTAの3bit目だけ反転させる。<br />　MOVLW　00001000B　　; Wレジスタにフィルタ値を定義 3bit目だけ1<br />　XORWF　PORTA,SELF　 ; PORTAの3bit目だけを反転<br />　※ 書式はXC8のPIC-as</span></small><br /><br />　データシート読むとPORTxではなくLATxに対して計算を当てるのがいいらしいのですが、ここではわかりやすさのためにあえてPORT相手です。<br /><br />　XORの計算は次の通り。<br /><small class="decorationS"><span class="decorationF deco-code">0 xor 0 = 0<br />0 xor 1 = 1<br />1 xor 0 = 1<br />1 xor 1 = 0</span></small><br />　PIC16系にはbit単位の反転命令がありませんので、反転させたいbitだけ１にしたフィルタ値をXORで当てます。<br />　左の値をPORTの現在値、右の値をフィルタ値とすると、２行目と４行目が反転になり、１行目と３行目は非反転になります。<br /><br />　論理演算の基本ちゃ基本ですが、案外忘れてしまうのでメモメモ。<br /><br />　アセンブラに限らずですが、出来るだけ簡単な計算で条件分岐を行うことが大事です。<br />　例えば処理を10回繰り返すとして、0から加算してカウンタが10になったことを判断するより、10から減算して0になったことを判断する方が好みです。PICのアセンブラの分岐処理は計算結果が0かで扱うのが自然だからです。<br /><small class="decorationS"><span class="decorationF deco-code">; 10回繰り返す<br />　MOVLW　10　　　　　　; COUNTに10を設定する<br />　MOVWF　COUNT　　　　 ;<br />LOOP&#58;<br />　～ 10回繰り返す処理をここに書く ～<br />　DECFSZ　COUNT,SELF　 ; COUNTをデクリメント(-1)し、結果が0なら次行の処理を飛ばす<br />　GOTO　LOOP　　　　　 ; LOOPを繰り返す<br />　～ 繰り返しの後の処理をここに書く ～<br /></span></small><br />　DECFSZはDECFとBTFSSを組み合わせたマクロ命令みたいなものです。<br /><br />　少し蛇足ですが、レジスタの現在値が0であるかを見るには、<br /><small class="decorationS"><span class="decorationF deco-code">; レジスタNUMの値は0か？<br />　MOVF　 NUM,SELF　　; 自分自身へ値をコピー<br />　BTFSC　STATUS,ZE　 ; 計算結果がゼロかどうかで分岐<br />　GOTO　 NUMisZERO　 ; ゼロの場合NUMisZEROへジャンプ(CALLでもいいけど)<br /></span></small><br />　MOVFで自分自身に値をコピーするとSTATUSのゼロフラグ以外変化しないので便利です。<br />　もちろんWレジスタにコピーしても同じ結果を得られますが、Wレジスタが変化しない方がスッキリまとまることが多いようです。<br /><br />　てな感じで、PICのアセンブラのリハビリをしています。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%50%49%43" class="taglink" title="PIC">#PIC</a> -- Posted by 電装工芸 〔1194文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=612</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=612</guid>
	<category>tegalog</category>
	<pubDate>Wed, 24 May 2023 17:36:41 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　LTC Generator のファームウェアもボチボチ製作… ]]></title>
	<description><![CDATA[ 　LTC Generator のファームウェアもボチボチ製作開始です。初期設定から整理を始めています。<br />　まずはPICとプリアンプの確認を兼ねてパルス出力のテストプログラムからでしょうか。これが思惑通りにならないと何も始まりません。<br />　30fps向けの2,400bpsと25fps向けの2,000bpsです。実際は倍の4,800Hzと4,000Hzのパルス生成です。<br />　生成にはTMR1をコンペアモードで使います。<br />　TMR1はタイマと呼ばれるもので、CPUクロックなどをキーにした自動カウンターです。時間の計測に使えます。<br />　コンペアとはタイマが指定の値になったらタイマの値を初期化しつつフラグを立てる機能です。一定の周期を得られます。<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> <a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e3%82%bf%e3%82%a4%e3%83%a0%e3%82%b3%e3%83%bc%e3%83%89" class="taglink" title="タイムコード">#タイムコード</a> -- Posted by 電装工芸 〔389文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=611</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=611</guid>
	<category>tegalog</category>
	<pubDate>Wed, 24 May 2023 10:24:06 +0900</pubDate>
</item>
<!-- One Entry Data for RSS Feed -->
<item>
	<title><![CDATA[ 　MUSES01DのDI-1のエージングは135時間経過です… ]]></title>
	<description><![CDATA[ 　MUSES01DのDI-1のエージングは135時間経過です。<br />　劇的ではないものの、時間経過と共に安定感と明瞭感が増しています。無改造品との違いも分かりやすくなってきました。<br />　今朝感じたことは、アコースティックギターのピックや指が擦れる音が一層明瞭に聴こえてきたことです。そういった音を主張したミキシングではありませんし、パルスに近い音が大きくなったワケでもありませんが、音の向こうの無音が以前より感じられる様になったとでも言えばいいでしょうか。聴こえるということは音が大きくなったかそれを隠す余計な音が無くなったかのどちらかですが、原因は定かでないものの、聴き取り難かった音が明瞭になったことは事実です。<br />　音作りは好みの世界で、低能率やノイズすら「味」や「色」とされることもありますが、ダイレクトボックスは楽器の音をPAに受け渡す入口ですから正確に次に渡すことが役目だと考えています。正確の意味は演奏者が作った音を足しもせず引きもせずということです。<br /><br />　どこからの情報かわからないのですが、MUSES01Dのエージングは300～350時間らしいので半分経過です。<br /><br />　ちなみに無改造品の変化は止まった気がします。そのため改造品と差が開いた印象があるのかもしれません。途中参戦なので少し短いですが、ここまでのエージング時間は約80時間だと思います。<br />　今後も改造品と共にエージングを続けますが、無改造品のエージングは歪み限界から-3dBのピンクノイズを100時間当てる、としておきましょう。<br /><br /><a href="https&#58;//www.densokogei.jp/tegalog/tegalog.cgi?tag=%e9%9f%b3%e3%81%ae%e4%b8%96%e7%95%8c" class="taglink" title="音の世界">#音の世界</a> -- Posted by 電装工芸 〔656文字〕 ]]></description>
	<link>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=610</link>
	<guid>https://www.densokogei.jp/tegalog/tegalog.cgi?postid=610</guid>
	<category>tegalog</category>
	<pubDate>Wed, 24 May 2023 10:05:57 +0900</pubDate>
</item>

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

