全年全月2日の投稿[38件](2ページ目)
2024年9月 この範囲を時系列順で読む この範囲をファイルに出力する
LED-PAR の基板です。

赤枠で囲まれた所がRS485を受信するSN75176と保護回路の様です。これを全て取っ払い、SN75176 の代わりに LT1785 を取り付け、配線の一部をジャンパーします。
功を奏すかはやってみないとわかりませんが、中華電機に発注した SOPパッケージの LT1785CS8 が届いたら試してみましょう。
これらを外すには先端が平たい半田ゴテの2本使いが便利なのでポチリました。
追記
中華電機に発注した LT1785CS8 は日本に上陸したそうですから、遅くとも今週中には手に出来そうです。
半田ゴテも入荷しました。
さてさて。
#器具の修理

赤枠で囲まれた所がRS485を受信するSN75176と保護回路の様です。これを全て取っ払い、SN75176 の代わりに LT1785 を取り付け、配線の一部をジャンパーします。
功を奏すかはやってみないとわかりませんが、中華電機に発注した SOPパッケージの LT1785CS8 が届いたら試してみましょう。
これらを外すには先端が平たい半田ゴテの2本使いが便利なのでポチリました。
追記
中華電機に発注した LT1785CS8 は日本に上陸したそうですから、遅くとも今週中には手に出来そうです。
半田ゴテも入荷しました。
さてさて。
#器具の修理
2024年7月 この範囲を時系列順で読む この範囲をファイルに出力する
JAXAのH3ロケット3号機の打ち上げが成功しました!!
1号機の失敗がヤリ玉に挙がっただけに、2号機に続いての成功は嬉しいことです。
1号機については、H3の要である新型LE9エンジンを用いた1段目が正常に動作し、H2から流用した2段目が誤動作しました。ある意味H3のH3たる部分は成功したワケです。この点に着目せずH3全体をダメだ日本の技術はダメだと論じたメディアには疑問を感じています。プロジェクトが失敗したことは紛れもない事実ですが、H3は実現不可能とさえ言われたLE9エンジンが本丸ですから「LE9が成功したのに打ち上げが失敗だったことは残念だ」と言えないのが不思議。表面的で振り切った論評しか出来ない大手メディアの方がよっぽど性能不足だと思う。
ともかく成功しました。海外の打ち上げ手段に並ぶ低コストを実現したのですから、H2に匹敵する高成功率を積み上げ、スケジュールさえ合えばH3を選んでもらえるようになって欲しいものです。
ただ、イプシロンの時もそうですが、初期機体において詰めの甘さによる失敗が付きまとうのはどうにかして欲しい。複雑で高度な機械ですから一発で成功させるのは至難だと思いますが印象は大事です。JAXAはカグヤ、アカツキ、イカロス、コウノトリなどでNASAすら驚くことをやってのけてきたのですから、脇の甘さによる二流感を払拭できるようにご尽力を頂けたらと思っています。
これは余談かもしれませんが、JAXAの技術と成果は日本の防衛に寄与していると考えています。いざとなれば強力な兵器に転用できる技術だからです。もちろん、清すぎるくらい平和的な使い方しかしていませんが、確実な技術を持つことは実体を持つのと同義です。兵器の実体は無いが有るのと同じに扱われるなら最も平和的で低コストな抑止力です。
#雑記
1号機の失敗がヤリ玉に挙がっただけに、2号機に続いての成功は嬉しいことです。
1号機については、H3の要である新型LE9エンジンを用いた1段目が正常に動作し、H2から流用した2段目が誤動作しました。ある意味H3のH3たる部分は成功したワケです。この点に着目せずH3全体をダメだ日本の技術はダメだと論じたメディアには疑問を感じています。プロジェクトが失敗したことは紛れもない事実ですが、H3は実現不可能とさえ言われたLE9エンジンが本丸ですから「LE9が成功したのに打ち上げが失敗だったことは残念だ」と言えないのが不思議。表面的で振り切った論評しか出来ない大手メディアの方がよっぽど性能不足だと思う。
ともかく成功しました。海外の打ち上げ手段に並ぶ低コストを実現したのですから、H2に匹敵する高成功率を積み上げ、スケジュールさえ合えばH3を選んでもらえるようになって欲しいものです。
ただ、イプシロンの時もそうですが、初期機体において詰めの甘さによる失敗が付きまとうのはどうにかして欲しい。複雑で高度な機械ですから一発で成功させるのは至難だと思いますが印象は大事です。JAXAはカグヤ、アカツキ、イカロス、コウノトリなどでNASAすら驚くことをやってのけてきたのですから、脇の甘さによる二流感を払拭できるようにご尽力を頂けたらと思っています。
これは余談かもしれませんが、JAXAの技術と成果は日本の防衛に寄与していると考えています。いざとなれば強力な兵器に転用できる技術だからです。もちろん、清すぎるくらい平和的な使い方しかしていませんが、確実な技術を持つことは実体を持つのと同義です。兵器の実体は無いが有るのと同じに扱われるなら最も平和的で低コストな抑止力です。
#雑記
2024年6月 この範囲を時系列順で読む この範囲をファイルに出力する
今更ですが、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月 この範囲を時系列順で読む この範囲をファイルに出力する
12tのコンパネを貼り合わせて24tにするには挟み込む治具が必要と思われます。平台状の物でサンドイッチしてクランプで圧着するのです。床に置いて重しをしても木工ボンドの湿気による反りに負けない様にするにはかなりの重量が必要だからです。
平台は材料ナリで作っても必要な精度は出そうですが収納場所が問題。こんなモノに良い場所を与えるワケにもいきませんが、奥まったところに置くと取り出すのが不便です。
とりあえず作ってから悩んでもいいか・・・。
#ガチ工作
平台は材料ナリで作っても必要な精度は出そうですが収納場所が問題。こんなモノに良い場所を与えるワケにもいきませんが、奥まったところに置くと取り出すのが不便です。
とりあえず作ってから悩んでもいいか・・・。
#ガチ工作
2024年4月 この範囲を時系列順で読む この範囲をファイルに出力する
ATX電源を止めるネジについて調べました。PCでは多く使われる物ですが、「UNC No.6 32山」だそうです。
歴史上の名残りというか、USAではインチベースのネジが未だに使われているためかな?
USAで一般的なインチネジにはW(ウィット)、UNF、UNCと3種類あるそうな。ISOネジに統一してくれたらいいのにねぇ~。
追記
Wはネジ山の角度が55度のインチネジ、UNCやUNFは60度のインチネジだそうな。Wはウィットネジ、UNCとUNFはユニファイネジと呼称される。UNCとUNFの違いはISOで言うところの並ネジと細ネジ。UNFが細ネジ。
蛇足ですがW1/4とUNC1/4はほぼ同じ。UNC1/4はカメラ系の固定で使われることが多いのですが、UNC1/4の雌ネジにW1/4の雄ネジは普通に入ります。山は少し違いますが、太さも山ピッチも同じですから。
#工具と資材
歴史上の名残りというか、USAではインチベースのネジが未だに使われているためかな?
USAで一般的なインチネジにはW(ウィット)、UNF、UNCと3種類あるそうな。ISOネジに統一してくれたらいいのにねぇ~。
追記
Wはネジ山の角度が55度のインチネジ、UNCやUNFは60度のインチネジだそうな。Wはウィットネジ、UNCとUNFはユニファイネジと呼称される。UNCとUNFの違いはISOで言うところの並ネジと細ネジ。UNFが細ネジ。
蛇足ですがW1/4とUNC1/4はほぼ同じ。UNC1/4はカメラ系の固定で使われることが多いのですが、UNC1/4の雌ネジにW1/4の雄ネジは普通に入ります。山は少し違いますが、太さも山ピッチも同じですから。
#工具と資材
ATX(SFX)電源の汎用化を進めているのは RaspberryPi の開発環境を整えるためです。
ATX電源は一般的な汎用電源に比べ出力に余裕があり、安価な製品も多く、私の場合は手元にジャンク品があるためコスパが良い。ただ、汎用電源化するには何らかの加工をしなければならないのがネック。
今回はリセッタブルヒューズを介してJSTのXHコネクタで取り出せる基板を作りましたが、こういった物はあるようでありません。物凄くニッチな代物となりますが、ATX電源を汎用電源化するグッズがあってもいいような気がします。
数日前、基板が届きましたのでケースの加工をしております。
ホームセンターで入手したトランクケースの中に電源を固定します。いわゆるブリーフケースタイプではなく寸胴な工具箱タイプですが、これの側面に角穴を空けプリントしたパネルを介してSFX電源を固定します。この後はモニタをフタの内側に取り付けますので、形がまとまったら写真を揚げてみます。
箱に標準実装するのは電源とモニタだけです。空きスペースは十分にありますので、ここに開発に必要な用品( RaspberryPi や周辺機器)を仮組みしておくのです。いつ終わるかわからない作業のために占領し続ける場所もありませんし、都度組むのも面倒なので、お店を広げたままの作業机を持ち運びするイメージになればと。
#電子工作 #ガチ工作 #器具の製作
ATX電源は一般的な汎用電源に比べ出力に余裕があり、安価な製品も多く、私の場合は手元にジャンク品があるためコスパが良い。ただ、汎用電源化するには何らかの加工をしなければならないのがネック。
今回はリセッタブルヒューズを介してJSTのXHコネクタで取り出せる基板を作りましたが、こういった物はあるようでありません。物凄くニッチな代物となりますが、ATX電源を汎用電源化するグッズがあってもいいような気がします。
数日前、基板が届きましたのでケースの加工をしております。
ホームセンターで入手したトランクケースの中に電源を固定します。いわゆるブリーフケースタイプではなく寸胴な工具箱タイプですが、これの側面に角穴を空けプリントしたパネルを介してSFX電源を固定します。この後はモニタをフタの内側に取り付けますので、形がまとまったら写真を揚げてみます。
箱に標準実装するのは電源とモニタだけです。空きスペースは十分にありますので、ここに開発に必要な用品( RaspberryPi や周辺機器)を仮組みしておくのです。いつ終わるかわからない作業のために占領し続ける場所もありませんし、都度組むのも面倒なので、お店を広げたままの作業机を持ち運びするイメージになればと。
#電子工作 #ガチ工作 #器具の製作
2024年1月 この範囲を時系列順で読む この範囲をファイルに出力する
帰省してきました。車で20分ですが。
高齢になっても話がシッカリして元気にしている両親には安心しつつ感謝しましたが、帰省あるあるお土産の山。これ持っていけ、あれ持っていけ。
全て食品ですが、傷む前に食いきれるのか?といった量。
これはお裾分けしないといけません。
帰宅したので製作の再開です。
2品目のハンダ付けから。表面実装部品のリフローハンダです。
#器具の製作
高齢になっても話がシッカリして元気にしている両親には安心しつつ感謝しましたが、帰省あるあるお土産の山。これ持っていけ、あれ持っていけ。
全て食品ですが、傷む前に食いきれるのか?といった量。
これはお裾分けしないといけません。
帰宅したので製作の再開です。
2品目のハンダ付けから。表面実装部品のリフローハンダです。
#器具の製作
2023年11月 この範囲を時系列順で読む この範囲をファイルに出力する
C60A-C30Aの分岐ボックスは未来工業さんのPVP201007Aで構成案を描いてみたところいい感じ。ケーブルの取り回しを充分に考慮しないと手詰まりになりますから細かいレイアウト図を起こしています。
追記
スケッチを揚げます。部品の形状の三面図をメーカーのDXFや実測から起こしてレイアウトを試します。こういったスケッチで検討してから寸法図・加工図を起こします。
少し大きいケースはPVP-201507Aです。

