2024年の投稿[199件](10ページ目)
2024年6月 この範囲を時系列順で読む この範囲をファイルに出力する
今度は丸椅子を作るハメになりました。
舞台装置として丸太をイメージしたものです。
丸太・・・通常なら芯を作って新聞紙みたいなモノを糊で貼っていくか樹脂を塗りつけて形にしますが、リアル感は不要で完全な円筒でいい代物です。正に丸椅子。
外周の木肌柄は手書きしている時間がないので看板屋さんにステカンやノボリで使う生地に木肌を印刷してもらって取り廻してみます。以前からひな壇のケコミなどに使えないかと思っていた方法を今回試してみます。和物などでグレーケコミを貼るのも飽きてきたので、和柄をケコミに出来ないかと思っていたのです。
その前に、丸椅子を作らねば。
どうしたら安価に簡単に作れましょう。
#ガチ工作 #舞台装置
舞台装置として丸太をイメージしたものです。
丸太・・・通常なら芯を作って新聞紙みたいなモノを糊で貼っていくか樹脂を塗りつけて形にしますが、リアル感は不要で完全な円筒でいい代物です。正に丸椅子。
外周の木肌柄は手書きしている時間がないので看板屋さんにステカンやノボリで使う生地に木肌を印刷してもらって取り廻してみます。以前からひな壇のケコミなどに使えないかと思っていた方法を今回試してみます。和物などでグレーケコミを貼るのも飽きてきたので、和柄をケコミに出来ないかと思っていたのです。
その前に、丸椅子を作らねば。
どうしたら安価に簡単に作れましょう。
#ガチ工作 #舞台装置
DA変換は構想だけ進めてしばらくは棚上げかな。ガッツリ取り組めば実働4-5日で作れると思うのですけどね。
ユニット関係は DX1220 を2台入れたラックにスプリッターを実装するのが先です。
頭がとっちらかって何から何をしたらいいのかゴチャゴチャです。本業もデータやら美術やら課題が多すぎ。
挙句の果てには倉庫の棚も作らねばなりません。部下が倉庫の整理を頑張ってくれているのでやりやすいようにしてやらんと。物とレイアウトの都合でありがちな棚ではダメなので作るしかありません。
頭を冷やして課題を整理しましょうかねぇ~。
#器具の製作
ユニット関係は DX1220 を2台入れたラックにスプリッターを実装するのが先です。
頭がとっちらかって何から何をしたらいいのかゴチャゴチャです。本業もデータやら美術やら課題が多すぎ。
挙句の果てには倉庫の棚も作らねばなりません。部下が倉庫の整理を頑張ってくれているのでやりやすいようにしてやらんと。物とレイアウトの都合でありがちな棚ではダメなので作るしかありません。
頭を冷やして課題を整理しましょうかねぇ~。
#器具の製作
DA変換には MAX528 を使おうかと思案中です。SPI制御で最大11v5mAを8ch扱えます。コレを2個使えば12ch対応出来ます。
東京スイッチングさんにお聞きしたところ信号は 5mA も供給出来れば十分とのことでしたのでバッファアンプ無しで行けそうです。少し怖いところもありますので4回路内蔵のオペアンプを入れようかな・・・
MAX528は日本国内では扱いが少ないようですが、手持ち在庫が少しありますし中国なら手に入ります。
#器具の製作
東京スイッチングさんにお聞きしたところ信号は 5mA も供給出来れば十分とのことでしたのでバッファアンプ無しで行けそうです。少し怖いところもありますので4回路内蔵のオペアンプを入れようかな・・・
MAX528は日本国内では扱いが少ないようですが、手持ち在庫が少しありますし中国なら手に入ります。
#器具の製作
東京スイッチングさんの調光ユニットがあります。購入してから25年以上経っていますが壊れる気配は皆無。丈夫さはピカイチ。
ただしフルアナログなのでDA変換が必須です。昨今はDA変換が一般には売ってませんので入手先を探すか製作を考えねばなりません。
製作は8chのDA変換ICを使えば簡単に作れそうですが、どんなDA回路を使ってもマイナス電位が必要。+12vと-5vが理想ですが最近は複合タイプのスイッチング電源の選択肢が少なくなりどうしたものかと思案しておりました。
基本に立ち戻って調べなおしたところ、スイッチング電源を直列にすれば良いらしい。トランスで絶縁されているなら電位は相対的ですからそうなるわな。マイナス側のスイッチング電源のアース処理には注意が必要ですけど。
電源が解決したら設計を進められます。
#器具の製作
ただしフルアナログなのでDA変換が必須です。昨今はDA変換が一般には売ってませんので入手先を探すか製作を考えねばなりません。
製作は8chのDA変換ICを使えば簡単に作れそうですが、どんなDA回路を使ってもマイナス電位が必要。+12vと-5vが理想ですが最近は複合タイプのスイッチング電源の選択肢が少なくなりどうしたものかと思案しておりました。
基本に立ち戻って調べなおしたところ、スイッチング電源を直列にすれば良いらしい。トランスで絶縁されているなら電位は相対的ですからそうなるわな。マイナス側のスイッチング電源のアース処理には注意が必要ですけど。
電源が解決したら設計を進められます。
#器具の製作
中華電機の器具類を XLR3P から XLR5P へ換装中。ケーブルは XLR3P の方が安いし音響のも使えるので良いところもあるのですが、3P だ 5P だと使い分けるのが面倒なので 5P に統一する方向で整備中です。XLR5P の国内正規品は高価ですが、中華電機のノイトリック互換品(数世代遅れ品)は安価です。XLR5P ケーブルコネクタは200円程度、レセプタクルに至っては100円しません。
XLR5P に取り付ける専用基板も作りました。内部配線まで手を入れたくないためです。XLR5P レセプタクルの端子を差し込んでハンダ付けし XH コネクタで出すものです。オスもメスも取り付ける1枚基板にしたかったのですが、器具によってオスメスの取付間隔が数ミリ違うので使いまわしが出来ません。オス側だけ基板化し、メス側はケーブル出ししてオス側の基板に挿します。PCBGOGOさんで作ってもらい75枚38ドル、1枚あたり50セントでした。

