2025年11月19日水曜日

超音波距離計(その2)

 表示部は車の後窓付近に置きたいので、大き目の7セグ赤色LEDとワゴンセールで安価に入手したマイコン内蔵RGBLED(PL-9823、以下RGB-LED) を使う事とした。障害物との距離が近い場合は数字より色の方が感覚に訴える。

RGB-LEDはシリーズに繋ぐだけで使うことが出来る優れものである。 

7-セグLEDをアノードコモンにするかカソードコモンにするかであるが、コモン端子には大電流(最大160mA=各セグメントで20mA)が流れるのでPICでは直接駆動できなく適切なICが見付からなければトランジスタで駆動する事にする。このときアノードコモンだとPNPトランジスタを使う事となりそれをNPNでドライブするのでトランジスタの数が増える。一方カソードコモンだとNPNトランジスタだけでPICから駆動できる。 

各セグメントの駆動には電流制限のため(抵抗で済ますことも出来たが)試しに定電流ダイオードを使うが電圧降下が4V以上あり電源の5V供給では足りないため電源に12Vを使うこととなりPICには直結できない。そして次のような回路とした。(後で考えると電流制限は抵抗で済ませたほうが簡単で安価だった。)また20ピンのPICの抜き差しは面倒なのでプログラムはPicKitで直接書き込むようにした。

 電源は車のアクセサリー等から12Vを引いて使う予定だが上の回路図からは電源部は省略している。

そして次のような基板を設計し発注した。 

あとはソフトの制作だ。

(続く) 

 

2025年11月12日水曜日

超音波距離計(その1)

 以前作った超音波測距モジュールからブランチして超音波距離計を作れないか相談を受けた。車のバックセンサーとして使いたいというものだ。ならば車外のセンサー部と車内の表示部という構成にする必要があろう。先ずセンサー部だ。

超音波センサーには秋月で安価に売っているHC-SR04とUS-015があり、コネクタには互換性がある。HC-SR04はGPIOインターフェイスのほかI2CやUARTにも対応しているがUS-015はGPIOのみであり、ここでは両方使えるよう、また後処理を考えてGPIOを使うようにした。

単に距離を測れれば良いならば簡単なものだ。そこでPIC16F18313を使ってプロトタイプを作った。 電源は表示部から供給する。

簡単な回路なので、であっという間に完成した(電源のバイパスコンデンサは回路図からは省略している)。
ソフトも、距離だけ測れば良いので以前PIC16F18346用に作ったものをPIC16F18313用に簡略化して1日で出来上がった。PIC16F18313は内蔵タイマーが少ないのでTMR0を200ms毎の測定開始用、TMR1をエコー時間測定用、TMR2を100msのタイムアウト用として使っている。測定は毎秒5回行い、過去4回分を平均して結果として報告するようにしている。次は実際に動かしてみた結果の一例である(結果はcm単位)。

US Ranging313-3.01.013 for RH-Kager3 US-Sensor Rev0.1
Copyright(C) 2025 MYcrosLip.
= 56
= 56
= 45
= 33
= 21
= 21
= 33
= 45
= 56
= 60
= 83
= 111
= 122
= 156
= 190
= 205
 

超音波センサーの最大探知距離4mより大きな値は999cmとし、センサーから応答がない場合は998cmとして報告するようにしている。


センサー部は出来上がったので、次は表示部の検討を行う。

(続く) 

 

 

 

 

2025年11月7日金曜日

Multicore社のハンダ、使ってます

 エレキギターのエフェクターの修理動画を見ていたら修理にMulticoreのハンダを使っているという説明があった。私も昔からMulticoreの直径1mm/5コアの物を使っているが、敢えてブランド名を言うほどの優れものだとは知らなかった。

このハンダは就職して間もない頃、大阪日本橋の電気店で手頃の大きさ/太さだからと何も考えずに買ったものだ。当時はもっと太いハンダが主流で1mmの細いハンダは珍しかったように思う。もう半世紀近く使っているがまだ使いきれていない。しかしもう巻が一重強ほどしか残ってないので次をどうしようかと考えていた所であった。

ネット情報によるとMulticoreのハンダは音楽界隈で評判が良いようで、音が全然違うとか有名音楽家の機材に使われていたとか出てくるが、こういう方面はオカルト的であまり興味が湧かない。私の使用目的は主にデジタル回路で、8ビットマイコンの時代から使っている。

ヤフオクで検索するとMulticoreの古いハンダにけっこう高値が付いている。 少し気になるのはMulticoreのハンダのラベルにはオレンジ系の色が使われてERSINという名前が印刷されているが、一方私の持っている物は青(紺)色で、それにXersinと書いてある。オレンジ色の本物はMade in  Englandみたいだが私のはMade in U.K.とあり、まがい物か?