余談ですが、PDF出力する仮想プリンタドライバとして「Cube PDF」を使っています。フリーウェアとは思えない程の機能と使いやすさ。さらにはPDFだけでなく、PS、EPS、PNG、JPEG、BMP、TIFFも出力出来ます。上記はそれで起こしています。
アプリに付属の画像出力がイマイチの場合に便利です。ただ、画像の解像度が高すぎる傾向がありますので、用途に合わせて別アプリで解像度を調整すると良いようです。
#器具の製作
追記
スケッチを揚げます。部品の形状の三面図をメーカーのDXFや実測から起こしてレイアウトを試します。こういったスケッチで検討してから寸法図・加工図を起こします。
少し大きいケースはPVP-201507Aです。



余談ですが、PDF出力する仮想プリンタドライバとして「Cube PDF」を使っています。フリーウェアとは思えない程の機能と使いやすさ。さらにはPDFだけでなく、PS、EPS、PNG、JPEG、BMP、TIFFも出力出来ます。上記はそれで起こしています。
アプリに付属の画像出力がイマイチの場合に便利です。ただ、画像の解像度が高すぎる傾向がありますので、用途に合わせて別アプリで解像度を調整すると良いようです。
#器具の製作
2023年9月 この範囲を時系列順で読む この範囲をファイルに出力する
pyinstaller でexeファイルを作ってみましたが環境によって微妙な不具合が出ます。原因は不明ですが、pyinstaller の操作手順かもしれません。
「PyinstallerでPythonプログラムをexe化する手順書(Windows編)」
上記を参考に作った exeファイルは自分の環境では問題なく動いたのですが、ここに一工夫加えてみようと思います。
仮想環境での実行が推奨されていますが、pyinstaller 自体も仮想環境にインストールするべきなのかもしれません。別の先達情報にはその様に書かれている物があります。
「PyInstallerを使ってみた」
追記
作業手順のオレメモ。
仮想環境に pyinstaller を入れての実行の方が良いようです。
作業ディレクトリに移動
> cd <作業ディレクトリ>
pipenv をインストール
> pip install pipenv
pipenv で使う python のバージョンを指定
> pipenv --python 3.9
pipenv(仮想環境)を開始
> pipenv shell
仮想環境にpyinstaller をインストール
> pipenv install -d pyinstaller
必要なライブラリをインストール
> pipenv install pyserial
> pipenv install PySimpleGUI
> pipenv install python-vlc
・・・etc
ビルドする
> pyinstaller ltcplayer.py --clean --noconcole --onefile
・・・数分で終わる。
作業ディレクトリ内の distフォルダ内 に ltcplayer.exe が出来ている。
終了なら仮想環境のshellから抜ける
> exit
仮想環境を削除
> pipenv --rm
作業ディレクトリは Python のソースコードがある階層でもいいのだけれど、
ゴチャゴチャするので私は一つ下の階層で作業をしています。
ソースコードがある階層で
> mkdir env
> cd env
> pyinstaller ..\ltcplayer.py --clean --noconcole --onefile
相対パスでソースコードを一つ上の階層として呼びます。
お好みですけど。
#Python #タイムコード
「PyinstallerでPythonプログラムをexe化する手順書(Windows編)」
上記を参考に作った exeファイルは自分の環境では問題なく動いたのですが、ここに一工夫加えてみようと思います。
仮想環境での実行が推奨されていますが、pyinstaller 自体も仮想環境にインストールするべきなのかもしれません。別の先達情報にはその様に書かれている物があります。
「PyInstallerを使ってみた」
追記
作業手順のオレメモ。
仮想環境に pyinstaller を入れての実行の方が良いようです。
作業ディレクトリに移動
> cd <作業ディレクトリ>
pipenv をインストール
> pip install pipenv
pipenv で使う python のバージョンを指定
> pipenv --python 3.9
pipenv(仮想環境)を開始
> pipenv shell
仮想環境にpyinstaller をインストール
> pipenv install -d pyinstaller
必要なライブラリをインストール
> pipenv install pyserial
> pipenv install PySimpleGUI
> pipenv install python-vlc
・・・etc
ビルドする
> pyinstaller ltcplayer.py --clean --noconcole --onefile
・・・数分で終わる。
作業ディレクトリ内の distフォルダ内 に ltcplayer.exe が出来ている。
終了なら仮想環境のshellから抜ける
> exit
仮想環境を削除
> pipenv --rm
作業ディレクトリは Python のソースコードがある階層でもいいのだけれど、
ゴチャゴチャするので私は一つ下の階層で作業をしています。
ソースコードがある階層で
> mkdir env
> cd env
> pyinstaller ..\ltcplayer.py --clean --noconcole --onefile
相対パスでソースコードを一つ上の階層として呼びます。
お好みですけど。
#Python #タイムコード