コネクタの固定はブライドリベットです。元々はネジ止めでしたが、ナットを入れるのが大変ですし、滅多に外しませんのでいいかなと。
当面の改造課題の試作は終わりなので今後はライン作業ですが、満足なハンダ付けを出来る人材が少ないのでどうしたものか。
DMXケーブルは数年前に大規模なライトアップで使った残材で増やせそうです。カナレさんのDMX203が数百メートルあります。カナレさんの4E6Sよりもハンダ付けは楽なので皆さんに練習してもらいましょう。
余談ですが、中国の話。
主要メディアではそれほど報道されませんが、中国では不動産バブルが弾けて大騒ぎだそうな。部品関連の業者さんも親会社がこういったところだとどうなるものかと心配しています。
ただ、中国に協力会社を持つ知人によると、バブルに踊ってイイ気になっていた人たちが溺れているだけで、バブルに踊らす地道に真面目にやってきたところは影響が少ないとか。この辺りは日本で不動産バブルが弾けたときと同じですね。
#器具の修理
XLR5P に取り付ける専用基板も作りました。内部配線まで手を入れたくないためです。XLR5P レセプタクルの端子を差し込んでハンダ付けし XH コネクタで出すものです。オスもメスも取り付ける1枚基板にしたかったのですが、器具によってオスメスの取付間隔が数ミリ違うので使いまわしが出来ません。オス側だけ基板化し、メス側はケーブル出ししてオス側の基板に挿します。PCBGOGOさんで作ってもらい75枚38ドル、1枚あたり50セントでした。