製品情報が欲しくてHPを検索するが、Multicore社は既に無くなっているようで検索しても会社のHPは出て来ない。 Copilotに聞いてみたらMulticore社はドイツのHenkel社に買収されたとの事。またブランド名XersinはHenkel傘下のLoctite社が2000年代以降に作った無鉛ハンダでErsinの派生品(改良品)との返事であったが私が入手したのは1980年前後だからCopilotは事実を反映していない。

経験豊かな知人によると、古いヤニ入りハンダはヤニが酸化していてよくないとの事で、じっさいハンダの濡れが良くなく液体フラックスを併用しているが、これは電線の表面が酸化している影響かも知れない。 ちなみに私が使っている電線はハンダと同じ頃に買ったフッ素樹脂被覆のジュンフロン電線(0.26mm)で本来はラッピング用だが被覆が熱に強くハンダごての熱でもびくともしないので配線用に愛用しいる。


私のハンダの事はよく分からなかったが、もう暫くMulticoreを使い続ける事になろう。 

 

2025年11月6日木曜日

ベリンガー A500 を修理(その2)

 ここで一度、全体を元に戻し症状を確認する事とした。というのは故障修理を依頼されたのはたまたま実家に帰った時であり、信号源も負荷も無く動作テストも出来ず、手元にあるのはテスターのみであった。

 自宅に持ち帰りテストを行うこととした。ただ高出力に耐えるスピーカーは持ち合わせていないので15Ω10Wの抵抗を調達し、各チャネルの負荷とした。入力にはオーディオジェネレータを用意した。動作を試してみるとチャネルBは正常に働く一方チャネルAには出力が出ていない。やはりチャネルAに問題がある。

ボリュームを上げるとチャネルBではボリュームに合わせてレベル表示のLEDが上昇するが(このレベル表示はスピーカー出力を全波整流して表示している)、チャネルAではレベルは上がらず代わりにレベル表示の上位にあるCLIPの赤いLEDが点灯する。 このCLIPはボリュームの中点を受けるOPアンプの出力を全波整流して点灯するようになっている(次回路のX7間にCLIPのLEDが接続されている)。

このオペアンプにはスピ―カー出力からの帰還がかかっているので、正常に帰還がかかっていればこの程度の入力でCLIPが点灯することは無いはずであり、それが点灯するという事は帰還ループの何処かが切れていてOPアンプがコンパレータとして動作している事になる。実際スピーカー出力は無く、レベル表示も上がっていない状態でのCLIP表示だ。

そこで再度OPアンプ出力から終段のTr迄の間の個々の部品をテスターを使って個別にチェックするが全て正常に見える。この時点で終段は怪しいのですでに新品に交換している。試しに2つのドライバーTrを取り外しチェッカーでチェックしたが特に問題はないようだ。この状態で入力信号を加えてみるとドライバーTrのベースには11Vp-pくらいの信号が来ていて特に問題は無さそうだ。う~~む、さっぱり分からない。

 ドライバーTrを元に戻し入力信号を加えてみると正常に動いている。なに?どうなっているの?

特に問題ないようなので元のように組み上げて入力を加えてテストしてみると、やっぱり出力が出なくCLIPのLEDが点灯する。さらにチャネルAのヒートシンクが熱くなる。組み上げる時にどこかでショートして異常な電流が流れている様だがどこかは分からない。組み上げた時に終段Trの電極が筐体(シャーシ)に近くなるのでショートしているのでは、と絶縁テープを挟んでみるが状態は変わらない。そのほか 基板の帰還ループに関係する配線がどこかで切れているかショートしている筈だ・・・再び分解してテストすると正常に動作したり異常になったり、だ。基板や部品に力を加えてみても状態は変わらない。クラックやショート、ハンダ不良では無さそうだ。

あれやこれやテストしている最中、本体から分離したチャネルAユニットのシャーシと本体のシャーシが接触すると火花が出る事があった。何か変だ、ここに電位差は無いはずだ。 試しにこの間の電圧を測ってみると、無音時(ボリュームが0の時)には電圧は無いが入力を加えボリュームを上げるとそれに応じて交流の電圧が生じ最大20Vを超える事が分かった・・・どこかで絶縁が破壊されている。いや待てよ、この電圧はスピーカに加わる電圧そのものではないか?

改めて基板を見てみると、 スピーカ出力のX4コネクタが怪しい。他のコネクタは方向が決まって逆向きに挿せないのにX4コネクタだけは方向性が曖昧で、じっさい逆向きに挿す事ができる。


配線を確認しX4コネクタを正しい向きに挿すとシャーシ間の電位差は無くなりアンプは正常に動作するようになった。 X4コネクタを逆挿ししてもチャネルAのユニットが電気的に浮いていて本体シャーシから切り離されていれば問題なく動作するが、シャーシを組み立てるとスピーカー出力が接地されOPアンプへの帰還が無くなる。この事でCLIP表示の現象を説明できる・・・原因はこれか。

という事で、ここには詳しく書いてない事を含め3週間ほどあれやこれやと調べたり部品交換したが、何十回も抜き差ししたX4コネクタの関係で迷走した。そして訳が分からないうちに故障は直っていた。まっ、いいか。そういう事もあるさ。

(終わり)

 

2025年10月26日日曜日

ベリンガー A500 を修理(その1)

 イベントなどで使っているアンプ(ベリンガー A500)が壊れたので見てくれという依頼があった。使っている最中にスピーカーから音が出なくなった。それ以降使っていないとの事。そのときスピーカーも断線したらしい。

コンパクトだが重い(8.4Kg)筐体の上蓋を外すと、真ん中に大きなトロイダルコアの電源トランスが鎮座し、左右に放熱板付きの2つのパワーアンプが対称に配置されている。


パワーアンプは各々250Wの出力がありステレオとしても、2つを併せて500Wのモノラルアンプとしてもスイッチで切り替えて使えるそうだ。だが故障したときどのような状態で使っていたかは要領を得ない。

 とりあえず回路図をネットで探すとともに、似たような故障事例を探したが事例は見つからない。たいていの場合定番の故障と修理報告がありそうなものだが、A500の事例は無い。

回路図を見ると、一見SEPP構成の普通のアンプに見えるが細かく見ると変な箇所がある。電源トランスに電圧の基準とする中点は無く、巻き線の2本の線はブリッジ整流されたあと低抵抗を経て上下の終段のパワートランジスタのエミッタへ接続されている。一方パワートランジスタのコレクタは接地されている!! 一般のSEPPと比べ終段のNPNとPNPトランジスタが逆に使われている。最も不思議な点はSEPPを構成するであろうパワートランジスタの出力がスピーカーに繋がっていない点だ。どうやって出力をスピーカへ渡している?


スピーカへ接続されているのは電源の正負に直列接続されている2個の平滑コンデンサの中点で、普通なら接地電圧であるべき所だ。スピーカへの接続のHOTとCOLDが逆転している?何という設計だ。 何だ、この回路は?こんな回路を過去に見た事もない。「変な家」の電子回路版か?

この回路の一番のメリットと考えられるのは終段のパワートランジスターのコレクタを(絶縁を考慮することなく)筐体に直接ネジ止めする事ができ、冷却効率が良い事だろう。 怖いのは終段の上下のトランジスタがストレートに繋がっている点で、バイアスのかけ方を間違ったり不注意で一瞬で吹っ飛んでしまう。その分パワーが取り出せるのだろう。

このアンプを500Wモノラルアンプとして使う場合はチャネルAのスピーカー出力をチャネルBの途中に逆位相で戻している。OPアンプ回路みたいな設計だが250Wのアンプでこれをやるか?

スピーカ端子の電圧を測定すると、左右分離のステレオモードではチャネルBがほぼ0Vなのに対しチャネルAでは電源投入後17V ほどあり、時間とともに0Vに向かって徐々に下がっていく。モノラルモードではチャネルBがチャネルAに逆位相で追従する。これは通常動作である。つまりチャネルAが怪しい。 

チャネルAの+VccとーVccの電圧を測るとそれぞれ+75V、-31.5Vと完全にアンバランスしている。何かがおかしい。テスターでトランジスタやダイオードの方向性を個別にチェックしてみるが特に怪しいところはない。

+VccとーVccから前段のOPアンプの電源±15Vを作っている2つのツェナーダイオードの両端を測ってみると-15V側の電圧が-3.8Vしかない。これが壊れているのか?新品と交換してみるが変化はない。ということは設計値以上に電流を食っている-15V電源の負荷があるはずだ。 多分OPアンプだろうと思って交換のためにOPアンプを外してツエナーの電圧を計ってみると確かに±15V位になってる。それではと新しいOPアンプを付けると元のアンバランスな状態に戻っている。何かがおかしい。

先ず全部の部品をもう一度洗い直そうとテスターで1個づつ計っていると、あれ?部品(R66,R67)が実装されていない。

極小(1608?)のチップ抵抗なので気付かなかった。チャネルAのボリュームに繋がるコネクタ(X6)は外しているので、この状態ではOPアンプ(IC2B)のマイナス端子が浮いていて正常に動作しないはずだ。これがアンバランスの原因か。

故障診断は振り出しに戻った。

(続く) 

 

 

 

 

 

 


 


 

2025年9月9日火曜日

2色 8×8 マトリクスLEDを使う(その7)

 これまで、買った15個のマトリクスLEDのうち5個を使って基板を作成しテストをしていたが、残り10個分の基板も発注し作成した。14個を連結して表示させてみたが特に問題なく動く。次の動画は10個連結した例である。

  