コネクタの固定はブライドリベットです。元々はネジ止めでしたが、ナットを入れるのが大変ですし、滅多に外しませんのでいいかなと。
当面の改造課題の試作は終わりなので今後はライン作業ですが、満足なハンダ付けを出来る人材が少ないのでどうしたものか。
DMXケーブルは数年前に大規模なライトアップで使った残材で増やせそうです。カナレさんのDMX203が数百メートルあります。カナレさんの4E6Sよりもハンダ付けは楽なので皆さんに練習してもらいましょう。
余談ですが、中国の話。
主要メディアではそれほど報道されませんが、中国では不動産バブルが弾けて大騒ぎだそうな。部品関連の業者さんも親会社がこういったところだとどうなるものかと心配しています。
ただ、中国に協力会社を持つ知人によると、バブルに踊ってイイ気になっていた人たちが溺れているだけで、バブルに踊らす地道に真面目にやってきたところは影響が少ないとか。この辺りは日本で不動産バブルが弾けたときと同じですね。
#器具の修理
MPLABXv5.5 にて PIC の書き込みが出来ました。
以前はその場しのぎの成り行きでやっていたので、今回は設定と手順をまとめた次第です。
MPLABX の操作・設定、コンフィゲーションビットの設定、XC8 の書式がわかれば MPLABv8 と大差ありません。この辺りがモヤモヤしていると言えばそれまでなんですけどね。
ただ、Pickit3 は動くのですが Pickit4 はダメ。PIC を見つけてくれないし、Pickit4 とは別に不明なシュミレータ/プログラマも表示される。壊れているのか設定が間違っているのか、新品を買って比べるのがいいのでしょうが、Pickit3 で当面はしのげるので様子見です。
#PIC
以前はその場しのぎの成り行きでやっていたので、今回は設定と手順をまとめた次第です。
MPLABX の操作・設定、コンフィゲーションビットの設定、XC8 の書式がわかれば MPLABv8 と大差ありません。この辺りがモヤモヤしていると言えばそれまでなんですけどね。
ただ、Pickit3 は動くのですが Pickit4 はダメ。PIC を見つけてくれないし、Pickit4 とは別に不明なシュミレータ/プログラマも表示される。壊れているのか設定が間違っているのか、新品を買って比べるのがいいのでしょうが、Pickit3 で当面はしのげるので様子見です。
#PIC
MPLABv8とMPLABXを共存させる場合、「MPLAB driver switcher」を用いてUSB接続されるデバイスのドライバを切り替えなければならないらしい。
ただし、MPLABXの後にMPLABv8をインストールするとスッキリしない。バージョン順にインストールするのがいいらしい。
バージョンによる境界だが、MPASM が付属し使えるのは MPLABXv5.35 まで、Pickit3 が使えるのは MPLABX6.2 までらしい。
#PIC
ただし、MPLABXの後にMPLABv8をインストールするとスッキリしない。バージョン順にインストールするのがいいらしい。
バージョンによる境界だが、MPASM が付属し使えるのは MPLABXv5.35 まで、Pickit3 が使えるのは MPLABX6.2 までらしい。
#PIC
今更ですが、PIC の開発環境を MPLAB-X に完全移行しています。このところ PIC のソースコードを書いていなかったので取り急ぎの必要がなかったのですが、DMX のスプリッターを増産することになったのでこの際といったところです。
問題点はアセンブラが MPASM から XC8 になったためソースコードの記述が違うことです。
以前にも少し書いたのですが、整理したので改めて揚げてみます。
1)ラベル文字の最後に ' : ' をつける
例:
--- MPASM ---
LOOP
NOP
GOTO LOOP
--- xc8_asm ---
LOOP:
NOP
GOTO LOOP
2)0x以外の数値識別子が異なる
例:
--- MPASM ---
2進数 B'01001111'
8進数 O'72'
10進数 D'34' または .34
16進数 H'4F' または 0x4F
--- xc8_asm ---
2進数 01001111B
8進数 72Q
10進数 34
16進数 04FH または 0x4F
3)cblock は使えないので equ を使用する
4)org の代わりに、psect を使用する
コードの開始アドレスを指示するのだが、二か所に記述する。これまで ORG を書いた本文の位置と Linker に記述。
例1:
インデックスの名前を Code_Start としアドレスを 0x0000 とする場合。
(1) 開始アドレスを与えたいコードの直上に次を記述する。ORG の代わりに用いるものである。
PSECT Code_Start,class=CODE,delta=2
(2) <project properties ダイアログ> <pic-as Linker> <Custom linker options> に以下を記述する。
-pStart_Code=0h
例2:
インデックスの名前を Int_Vec としアドレスを 0x0004 とする場合。
(1) 開始アドレスを与えたいコードの直上に次を記述する。ORG の代わりに用いるものである。
PSECT Int_Vec,class=CODE,delta=2
(2) <project properties ダイアログ> <pic-as Linker> <Custom linker options> に以下を記述する。
-pInt_Vec=4h
例3:
インデックスの名前を Tables としアドレスを 0x0400 とする場合。
(1) 開始アドレスを与えたいコードの直上に次を記述する。ORG の代わりに用いるものである。
PSECT Tables,class=CODE,delta=2
(2) <project properties ダイアログ> <pic-as Linker> <Custom linker options> に以下を記述する。
-pTables=400h
5)コンフィグ指定は、xc8 の形式とする
MPLABX のメニュー [Production] [Set Configuration Bits] を用いると各項目の設定から以下のようなコードの生成まで出来るので本文の冒頭にコピペする。
例:
; CONFIG1
CONFIG FOSC = EXTRCCLK ; Oscillator Selection bits (EXTRC oscillator; CLKO function on RA6/OSC2/CLKO)
CONFIG WDTE = ON ; Watchdog Timer Enable bit (WDT enabled)
CONFIG PWRTE = OFF ; Power-up Timer Enable bit (PWRT disabled)
CONFIG MCLRE = ON ; RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is MCLR)
CONFIG BOREN = ON ; Brown-out Reset Enable bit (BOR enabled)
CONFIG LVP = ON ; Low-Voltage Programming Enable bit (RB3/PGM pin has PGM function, Low-Voltage Programming enabled)
CONFIG CPD = OFF ; Data EE Memory Code Protection bit (Code protection off)
CONFIG WRT = OFF ; Flash Program Memory Write Enable bits (Write protection off)
CONFIG CCPMX = RB0 ; CCP1 Pin Selection bit (CCP1 function on RB0)
CONFIG CP = OFF ; Flash Program Memory Code Protection bit (Code protection off)
; CONFIG2
CONFIG FCMEN = ON ; Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor enabled)
CONFIG IESO = ON ; Internal External Switchover bit (Internal External Switchover mode enabled)
6)オペランドでの SFR の表記に注意する
詳細が長すぎるのでここでは割愛
追記
不思議な現象が発生。
MPLABXv5.5ではアセンプルが通るのにv6.2ではエラーが出て通らないプロジェクトがある。アセンブラはどちらも同じバージョンのXC8。
エラーメッセージを見ると書いたソースコードではなく内部的なツールにエラーが起きているとある。
さて、とこから詰めていきましょうか。
#PIC
問題点はアセンブラが MPASM から XC8 になったためソースコードの記述が違うことです。
以前にも少し書いたのですが、整理したので改めて揚げてみます。
1)ラベル文字の最後に ' : ' をつける
例:
--- MPASM ---
LOOP
NOP
GOTO LOOP
--- xc8_asm ---
LOOP:
NOP
GOTO LOOP
2)0x以外の数値識別子が異なる
例:
--- MPASM ---
2進数 B'01001111'
8進数 O'72'
10進数 D'34' または .34
16進数 H'4F' または 0x4F
--- xc8_asm ---
2進数 01001111B
8進数 72Q
10進数 34
16進数 04FH または 0x4F
3)cblock は使えないので equ を使用する
4)org の代わりに、psect を使用する
コードの開始アドレスを指示するのだが、二か所に記述する。これまで ORG を書いた本文の位置と Linker に記述。
例1:
インデックスの名前を Code_Start としアドレスを 0x0000 とする場合。
(1) 開始アドレスを与えたいコードの直上に次を記述する。ORG の代わりに用いるものである。
PSECT Code_Start,class=CODE,delta=2
(2) <project properties ダイアログ> <pic-as Linker> <Custom linker options> に以下を記述する。
-pStart_Code=0h
例2:
インデックスの名前を Int_Vec としアドレスを 0x0004 とする場合。
(1) 開始アドレスを与えたいコードの直上に次を記述する。ORG の代わりに用いるものである。
PSECT Int_Vec,class=CODE,delta=2
(2) <project properties ダイアログ> <pic-as Linker> <Custom linker options> に以下を記述する。
-pInt_Vec=4h
例3:
インデックスの名前を Tables としアドレスを 0x0400 とする場合。
(1) 開始アドレスを与えたいコードの直上に次を記述する。ORG の代わりに用いるものである。
PSECT Tables,class=CODE,delta=2
(2) <project properties ダイアログ> <pic-as Linker> <Custom linker options> に以下を記述する。
-pTables=400h
5)コンフィグ指定は、xc8 の形式とする
MPLABX のメニュー [Production] [Set Configuration Bits] を用いると各項目の設定から以下のようなコードの生成まで出来るので本文の冒頭にコピペする。
例:
; CONFIG1
CONFIG FOSC = EXTRCCLK ; Oscillator Selection bits (EXTRC oscillator; CLKO function on RA6/OSC2/CLKO)
CONFIG WDTE = ON ; Watchdog Timer Enable bit (WDT enabled)
CONFIG PWRTE = OFF ; Power-up Timer Enable bit (PWRT disabled)
CONFIG MCLRE = ON ; RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is MCLR)
CONFIG BOREN = ON ; Brown-out Reset Enable bit (BOR enabled)
CONFIG LVP = ON ; Low-Voltage Programming Enable bit (RB3/PGM pin has PGM function, Low-Voltage Programming enabled)
CONFIG CPD = OFF ; Data EE Memory Code Protection bit (Code protection off)
CONFIG WRT = OFF ; Flash Program Memory Write Enable bits (Write protection off)
CONFIG CCPMX = RB0 ; CCP1 Pin Selection bit (CCP1 function on RB0)
CONFIG CP = OFF ; Flash Program Memory Code Protection bit (Code protection off)
; CONFIG2
CONFIG FCMEN = ON ; Fail-Safe Clock Monitor Enable bit (Fail-Safe Clock Monitor enabled)
CONFIG IESO = ON ; Internal External Switchover bit (Internal External Switchover mode enabled)
6)オペランドでの SFR の表記に注意する
詳細が長すぎるのでここでは割愛
追記
不思議な現象が発生。
MPLABXv5.5ではアセンプルが通るのにv6.2ではエラーが出て通らないプロジェクトがある。アセンブラはどちらも同じバージョンのXC8。
エラーメッセージを見ると書いたソースコードではなく内部的なツールにエラーが起きているとある。
さて、とこから詰めていきましょうか。
#PIC
2024年5月 この範囲を時系列順で読む この範囲をファイルに出力する
10年以上前に作った調光ユニットでフリッカーが出るとの話しがありました。状況を再現出来ないので原因がわかりませんでしたが、予防策を突然閃く。ACのゼロクロス時にはSCRへのトリガー信号を強制的に切るのです。ある意味簡単なことですが、なかなか思い付かなかった自分に反省。調光装置は望むレベルで点灯させるのが役目ですが、確実に消灯することがとても大事です。
フリッカー発生条件ので検証は不可能ですが、マイコンのファームウェアを修正したところ前よりもSCRのスイッチングが安定しているようです。
ソースコードのコメントを数年後の自分への申し送りとして事細かに書いていたことも助けになりました。勢いで書き殴って動いたらオシマイとしていたら解決出来なかったかもしれません。
#電子工作 #照明器具
フリッカー発生条件ので検証は不可能ですが、マイコンのファームウェアを修正したところ前よりもSCRのスイッチングが安定しているようです。
ソースコードのコメントを数年後の自分への申し送りとして事細かに書いていたことも助けになりました。勢いで書き殴って動いたらオシマイとしていたら解決出来なかったかもしれません。
#電子工作 #照明器具