製作の過程で経験したのは、ハンダペースト+ヒートガンでSMD(表面実装部品)をハンダ付けする場合、ハンダ付け後急に冷やすと基板と部品の熱膨張率の違いによりハンダにクラックが生じて著しく信頼性が低下する事である。

せっかく効率的にハンダ付けが出来ても後で細かく補修する羽目になる。 これが老眼の目にはきつい。USB顕微鏡が欲しい所である。 あと、注射器タイプのペーストハンダを直接基板に付けたが斑になり均一な量を塗布できなかった(概ね多すぎた)。基板と同時にステンシル(ハンダマスク)も発注したほうが均一に塗布できハンダ付けは上手く行くだろう。但しその場合は基板作成の値段が跳ね上がる覚悟が必要だ。

最後に、定電流LEDドライバーのTB62706BFは意外と異常電圧に弱い。最近のIC、LSI類は設計が良いのか多少手荒く扱っても、一瞬逆電圧をかけても滅多に壊れないが、TB62706BFは簡単に壊れ数個をダメにした。具体的にはENA端子が絶縁破壊されGNDとの間の抵抗値が170Ω程度に下がり(正常なICは十数MΩある)動作が不安定になった。注意が必要である。

 秋月のアウトレットで安く入手した2色8X8マトリクスLED15個を使い終わったので、このシリーズは終わりとする。

(終わり) 

 ----------------(追記)------------------

その後、依頼によりデモ表示内容を一定時間ごとに切り替えるような機能を追加した。デモは6種類まで設定できる。またデモ中にUARTからテキスト入力があればそれを一定時間表示した後デモに戻る。このとき超音波測距のデータについては特別に処理を加え距離の範囲に応じて色を変えて表示するようにしている。 

 -------------(追記終り)--------------- 

2025年9月4日木曜日

出入り検知器をPCB化する(その26) インテグレーション3

 暫く作業をお休みしていたが、これまで作った基板を組み合わせて、人の通行を感知して挨拶する挨拶ロボットを作る。

そこで新たらしく必要になるのがロボットを制御する方法、即ちサーボモータによるロボットの動作とメロディ・音声を同期させる手法及びその記述法である。最初のステップとしてインテグレーション1で作ったサーボ制御ユニットのコマンドを次の様に整理した。

    <nn>A - Rotate Ch.1 to direction <nn>.(<nn>=-90..0..90)
    <nn>B - Rotate Ch.2 to direction <nn>.(<nn>=-90..0..90)
    <nn>C - Rotate Ch.3 to direction <nn>.(<nn>=-90..0..90)
    <nn>a - Rotate Ch.1 <nn>degrees.(<nn>=-90..0..90)
    <nn>b - Rotate Ch.2 <nn>degrees.(<nn>=-90..0..90)
    <nn>c - Rotate Ch.3 <nn>degrees.(<nn>=-90..0..90)
    <nn>x - Set Ch.1 speed to <nn>.(<nn>=1..253)
    <nn>y - Set Ch.2 speed to <nn>.(<nn>=1..253)
    <nn>z - Set Ch.3 speed to <nn>.(<nn>=1..253)
    <mm>s - Set all speed to <mm>.(<mm>=1..253)
     <m>S - Set all speed to level <m>. (<m>=0..9)
        Z - Rotate Ch.1,2,3 to origin(0,0,0).
        > - Wait Idle
        $ - Abort
        e - Echo OFF(default)
        E - Echo ON
        i - Idling OFF(default)
        I - Idling ON
        v - Show software version.
        V - Show configuration data.
 

これらのサーボの制御コマンドは制御モジュールに後置記法(逆ポーランド記法)で与える。つまり改行を待たずアルファベットや記号のコマンドを入力した時点で即動作する。いちいち改行を入れる必要が無いので連続的な指示が可能である。 


 メロディや音声に同期してサーボユニットへ指示を行うための記法を次の様にした。

    [A:B:C](D)E 

 ここでサーボへの指示は[]の中に記述し、メロディは()の中に記述する。つまりAはサーボの事前処理、Bがサーボの動きの記述、Cがサーボの終了処理、Dはメロディ、Eが音声メッセージである。例えば、

    "[200sZ>5s:90A90C>-90A-90C>:$Z>](@j)ohayo" 

と記述すると、

  1. スピード200で原点移動、 その後スピードを5に変更(A部)
  2. 「@j」で定義されるメロディを演奏(D部)
  3. その後「おはよう」と発声(E部)
  4. 2,3を行っている間にチャネル1とチャネル3のサーボモータを原点から+90度へ、次に-90度へ回転(B部)
  5.  発声が終了するとともにサーボの回転を停止し原点へ移動(C部)

 のように動作する。こういった1行をイベント毎に用意し、実行すればよい。

 (続く)